@uvl000/claude-trace 3.0.13-workflowexp.1
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 +477 -0
- package/README.zh-CN.md +477 -0
- package/dist/adapt/api-format.d.ts +41 -0
- package/dist/adapt/api-format.d.ts.map +1 -0
- package/dist/adapt/api-format.js +132 -0
- package/dist/adapt/api-format.js.map +1 -0
- package/dist/adapt/openai-adapter.d.ts +123 -0
- package/dist/adapt/openai-adapter.d.ts.map +1 -0
- package/dist/adapt/openai-adapter.js +628 -0
- package/dist/adapt/openai-adapter.js.map +1 -0
- package/dist/cli/cli-common.d.ts +73 -0
- package/dist/cli/cli-common.d.ts.map +1 -0
- package/dist/cli/cli-common.js +189 -0
- package/dist/cli/cli-common.js.map +1 -0
- package/dist/cli/cli.d.ts +23 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +175 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/codex-cli.d.ts +24 -0
- package/dist/cli/codex-cli.d.ts.map +1 -0
- package/dist/cli/codex-cli.js +146 -0
- package/dist/cli/codex-cli.js.map +1 -0
- package/dist/cli/opencode-cli.d.ts +23 -0
- package/dist/cli/opencode-cli.d.ts.map +1 -0
- package/dist/cli/opencode-cli.js +156 -0
- package/dist/cli/opencode-cli.js.map +1 -0
- package/dist/cli/trace-runner.d.ts +21 -0
- package/dist/cli/trace-runner.d.ts.map +1 -0
- package/dist/cli/trace-runner.js +282 -0
- package/dist/cli/trace-runner.js.map +1 -0
- package/dist/cli/validate-trace.d.ts +30 -0
- package/dist/cli/validate-trace.d.ts.map +1 -0
- package/dist/cli/validate-trace.js +230 -0
- package/dist/cli/validate-trace.js.map +1 -0
- package/dist/cli/verify-offline-bundle.d.ts +13 -0
- package/dist/cli/verify-offline-bundle.d.ts.map +1 -0
- package/dist/cli/verify-offline-bundle.js +89 -0
- package/dist/cli/verify-offline-bundle.js.map +1 -0
- package/dist/cli/vibe-coding-proxy-cli.d.ts +12 -0
- package/dist/cli/vibe-coding-proxy-cli.d.ts.map +1 -0
- package/dist/cli/vibe-coding-proxy-cli.js +218 -0
- package/dist/cli/vibe-coding-proxy-cli.js.map +1 -0
- package/dist/config/claude-config-overlay.d.ts +69 -0
- package/dist/config/claude-config-overlay.d.ts.map +1 -0
- package/dist/config/claude-config-overlay.js +229 -0
- package/dist/config/claude-config-overlay.js.map +1 -0
- package/dist/config/codex-config-overlay.d.ts +122 -0
- package/dist/config/codex-config-overlay.d.ts.map +1 -0
- package/dist/config/codex-config-overlay.js +352 -0
- package/dist/config/codex-config-overlay.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/intercept/forward-proxy.d.ts +77 -0
- package/dist/intercept/forward-proxy.d.ts.map +1 -0
- package/dist/intercept/forward-proxy.js +368 -0
- package/dist/intercept/forward-proxy.js.map +1 -0
- package/dist/intercept/header-redaction.d.ts +7 -0
- package/dist/intercept/header-redaction.d.ts.map +1 -0
- package/dist/intercept/header-redaction.js +28 -0
- package/dist/intercept/header-redaction.js.map +1 -0
- package/dist/intercept/interceptor-loader.js +26 -0
- package/dist/intercept/interceptor.d.ts +164 -0
- package/dist/intercept/interceptor.d.ts.map +1 -0
- package/dist/intercept/interceptor.js +496 -0
- package/dist/intercept/interceptor.js.map +1 -0
- package/dist/intercept/mitm-cert.d.ts +53 -0
- package/dist/intercept/mitm-cert.d.ts.map +1 -0
- package/dist/intercept/mitm-cert.js +259 -0
- package/dist/intercept/mitm-cert.js.map +1 -0
- package/dist/intercept/proxy-log-writer.d.ts +77 -0
- package/dist/intercept/proxy-log-writer.d.ts.map +1 -0
- package/dist/intercept/proxy-log-writer.js +323 -0
- package/dist/intercept/proxy-log-writer.js.map +1 -0
- package/dist/intercept/proxy-targets.d.ts +69 -0
- package/dist/intercept/proxy-targets.d.ts.map +1 -0
- package/dist/intercept/proxy-targets.js +129 -0
- package/dist/intercept/proxy-targets.js.map +1 -0
- package/dist/intercept/reverse-proxy.d.ts +191 -0
- package/dist/intercept/reverse-proxy.d.ts.map +1 -0
- package/dist/intercept/reverse-proxy.js +807 -0
- package/dist/intercept/reverse-proxy.js.map +1 -0
- package/dist/intercept/token-extractor.js +28 -0
- package/dist/report/html-generator.d.ts +96 -0
- package/dist/report/html-generator.d.ts.map +1 -0
- package/dist/report/html-generator.js +225 -0
- package/dist/report/html-generator.js.map +1 -0
- package/dist/report/index-generator.d.ts +89 -0
- package/dist/report/index-generator.d.ts.map +1 -0
- package/dist/report/index-generator.js +319 -0
- package/dist/report/index-generator.js.map +1 -0
- package/dist/report/shared-conversation-processor.d.ts +200 -0
- package/dist/report/shared-conversation-processor.d.ts.map +1 -0
- package/dist/report/shared-conversation-processor.js +720 -0
- package/dist/report/shared-conversation-processor.js.map +1 -0
- package/dist/routing/codex-routing.d.ts +40 -0
- package/dist/routing/codex-routing.d.ts.map +1 -0
- package/dist/routing/codex-routing.js +96 -0
- package/dist/routing/codex-routing.js.map +1 -0
- package/dist/routing/proxy-routing.d.ts +48 -0
- package/dist/routing/proxy-routing.d.ts.map +1 -0
- package/dist/routing/proxy-routing.js +113 -0
- package/dist/routing/proxy-routing.js.map +1 -0
- package/dist/tools/binary-utils.d.ts +29 -0
- package/dist/tools/binary-utils.d.ts.map +1 -0
- package/dist/tools/binary-utils.js +134 -0
- package/dist/tools/binary-utils.js.map +1 -0
- package/dist/tools/claude.d.ts +61 -0
- package/dist/tools/claude.d.ts.map +1 -0
- package/dist/tools/claude.js +449 -0
- package/dist/tools/claude.js.map +1 -0
- package/dist/tools/codex.d.ts +70 -0
- package/dist/tools/codex.d.ts.map +1 -0
- package/dist/tools/codex.js +492 -0
- package/dist/tools/codex.js.map +1 -0
- package/dist/tools/opencode.d.ts +85 -0
- package/dist/tools/opencode.d.ts.map +1 -0
- package/dist/tools/opencode.js +401 -0
- package/dist/tools/opencode.js.map +1 -0
- package/dist/tools/types.d.ts +91 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +11 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/types.d.ts +158 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/frontend/dist/index.global.js +1551 -0
- package/frontend/dist/styles.css +1027 -0
- package/frontend/template.html +19 -0
- package/node_modules/agent-base/LICENSE +22 -0
- package/node_modules/agent-base/README.md +69 -0
- package/node_modules/agent-base/dist/helpers.d.ts +15 -0
- package/node_modules/agent-base/dist/helpers.d.ts.map +1 -0
- package/node_modules/agent-base/dist/helpers.js +66 -0
- package/node_modules/agent-base/dist/helpers.js.map +1 -0
- package/node_modules/agent-base/dist/index.d.ts +41 -0
- package/node_modules/agent-base/dist/index.d.ts.map +1 -0
- package/node_modules/agent-base/dist/index.js +178 -0
- package/node_modules/agent-base/dist/index.js.map +1 -0
- package/node_modules/agent-base/package.json +46 -0
- package/node_modules/debug/LICENSE +20 -0
- package/node_modules/debug/README.md +481 -0
- package/node_modules/debug/package.json +64 -0
- package/node_modules/debug/src/browser.js +272 -0
- package/node_modules/debug/src/common.js +292 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/node.js +263 -0
- package/node_modules/http-proxy-agent/LICENSE +22 -0
- package/node_modules/http-proxy-agent/README.md +44 -0
- package/node_modules/http-proxy-agent/dist/index.d.ts +44 -0
- package/node_modules/http-proxy-agent/dist/index.d.ts.map +1 -0
- package/node_modules/http-proxy-agent/dist/index.js +148 -0
- package/node_modules/http-proxy-agent/dist/index.js.map +1 -0
- package/node_modules/http-proxy-agent/package.json +47 -0
- package/node_modules/https-proxy-agent/LICENSE +22 -0
- package/node_modules/https-proxy-agent/README.md +70 -0
- package/node_modules/https-proxy-agent/dist/index.d.ts +47 -0
- package/node_modules/https-proxy-agent/dist/index.d.ts.map +1 -0
- package/node_modules/https-proxy-agent/dist/index.js +180 -0
- package/node_modules/https-proxy-agent/dist/index.js.map +1 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +15 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts.map +1 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +101 -0
- package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +1 -0
- package/node_modules/https-proxy-agent/package.json +50 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/node-forge/LICENSE +331 -0
- package/node_modules/node-forge/README.md +2071 -0
- package/node_modules/node-forge/dist/forge.all.min.js +2 -0
- package/node_modules/node-forge/dist/forge.all.min.js.map +1 -0
- package/node_modules/node-forge/dist/forge.min.js +2 -0
- package/node_modules/node-forge/dist/forge.min.js.map +1 -0
- package/node_modules/node-forge/dist/prime.worker.min.js +2 -0
- package/node_modules/node-forge/dist/prime.worker.min.js.map +1 -0
- package/node_modules/node-forge/flash/swf/SocketPool.swf +0 -0
- package/node_modules/node-forge/lib/aes.js +1091 -0
- package/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
- package/node_modules/node-forge/lib/asn1-validator.js +91 -0
- package/node_modules/node-forge/lib/asn1.js +1503 -0
- package/node_modules/node-forge/lib/baseN.js +186 -0
- package/node_modules/node-forge/lib/cipher.js +230 -0
- package/node_modules/node-forge/lib/cipherModes.js +999 -0
- package/node_modules/node-forge/lib/des.js +496 -0
- package/node_modules/node-forge/lib/ed25519.js +1091 -0
- package/node_modules/node-forge/lib/forge.js +13 -0
- package/node_modules/node-forge/lib/form.js +149 -0
- package/node_modules/node-forge/lib/hmac.js +146 -0
- package/node_modules/node-forge/lib/http.js +1346 -0
- package/node_modules/node-forge/lib/index.all.js +16 -0
- package/node_modules/node-forge/lib/index.js +33 -0
- package/node_modules/node-forge/lib/jsbn.js +1294 -0
- package/node_modules/node-forge/lib/kem.js +168 -0
- package/node_modules/node-forge/lib/log.js +319 -0
- package/node_modules/node-forge/lib/md.all.js +13 -0
- package/node_modules/node-forge/lib/md.js +11 -0
- package/node_modules/node-forge/lib/md5.js +289 -0
- package/node_modules/node-forge/lib/mgf.js +12 -0
- package/node_modules/node-forge/lib/mgf1.js +57 -0
- package/node_modules/node-forge/lib/oids.js +180 -0
- package/node_modules/node-forge/lib/pbe.js +1023 -0
- package/node_modules/node-forge/lib/pbkdf2.js +211 -0
- package/node_modules/node-forge/lib/pem.js +237 -0
- package/node_modules/node-forge/lib/pkcs1.js +276 -0
- package/node_modules/node-forge/lib/pkcs12.js +1078 -0
- package/node_modules/node-forge/lib/pkcs7.js +1260 -0
- package/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
- package/node_modules/node-forge/lib/pki.js +102 -0
- package/node_modules/node-forge/lib/prime.js +297 -0
- package/node_modules/node-forge/lib/prime.worker.js +168 -0
- package/node_modules/node-forge/lib/prng.js +419 -0
- package/node_modules/node-forge/lib/pss.js +241 -0
- package/node_modules/node-forge/lib/random.js +191 -0
- package/node_modules/node-forge/lib/rc2.js +410 -0
- package/node_modules/node-forge/lib/rsa.js +1968 -0
- package/node_modules/node-forge/lib/sha1.js +319 -0
- package/node_modules/node-forge/lib/sha256.js +327 -0
- package/node_modules/node-forge/lib/sha512.js +561 -0
- package/node_modules/node-forge/lib/socket.js +287 -0
- package/node_modules/node-forge/lib/ssh.js +236 -0
- package/node_modules/node-forge/lib/tls.js +4282 -0
- package/node_modules/node-forge/lib/tlssocket.js +249 -0
- package/node_modules/node-forge/lib/util.js +2652 -0
- package/node_modules/node-forge/lib/x509.js +3251 -0
- package/node_modules/node-forge/lib/xhr.js +738 -0
- package/node_modules/node-forge/package.json +123 -0
- package/node_modules/smol-toml/LICENSE +24 -0
- package/node_modules/smol-toml/README.md +239 -0
- package/node_modules/smol-toml/dist/date.d.ts +41 -0
- package/node_modules/smol-toml/dist/date.js +127 -0
- package/node_modules/smol-toml/dist/error.d.ts +38 -0
- package/node_modules/smol-toml/dist/error.js +63 -0
- package/node_modules/smol-toml/dist/extract.d.ts +30 -0
- package/node_modules/smol-toml/dist/extract.js +100 -0
- package/node_modules/smol-toml/dist/index.cjs +897 -0
- package/node_modules/smol-toml/dist/index.d.ts +43 -0
- package/node_modules/smol-toml/dist/index.js +33 -0
- package/node_modules/smol-toml/dist/parse.d.ts +37 -0
- package/node_modules/smol-toml/dist/parse.js +148 -0
- package/node_modules/smol-toml/dist/primitive.d.ts +31 -0
- package/node_modules/smol-toml/dist/primitive.js +179 -0
- package/node_modules/smol-toml/dist/stringify.d.ts +31 -0
- package/node_modules/smol-toml/dist/stringify.js +167 -0
- package/node_modules/smol-toml/dist/struct.d.ts +32 -0
- package/node_modules/smol-toml/dist/struct.js +184 -0
- package/node_modules/smol-toml/dist/util.d.ts +42 -0
- package/node_modules/smol-toml/dist/util.js +111 -0
- package/node_modules/smol-toml/package.json +54 -0
- package/offline/bin/claude-trace +6 -0
- package/offline/bin/claude-wrapper +13 -0
- package/offline/bin/install-agent +14 -0
- package/offline/bin/validate-trace +6 -0
- package/offline/bin/verify-bundle +7 -0
- package/package.json +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-log-writer.js","sourceRoot":"","sources":["../../src/intercept/proxy-log-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file proxy-targets.ts
|
|
3
|
+
* @description Target allowlist matching for vibe-coding-proxy forward interception.
|
|
4
|
+
*
|
|
5
|
+
* Forward proxy CONNECT requests reveal only host and port before TLS is
|
|
6
|
+
* established. This module separates coarse host-level MITM decisions from
|
|
7
|
+
* full URL/path logging decisions after TLS has been decrypted.
|
|
8
|
+
*/
|
|
9
|
+
/** Normalized URL prefix used to decide whether a request body should be logged. */
|
|
10
|
+
export interface ProxyTargetUrl {
|
|
11
|
+
/** Original user-provided URL for help output and diagnostics. */
|
|
12
|
+
raw: string;
|
|
13
|
+
/** Lowercase protocol without the trailing colon (`http` or `https`). */
|
|
14
|
+
protocol: string;
|
|
15
|
+
/** Lowercase hostname used for CONNECT and request matching. */
|
|
16
|
+
hostname: string;
|
|
17
|
+
/** Explicit port, or the default port for the protocol. */
|
|
18
|
+
port: number;
|
|
19
|
+
/** Normalized path prefix; `/` matches every path on the host. */
|
|
20
|
+
pathPrefix: string;
|
|
21
|
+
}
|
|
22
|
+
/** Configuration for {@link ProxyTargetMatcher}. */
|
|
23
|
+
export interface ProxyTargetMatcherConfig {
|
|
24
|
+
/** URL prefixes eligible for full request/response body logging. */
|
|
25
|
+
targetUrls?: string[];
|
|
26
|
+
/** Hostnames eligible for TLS MITM even when no URL prefix is supplied. */
|
|
27
|
+
mitmHosts?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Normalizes target URL and host allowlists for forward proxy routing.
|
|
31
|
+
*
|
|
32
|
+
* A target URL implies both host-level MITM permission and full logging for
|
|
33
|
+
* matching URL prefixes. A host-only allowlist permits MITM for that host and
|
|
34
|
+
* logs all decrypted requests for the host.
|
|
35
|
+
*/
|
|
36
|
+
export declare class ProxyTargetMatcher {
|
|
37
|
+
private readonly targetUrls;
|
|
38
|
+
private readonly mitmHosts;
|
|
39
|
+
/**
|
|
40
|
+
* Build a matcher from CLI-provided URL and host allowlists.
|
|
41
|
+
* @param config - Raw target URLs and hostnames from CLI flags.
|
|
42
|
+
*/
|
|
43
|
+
constructor(config?: ProxyTargetMatcherConfig);
|
|
44
|
+
/** @returns true when no URL or host targets were configured. */
|
|
45
|
+
isEmpty(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Decide whether a CONNECT host is eligible for TLS interception.
|
|
48
|
+
* @param hostHeader - CONNECT authority such as `api.deepseek.com:443`.
|
|
49
|
+
*/
|
|
50
|
+
shouldMitmHost(hostHeader: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Decide whether a fully resolved HTTP(S) request URL should be logged.
|
|
53
|
+
* @param requestUrl - Absolute URL reconstructed by the forward proxy.
|
|
54
|
+
*/
|
|
55
|
+
shouldLogUrl(requestUrl: string): boolean;
|
|
56
|
+
/** @returns CLI-friendly target URL display values. */
|
|
57
|
+
listTargetUrls(): string[];
|
|
58
|
+
/** @returns CLI-friendly MITM host display values. */
|
|
59
|
+
listMitmHosts(): string[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse a CONNECT authority into host and port components.
|
|
63
|
+
* @param value - Host header or CONNECT authority.
|
|
64
|
+
*/
|
|
65
|
+
export declare function splitHostPort(value: string): {
|
|
66
|
+
hostname: string;
|
|
67
|
+
port: number;
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=proxy-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-targets.d.ts","sourceRoot":"","sources":["../../src/intercept/proxy-targets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACxC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC;;;OAGG;gBACS,MAAM,GAAE,wBAA6B;IASjD,iEAAiE;IACjE,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAK3C;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAsBzC,uDAAuD;IACvD,cAAc,IAAI,MAAM,EAAE;IAI1B,sDAAsD;IACtD,aAAa,IAAI,MAAM,EAAE;CAGzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAe/E"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file proxy-targets.ts
|
|
4
|
+
* @description Target allowlist matching for vibe-coding-proxy forward interception.
|
|
5
|
+
*
|
|
6
|
+
* Forward proxy CONNECT requests reveal only host and port before TLS is
|
|
7
|
+
* established. This module separates coarse host-level MITM decisions from
|
|
8
|
+
* full URL/path logging decisions after TLS has been decrypted.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ProxyTargetMatcher = void 0;
|
|
12
|
+
exports.splitHostPort = splitHostPort;
|
|
13
|
+
/**
|
|
14
|
+
* Normalizes target URL and host allowlists for forward proxy routing.
|
|
15
|
+
*
|
|
16
|
+
* A target URL implies both host-level MITM permission and full logging for
|
|
17
|
+
* matching URL prefixes. A host-only allowlist permits MITM for that host and
|
|
18
|
+
* logs all decrypted requests for the host.
|
|
19
|
+
*/
|
|
20
|
+
class ProxyTargetMatcher {
|
|
21
|
+
/**
|
|
22
|
+
* Build a matcher from CLI-provided URL and host allowlists.
|
|
23
|
+
* @param config - Raw target URLs and hostnames from CLI flags.
|
|
24
|
+
*/
|
|
25
|
+
constructor(config = {}) {
|
|
26
|
+
this.targetUrls = (config.targetUrls || []).map(parseTargetUrl);
|
|
27
|
+
this.mitmHosts = new Set((config.mitmHosts || []).map(normalizeHost));
|
|
28
|
+
for (const target of this.targetUrls) {
|
|
29
|
+
this.mitmHosts.add(target.hostname);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** @returns true when no URL or host targets were configured. */
|
|
33
|
+
isEmpty() {
|
|
34
|
+
return this.targetUrls.length === 0 && this.mitmHosts.size === 0;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Decide whether a CONNECT host is eligible for TLS interception.
|
|
38
|
+
* @param hostHeader - CONNECT authority such as `api.deepseek.com:443`.
|
|
39
|
+
*/
|
|
40
|
+
shouldMitmHost(hostHeader) {
|
|
41
|
+
const { hostname } = splitHostPort(hostHeader);
|
|
42
|
+
return this.mitmHosts.has(normalizeHost(hostname));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Decide whether a fully resolved HTTP(S) request URL should be logged.
|
|
46
|
+
* @param requestUrl - Absolute URL reconstructed by the forward proxy.
|
|
47
|
+
*/
|
|
48
|
+
shouldLogUrl(requestUrl) {
|
|
49
|
+
const parsed = new URL(requestUrl);
|
|
50
|
+
const hostname = normalizeHost(parsed.hostname);
|
|
51
|
+
const protocol = parsed.protocol.replace(/:$/, "").toLowerCase();
|
|
52
|
+
const port = parsed.port ? Number(parsed.port) : defaultPort(protocol);
|
|
53
|
+
const path = normalizePathPrefix(parsed.pathname || "/");
|
|
54
|
+
if (this.targetUrls.length === 0) {
|
|
55
|
+
return this.mitmHosts.has(hostname);
|
|
56
|
+
}
|
|
57
|
+
return this.targetUrls.some((target) => {
|
|
58
|
+
if (target.protocol !== protocol || target.hostname !== hostname || target.port !== port) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (target.pathPrefix === "/") {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
return path === target.pathPrefix || path.startsWith(`${target.pathPrefix}/`);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** @returns CLI-friendly target URL display values. */
|
|
68
|
+
listTargetUrls() {
|
|
69
|
+
return this.targetUrls.map((target) => target.raw);
|
|
70
|
+
}
|
|
71
|
+
/** @returns CLI-friendly MITM host display values. */
|
|
72
|
+
listMitmHosts() {
|
|
73
|
+
return [...this.mitmHosts].sort();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ProxyTargetMatcher = ProxyTargetMatcher;
|
|
77
|
+
/**
|
|
78
|
+
* Parse a CONNECT authority into host and port components.
|
|
79
|
+
* @param value - Host header or CONNECT authority.
|
|
80
|
+
*/
|
|
81
|
+
function splitHostPort(value) {
|
|
82
|
+
const trimmed = value.trim();
|
|
83
|
+
const ipv6Match = trimmed.match(/^\[([^\]]+)\](?::(\d+))?$/);
|
|
84
|
+
if (ipv6Match) {
|
|
85
|
+
return { hostname: ipv6Match[1], port: ipv6Match[2] ? Number(ipv6Match[2]) : 443 };
|
|
86
|
+
}
|
|
87
|
+
const colonIndex = trimmed.lastIndexOf(":");
|
|
88
|
+
if (colonIndex > -1 && /^\d+$/.test(trimmed.slice(colonIndex + 1))) {
|
|
89
|
+
return {
|
|
90
|
+
hostname: trimmed.slice(0, colonIndex),
|
|
91
|
+
port: Number(trimmed.slice(colonIndex + 1)),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return { hostname: trimmed, port: 443 };
|
|
95
|
+
}
|
|
96
|
+
/** Normalize a user-provided hostname for case-insensitive matching. */
|
|
97
|
+
function normalizeHost(hostname) {
|
|
98
|
+
return hostname.trim().replace(/^\[|\]$/g, "").toLowerCase();
|
|
99
|
+
}
|
|
100
|
+
/** Return the default TCP port for a URL protocol. */
|
|
101
|
+
function defaultPort(protocol) {
|
|
102
|
+
return protocol === "http" ? 80 : 443;
|
|
103
|
+
}
|
|
104
|
+
/** Normalize path prefixes so `/foo/` and `/foo` match the same subtree. */
|
|
105
|
+
function normalizePathPrefix(pathname) {
|
|
106
|
+
if (!pathname || pathname === "/") {
|
|
107
|
+
return "/";
|
|
108
|
+
}
|
|
109
|
+
return pathname.replace(/\/+$/, "") || "/";
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Parse and validate a target URL prefix.
|
|
113
|
+
* @param raw - User-provided URL from `--target-url`.
|
|
114
|
+
*/
|
|
115
|
+
function parseTargetUrl(raw) {
|
|
116
|
+
const parsed = new URL(raw);
|
|
117
|
+
const protocol = parsed.protocol.replace(/:$/, "").toLowerCase();
|
|
118
|
+
if (protocol !== "http" && protocol !== "https") {
|
|
119
|
+
throw new Error(`Unsupported target URL protocol: ${raw}`);
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
raw,
|
|
123
|
+
protocol,
|
|
124
|
+
hostname: normalizeHost(parsed.hostname),
|
|
125
|
+
port: parsed.port ? Number(parsed.port) : defaultPort(protocol),
|
|
126
|
+
pathPrefix: normalizePathPrefix(parsed.pathname || "/"),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=proxy-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-targets.js","sourceRoot":"","sources":["../../src/intercept/proxy-targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Local HTTP reverse proxy for intercepting LLM API traffic from native binaries.
|
|
3
|
+
*
|
|
4
|
+
* Used when the target coding agent (Claude Code V2+, OpenCode, Codex CLI) is a native
|
|
5
|
+
* binary that cannot be launched with Node's `--require` interceptor hook. The proxy
|
|
6
|
+
* listens on 127.0.0.1, rewrites upstream URLs based on tool-specific routing rules,
|
|
7
|
+
* forwards requests transparently, and logs request/response pairs to JSONL/JSON/HTML.
|
|
8
|
+
*/
|
|
9
|
+
import type { ModelRoute, ProviderRoute } from "../tools/types";
|
|
10
|
+
/** Configuration options for {@link ReverseProxyServer}. */
|
|
11
|
+
export interface ReverseProxyConfig {
|
|
12
|
+
/** TCP port to bind; `0` lets the OS assign an ephemeral port. */
|
|
13
|
+
port?: number;
|
|
14
|
+
/** Directory for JSONL, JSON, and HTML log files. */
|
|
15
|
+
logDirectory?: string;
|
|
16
|
+
/** Base name for log files; defaults to a timestamped `log-YYYY-MM-DD-...`. */
|
|
17
|
+
logBaseName?: string;
|
|
18
|
+
/** When true, log every proxied request, not just LLM API paths. */
|
|
19
|
+
includeAllRequests?: boolean;
|
|
20
|
+
/** Open the HTML report in the default browser when the proxy stops. */
|
|
21
|
+
openBrowser?: boolean;
|
|
22
|
+
/** When true, log auth headers verbatim instead of redacting them. */
|
|
23
|
+
logSensitiveHeaders?: boolean;
|
|
24
|
+
/** Default upstream base URL when no route matches (typically Anthropic API). */
|
|
25
|
+
targetBaseUrl?: string;
|
|
26
|
+
/** OpenCode provider-id → upstream base URL map for `/p/{providerId}/...` paths. */
|
|
27
|
+
routes?: Record<string, string>;
|
|
28
|
+
/** OpenCode model name → upstream route metadata. */
|
|
29
|
+
modelRoutes?: Record<string, ModelRoute>;
|
|
30
|
+
/** Codex path-prefix → upstream route metadata. */
|
|
31
|
+
providerRoutes?: ProviderRoute[];
|
|
32
|
+
/** Tool identifier stamped into HTML reports (`claude`, `opencode`, `codex`). */
|
|
33
|
+
tool?: string;
|
|
34
|
+
}
|
|
35
|
+
/** Resolved listen address returned by {@link ReverseProxyServer.start}. */
|
|
36
|
+
export interface ProxyInfo {
|
|
37
|
+
/** Actual TCP port the server bound to (may differ from config when port was `0`). */
|
|
38
|
+
port: number;
|
|
39
|
+
/** Full loopback base URL clients should use (`http://127.0.0.1:{port}`). */
|
|
40
|
+
url: string;
|
|
41
|
+
}
|
|
42
|
+
/** Whether this Node runtime can decode zstd-compressed API responses. */
|
|
43
|
+
export declare function supportsZstd(): boolean;
|
|
44
|
+
/** Remove zstd from Accept-Encoding when the current Node cannot decode it. */
|
|
45
|
+
export declare function normalizeAcceptEncoding(value: string | string[] | undefined, zstdSupported?: boolean): string | undefined;
|
|
46
|
+
/** Resolve the process-level outbound proxy for one upstream URL, respecting NO_PROXY. */
|
|
47
|
+
export declare function resolveOutboundProxy(targetUrl: string, environment?: NodeJS.ProcessEnv): string | undefined;
|
|
48
|
+
/** Decode a buffered upstream response for structured JSON/SSE logging. */
|
|
49
|
+
export declare function decodeResponseBody(buffer: Buffer, contentEncoding: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* HTTP reverse proxy that intercepts, logs, and forwards LLM API traffic.
|
|
52
|
+
*
|
|
53
|
+
* Supports three routing modes:
|
|
54
|
+
* - **Default**: single `targetBaseUrl` (Claude Code V2+).
|
|
55
|
+
* - **OpenCode**: `modelRoutes` and/or `routes` for multi-provider routing.
|
|
56
|
+
* - **Codex**: `providerRoutes` for path-based upstream selection.
|
|
57
|
+
*/
|
|
58
|
+
export declare class ReverseProxyServer {
|
|
59
|
+
/** Active Node HTTP server, or `null` after {@link stop}. */
|
|
60
|
+
private server;
|
|
61
|
+
/** In-memory aggregate of all logged request/response pairs. */
|
|
62
|
+
private pairs;
|
|
63
|
+
/** Guards against duplicate cleanup when {@link stop} is called more than once. */
|
|
64
|
+
private stopped;
|
|
65
|
+
/** Default upstream protocol from config `targetBaseUrl`. */
|
|
66
|
+
private readonly targetProtocol;
|
|
67
|
+
/** Default upstream hostname from config `targetBaseUrl`. */
|
|
68
|
+
private readonly targetHost;
|
|
69
|
+
/** Default upstream port from config `targetBaseUrl`. */
|
|
70
|
+
private readonly targetPort;
|
|
71
|
+
/** Default upstream path prefix from config `targetBaseUrl`. */
|
|
72
|
+
private readonly pathPrefix;
|
|
73
|
+
/** Whether the default upstream uses TLS. */
|
|
74
|
+
private readonly useHttps;
|
|
75
|
+
/** Resolved logging and listen options with defaults applied. */
|
|
76
|
+
private readonly config;
|
|
77
|
+
/** Append-only JSONL log file path. */
|
|
78
|
+
private readonly logFile;
|
|
79
|
+
/** Pretty-printed JSON array mirror of `pairs`. */
|
|
80
|
+
private readonly jsonFile;
|
|
81
|
+
/** Self-contained HTML report output path. */
|
|
82
|
+
private readonly htmlFile;
|
|
83
|
+
/** Frontend bundle renderer for HTML reports. */
|
|
84
|
+
private readonly htmlGenerator;
|
|
85
|
+
/** Tool label embedded in generated HTML (`claude`, `opencode`, `codex`). */
|
|
86
|
+
private readonly tool?;
|
|
87
|
+
/** OpenCode provider-id routing table (`/p/{id}/...` paths). */
|
|
88
|
+
private readonly routes?;
|
|
89
|
+
/** OpenCode model-based routing table. */
|
|
90
|
+
private readonly modelRoutes?;
|
|
91
|
+
/** Codex path-prefix routing table. */
|
|
92
|
+
private readonly providerRoutes?;
|
|
93
|
+
/**
|
|
94
|
+
* Creates a new reverse proxy instance and initializes empty log files.
|
|
95
|
+
*
|
|
96
|
+
* @param config - Proxy and logging configuration.
|
|
97
|
+
*/
|
|
98
|
+
constructor(config?: ReverseProxyConfig);
|
|
99
|
+
/**
|
|
100
|
+
* Converts Node HTTP headers to a flat string map, optionally redacting secrets.
|
|
101
|
+
*
|
|
102
|
+
* Sensitive keys (authorization, cookies, etc.) are truncated to show only
|
|
103
|
+
* prefix/suffix unless `logSensitiveHeaders` is enabled.
|
|
104
|
+
*
|
|
105
|
+
* @param headers - Raw Node `IncomingHttpHeaders` from request or response.
|
|
106
|
+
* @returns Flat string map safe for JSON serialization.
|
|
107
|
+
*/
|
|
108
|
+
private processHeaders;
|
|
109
|
+
/**
|
|
110
|
+
* Parses a Server-Sent Events (SSE) response body into structured events.
|
|
111
|
+
*
|
|
112
|
+
* Handles both Anthropic-style (`event:` + `data:`) and OpenAI-style
|
|
113
|
+
* (type embedded in JSON data) event formats.
|
|
114
|
+
*
|
|
115
|
+
* @param body - Decompressed SSE text from the upstream response.
|
|
116
|
+
* @returns Ordered list of parsed events with ISO timestamps.
|
|
117
|
+
*/
|
|
118
|
+
private parseSSEEvents;
|
|
119
|
+
/** Appends a request/response pair to JSONL and rewrites the aggregate JSON file. */
|
|
120
|
+
private writePairToLog;
|
|
121
|
+
/** Regenerates the self-contained HTML report from all logged pairs. */
|
|
122
|
+
private generateHTML;
|
|
123
|
+
/**
|
|
124
|
+
* Starts the proxy server on 127.0.0.1.
|
|
125
|
+
*
|
|
126
|
+
* @returns Resolved listen port and base URL (`http://127.0.0.1:{port}`).
|
|
127
|
+
*/
|
|
128
|
+
start(): Promise<ProxyInfo>;
|
|
129
|
+
/**
|
|
130
|
+
* Handles a single incoming HTTP request: route, forward, stream response, and log.
|
|
131
|
+
*
|
|
132
|
+
* Routing priority:
|
|
133
|
+
* 1. Model-based (OpenCode `modelRoutes`) — fails with 502 if model is unresolvable.
|
|
134
|
+
* 2. Provider-prefixed (`/p/{id}/...`) or default target.
|
|
135
|
+
* 3. Codex path-based (`providerRoutes`) overrides when `tool === "codex"`.
|
|
136
|
+
*
|
|
137
|
+
* @param req - Incoming client request from the coding agent.
|
|
138
|
+
* @param res - Response object streamed back to the client.
|
|
139
|
+
*/
|
|
140
|
+
private handleRequest;
|
|
141
|
+
/**
|
|
142
|
+
* Parses, normalizes, and persists a completed request/response exchange.
|
|
143
|
+
*
|
|
144
|
+
* Decompresses gzip/brotli/deflate bodies before parsing. Converts OpenAI and
|
|
145
|
+
* Anthropic streaming responses into structured message objects when possible.
|
|
146
|
+
*
|
|
147
|
+
* @param req - Original client request (used for URL and method).
|
|
148
|
+
* @param proxyRes - Upstream response headers and status.
|
|
149
|
+
* @param requestTimestamp - Client request start time in milliseconds.
|
|
150
|
+
* @param responseTimestamp - Upstream response completion time in milliseconds.
|
|
151
|
+
* @param requestBody - Buffered raw request body bytes.
|
|
152
|
+
* @param responseChunks - Buffered raw response body chunks.
|
|
153
|
+
* @param upstreamUrl - Fully resolved upstream URL for logging.
|
|
154
|
+
* @param modelRouted - Whether model-based routing was used (forces logging).
|
|
155
|
+
* @param modelRoute - Resolved model route metadata, if any.
|
|
156
|
+
*/
|
|
157
|
+
private logResponse;
|
|
158
|
+
/**
|
|
159
|
+
* Determines the API format for response parsing.
|
|
160
|
+
*
|
|
161
|
+
* Priority: explicit model route → request path heuristics → upstream URL heuristics.
|
|
162
|
+
*
|
|
163
|
+
* @param reqUrl - Client-facing request URL path.
|
|
164
|
+
* @param upstreamUrl - Resolved upstream URL after routing.
|
|
165
|
+
* @param modelRoute - Optional model route with explicit `apiFormat`.
|
|
166
|
+
* @returns Best-effort API format for {@link parseResponseBody}.
|
|
167
|
+
*/
|
|
168
|
+
private resolveResponseApiFormat;
|
|
169
|
+
/**
|
|
170
|
+
* Parses a response body into structured log fields based on content type and API format.
|
|
171
|
+
*
|
|
172
|
+
* For SSE streams, attempts to reconstruct complete message objects from event
|
|
173
|
+
* sequences; falls back to raw body text when parsing fails.
|
|
174
|
+
*
|
|
175
|
+
* @param proxyRes - Upstream response (for `content-type` header).
|
|
176
|
+
* @param responseBody - Decompressed response text.
|
|
177
|
+
* @param apiFormat - Resolved format from {@link resolveResponseApiFormat}.
|
|
178
|
+
* @param requestBody - Parsed request body (used to extract model name).
|
|
179
|
+
* @returns Subset of {@link RawPair.response} fields (`body`, `body_raw`, `events`).
|
|
180
|
+
*/
|
|
181
|
+
private parseResponseBody;
|
|
182
|
+
/**
|
|
183
|
+
* Stops the proxy server, prints summary stats, and optionally opens the HTML report.
|
|
184
|
+
*/
|
|
185
|
+
stop(): void;
|
|
186
|
+
/** Returns the absolute path to the generated HTML report file. */
|
|
187
|
+
getHtmlFile(): string;
|
|
188
|
+
/** Opens an HTML file in the platform default browser (Windows/macOS/Linux). */
|
|
189
|
+
private openHtmlInBrowser;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=reverse-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-proxy.d.ts","sourceRoot":"","sources":["../../src/intercept/reverse-proxy.ts"],"names":[],"mappings":"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"}
|