context-lens 0.2.1 → 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 +63 -13
- package/dist/cli-utils.d.ts +1 -0
- package/dist/cli-utils.d.ts.map +1 -1
- package/dist/cli-utils.js +12 -0
- package/dist/cli-utils.js.map +1 -1
- package/dist/cli.js +110 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/conversation.d.ts +10 -1
- package/dist/core/conversation.d.ts.map +1 -1
- package/dist/core/conversation.js +118 -1
- package/dist/core/conversation.js.map +1 -1
- 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 +8 -2
- package/dist/core/models.d.ts.map +1 -1
- package/dist/core/models.js +18 -3
- package/dist/core/models.js.map +1 -1
- 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/tokens.d.ts +20 -2
- package/dist/core/tokens.d.ts.map +1 -1
- package/dist/core/tokens.js +151 -4
- package/dist/core/tokens.js.map +1 -1
- package/dist/core.d.ts +4 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +4 -2
- package/dist/core.js.map +1 -1
- 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 +23 -2
- 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 -557
- 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 +2 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +4 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/projection.d.ts.map +1 -1
- package/dist/server/projection.js +17 -9
- package/dist/server/projection.js.map +1 -1
- package/dist/server/proxy.d.ts.map +1 -1
- package/dist/server/proxy.js +36 -50
- package/dist/server/proxy.js.map +1 -1
- 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 +49 -1
- package/dist/server/store.d.ts.map +1 -1
- package/dist/server/store.js +297 -15
- package/dist/server/store.js.map +1 -1
- package/dist/server/webui.d.ts +2 -2
- package/dist/server/webui.d.ts.map +1 -1
- package/dist/server/webui.js +32 -160
- package/dist/server/webui.js.map +1 -1
- package/dist/server.js +3 -2
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/findings-screenshot.png +0 -0
- package/messages-screenshot.png +0 -0
- package/package.json +9 -8
- package/schema/lhar.schema.json +57 -3
- 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 -2831
package/README.md
CHANGED
|
@@ -4,14 +4,20 @@
|
|
|
4
4
|
[](https://github.com/larsderidder/context-lens/actions/workflows/ci.yml)
|
|
5
5
|
[](https://www.npmjs.com/package/context-lens)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
See what's actually filling your context window. Context Lens is a local proxy that captures LLM API calls from your coding tools and shows you a composition breakdown: what percentage is system prompts, tool definitions, conversation history, tool results, thinking blocks. It answers the question every developer asks: "why is this session so expensive?"
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Works with Claude Code, Codex, Gemini CLI, Aider, Pi, and anything else that talks to OpenAI/Anthropic/Google APIs. No code changes needed.
|
|
10
10
|
|
|
11
11
|

|
|
12
12
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
|
+
```bash
|
|
16
|
+
pnpm add -g context-lens
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or with npm:
|
|
20
|
+
|
|
15
21
|
```bash
|
|
16
22
|
npm install -g context-lens
|
|
17
23
|
```
|
|
@@ -29,6 +35,7 @@ npx context-lens claude "your prompt"
|
|
|
29
35
|
npx context-lens codex "your prompt"
|
|
30
36
|
npx context-lens gemini "your prompt"
|
|
31
37
|
npx context-lens aider --model claude-sonnet-4
|
|
38
|
+
npx context-lens pi
|
|
32
39
|
npx context-lens -- python my_agent.py
|
|
33
40
|
```
|
|
34
41
|
|
|
@@ -42,6 +49,7 @@ This starts the proxy (port 4040), opens the web UI (http://localhost:4041), set
|
|
|
42
49
|
| **OpenAI** | Reverse Proxy | ✅ Stable | `OPENAI_BASE_URL` |
|
|
43
50
|
| **Google Gemini** | Reverse Proxy | 🧪 Experimental | `GOOGLE_GEMINI_BASE_URL` |
|
|
44
51
|
| **ChatGPT (Subscription)** | MITM Proxy | ✅ Stable | `https_proxy` |
|
|
52
|
+
| **Pi Coding Agent** | Reverse Proxy (temporary per-run config) | ✅ Stable | `PI_CODING_AGENT_DIR` (set by wrapper) |
|
|
45
53
|
| **Aider / Generic** | Reverse Proxy | ✅ Stable | Detects standard patterns |
|
|
46
54
|
|
|
47
55
|
## What You Get
|
|
@@ -60,26 +68,30 @@ This starts the proxy (port 4040), opens the web UI (http://localhost:4041), set
|
|
|
60
68
|
|
|
61
69
|
### Screenshots
|
|
62
70
|
|
|
63
|
-
**
|
|
71
|
+
**Sessions list**
|
|
64
72
|
|
|
65
|
-

|
|
74
|
+
|
|
75
|
+
**Messages view with drill-down details**
|
|
66
76
|
|
|
67
|
-
|
|
77
|
+

|
|
68
78
|
|
|
69
|
-
|
|
79
|
+
**Timeline view**
|
|
70
80
|
|
|
71
|
-
|
|
81
|
+

|
|
72
82
|
|
|
73
|
-
|
|
83
|
+
**Findings panel**
|
|
84
|
+
|
|
85
|
+

|
|
74
86
|
|
|
75
87
|
## Manual Mode
|
|
76
88
|
|
|
77
89
|
```bash
|
|
78
|
-
|
|
90
|
+
pnpm start
|
|
79
91
|
# Port 4040 = proxy, port 4041 = web UI
|
|
80
92
|
|
|
81
93
|
ANTHROPIC_BASE_URL=http://localhost:4040 claude "your prompt"
|
|
82
|
-
OPENAI_BASE_URL=http://localhost:4040 codex "your prompt"
|
|
94
|
+
OPENAI_BASE_URL=http://localhost:4040 codex "your prompt" # API-key/OpenAI-base-url mode
|
|
83
95
|
GOOGLE_GEMINI_BASE_URL=http://localhost:4040 gemini "your prompt" # experimental
|
|
84
96
|
```
|
|
85
97
|
|
|
@@ -94,7 +106,24 @@ OPENAI_BASE_URL=http://localhost:4040/aider aider "prompt"
|
|
|
94
106
|
|
|
95
107
|
### Pi Coding Agent
|
|
96
108
|
|
|
97
|
-
Pi ignores standard base-URL environment variables
|
|
109
|
+
Pi ignores standard base-URL environment variables. `context-lens pi` works by creating a private per-run temporary Pi config directory under `/tmp/context-lens-pi-agent-*`, symlinking your normal `~/.pi/agent/*` files, and injecting proxy `baseUrl` overrides into its temporary `models.json`.
|
|
110
|
+
|
|
111
|
+
Your real `~/.pi/agent/models.json` is never modified, and the temporary directory is removed when the command exits.
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npx context-lens pi
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Pi config paths:
|
|
118
|
+
|
|
119
|
+
- Real Pi config dir: `~/.pi/agent`
|
|
120
|
+
- Real Pi models file: `~/.pi/agent/models.json` (left untouched)
|
|
121
|
+
- Temporary per-run config dir: `/tmp/context-lens-pi-agent-*`
|
|
122
|
+
- Runtime override providers in temp `models.json`: `anthropic`, `openai`, `google-gemini-cli`, `google-antigravity`
|
|
123
|
+
|
|
124
|
+
If you prefer not to use the temporary runtime override, you can also edit your real `~/.pi/agent/models.json` directly and set those providers' `baseUrl` values to `http://localhost:4040/pi`.
|
|
125
|
+
|
|
126
|
+
Example `~/.pi/agent/models.json`:
|
|
98
127
|
|
|
99
128
|
```json
|
|
100
129
|
{
|
|
@@ -107,8 +136,6 @@ Pi ignores standard base-URL environment variables, so the CLI wrapper can't red
|
|
|
107
136
|
}
|
|
108
137
|
```
|
|
109
138
|
|
|
110
|
-
Start the proxy (`npm start`), then run Pi normally. No CLI wrapper needed. The config hot-reloads when you switch models via `/model`, but adding new provider overrides requires restarting Pi.
|
|
111
|
-
|
|
112
139
|
Tested with: Claude Opus 4.6, Gemini 2.5 Flash (via Gemini CLI subscription), GPT-OSS 120B (via Antigravity). The `openai-codex` provider (ChatGPT subscription) has the same Cloudflare limitation as Codex and is not supported through the reverse proxy.
|
|
113
140
|
|
|
114
141
|
### Codex Subscription Mode
|
|
@@ -120,6 +147,8 @@ pipx install mitmproxy
|
|
|
120
147
|
npx context-lens codex "your prompt"
|
|
121
148
|
```
|
|
122
149
|
|
|
150
|
+
If Codex fails with certificate trust errors, install/trust the mitmproxy CA certificate (`~/.mitmproxy/mitmproxy-ca-cert.pem`) for your environment.
|
|
151
|
+
|
|
123
152
|
## How It Works
|
|
124
153
|
|
|
125
154
|
Context Lens sits between your coding tool and the LLM API, capturing requests in transit.
|
|
@@ -154,6 +183,27 @@ The tool makes its own TLS connection through the proxy, preserving its native T
|
|
|
154
183
|
|
|
155
184
|
Each request is parsed to extract: model name, system prompts, tool definitions, message history (with per-message token estimates), and content block types (text, tool calls, tool results, images, thinking). The response is captured to extract usage stats and cost. Requests are grouped into conversations using session IDs (Anthropic `metadata.user_id`), response chaining (OpenAI `previous_response_id`), or a fingerprint of the system prompt + first user message.
|
|
156
185
|
|
|
186
|
+
## Why Context Lens?
|
|
187
|
+
|
|
188
|
+
Tools like [Langfuse](https://langfuse.com/) and [Braintrust](https://braintrust.dev/) are great for observability when you control the code: you add their SDK, instrument your calls, and get traces in a dashboard. Context Lens solves a different problem.
|
|
189
|
+
|
|
190
|
+
**You can't instrument tools you don't own.** Claude Code, Codex, Gemini CLI, and Aider are closed-source binaries. You can't add an SDK to them. Context Lens works as a transparent proxy, so it captures everything without touching the tool's code.
|
|
191
|
+
|
|
192
|
+
**Context composition, not just token counts.** Most observability tools show you input/output token totals. Context Lens breaks down *what's inside* the context window: how much is system prompts vs. tool definitions vs. conversation history vs. tool results vs. thinking blocks. That's what you need to understand why sessions get expensive.
|
|
193
|
+
|
|
194
|
+
**Local and private.** Everything runs on your machine. No accounts, no cloud, no data leaving your network. Start it, use it, stop it.
|
|
195
|
+
|
|
196
|
+
| | Context Lens | Langfuse / Braintrust |
|
|
197
|
+
|:---|:---|:---|
|
|
198
|
+
| **Setup** | `npx context-lens claude` | Add SDK, configure API keys |
|
|
199
|
+
| **Works with closed-source tools** | Yes (proxy) | No (needs instrumentation) |
|
|
200
|
+
| **Context composition breakdown** | Yes (treemap, per-category) | Token totals only |
|
|
201
|
+
| **Runs locally** | Yes, entirely | Cloud or self-hosted server |
|
|
202
|
+
| **Prompt management & evals** | No | Yes |
|
|
203
|
+
| **Team/production use** | No (single-user, local) | Yes |
|
|
204
|
+
|
|
205
|
+
Context Lens is for developers who want to understand and optimize their coding agent sessions. If you need production monitoring, prompt versioning, or team dashboards, use Langfuse.
|
|
206
|
+
|
|
157
207
|
## Data
|
|
158
208
|
|
|
159
209
|
Captured requests are kept in memory (last 100) and persisted to `data/state.jsonl` across restarts. Each session is also logged as a separate `.lhar` file in `data/`. Use the Reset button in the UI to clear everything.
|
package/dist/cli-utils.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const CLI_CONSTANTS: {
|
|
|
4
4
|
readonly PROXY_URL: "http://localhost:4040";
|
|
5
5
|
readonly MITM_PORT: 8080;
|
|
6
6
|
readonly MITM_PROXY_URL: "http://localhost:8080";
|
|
7
|
+
readonly PI_AGENT_DIR_PREFIX: "/tmp/context-lens-pi-agent-";
|
|
7
8
|
readonly MITM_ADDON_PATH: string;
|
|
8
9
|
};
|
|
9
10
|
//# sourceMappingURL=cli-utils.d.ts.map
|
package/dist/cli-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../src/cli-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-utils.d.ts","sourceRoot":"","sources":["../src/cli-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+D7C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAY1D;AAGD,eAAO,MAAM,aAAa;;;;;;CAOhB,CAAC"}
|
package/dist/cli-utils.js
CHANGED
|
@@ -6,6 +6,7 @@ const __dirname = dirname(__filename);
|
|
|
6
6
|
const PROXY_URL = "http://localhost:4040";
|
|
7
7
|
const MITM_PORT = 8080;
|
|
8
8
|
const MITM_PROXY_URL = `http://localhost:${MITM_PORT}`;
|
|
9
|
+
const PI_AGENT_DIR_PREFIX = "/tmp/context-lens-pi-agent-";
|
|
9
10
|
const TOOL_CONFIG = {
|
|
10
11
|
claude: {
|
|
11
12
|
childEnv: { ANTHROPIC_BASE_URL: `${PROXY_URL}/claude` },
|
|
@@ -42,6 +43,16 @@ const TOOL_CONFIG = {
|
|
|
42
43
|
serverEnv: {},
|
|
43
44
|
needsMitm: false,
|
|
44
45
|
},
|
|
46
|
+
pi: {
|
|
47
|
+
// Pi ignores standard base URL env vars. We point it at a temporary agent
|
|
48
|
+
// directory where cli.ts writes a proxy-aware models.json.
|
|
49
|
+
childEnv: {
|
|
50
|
+
PI_CODING_AGENT_DIR: PI_AGENT_DIR_PREFIX,
|
|
51
|
+
},
|
|
52
|
+
extraArgs: [],
|
|
53
|
+
serverEnv: {},
|
|
54
|
+
needsMitm: false,
|
|
55
|
+
},
|
|
45
56
|
};
|
|
46
57
|
export function getToolConfig(toolName) {
|
|
47
58
|
return (TOOL_CONFIG[toolName] || {
|
|
@@ -59,6 +70,7 @@ export const CLI_CONSTANTS = {
|
|
|
59
70
|
PROXY_URL,
|
|
60
71
|
MITM_PORT,
|
|
61
72
|
MITM_PROXY_URL,
|
|
73
|
+
PI_AGENT_DIR_PREFIX,
|
|
62
74
|
// Resolved relative to compiled output (dist/ or dist-test/), matching cli.ts behavior.
|
|
63
75
|
MITM_ADDON_PATH: join(__dirname, "..", "mitm_addon.py"),
|
|
64
76
|
};
|
package/dist/cli-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../src/cli-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,sHAAsH;AACtH,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,cAAc,GAAG,oBAAoB,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-utils.js","sourceRoot":"","sources":["../src/cli-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,sHAAsH;AACtH,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,cAAc,GAAG,oBAAoB,SAAS,EAAE,CAAC;AACvD,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;AAE1D,MAAM,WAAW,GAA+B;IAC9C,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,kBAAkB,EAAE,GAAG,SAAS,SAAS,EAAE;QACvD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KACjB;IACD,KAAK,EAAE;QACL,uFAAuF;QACvF,kEAAkE;QAClE,QAAQ,EAAE;YACR,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,IAAI,CACjB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EACtB,YAAY,EACZ,uBAAuB,CACxB;SACF;QACD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,IAAI;KAChB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,kBAAkB,EAAE,GAAG,SAAS,QAAQ;YACxC,eAAe,EAAE,GAAG,SAAS,QAAQ;SACtC;QACD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KACjB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,sBAAsB,EAAE,GAAG,SAAS,UAAU,EAAE,oBAAoB;YACpE,oBAAoB,EAAE,GAAG,SAAS,SAAS,EAAE,0BAA0B;SACxE;QACD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KACjB;IACD,EAAE,EAAE;QACF,0EAA0E;QAC1E,2DAA2D;QAC3D,QAAQ,EAAE;YACR,mBAAmB,EAAE,mBAAmB;SACzC;QACD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,CACL,WAAW,CAAC,QAAQ,CAAC,IAAI;QACvB,QAAQ,EAAE;YACR,kBAAkB,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;YAC9C,eAAe,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAE;SAC5C;QACD,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KACjB,CACF,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,SAAS;IACT,cAAc;IACd,mBAAmB;IACnB,wFAAwF;IACxF,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC;CAC/C,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { spawn } from "node:child_process";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import net from "node:net";
|
|
5
|
-
import { platform } from "node:os";
|
|
5
|
+
import { platform, tmpdir } from "node:os";
|
|
6
6
|
import { dirname, join } from "node:path";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { CLI_CONSTANTS, getToolConfig } from "./cli-utils.js";
|
|
@@ -13,10 +13,37 @@ const __dirname = dirname(__filename);
|
|
|
13
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
42
|
const serverPath = join(__dirname, "server.js");
|
|
19
|
-
const server = spawn("node", [serverPath], {
|
|
43
|
+
const server = spawn("node", [serverPath], {
|
|
44
|
+
stdio: "inherit",
|
|
45
|
+
env: { ...process.env },
|
|
46
|
+
});
|
|
20
47
|
server.on("exit", (code) => process.exit(code || 0));
|
|
21
48
|
process.on("SIGINT", () => server.kill("SIGINT"));
|
|
22
49
|
process.on("SIGTERM", () => server.kill("SIGTERM"));
|
|
@@ -25,9 +52,9 @@ if (args.length === 0) {
|
|
|
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
60
|
console.error("Error: No command specified after --");
|
|
@@ -102,6 +129,7 @@ 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
|
|
@@ -213,6 +241,9 @@ else {
|
|
|
213
241
|
...process.env,
|
|
214
242
|
...toolConfig.childEnv,
|
|
215
243
|
};
|
|
244
|
+
if (commandName === "pi") {
|
|
245
|
+
childEnv.PI_CODING_AGENT_DIR = preparePiAgentDir(childEnv.PI_CODING_AGENT_DIR);
|
|
246
|
+
}
|
|
216
247
|
// Spawn the child process with inherited stdio (interactive)
|
|
217
248
|
// No shell: true. Avoids intermediate process that breaks signal delivery
|
|
218
249
|
childProcess = spawn(commandName, allArgs, {
|
|
@@ -228,6 +259,71 @@ else {
|
|
|
228
259
|
cleanup(signal ? 128 + (signal === "SIGINT" ? 2 : 15) : code || 0);
|
|
229
260
|
});
|
|
230
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
|
+
}
|
|
231
327
|
// Open browser (cross-platform)
|
|
232
328
|
function openBrowser(url) {
|
|
233
329
|
const cmd = platform() === "darwin"
|
|
@@ -250,6 +346,14 @@ else {
|
|
|
250
346
|
if (mitmProcess && !mitmProcess.killed) {
|
|
251
347
|
mitmProcess.kill();
|
|
252
348
|
}
|
|
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
|
+
}
|
|
253
357
|
if (remainingRefs === 0 &&
|
|
254
358
|
shouldShutdownProxy &&
|
|
255
359
|
serverProcess &&
|
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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"}
|
|
@@ -17,7 +17,7 @@ export declare function extractReadableText(content: string | null | undefined):
|
|
|
17
17
|
* - Codex: "<cwd>/path</cwd>"
|
|
18
18
|
* - Generic: "working directory is /path" or "cwd: /path"
|
|
19
19
|
*/
|
|
20
|
-
export declare function extractWorkingDirectory(contextInfo: ContextInfo): string | null;
|
|
20
|
+
export declare function extractWorkingDirectory(contextInfo: ContextInfo, rawBody?: Record<string, any> | null): string | null;
|
|
21
21
|
/**
|
|
22
22
|
* For OpenAI Responses-style input arrays, extract the first "real" user prompt.
|
|
23
23
|
*
|
|
@@ -51,4 +51,13 @@ export declare function computeFingerprint(contextInfo: ContextInfo, rawBody: Re
|
|
|
51
51
|
* Extract a readable label for a conversation, primarily for UI display.
|
|
52
52
|
*/
|
|
53
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>;
|
|
54
63
|
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -40,7 +40,7 @@ export function extractReadableText(content) {
|
|
|
40
40
|
* - Codex: "<cwd>/path</cwd>"
|
|
41
41
|
* - Generic: "working directory is /path" or "cwd: /path"
|
|
42
42
|
*/
|
|
43
|
-
export function extractWorkingDirectory(contextInfo) {
|
|
43
|
+
export function extractWorkingDirectory(contextInfo, rawBody) {
|
|
44
44
|
const allText = [
|
|
45
45
|
...(contextInfo.systemPrompts || []).map((sp) => sp.content),
|
|
46
46
|
...(contextInfo.messages || [])
|
|
@@ -64,6 +64,102 @@ export function extractWorkingDirectory(contextInfo) {
|
|
|
64
64
|
match = allText.match(/\bcwd[:\s]+[`"]?([/~][^\s`"'\n]+)/);
|
|
65
65
|
if (match)
|
|
66
66
|
return match[1];
|
|
67
|
+
// Structured payload fallback (Gemini Code Assist and similar tools may
|
|
68
|
+
// carry cwd in JSON fields instead of prompt text).
|
|
69
|
+
const fromBody = findWorkingDirectoryInObject(rawBody ?? null);
|
|
70
|
+
if (fromBody)
|
|
71
|
+
return fromBody;
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Normalize and validate string values that might represent filesystem paths.
|
|
76
|
+
*/
|
|
77
|
+
function toPathCandidate(value) {
|
|
78
|
+
if (typeof value !== "string")
|
|
79
|
+
return null;
|
|
80
|
+
const trimmed = value.trim().replace(/^['"`]|['"`]$/g, "");
|
|
81
|
+
if (!trimmed)
|
|
82
|
+
return null;
|
|
83
|
+
// Accept POSIX, home-relative, or Windows absolute paths.
|
|
84
|
+
if (/^(\/|~\/|[A-Za-z]:[\\/])/.test(trimmed))
|
|
85
|
+
return trimmed;
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Recursive search for cwd-like fields in structured request payloads.
|
|
90
|
+
*
|
|
91
|
+
* Traversal is depth-limited and prioritizes common wrapper keys first to
|
|
92
|
+
* find useful candidates quickly before falling back to a full walk.
|
|
93
|
+
*/
|
|
94
|
+
function findWorkingDirectoryInObject(node, depth = 0) {
|
|
95
|
+
if (!node || depth > 8)
|
|
96
|
+
return null;
|
|
97
|
+
if (Array.isArray(node)) {
|
|
98
|
+
for (const item of node) {
|
|
99
|
+
const found = findWorkingDirectoryInObject(item, depth + 1);
|
|
100
|
+
if (found)
|
|
101
|
+
return found;
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
if (typeof node !== "object")
|
|
106
|
+
return null;
|
|
107
|
+
const obj = node;
|
|
108
|
+
const preferredKeys = [
|
|
109
|
+
"workingDirectory",
|
|
110
|
+
"currentWorkingDirectory",
|
|
111
|
+
"working_directory",
|
|
112
|
+
"current_working_directory",
|
|
113
|
+
"cwd",
|
|
114
|
+
"workdir",
|
|
115
|
+
"workspaceRoot",
|
|
116
|
+
"workspace_root",
|
|
117
|
+
"projectRoot",
|
|
118
|
+
"project_root",
|
|
119
|
+
"rootDir",
|
|
120
|
+
"root_dir",
|
|
121
|
+
"sandboxCwd",
|
|
122
|
+
"sandbox_cwd",
|
|
123
|
+
];
|
|
124
|
+
for (const key of preferredKeys) {
|
|
125
|
+
const candidate = toPathCandidate(obj[key]);
|
|
126
|
+
if (candidate)
|
|
127
|
+
return candidate;
|
|
128
|
+
}
|
|
129
|
+
// Check common wrapper objects first.
|
|
130
|
+
const wrappers = [
|
|
131
|
+
"request",
|
|
132
|
+
"context",
|
|
133
|
+
"environment",
|
|
134
|
+
"session",
|
|
135
|
+
"workspace",
|
|
136
|
+
"project",
|
|
137
|
+
"config",
|
|
138
|
+
"client",
|
|
139
|
+
"agent",
|
|
140
|
+
"metadata",
|
|
141
|
+
];
|
|
142
|
+
for (const key of wrappers) {
|
|
143
|
+
if (key in obj) {
|
|
144
|
+
const found = findWorkingDirectoryInObject(obj[key], depth + 1);
|
|
145
|
+
if (found)
|
|
146
|
+
return found;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Generic fallback: key names that strongly imply cwd.
|
|
150
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
151
|
+
if (/(^|_)(cwd|workdir|working_?directory|workspace_?root|project_?root|root_dir|sandbox_?cwd)$/i.test(key)) {
|
|
152
|
+
const candidate = toPathCandidate(value);
|
|
153
|
+
if (candidate)
|
|
154
|
+
return candidate;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Last resort recursive walk over remaining fields.
|
|
158
|
+
for (const value of Object.values(obj)) {
|
|
159
|
+
const found = findWorkingDirectoryInObject(value, depth + 1);
|
|
160
|
+
if (found)
|
|
161
|
+
return found;
|
|
162
|
+
}
|
|
67
163
|
return null;
|
|
68
164
|
}
|
|
69
165
|
/**
|
|
@@ -185,4 +281,25 @@ export function extractConversationLabel(contextInfo) {
|
|
|
185
281
|
}
|
|
186
282
|
return "Unnamed conversation";
|
|
187
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Extract all tool names used in a conversation's messages.
|
|
286
|
+
*
|
|
287
|
+
* Scans content blocks for tool_use blocks and collects their names.
|
|
288
|
+
*
|
|
289
|
+
* @param messages - Array of messages from one or more entries.
|
|
290
|
+
* @returns Set of tool names that were used.
|
|
291
|
+
*/
|
|
292
|
+
export function extractToolsUsed(messages) {
|
|
293
|
+
const toolsUsed = new Set();
|
|
294
|
+
for (const msg of messages) {
|
|
295
|
+
if (msg.contentBlocks) {
|
|
296
|
+
for (const block of msg.contentBlocks) {
|
|
297
|
+
if (block.type === "tool_use" && "name" in block && block.name) {
|
|
298
|
+
toolsUsed.add(block.name);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return toolsUsed;
|
|
304
|
+
}
|
|
188
305
|
//# sourceMappingURL=conversation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/core/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAC3B,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;oBACtB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CACxC,CAAC;YACF,IAAI,SAAS;gBAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,IAAI,IAAI,IAAI,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAwB;
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/core/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAC3B,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;oBACtB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CACxC,CAAC;YACF,IAAI,SAAS;gBAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,IAAI,IAAI,IAAI,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAwB,EACxB,OAAoC;IAEpC,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;QAC5D,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CACvB,uDAAuD,CACxD,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,uEAAuE;IACvE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC9E,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,mEAAmE;IACnE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACxE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC3D,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC/D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,IAAa,EAAE,KAAK,GAAG,CAAC;IAC5D,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,aAAa,GAAG;QACpB,kBAAkB;QAClB,yBAAyB;QACzB,mBAAmB;QACnB,2BAA2B;QAC3B,KAAK;QACL,SAAS;QACT,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,cAAc;QACd,SAAS;QACT,UAAU;QACV,YAAY;QACZ,aAAa;KACd,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;KACX,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IACE,6FAA6F,CAAC,IAAI,CAChG,GAAG,CACJ,EACD,CAAC;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,4BAA4B,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,SAAS;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACrC,IACE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,EAC/B,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;oBAAE,SAAS;gBACtE,OAAO,CAAC,CAAC,OAAO,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA+C;IAE/C,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACnD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;IACrD,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ;QACxD,OAAO,UAAU,eAAe,EAAE,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;IACF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC;YACN,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAwB,EACxB,OAA+C,EAC/C,iBAAsC;IAEtC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACrE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;IAEF,IAAI,UAAkB,CAAC;IACvB,IAAI,WAAW,CAAC,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC;SACjD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;SACvB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,UAAU,KAAK,UAAU,EAAE,CAAC;SACtC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAwB;IAC/D,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;IAEF,IAAI,WAAW,CAAC,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAyB;IACxD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACtB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC/D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CompositionEntry, ContextInfo, HealthScore } from "../types.js";
|
|
2
|
+
export declare function computeHealthScore(entry: {
|
|
3
|
+
contextInfo: ContextInfo;
|
|
4
|
+
contextLimit: number;
|
|
5
|
+
composition: CompositionEntry[];
|
|
6
|
+
}, previousEntryTokens: number | null, sessionToolsUsed: Set<string>, turnCount: number): HealthScore;
|
|
7
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/core/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EAEX,WAAW,EAGZ,MAAM,aAAa,CAAC;AA+UrB,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IACL,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC,EACD,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,SAAS,EAAE,MAAM,GAChB,WAAW,CA0Eb"}
|