context-lens 0.2.0 → 0.3.0
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 +120 -25
- package/dist/cli-utils.d.ts +2 -1
- package/dist/cli-utils.d.ts.map +1 -1
- package/dist/cli-utils.js +40 -13
- package/dist/cli-utils.js.map +1 -1
- package/dist/cli.js +184 -68
- package/dist/cli.js.map +1 -1
- package/dist/core/conversation.d.ts +63 -0
- package/dist/core/conversation.d.ts.map +1 -0
- package/dist/core/conversation.js +305 -0
- package/dist/core/conversation.js.map +1 -0
- package/dist/core/health.d.ts +7 -0
- package/dist/core/health.d.ts.map +1 -0
- package/dist/core/health.js +311 -0
- package/dist/core/health.js.map +1 -0
- package/dist/core/models.d.ts +36 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +111 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/parse.d.ts +17 -0
- package/dist/core/parse.d.ts.map +1 -0
- package/dist/core/parse.js +349 -0
- package/dist/core/parse.js.map +1 -0
- package/dist/core/routing.d.ts +47 -0
- package/dist/core/routing.d.ts.map +1 -0
- package/dist/core/routing.js +132 -0
- package/dist/core/routing.js.map +1 -0
- package/dist/core/security.d.ts +8 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js +222 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/source.d.ts +22 -0
- package/dist/core/source.d.ts.map +1 -0
- package/dist/core/source.js +56 -0
- package/dist/core/source.js.map +1 -0
- package/dist/core/tokens.d.ts +29 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +163 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/core.d.ts +14 -22
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +14 -471
- package/dist/core.js.map +1 -1
- package/dist/http/headers.d.ts +25 -0
- package/dist/http/headers.d.ts.map +1 -0
- package/dist/http/headers.js +54 -0
- package/dist/http/headers.js.map +1 -0
- package/dist/lhar/composition.d.ts +12 -0
- package/dist/lhar/composition.d.ts.map +1 -0
- package/dist/lhar/composition.js +258 -0
- package/dist/lhar/composition.js.map +1 -0
- package/dist/lhar/export.d.ts +5 -0
- package/dist/lhar/export.d.ts.map +1 -0
- package/dist/lhar/export.js +59 -0
- package/dist/lhar/export.js.map +1 -0
- package/dist/lhar/record.d.ts +6 -0
- package/dist/lhar/record.d.ts.map +1 -0
- package/dist/lhar/record.js +216 -0
- package/dist/lhar/record.js.map +1 -0
- package/dist/lhar/response.d.ts +11 -0
- package/dist/lhar/response.d.ts.map +1 -0
- package/dist/lhar/response.js +132 -0
- package/dist/lhar/response.js.map +1 -0
- package/dist/lhar-types.generated.d.ts +24 -3
- package/dist/lhar-types.generated.d.ts.map +1 -1
- package/dist/lhar.d.ts +12 -19
- package/dist/lhar.d.ts.map +1 -1
- package/dist/lhar.js +16 -473
- package/dist/lhar.js.map +1 -1
- package/dist/server/api.d.ts +8 -0
- package/dist/server/api.d.ts.map +1 -0
- package/dist/server/api.js +292 -0
- package/dist/server/api.js.map +1 -0
- package/dist/server/config.d.ts +13 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +36 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/projection.d.ts +9 -0
- package/dist/server/projection.d.ts.map +1 -0
- package/dist/server/projection.js +47 -0
- package/dist/server/projection.js.map +1 -0
- package/dist/server/proxy.d.ts +13 -0
- package/dist/server/proxy.d.ts.map +1 -0
- package/dist/server/proxy.js +218 -0
- package/dist/server/proxy.js.map +1 -0
- package/dist/server/static.d.ts +9 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +78 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/store.d.ts +81 -0
- package/dist/server/store.d.ts.map +1 -0
- package/dist/server/store.js +632 -0
- package/dist/server/store.js.map +1 -0
- package/dist/server/webui.d.ts +5 -0
- package/dist/server/webui.d.ts.map +1 -0
- package/dist/server/webui.js +42 -0
- package/dist/server/webui.js.map +1 -0
- package/dist/server-utils.d.ts +2 -2
- package/dist/server-utils.d.ts.map +1 -1
- package/dist/server-utils.js +12 -21
- package/dist/server-utils.js.map +1 -1
- package/dist/server.js +31 -697
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +94 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/version.generated.d.ts +2 -0
- package/dist/version.generated.d.ts.map +1 -0
- package/dist/version.generated.js +2 -0
- package/dist/version.generated.js.map +1 -0
- package/findings-screenshot.png +0 -0
- package/messages-screenshot.png +0 -0
- package/package.json +23 -10
- package/schema/lhar.schema.json +58 -4
- package/screenshot-overview.png +0 -0
- package/sessions-screenshot.png +0 -0
- package/timeline-screenshot.png +0 -0
- package/diff.png +0 -0
- package/overview-sidebar.png +0 -0
- package/public/index.html +0 -2804
package/dist/cli.js
CHANGED
|
@@ -1,36 +1,63 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { spawn } from
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { fileURLToPath } from
|
|
8
|
-
import {
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import net from "node:net";
|
|
5
|
+
import { platform, tmpdir } from "node:os";
|
|
6
|
+
import { dirname, join } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { CLI_CONSTANTS, getToolConfig } from "./cli-utils.js";
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
11
|
// Known tool config: env vars for the child process, extra CLI args, server env vars, and whether mitmproxy is needed
|
|
12
12
|
// Note: actual tool config lives in cli-utils.ts so it can be unit-tested without importing this entrypoint.
|
|
13
|
-
const LOCKFILE =
|
|
13
|
+
const LOCKFILE = "/tmp/context-lens.lock";
|
|
14
14
|
// Parse command line arguments
|
|
15
15
|
const args = process.argv.slice(2);
|
|
16
|
-
|
|
16
|
+
// Extract --privacy flag from args (before or after command)
|
|
17
|
+
let privacyLevel;
|
|
18
|
+
const filteredArgs = [];
|
|
19
|
+
for (let i = 0; i < args.length; i++) {
|
|
20
|
+
if (args[i] === "--privacy" && i + 1 < args.length) {
|
|
21
|
+
privacyLevel = args[i + 1];
|
|
22
|
+
i++; // skip the value
|
|
23
|
+
}
|
|
24
|
+
else if (args[i].startsWith("--privacy=")) {
|
|
25
|
+
privacyLevel = args[i].split("=", 2)[1];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
filteredArgs.push(args[i]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Validate privacy level
|
|
32
|
+
if (privacyLevel !== undefined) {
|
|
33
|
+
if (!["minimal", "standard", "full"].includes(privacyLevel)) {
|
|
34
|
+
console.error(`Error: Invalid privacy level '${privacyLevel}'. Must be one of: minimal, standard, full`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
// Pass to server via env var
|
|
38
|
+
process.env.CONTEXT_LENS_PRIVACY = privacyLevel;
|
|
39
|
+
}
|
|
40
|
+
if (filteredArgs.length === 0) {
|
|
17
41
|
// Standalone mode: just start the proxy server
|
|
18
|
-
const serverPath = join(__dirname,
|
|
19
|
-
const server = spawn(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
42
|
+
const serverPath = join(__dirname, "server.js");
|
|
43
|
+
const server = spawn("node", [serverPath], {
|
|
44
|
+
stdio: "inherit",
|
|
45
|
+
env: { ...process.env },
|
|
46
|
+
});
|
|
47
|
+
server.on("exit", (code) => process.exit(code || 0));
|
|
48
|
+
process.on("SIGINT", () => server.kill("SIGINT"));
|
|
49
|
+
process.on("SIGTERM", () => server.kill("SIGTERM"));
|
|
23
50
|
// Prevent early exit
|
|
24
51
|
process.stdin.resume();
|
|
25
52
|
}
|
|
26
53
|
else {
|
|
27
54
|
// Skip '--' separator if present
|
|
28
|
-
let commandArgs =
|
|
29
|
-
if (
|
|
30
|
-
commandArgs =
|
|
55
|
+
let commandArgs = filteredArgs;
|
|
56
|
+
if (filteredArgs[0] === "--") {
|
|
57
|
+
commandArgs = filteredArgs.slice(1);
|
|
31
58
|
}
|
|
32
59
|
if (commandArgs.length === 0) {
|
|
33
|
-
console.error(
|
|
60
|
+
console.error("Error: No command specified after --");
|
|
34
61
|
process.exit(1);
|
|
35
62
|
}
|
|
36
63
|
const commandName = commandArgs[0];
|
|
@@ -40,11 +67,11 @@ else {
|
|
|
40
67
|
// Check if proxy is already running
|
|
41
68
|
function isProxyRunning() {
|
|
42
69
|
return new Promise((resolve) => {
|
|
43
|
-
const socket = net.connect({ port: 4040, host:
|
|
70
|
+
const socket = net.connect({ port: 4040, host: "localhost" }, () => {
|
|
44
71
|
socket.end();
|
|
45
72
|
resolve(true);
|
|
46
73
|
});
|
|
47
|
-
socket.on(
|
|
74
|
+
socket.on("error", () => resolve(false));
|
|
48
75
|
socket.setTimeout(1000, () => {
|
|
49
76
|
socket.destroy();
|
|
50
77
|
resolve(false);
|
|
@@ -56,14 +83,14 @@ else {
|
|
|
56
83
|
try {
|
|
57
84
|
let count = 0;
|
|
58
85
|
if (fs.existsSync(LOCKFILE)) {
|
|
59
|
-
const data = fs.readFileSync(LOCKFILE,
|
|
60
|
-
count = parseInt(data) || 0;
|
|
86
|
+
const data = fs.readFileSync(LOCKFILE, "utf8");
|
|
87
|
+
count = parseInt(data, 10) || 0;
|
|
61
88
|
}
|
|
62
89
|
fs.writeFileSync(LOCKFILE, String(count + 1));
|
|
63
90
|
return count + 1;
|
|
64
91
|
}
|
|
65
92
|
catch (err) {
|
|
66
|
-
console.error(
|
|
93
|
+
console.error("Warning: failed to update lockfile:", err instanceof Error ? err.message : String(err));
|
|
67
94
|
return 1;
|
|
68
95
|
}
|
|
69
96
|
}
|
|
@@ -74,7 +101,7 @@ else {
|
|
|
74
101
|
fs.unlinkSync(LOCKFILE);
|
|
75
102
|
}
|
|
76
103
|
catch (err) {
|
|
77
|
-
console.error(
|
|
104
|
+
console.error("Warning: failed to clear stale lockfile:", err instanceof Error ? err.message : String(err));
|
|
78
105
|
}
|
|
79
106
|
}
|
|
80
107
|
// Decrement reference count in lockfile
|
|
@@ -82,8 +109,8 @@ else {
|
|
|
82
109
|
try {
|
|
83
110
|
if (!fs.existsSync(LOCKFILE))
|
|
84
111
|
return 0;
|
|
85
|
-
const data = fs.readFileSync(LOCKFILE,
|
|
86
|
-
const count = Math.max(0, (parseInt(data) || 1) - 1);
|
|
112
|
+
const data = fs.readFileSync(LOCKFILE, "utf8");
|
|
113
|
+
const count = Math.max(0, (parseInt(data, 10) || 1) - 1);
|
|
87
114
|
if (count === 0) {
|
|
88
115
|
fs.unlinkSync(LOCKFILE);
|
|
89
116
|
}
|
|
@@ -93,7 +120,7 @@ else {
|
|
|
93
120
|
return count;
|
|
94
121
|
}
|
|
95
122
|
catch (err) {
|
|
96
|
-
console.error(
|
|
123
|
+
console.error("Warning: failed to update lockfile:", err instanceof Error ? err.message : String(err));
|
|
97
124
|
return 0;
|
|
98
125
|
}
|
|
99
126
|
}
|
|
@@ -102,61 +129,62 @@ else {
|
|
|
102
129
|
let serverReady = false;
|
|
103
130
|
let mitmReady = false;
|
|
104
131
|
let childProcess = null;
|
|
132
|
+
let piAgentDirToCleanup = null;
|
|
105
133
|
let shouldShutdownProxy = false;
|
|
106
134
|
let cleanupDidRun = false;
|
|
107
135
|
// Start proxy or attach to existing one
|
|
108
136
|
async function initializeProxy() {
|
|
109
137
|
const alreadyRunning = await isProxyRunning();
|
|
110
138
|
if (alreadyRunning) {
|
|
111
|
-
console.log(
|
|
139
|
+
console.log("🔍 Context Lens proxy already running, attaching to it...");
|
|
112
140
|
incrementRefCount();
|
|
113
141
|
serverReady = true;
|
|
114
142
|
shouldShutdownProxy = false;
|
|
115
143
|
maybeStartMitmThenChild();
|
|
116
144
|
}
|
|
117
145
|
else {
|
|
118
|
-
console.log(
|
|
146
|
+
console.log("🔍 Starting Context Lens proxy and web UI...");
|
|
119
147
|
// No proxy is listening on :4040. Any existing lockfile is stale and would prevent shutdown later.
|
|
120
148
|
clearStaleLockfile();
|
|
121
149
|
incrementRefCount();
|
|
122
150
|
shouldShutdownProxy = true;
|
|
123
|
-
const serverPath = join(__dirname,
|
|
124
|
-
serverProcess = spawn(
|
|
125
|
-
stdio: [
|
|
151
|
+
const serverPath = join(__dirname, "server.js");
|
|
152
|
+
serverProcess = spawn("node", [serverPath], {
|
|
153
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
126
154
|
detached: false,
|
|
127
|
-
env: { ...toolConfig.serverEnv, ...process.env, CONTEXT_LENS_CLI:
|
|
155
|
+
env: { ...toolConfig.serverEnv, ...process.env, CONTEXT_LENS_CLI: "1" },
|
|
128
156
|
});
|
|
129
157
|
// Wait for server to be ready, then suppress output (visible in web UI at :4041)
|
|
130
|
-
serverProcess.stdout
|
|
158
|
+
serverProcess.stdout?.on("data", (data) => {
|
|
131
159
|
const output = data.toString();
|
|
132
160
|
if (!serverReady) {
|
|
133
161
|
process.stderr.write(output);
|
|
134
162
|
}
|
|
135
|
-
if (output.includes(
|
|
163
|
+
if (output.includes("Context Lens Web UI running") && !serverReady) {
|
|
136
164
|
serverReady = true;
|
|
137
165
|
maybeStartMitmThenChild();
|
|
138
166
|
}
|
|
139
167
|
});
|
|
140
|
-
serverProcess.stderr
|
|
168
|
+
serverProcess.stderr?.on("data", (data) => {
|
|
141
169
|
if (!serverReady) {
|
|
142
170
|
process.stderr.write(data);
|
|
143
171
|
}
|
|
144
172
|
});
|
|
145
|
-
serverProcess.on(
|
|
146
|
-
console.error(
|
|
173
|
+
serverProcess.on("error", (err) => {
|
|
174
|
+
console.error("Failed to start server:", err);
|
|
147
175
|
decrementRefCount();
|
|
148
176
|
process.exit(1);
|
|
149
177
|
});
|
|
150
|
-
serverProcess.on(
|
|
178
|
+
serverProcess.on("exit", (code) => {
|
|
151
179
|
if (!serverReady) {
|
|
152
|
-
console.error(
|
|
180
|
+
console.error("Server exited unexpectedly");
|
|
153
181
|
decrementRefCount();
|
|
154
182
|
process.exit(code || 1);
|
|
155
183
|
}
|
|
156
184
|
});
|
|
157
185
|
// Open browser after a short delay (only when starting new server)
|
|
158
186
|
setTimeout(() => {
|
|
159
|
-
openBrowser(
|
|
187
|
+
openBrowser("http://localhost:4041");
|
|
160
188
|
}, 1000);
|
|
161
189
|
}
|
|
162
190
|
}
|
|
@@ -164,27 +192,34 @@ else {
|
|
|
164
192
|
// Start mitmproxy if needed, then start the child
|
|
165
193
|
function maybeStartMitmThenChild() {
|
|
166
194
|
if (!toolConfig.needsMitm) {
|
|
167
|
-
|
|
195
|
+
startChild();
|
|
196
|
+
return;
|
|
168
197
|
}
|
|
169
198
|
const addonPath = CLI_CONSTANTS.MITM_ADDON_PATH;
|
|
170
|
-
console.log(
|
|
171
|
-
mitmProcess = spawn(
|
|
172
|
-
|
|
199
|
+
console.log("🔒 Starting mitmproxy (forward proxy for HTTPS interception)...");
|
|
200
|
+
mitmProcess = spawn("mitmdump", [
|
|
201
|
+
"-s",
|
|
202
|
+
addonPath,
|
|
203
|
+
"--quiet",
|
|
204
|
+
"--listen-port",
|
|
205
|
+
String(CLI_CONSTANTS.MITM_PORT),
|
|
206
|
+
], {
|
|
207
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
173
208
|
});
|
|
174
|
-
mitmProcess.on(
|
|
175
|
-
console.error(
|
|
176
|
-
console.error(
|
|
209
|
+
mitmProcess.on("error", (err) => {
|
|
210
|
+
console.error("Failed to start mitmproxy:", err.message);
|
|
211
|
+
console.error("Install it: pipx install mitmproxy");
|
|
177
212
|
cleanup(1);
|
|
178
213
|
});
|
|
179
|
-
mitmProcess.on(
|
|
214
|
+
mitmProcess.on("exit", (code) => {
|
|
180
215
|
if (!mitmReady) {
|
|
181
|
-
console.error(
|
|
216
|
+
console.error("mitmproxy exited unexpectedly");
|
|
182
217
|
cleanup(code || 1);
|
|
183
218
|
}
|
|
184
219
|
});
|
|
185
220
|
// Poll until mitmproxy is accepting connections
|
|
186
221
|
const pollMitm = setInterval(() => {
|
|
187
|
-
const socket = net.connect({ port: CLI_CONSTANTS.MITM_PORT, host:
|
|
222
|
+
const socket = net.connect({ port: CLI_CONSTANTS.MITM_PORT, host: "localhost" }, () => {
|
|
188
223
|
socket.end();
|
|
189
224
|
if (!mitmReady) {
|
|
190
225
|
mitmReady = true;
|
|
@@ -193,7 +228,7 @@ else {
|
|
|
193
228
|
startChild();
|
|
194
229
|
}
|
|
195
230
|
});
|
|
196
|
-
socket.on(
|
|
231
|
+
socket.on("error", () => { }); // not ready yet
|
|
197
232
|
socket.setTimeout(500, () => socket.destroy());
|
|
198
233
|
}, 200);
|
|
199
234
|
}
|
|
@@ -201,33 +236,103 @@ else {
|
|
|
201
236
|
function startChild() {
|
|
202
237
|
// Inject extra args (e.g. codex -c chatgpt_base_url=...) before user args
|
|
203
238
|
const allArgs = [...toolConfig.extraArgs, ...commandArguments];
|
|
204
|
-
console.log(`\n🚀 Launching: ${commandName} ${allArgs.join(
|
|
239
|
+
console.log(`\n🚀 Launching: ${commandName} ${allArgs.join(" ")}\n`);
|
|
205
240
|
const childEnv = {
|
|
206
241
|
...process.env,
|
|
207
242
|
...toolConfig.childEnv,
|
|
208
243
|
};
|
|
244
|
+
if (commandName === "pi") {
|
|
245
|
+
childEnv.PI_CODING_AGENT_DIR = preparePiAgentDir(childEnv.PI_CODING_AGENT_DIR);
|
|
246
|
+
}
|
|
209
247
|
// Spawn the child process with inherited stdio (interactive)
|
|
210
|
-
// No shell: true
|
|
248
|
+
// No shell: true. Avoids intermediate process that breaks signal delivery
|
|
211
249
|
childProcess = spawn(commandName, allArgs, {
|
|
212
|
-
stdio:
|
|
250
|
+
stdio: "inherit",
|
|
213
251
|
env: childEnv,
|
|
214
252
|
});
|
|
215
|
-
childProcess.on(
|
|
253
|
+
childProcess.on("error", (err) => {
|
|
216
254
|
console.error(`\nFailed to start ${commandName}:`, err.message);
|
|
217
255
|
cleanup(1);
|
|
218
256
|
});
|
|
219
257
|
// When the child exits (however it happens), clean up and mirror its exit code
|
|
220
|
-
childProcess.on(
|
|
221
|
-
cleanup(signal ? 128 + (signal ===
|
|
258
|
+
childProcess.on("exit", (code, signal) => {
|
|
259
|
+
cleanup(signal ? 128 + (signal === "SIGINT" ? 2 : 15) : code || 0);
|
|
222
260
|
});
|
|
223
261
|
}
|
|
262
|
+
function preparePiAgentDir(targetDirEnv) {
|
|
263
|
+
const dirPrefix = targetDirEnv && targetDirEnv.length > 0
|
|
264
|
+
? targetDirEnv
|
|
265
|
+
: join(tmpdir(), "context-lens-pi-agent-");
|
|
266
|
+
const targetDir = fs.mkdtempSync(dirPrefix);
|
|
267
|
+
const homeDir = process.env.HOME || "";
|
|
268
|
+
const sourceDir = join(homeDir, ".pi", "agent");
|
|
269
|
+
const sourceModelsPath = join(sourceDir, "models.json");
|
|
270
|
+
const targetModelsPath = join(targetDir, "models.json");
|
|
271
|
+
try {
|
|
272
|
+
// Keep temp agent dir private to this user.
|
|
273
|
+
fs.chmodSync(targetDir, 0o700);
|
|
274
|
+
piAgentDirToCleanup = targetDir;
|
|
275
|
+
if (fs.existsSync(sourceDir)) {
|
|
276
|
+
for (const entry of fs.readdirSync(sourceDir, {
|
|
277
|
+
withFileTypes: true,
|
|
278
|
+
})) {
|
|
279
|
+
if (entry.name === "models.json")
|
|
280
|
+
continue;
|
|
281
|
+
const src = join(sourceDir, entry.name);
|
|
282
|
+
const dst = join(targetDir, entry.name);
|
|
283
|
+
fs.symlinkSync(src, dst);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
let modelsConfig = {};
|
|
287
|
+
if (fs.existsSync(sourceModelsPath)) {
|
|
288
|
+
try {
|
|
289
|
+
const parsed = JSON.parse(fs.readFileSync(sourceModelsPath, "utf8"));
|
|
290
|
+
if (parsed && typeof parsed === "object") {
|
|
291
|
+
modelsConfig = parsed;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
console.error("Warning: ~/.pi/agent/models.json is not valid JSON; using proxy-only overrides");
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const providers = modelsConfig.providers &&
|
|
299
|
+
typeof modelsConfig.providers === "object" &&
|
|
300
|
+
!Array.isArray(modelsConfig.providers)
|
|
301
|
+
? { ...modelsConfig.providers }
|
|
302
|
+
: {};
|
|
303
|
+
const proxyBaseUrl = `${CLI_CONSTANTS.PROXY_URL}/pi`;
|
|
304
|
+
for (const key of [
|
|
305
|
+
"anthropic",
|
|
306
|
+
"openai",
|
|
307
|
+
"google-gemini-cli",
|
|
308
|
+
"google-antigravity",
|
|
309
|
+
]) {
|
|
310
|
+
const existing = providers[key];
|
|
311
|
+
providers[key] =
|
|
312
|
+
existing && typeof existing === "object" && !Array.isArray(existing)
|
|
313
|
+
? {
|
|
314
|
+
...existing,
|
|
315
|
+
baseUrl: proxyBaseUrl,
|
|
316
|
+
}
|
|
317
|
+
: { baseUrl: proxyBaseUrl };
|
|
318
|
+
}
|
|
319
|
+
fs.writeFileSync(targetModelsPath, `${JSON.stringify({ ...modelsConfig, providers }, null, 2)}\n`);
|
|
320
|
+
return targetDir;
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
console.error("Warning: failed to prepare Pi proxy config:", err instanceof Error ? err.message : String(err));
|
|
324
|
+
return targetDir;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
224
327
|
// Open browser (cross-platform)
|
|
225
328
|
function openBrowser(url) {
|
|
226
|
-
const cmd = platform() ===
|
|
227
|
-
|
|
228
|
-
|
|
329
|
+
const cmd = platform() === "darwin"
|
|
330
|
+
? "open"
|
|
331
|
+
: platform() === "win32"
|
|
332
|
+
? "start"
|
|
333
|
+
: "xdg-open";
|
|
229
334
|
const browserProcess = spawn(cmd, [url], {
|
|
230
|
-
stdio:
|
|
335
|
+
stdio: "ignore",
|
|
231
336
|
detached: true,
|
|
232
337
|
});
|
|
233
338
|
browserProcess.unref(); // Don't wait for browser to close
|
|
@@ -241,18 +346,29 @@ else {
|
|
|
241
346
|
if (mitmProcess && !mitmProcess.killed) {
|
|
242
347
|
mitmProcess.kill();
|
|
243
348
|
}
|
|
244
|
-
if (
|
|
349
|
+
if (piAgentDirToCleanup) {
|
|
350
|
+
try {
|
|
351
|
+
fs.rmSync(piAgentDirToCleanup, { recursive: true, force: true });
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
console.error("Warning: failed to clean up temporary Pi config dir:", err instanceof Error ? err.message : String(err));
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (remainingRefs === 0 &&
|
|
358
|
+
shouldShutdownProxy &&
|
|
359
|
+
serverProcess &&
|
|
360
|
+
!serverProcess.killed) {
|
|
245
361
|
serverProcess.kill();
|
|
246
362
|
}
|
|
247
363
|
process.exit(exitCode);
|
|
248
364
|
}
|
|
249
|
-
// Ignore SIGINT in the parent
|
|
365
|
+
// Ignore SIGINT in the parent. Let it flow to the child (claude/codex) naturally.
|
|
250
366
|
// The child handles Ctrl+C itself; when it eventually exits, cleanup runs via the 'exit' handler.
|
|
251
|
-
process.on(
|
|
252
|
-
// SIGTERM: external shutdown request
|
|
253
|
-
process.on(
|
|
367
|
+
process.on("SIGINT", () => { });
|
|
368
|
+
// SIGTERM: external shutdown request, forward to child
|
|
369
|
+
process.on("SIGTERM", () => {
|
|
254
370
|
if (childProcess && !childProcess.killed)
|
|
255
|
-
childProcess.kill(
|
|
371
|
+
childProcess.kill("SIGTERM");
|
|
256
372
|
});
|
|
257
373
|
}
|
|
258
374
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ContextInfo, ParsedMessage } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Extract readable text from message content.
|
|
4
|
+
*
|
|
5
|
+
* This is used for labels/fingerprints where we want the "real" prompt text, not wrappers.
|
|
6
|
+
* It understands a few common JSON wrappers used by tool APIs.
|
|
7
|
+
*
|
|
8
|
+
* @param content - Raw message content (string, often JSON-encoded).
|
|
9
|
+
* @returns A trimmed text string or `null` if no readable text exists.
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractReadableText(content: string | null | undefined): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Extract the working directory from captured content when a tool embeds it.
|
|
14
|
+
*
|
|
15
|
+
* Supports:
|
|
16
|
+
* - Claude Code: "Primary working directory: `/path`"
|
|
17
|
+
* - Codex: "<cwd>/path</cwd>"
|
|
18
|
+
* - Generic: "working directory is /path" or "cwd: /path"
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractWorkingDirectory(contextInfo: ContextInfo, rawBody?: Record<string, any> | null): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* For OpenAI Responses-style input arrays, extract the first "real" user prompt.
|
|
23
|
+
*
|
|
24
|
+
* Skips boilerplate blocks (AGENTS.md / environment wrappers).
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractUserPrompt(messages: ParsedMessage[]): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Extract a stable session identifier when the upstream/tool provides one.
|
|
29
|
+
*
|
|
30
|
+
* Supported:
|
|
31
|
+
* - Anthropic: `metadata.user_id` contains `session_<uuid>`
|
|
32
|
+
* - Gemini Code Assist: `request.session_id` (uuid)
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractSessionId(rawBody: Record<string, any> | null | undefined): string | null;
|
|
35
|
+
/**
|
|
36
|
+
* Compute a sub-key to distinguish agents within a session (main vs subagents).
|
|
37
|
+
*
|
|
38
|
+
* Currently derived from the first readable user message.
|
|
39
|
+
*/
|
|
40
|
+
export declare function computeAgentKey(contextInfo: ContextInfo): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Compute a conversation fingerprint for grouping.
|
|
43
|
+
*
|
|
44
|
+
* Priority:
|
|
45
|
+
* 1. explicit session IDs (most stable)
|
|
46
|
+
* 2. Responses API chaining (`previous_response_id`)
|
|
47
|
+
* 3. content hash of system + first prompt
|
|
48
|
+
*/
|
|
49
|
+
export declare function computeFingerprint(contextInfo: ContextInfo, rawBody: Record<string, any> | null | undefined, responseIdToConvo: Map<string, string>): string | null;
|
|
50
|
+
/**
|
|
51
|
+
* Extract a readable label for a conversation, primarily for UI display.
|
|
52
|
+
*/
|
|
53
|
+
export declare function extractConversationLabel(contextInfo: ContextInfo): string;
|
|
54
|
+
/**
|
|
55
|
+
* Extract all tool names used in a conversation's messages.
|
|
56
|
+
*
|
|
57
|
+
* Scans content blocks for tool_use blocks and collects their names.
|
|
58
|
+
*
|
|
59
|
+
* @param messages - Array of messages from one or more entries.
|
|
60
|
+
* @returns Set of tool names that were used.
|
|
61
|
+
*/
|
|
62
|
+
export declare function extractToolsUsed(messages: ParsedMessage[]): Set<string>;
|
|
63
|
+
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/core/conversation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,MAAM,GAAG,IAAI,CAuBf;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GACnC,MAAM,GAAG,IAAI,CA6Bf;AA6FD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CAmB1E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9C,MAAM,GAAG,IAAI,CAUf;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAcvE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,GAAG,IAAI,CA+Bf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAgBzE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYvE"}
|