@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":"shared-conversation-processor.js","sourceRoot":"","sources":["../../src/report/shared-conversation-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAmGH,0DAqCC;AAvHD,oDAA8D;AAC9D,4DAKiC;AAoEjC;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,KAAsB;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACH,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC5B,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAE3C,MAAM,mBAAmB,GAAG,SAAS,EAAE,YAAY,IAAI,CAAC,CAAC;IACzD,MAAM,oBAAoB,GAAG,SAAS,EAAE,aAAa,IAAI,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC,EAC/D,CAAC,CACJ,CAAC;IAEF,OAAO;QACH,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,mBAAmB;QAChC,mBAAmB;QACnB,oBAAoB;QACpB,mBAAmB;QACnB,eAAe,EAAE,SAAS,EAAE,uBAAuB,IAAI,IAAI;QAC3D,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,IAAI,IAAI;KACtE,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAa,2BAA2B;IACpC;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAmB;QAC/B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAoB,EAAE,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACpC,SAAS;YACb,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,IAAA,qCAAoB,EAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,kBAAkB,CAAC;gBAClF,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7C,IAAI,QAAiB,CAAC;gBACtB,IAAI,YAAY,GAAkC,IAAI,CAAC;gBACvD,IAAI,OAA4B,CAAC;gBAEjC,IAAI,cAAc,EAAE,CAAC;oBACjB,OAAO,GAAG,IAAA,uCAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC/D,QAAQ,GAAG,IAAA,oCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAA,qCAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAChC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;oBACvF,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAA2B,CAAC;gBACvD,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC5B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAe,CAAC;oBACzC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAA2B,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACJ,SAAS;gBACb,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEtC,cAAc,CAAC,IAAI,CAAC;oBAChB,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oBAC9D,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;oBAChF,OAAO;oBACP,QAAQ;oBACR,KAAK;oBACL,WAAW;oBACX,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBACrC,YAAY;oBACZ,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;iBAC7D,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjE,kCAAkC;YACtC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,OAAe;QACrC,+EAA+E;QAC/E,OAAO,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACK,6BAA6B,CAAC,OAAe;QACjD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,cAAc,GAAoC,IAAI,CAAC;QAE3D,IAAI,CAAC;YACD,oDAAoD;YACpD,+DAA+D;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAElE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAE3C,0EAA0E;oBAC1E,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;wBACrB,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;wBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;wBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA0B,CAAC;wBAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;oBACnE,6BAA6B;gBACjC,CAAC;YACL,CAAC;YAED,yDAAyD;YACzD,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,UAAkB;QACzC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,gCAAgC,CAAC,OAAe;QACpD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAEjC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,OAAO,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM;YACV,CAAC;YAED,mDAAmD;YACnD,MAAM,cAAc,GAAG,YAAY,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAExB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACf,UAAU,EAAE,CAAC;gBACjB,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACtB,UAAU,EAAE,CAAC;oBACb,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;wBACnB,YAAY,GAAG,CAAC,CAAC;wBACjB,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAChD,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,OAAe;QACzC,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACxF,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAA6B,CAAC;YACnE,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,uBAAuB;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,OAAe;QAClC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,8BAA8B,CAAC,OAAe;QAClD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM;YAE7B,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAC1B,MAA+B,EAC/B,cAAgD;QAEhD,IAAI,OAAO,GAAqB;YAC5B,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE;gBACH,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,2BAA2B,EAAE,IAAI;gBACjC,uBAAuB,EAAE,IAAI;gBAC7B,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,IAAI;aACrB;SACJ,CAAC;QAEF,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAE3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,eAAe;oBAChB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC3C,MAAM;gBAEV,KAAK,qBAAqB;oBACtB,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC;oBAChC,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC9D,MAAM;gBAEV,KAAK,qBAAqB;oBACtB,IAAI,iBAAiB,IAAI,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;wBAE1B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;4BACjB,KAAK,YAAY;gCACb,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oCACvB,KAAmB,CAAC,IAAI,GAAG,CAAE,KAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;gCAC/E,CAAC;gCACD,MAAM;4BAEV,KAAK,kBAAkB;gCACnB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCAC5B,MAAM,SAAS,GAAG,KAAyB,CAAC;oCAC5C,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wCACtC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;oCAC3D,CAAC;yCAAM,CAAC;wCACH,SAAS,CAAC,KAAa,GAAG,KAAK,CAAC,YAAY,CAAC;oCAClD,CAAC;gCACL,CAAC;gCACD,MAAM;4BAEV,KAAK,gBAAgB;gCACjB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCAC3B,KAAuB,CAAC,QAAQ;wCAC7B,CAAE,KAAuB,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;gCACnE,CAAC;gCACD,MAAM;4BAEV,KAAK,iBAAiB;gCAClB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oCAC3B,KAAuB,CAAC,SAAS;wCAC9B,CAAE,KAAuB,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;gCACrE,CAAC;gCACD,MAAM;4BAEV,KAAK,iBAAiB;gCAClB,MAAM;wBACd,CAAC;oBACL,CAAC;oBACD,MAAM;gBAEV,KAAK,oBAAoB;oBACrB,IAAI,iBAAiB,IAAI,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;wBAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC5B,MAAM,SAAS,GAAG,KAAyB,CAAC;4BAC5C,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gCACtC,IAAI,CAAC;oCACD,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gCAClD,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACT,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gCACtE,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;oBACD,MAAM;gBAEV,KAAK,eAAe;oBAChB,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBAC1B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;oBAClD,CAAC;oBACD,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC5B,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;oBACtD,CAAC;oBACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACd,2EAA2E;wBAC3E,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;wBAE5D,OAAO,CAAC,KAAK,GAAG;4BACZ,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,kBAAkB;4BAC5D,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;4BAC7E,2BAA2B,EACvB,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,OAAO,CAAC,KAAK,EAAE,2BAA2B,IAAI,IAAI;4BACjG,uBAAuB,EACnB,KAAK,CAAC,KAAK,CAAC,uBAAuB,IAAI,OAAO,CAAC,KAAK,EAAE,uBAAuB,IAAI,IAAI;4BACzF,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,EAAE,eAAe,IAAI,IAAI;4BACtF,YAAY,EAAE,IAAI;yBACrB,CAAC;oBACN,CAAC;oBACD,MAAM;gBAEV,KAAK,cAAc;oBACf,MAAM;YACd,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QAEjE,IAAI,cAAc,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC;QAClE,CAAC;QAED,OAAO,OAAkB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAa;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC7D,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAC,OAAO,CAAC,IAAY,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjG,OAAO,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAC,QAAQ,CAAC,IAAY,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAiB;QACxC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,IAAI,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACH,kBAAkB,CACd,KAAsB,EACtB,UAAmD,EAAE;QAErD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5C,yEAAyE;QACzE,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;QAEzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,gBAAgB,GAAyB,EAAE,CAAC;QAElD,KAAK,MAAM,CAAC,EAAE,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;YAEF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA2B,CAAC;YAE/D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;gBAClF,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBACjF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAEjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAED,KAAK,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBAC/D,MAAM,iBAAiB,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;gBAEF,+DAA+D;gBAC/D,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;oBAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBACvD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBACvD,OAAO,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC/E,CAAC,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACnF,MAAM,gBAAgB,GAAG,IAAA,oCAAuB,EAC5C,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAC/D,CAAC;gBAEF,MAAM,KAAK,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;gBAEzD,MAAM,YAAY,GAAuB;oBACrC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;oBACpC,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM;oBAChC,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,QAAQ,EAAE,iBAAiB;oBAC3B,SAAS,EAAE,SAAS;oBACpB,gBAAgB;oBAChB,QAAQ,EAAE;wBACN,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;wBACzC,OAAO,EAAE,SAAS,CAAC,SAAS;wBAC5B,UAAU,EAAE,iBAAiB,CAAC,MAAM;wBACpC,GAAG,KAAK;qBACX;iBACJ,CAAC;gBAEF,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;QAEtF,MAAM,qBAAqB,GAAG,OAAO,CAAC,yBAAyB;YAC3D,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErE,OAAO,qBAAqB,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAChG,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,QAAwB;QAC/C,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,MAAM,eAAe,GAAgE,EAAE,CAAC;QAExF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,eAAe,GAAyB,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAE3F,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,IAAI,kBAAkB,GAAG,IAAI,CAAC;gBAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;gBAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAEjC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;wBAC7C,MAAM,OAAO,GAAG,KAAyB,CAAC;wBAC1C,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;wBAChE,kBAAkB,GAAG,KAAK,CAAC;oBAC/B,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;wBAChE,MAAM,UAAU,GAAG,KAA6B,CAAC;wBACjD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;wBAEzC,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;4BACpD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;gCAClC,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;4BACjG,CAAC;4BACD,gBAAgB,CAAC,YAAY,CAAC,CAAC,WAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;4BACpE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;wBACtC,CAAC;oBACL,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC/B,cAAc,GAAG,IAAI,CAAC;wBACtB,kBAAkB,GAAG,KAAK,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACJ,kBAAkB,GAAG,KAAK,CAAC;oBAC/B,CAAC;gBACL,CAAC;gBAED,IAAI,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC;gBAChC,CAAC;YACL,CAAC;YAED,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QAC1C,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,kCAAkC,CAAC,aAAmC;QAC1E,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,aAAa,CAAC;QAEpD,MAAM,mBAAmB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAChG,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,MAAM,mBAAmB,GAAyB,EAAE,CAAC;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAE3C,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAEvC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvE,IAAI,YAAY,GAA8B,IAAI,CAAC;gBACnD,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;gBAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,SAAS;oBAElD,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBAEzC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChE,IAAI,aAAa,GAAG,IAAI,CAAC;wBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC7E,aAAa,GAAG,KAAK,CAAC;gCACtB,MAAM;4BACV,CAAC;wBACL,CAAC;wBAED,IAAI,aAAa,EAAE,CAAC;4BAChB,YAAY,GAAG,SAAS,CAAC;4BACzB,aAAa,GAAG,CAAC,CAAC;4BAClB,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACf,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBAC5E,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzB,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACJ,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC7B,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACtC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,OAAO,mBAAmB,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAChG,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAC5B,YAAgC,EAChC,WAA+B;QAE/B,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrD,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEnD,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,cAAc,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CACrE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC9E,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,MAAM,gBAAgB,GAAG,IAAA,oCAAuB,EAC5C,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CACtD,CAAC;QAEF,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO;YACH,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,IAAI;YACf,gBAAgB;YAChB,QAAQ,EAAE;gBACN,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,GAAG,KAAK;aACX;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAkB,EAAE,IAAkB;QAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9B,IAAI,OAAO,QAAQ,KAAK,OAAO,QAAQ;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,OAAqB;QACrD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC;QAEjD,IAAI,iBAA+C,CAAC;QAEpD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC3C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gDAAgD,EAAE,uBAAuB,CAAC,CAAC;oBAC/F,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,+CAA+C,EAAE,8BAA8B,CAAC,CAAC;oBACrG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2CAA2C,EAAE,mBAAmB,CAAC,CAAC;oBACtF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mDAAmD,EAAE,uBAAuB,CAAC,CAAC;oBAClG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACxC,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,iBAAiB;SAC7B,CAAC;IACN,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW;QAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;CACJ;AA9vBD,kEA8vBC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Path-based upstream routing for Codex CLI reverse-proxy mode.
|
|
3
|
+
*
|
|
4
|
+
* Codex uses different upstream endpoints depending on auth mode:
|
|
5
|
+
* - OpenAI API key → `/v1/responses`
|
|
6
|
+
* - ChatGPT OAuth → `/backend-api/codex/responses`
|
|
7
|
+
* - ChatGPT Apps MCP (`codex_apps`) → `/backend-api/wham/apps`
|
|
8
|
+
*
|
|
9
|
+
* The trace proxy matches incoming request paths against configured
|
|
10
|
+
* {@link ProviderRoute.matchPathPrefixes} and forwards to the appropriate upstream base URL.
|
|
11
|
+
*/
|
|
12
|
+
import type { ProviderRoute } from "../tools/types";
|
|
13
|
+
/** Parsed components of an upstream base URL used to build outbound requests. */
|
|
14
|
+
interface ParsedTarget {
|
|
15
|
+
/** URL scheme (`https:` or `http:`). */
|
|
16
|
+
protocol: string;
|
|
17
|
+
/** Upstream hostname for TLS SNI and the HTTP `Host` header. */
|
|
18
|
+
targetHost: string;
|
|
19
|
+
/** Upstream TCP port (443/80 when omitted from the URL). */
|
|
20
|
+
targetPort: number;
|
|
21
|
+
/** Path prefix from the base URL, without trailing slash. */
|
|
22
|
+
pathPrefix: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the upstream target for a Codex proxied request based on URL path.
|
|
26
|
+
*
|
|
27
|
+
* When no route matches, returns the fallback target with the original path appended.
|
|
28
|
+
* When a route matches, constructs the upstream path relative to the route's base URL,
|
|
29
|
+
* avoiding double-prefixing when the request path already includes the base path prefix.
|
|
30
|
+
*
|
|
31
|
+
* @param reqUrl - Incoming request URL from Codex CLI.
|
|
32
|
+
* @param routes - Path-prefix → upstream route table from the Codex tool profile.
|
|
33
|
+
* @param fallback - Default upstream when no path route matches.
|
|
34
|
+
* @returns Parsed target plus the full upstream display path (for logging and forwarding).
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveCodexRouteTarget(reqUrl: string | undefined, routes: ProviderRoute[], fallback: ParsedTarget): ParsedTarget & {
|
|
37
|
+
upstreamDisplayPath: string;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=codex-routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-routing.d.ts","sourceRoot":"","sources":["../../src/routing/codex-routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,iFAAiF;AACjF,UAAU,YAAY;IACrB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;CACnB;AAmDD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,EAAE,YAAY,GACpB,YAAY,GAAG;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CA6BhD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Path-based upstream routing for Codex CLI reverse-proxy mode.
|
|
4
|
+
*
|
|
5
|
+
* Codex uses different upstream endpoints depending on auth mode:
|
|
6
|
+
* - OpenAI API key → `/v1/responses`
|
|
7
|
+
* - ChatGPT OAuth → `/backend-api/codex/responses`
|
|
8
|
+
* - ChatGPT Apps MCP (`codex_apps`) → `/backend-api/wham/apps`
|
|
9
|
+
*
|
|
10
|
+
* The trace proxy matches incoming request paths against configured
|
|
11
|
+
* {@link ProviderRoute.matchPathPrefixes} and forwards to the appropriate upstream base URL.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.resolveCodexRouteTarget = resolveCodexRouteTarget;
|
|
15
|
+
/**
|
|
16
|
+
* Parses a base URL into host, port, protocol, and path prefix.
|
|
17
|
+
*
|
|
18
|
+
* @param targetBaseUrl - Full upstream base URL from a provider route.
|
|
19
|
+
* @returns Parsed target suitable for constructing upstream requests.
|
|
20
|
+
*/
|
|
21
|
+
function parseTargetBaseUrl(targetBaseUrl) {
|
|
22
|
+
const parsed = new URL(targetBaseUrl);
|
|
23
|
+
const pathPrefix = parsed.pathname === "/" ? "" : parsed.pathname.replace(/\/$/, "");
|
|
24
|
+
return {
|
|
25
|
+
protocol: parsed.protocol,
|
|
26
|
+
targetHost: parsed.hostname,
|
|
27
|
+
targetPort: parsed.port
|
|
28
|
+
? parseInt(parsed.port, 10)
|
|
29
|
+
: parsed.protocol === "https:" ? 443 : 80,
|
|
30
|
+
pathPrefix,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Finds the first provider route whose path prefix matches the request URL.
|
|
35
|
+
*
|
|
36
|
+
* Prefix matching is exact or prefix-with-slash (e.g. `/v1/responses` matches
|
|
37
|
+
* `/v1/responses` and `/v1/responses/compact`).
|
|
38
|
+
*
|
|
39
|
+
* @param reqUrl - Incoming request URL (may include query string).
|
|
40
|
+
* @param routes - Ordered list of provider routes to try.
|
|
41
|
+
* @returns Matching route or `null` when no prefix matches.
|
|
42
|
+
*/
|
|
43
|
+
function matchRouteByPath(reqUrl, routes) {
|
|
44
|
+
if (!reqUrl) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const [rawPath] = reqUrl.split("?");
|
|
48
|
+
for (const route of routes) {
|
|
49
|
+
const prefixes = route.matchPathPrefixes;
|
|
50
|
+
if (!prefixes?.length) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (prefixes.some((prefix) => rawPath === prefix || rawPath.startsWith(`${prefix}/`))) {
|
|
54
|
+
return route;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolves the upstream target for a Codex proxied request based on URL path.
|
|
61
|
+
*
|
|
62
|
+
* When no route matches, returns the fallback target with the original path appended.
|
|
63
|
+
* When a route matches, constructs the upstream path relative to the route's base URL,
|
|
64
|
+
* avoiding double-prefixing when the request path already includes the base path prefix.
|
|
65
|
+
*
|
|
66
|
+
* @param reqUrl - Incoming request URL from Codex CLI.
|
|
67
|
+
* @param routes - Path-prefix → upstream route table from the Codex tool profile.
|
|
68
|
+
* @param fallback - Default upstream when no path route matches.
|
|
69
|
+
* @returns Parsed target plus the full upstream display path (for logging and forwarding).
|
|
70
|
+
*/
|
|
71
|
+
function resolveCodexRouteTarget(reqUrl, routes, fallback) {
|
|
72
|
+
const matched = matchRouteByPath(reqUrl, routes);
|
|
73
|
+
if (!matched) {
|
|
74
|
+
const upstreamDisplayPath = `${fallback.pathPrefix}${reqUrl || "/"}`;
|
|
75
|
+
return { ...fallback, upstreamDisplayPath };
|
|
76
|
+
}
|
|
77
|
+
const target = parseTargetBaseUrl(matched.upstreamBaseUrl);
|
|
78
|
+
const [rawPath, query = ""] = (reqUrl || "/").split("?");
|
|
79
|
+
if (matched.fixedUpstreamPath) {
|
|
80
|
+
const upstreamDisplayPath = `${matched.fixedUpstreamPath}${query ? `?${query}` : ""}`;
|
|
81
|
+
return {
|
|
82
|
+
...target,
|
|
83
|
+
upstreamDisplayPath,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// If the request path already starts with the target's path prefix, don't prepend again.
|
|
87
|
+
const upstreamPath = target.pathPrefix && rawPath.startsWith(target.pathPrefix)
|
|
88
|
+
? rawPath
|
|
89
|
+
: `${target.pathPrefix}${rawPath}`;
|
|
90
|
+
const upstreamDisplayPath = `${upstreamPath}${query ? `?${query}` : ""}`;
|
|
91
|
+
return {
|
|
92
|
+
...target,
|
|
93
|
+
upstreamDisplayPath,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=codex-routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-routing.js","sourceRoot":"","sources":["../../src/routing/codex-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Model-based upstream routing and path normalization for OpenCode proxy mode.
|
|
3
|
+
*
|
|
4
|
+
* OpenCode sends requests to a single local proxy URL but may use models from
|
|
5
|
+
* multiple providers (Anthropic, OpenAI-compatible, etc.). This module maps model
|
|
6
|
+
* names to upstream routes, normalizes API paths for provider conventions, and
|
|
7
|
+
* infers API format from URL paths for response parsing.
|
|
8
|
+
*/
|
|
9
|
+
import type { ApiFormat, ModelRoute } from "../tools/types";
|
|
10
|
+
/**
|
|
11
|
+
* Resolves the upstream route for a given model identifier.
|
|
12
|
+
*
|
|
13
|
+
* Lookup order:
|
|
14
|
+
* 1. Exact model name (e.g. `anthropic/claude-sonnet-4-20250514`)
|
|
15
|
+
* 2. `providerId/modelId` when model contains `/`
|
|
16
|
+
* 3. `providerId/*` wildcard with extracted model id
|
|
17
|
+
* 4. Bare `modelId` after stripping provider prefix
|
|
18
|
+
* 5. Single provider fallback when exactly one `isProviderFallback` route exists
|
|
19
|
+
*
|
|
20
|
+
* @param model - Model string from the request JSON body.
|
|
21
|
+
* @param modelRoutes - Model/route table built from OpenCode config.
|
|
22
|
+
* @returns Matching route metadata, or `null` when unresolvable.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveModelRoute(model: string, modelRoutes: Record<string, ModelRoute>): ModelRoute | null;
|
|
25
|
+
/**
|
|
26
|
+
* Normalizes the request path for the target provider's API conventions.
|
|
27
|
+
*
|
|
28
|
+
* Adjustments:
|
|
29
|
+
* - Anthropic: `/messages` → `/v1/messages` (OpenCode may omit the `/v1` prefix)
|
|
30
|
+
* - OpenAI with base URL ending in `/v1`: strip duplicate `/v1` from chat/responses paths
|
|
31
|
+
*
|
|
32
|
+
* @param urlPath - Request path (without query string).
|
|
33
|
+
* @param modelRoute - Resolved route metadata including `apiFormat`.
|
|
34
|
+
* @param pathPrefix - Path prefix from the upstream base URL.
|
|
35
|
+
* @returns Normalized path to append to the upstream host.
|
|
36
|
+
*/
|
|
37
|
+
export declare function normalizeUpstreamPath(urlPath: string, modelRoute?: ModelRoute, pathPrefix?: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Infers the API response format from a request URL path segment.
|
|
40
|
+
*
|
|
41
|
+
* Used by the reverse proxy to choose the correct response parser when no
|
|
42
|
+
* explicit model route provides `apiFormat`.
|
|
43
|
+
*
|
|
44
|
+
* @param urlPath - Request URL path (may include query string).
|
|
45
|
+
* @returns Detected format or `"unknown"`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function inferApiFormatFromPath(urlPath: string | undefined): ApiFormat;
|
|
48
|
+
//# sourceMappingURL=proxy-routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-routing.d.ts","sourceRoot":"","sources":["../../src/routing/proxy-routing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,CAwC3G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,UAAU,EACvB,UAAU,GAAE,MAAW,GACrB,MAAM,CAoBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAc7E"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Model-based upstream routing and path normalization for OpenCode proxy mode.
|
|
4
|
+
*
|
|
5
|
+
* OpenCode sends requests to a single local proxy URL but may use models from
|
|
6
|
+
* multiple providers (Anthropic, OpenAI-compatible, etc.). This module maps model
|
|
7
|
+
* names to upstream routes, normalizes API paths for provider conventions, and
|
|
8
|
+
* infers API format from URL paths for response parsing.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.resolveModelRoute = resolveModelRoute;
|
|
12
|
+
exports.normalizeUpstreamPath = normalizeUpstreamPath;
|
|
13
|
+
exports.inferApiFormatFromPath = inferApiFormatFromPath;
|
|
14
|
+
/**
|
|
15
|
+
* Resolves the upstream route for a given model identifier.
|
|
16
|
+
*
|
|
17
|
+
* Lookup order:
|
|
18
|
+
* 1. Exact model name (e.g. `anthropic/claude-sonnet-4-20250514`)
|
|
19
|
+
* 2. `providerId/modelId` when model contains `/`
|
|
20
|
+
* 3. `providerId/*` wildcard with extracted model id
|
|
21
|
+
* 4. Bare `modelId` after stripping provider prefix
|
|
22
|
+
* 5. Single provider fallback when exactly one `isProviderFallback` route exists
|
|
23
|
+
*
|
|
24
|
+
* @param model - Model string from the request JSON body.
|
|
25
|
+
* @param modelRoutes - Model/route table built from OpenCode config.
|
|
26
|
+
* @returns Matching route metadata, or `null` when unresolvable.
|
|
27
|
+
*/
|
|
28
|
+
function resolveModelRoute(model, modelRoutes) {
|
|
29
|
+
if (modelRoutes[model]) {
|
|
30
|
+
return modelRoutes[model];
|
|
31
|
+
}
|
|
32
|
+
const slashIndex = model.indexOf("/");
|
|
33
|
+
if (slashIndex > 0) {
|
|
34
|
+
const providerId = model.slice(0, slashIndex);
|
|
35
|
+
const modelId = model.slice(slashIndex + 1);
|
|
36
|
+
if (modelRoutes[`${providerId}/${modelId}`]) {
|
|
37
|
+
return modelRoutes[`${providerId}/${modelId}`];
|
|
38
|
+
}
|
|
39
|
+
// Wildcard route: providerId/* matches any model under that provider.
|
|
40
|
+
if (modelRoutes[`${providerId}/*`]) {
|
|
41
|
+
return { ...modelRoutes[`${providerId}/*`], modelId };
|
|
42
|
+
}
|
|
43
|
+
if (modelRoutes[modelId]) {
|
|
44
|
+
return modelRoutes[modelId];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// When exactly one provider is marked as fallback, use its wildcard route.
|
|
48
|
+
const fallbackProviders = new Set(Object.values(modelRoutes)
|
|
49
|
+
.filter((route) => route.isProviderFallback)
|
|
50
|
+
.map((route) => route.providerId));
|
|
51
|
+
if (fallbackProviders.size === 1) {
|
|
52
|
+
const providerId = [...fallbackProviders][0];
|
|
53
|
+
const fallback = modelRoutes[`${providerId}/*`];
|
|
54
|
+
if (fallback) {
|
|
55
|
+
return { ...fallback, modelId: slashIndex > 0 ? model.slice(slashIndex + 1) : model };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Normalizes the request path for the target provider's API conventions.
|
|
62
|
+
*
|
|
63
|
+
* Adjustments:
|
|
64
|
+
* - Anthropic: `/messages` → `/v1/messages` (OpenCode may omit the `/v1` prefix)
|
|
65
|
+
* - OpenAI with base URL ending in `/v1`: strip duplicate `/v1` from chat/responses paths
|
|
66
|
+
*
|
|
67
|
+
* @param urlPath - Request path (without query string).
|
|
68
|
+
* @param modelRoute - Resolved route metadata including `apiFormat`.
|
|
69
|
+
* @param pathPrefix - Path prefix from the upstream base URL.
|
|
70
|
+
* @returns Normalized path to append to the upstream host.
|
|
71
|
+
*/
|
|
72
|
+
function normalizeUpstreamPath(urlPath, modelRoute, pathPrefix = "") {
|
|
73
|
+
if (modelRoute?.apiFormat === "anthropic" && (urlPath === "/messages" || urlPath.startsWith("/messages?"))) {
|
|
74
|
+
return urlPath.replace(/^\/messages/, "/v1/messages");
|
|
75
|
+
}
|
|
76
|
+
// Some OpenAI-compatible bases already include `/v1` in pathPrefix; avoid `/v1/v1/...`.
|
|
77
|
+
if (modelRoute &&
|
|
78
|
+
(modelRoute.apiFormat === "openai" || modelRoute.apiFormat === "openai-responses") &&
|
|
79
|
+
pathPrefix.endsWith("/v1")) {
|
|
80
|
+
if (urlPath === "/v1/chat/completions" || urlPath.startsWith("/v1/chat/completions?")) {
|
|
81
|
+
return urlPath.replace(/^\/v1/, "");
|
|
82
|
+
}
|
|
83
|
+
if (urlPath === "/v1/responses" || urlPath.startsWith("/v1/responses?")) {
|
|
84
|
+
return urlPath.replace(/^\/v1/, "");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return urlPath;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Infers the API response format from a request URL path segment.
|
|
91
|
+
*
|
|
92
|
+
* Used by the reverse proxy to choose the correct response parser when no
|
|
93
|
+
* explicit model route provides `apiFormat`.
|
|
94
|
+
*
|
|
95
|
+
* @param urlPath - Request URL path (may include query string).
|
|
96
|
+
* @returns Detected format or `"unknown"`.
|
|
97
|
+
*/
|
|
98
|
+
function inferApiFormatFromPath(urlPath) {
|
|
99
|
+
if (!urlPath) {
|
|
100
|
+
return "unknown";
|
|
101
|
+
}
|
|
102
|
+
if (urlPath.includes("/chat/completions")) {
|
|
103
|
+
return "openai";
|
|
104
|
+
}
|
|
105
|
+
if (urlPath.includes("/responses")) {
|
|
106
|
+
return "openai-responses";
|
|
107
|
+
}
|
|
108
|
+
if (urlPath.includes("/messages")) {
|
|
109
|
+
return "anthropic";
|
|
110
|
+
}
|
|
111
|
+
return "unknown";
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=proxy-routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-routing.js","sourceRoot":"","sources":["../../src/routing/proxy-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/binary-utils.ts
|
|
3
|
+
* @description Utilities for detecting native executables vs Node.js entry scripts.
|
|
4
|
+
*
|
|
5
|
+
* Claude Code V2+ ships as ELF/Mach-O/PE binaries; attempting to run them with
|
|
6
|
+
* `node --require interceptor` causes syntax errors. These helpers let
|
|
7
|
+
* `trace-runner.ts` choose reverse-proxy mode vs V1 interceptor mode.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a CLI wrapper (npm bin shim, bash script) to the actual JavaScript entry file.
|
|
11
|
+
*
|
|
12
|
+
* npm/global installs often expose a small shell script that delegates to a `.js`
|
|
13
|
+
* file under `lib/`. This function follows symlinks and heuristics to find that file.
|
|
14
|
+
*
|
|
15
|
+
* @param filePath - Path from `which claude` or user override
|
|
16
|
+
* @returns Resolved `.js` path when found, otherwise the best-effort real path
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveToJsFile(filePath: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Detect whether a file is a native compiled binary (not a Node.js script).
|
|
21
|
+
*
|
|
22
|
+
* Reads the first four bytes and compares against known executable magic numbers.
|
|
23
|
+
* Used to gate reverse-proxy mode in trace-runner.
|
|
24
|
+
*
|
|
25
|
+
* @param filePath - Path to the candidate executable
|
|
26
|
+
* @returns true if the file appears to be ELF, Mach-O, or PE
|
|
27
|
+
*/
|
|
28
|
+
export declare function isNativeBinary(filePath: string): boolean;
|
|
29
|
+
//# sourceMappingURL=binary-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-utils.d.ts","sourceRoot":"","sources":["../../src/tools/binary-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsCxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmBxD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file tools/binary-utils.ts
|
|
4
|
+
* @description Utilities for detecting native executables vs Node.js entry scripts.
|
|
5
|
+
*
|
|
6
|
+
* Claude Code V2+ ships as ELF/Mach-O/PE binaries; attempting to run them with
|
|
7
|
+
* `node --require interceptor` causes syntax errors. These helpers let
|
|
8
|
+
* `trace-runner.ts` choose reverse-proxy mode vs V1 interceptor mode.
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
22
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
23
|
+
}) : function(o, v) {
|
|
24
|
+
o["default"] = v;
|
|
25
|
+
});
|
|
26
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
27
|
+
var ownKeys = function(o) {
|
|
28
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29
|
+
var ar = [];
|
|
30
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
31
|
+
return ar;
|
|
32
|
+
};
|
|
33
|
+
return ownKeys(o);
|
|
34
|
+
};
|
|
35
|
+
return function (mod) {
|
|
36
|
+
if (mod && mod.__esModule) return mod;
|
|
37
|
+
var result = {};
|
|
38
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
39
|
+
__setModuleDefault(result, mod);
|
|
40
|
+
return result;
|
|
41
|
+
};
|
|
42
|
+
})();
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.resolveToJsFile = resolveToJsFile;
|
|
45
|
+
exports.isNativeBinary = isNativeBinary;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
/** Magic-byte signatures at the start of common native executable formats. */
|
|
48
|
+
const NATIVE_BINARY_SIGNATURES = {
|
|
49
|
+
ELF: Buffer.from([0x7f, 0x45, 0x4c, 0x46]),
|
|
50
|
+
MACHO_32: Buffer.from([0xfe, 0xed, 0xfa, 0xce]),
|
|
51
|
+
MACHO_64: Buffer.from([0xfe, 0xed, 0xfa, 0xcf]),
|
|
52
|
+
MACHO_32_REV: Buffer.from([0xce, 0xfa, 0xed, 0xfe]),
|
|
53
|
+
MACHO_64_REV: Buffer.from([0xcf, 0xfa, 0xed, 0xfe]),
|
|
54
|
+
MACHO_FAT: Buffer.from([0xca, 0xfe, 0xba, 0xbe]),
|
|
55
|
+
PE: Buffer.from([0x4d, 0x5a]),
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Resolve a CLI wrapper (npm bin shim, bash script) to the actual JavaScript entry file.
|
|
59
|
+
*
|
|
60
|
+
* npm/global installs often expose a small shell script that delegates to a `.js`
|
|
61
|
+
* file under `lib/`. This function follows symlinks and heuristics to find that file.
|
|
62
|
+
*
|
|
63
|
+
* @param filePath - Path from `which claude` or user override
|
|
64
|
+
* @returns Resolved `.js` path when found, otherwise the best-effort real path
|
|
65
|
+
*/
|
|
66
|
+
function resolveToJsFile(filePath) {
|
|
67
|
+
try {
|
|
68
|
+
const realPath = fs.realpathSync(filePath);
|
|
69
|
+
if (realPath.endsWith(".js")) {
|
|
70
|
+
return realPath;
|
|
71
|
+
}
|
|
72
|
+
// Shell wrapper pointing at Node — treat the wrapper itself as the entry
|
|
73
|
+
if (fs.existsSync(realPath)) {
|
|
74
|
+
const content = fs.readFileSync(realPath, "utf-8");
|
|
75
|
+
if (content.startsWith("#!/usr/bin/env node") ||
|
|
76
|
+
content.match(/^#!.*\/node$/m) ||
|
|
77
|
+
content.includes("require(") ||
|
|
78
|
+
content.includes("import ")) {
|
|
79
|
+
return realPath;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Common npm layout: bin/foo -> ../lib/foo.js
|
|
83
|
+
const possibleJsPaths = [
|
|
84
|
+
realPath + ".js",
|
|
85
|
+
realPath.replace(/\/bin\//, "/lib/") + ".js",
|
|
86
|
+
realPath.replace(/\/\.bin\//, "/lib/bin/") + ".js",
|
|
87
|
+
];
|
|
88
|
+
for (const jsPath of possibleJsPaths) {
|
|
89
|
+
if (fs.existsSync(jsPath)) {
|
|
90
|
+
return jsPath;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return realPath;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return filePath;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Detect whether a file is a native compiled binary (not a Node.js script).
|
|
101
|
+
*
|
|
102
|
+
* Reads the first four bytes and compares against known executable magic numbers.
|
|
103
|
+
* Used to gate reverse-proxy mode in trace-runner.
|
|
104
|
+
*
|
|
105
|
+
* @param filePath - Path to the candidate executable
|
|
106
|
+
* @returns true if the file appears to be ELF, Mach-O, or PE
|
|
107
|
+
*/
|
|
108
|
+
function isNativeBinary(filePath) {
|
|
109
|
+
try {
|
|
110
|
+
const fd = fs.openSync(filePath, "r");
|
|
111
|
+
const buffer = Buffer.alloc(4);
|
|
112
|
+
fs.readSync(fd, buffer, 0, 4, 0);
|
|
113
|
+
fs.closeSync(fd);
|
|
114
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.ELF))
|
|
115
|
+
return true;
|
|
116
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.MACHO_32))
|
|
117
|
+
return true;
|
|
118
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.MACHO_64))
|
|
119
|
+
return true;
|
|
120
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.MACHO_32_REV))
|
|
121
|
+
return true;
|
|
122
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.MACHO_64_REV))
|
|
123
|
+
return true;
|
|
124
|
+
if (buffer.subarray(0, 4).equals(NATIVE_BINARY_SIGNATURES.MACHO_FAT))
|
|
125
|
+
return true;
|
|
126
|
+
if (buffer.subarray(0, 2).equals(NATIVE_BINARY_SIGNATURES.PE))
|
|
127
|
+
return true;
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=binary-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-utils.js","sourceRoot":"","sources":["../../src/tools/binary-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/claude.ts
|
|
3
|
+
* @description Tool profile for Claude Code CLI tracing.
|
|
4
|
+
*
|
|
5
|
+
* This module is the Claude-specific implementation of the {@link ToolProfile}
|
|
6
|
+
* interface consumed by `trace-runner.ts`. Responsibilities include:
|
|
7
|
+
*
|
|
8
|
+
* - **Binary resolution** — locate Claude on PATH, unwrap bash/npm wrappers,
|
|
9
|
+
* and distinguish V1 Node.js scripts from V2+ native Mach-O/ELF/PE binaries.
|
|
10
|
+
* - **Upstream URL discovery** — read `ANTHROPIC_BASE_URL` from `settings.json`
|
|
11
|
+
* or environment so the reverse proxy knows where to forward traffic.
|
|
12
|
+
* - **Spawn environment** — set `ANTHROPIC_BASE_URL` to the local proxy; when
|
|
13
|
+
* `settings.json` also defines that variable, build a persistent config overlay
|
|
14
|
+
* at `~/.claude-trace/claude-config-overlay/` so the proxy URL wins without
|
|
15
|
+
* editing the user's original `~/.claude` directory.
|
|
16
|
+
* - **OAuth token extraction** — optional `--extract-token` mode that preloads
|
|
17
|
+
* `token-extractor.js` to capture a bearer token for SDK usage.
|
|
18
|
+
*
|
|
19
|
+
* Interception mode is chosen by `trace-runner.ts` after calling
|
|
20
|
+
* `isNativeBinary(getBinaryPath())`: native → reverse proxy, Node script →
|
|
21
|
+
* `node --require interceptor-loader.js`.
|
|
22
|
+
*/
|
|
23
|
+
import type { ToolProfile } from "./types";
|
|
24
|
+
import { isNativeBinary, resolveToJsFile } from "./binary-utils";
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the real executable used for native-binary detection and proxy mode.
|
|
27
|
+
*
|
|
28
|
+
* Unwraps npm `.cmd` shims, bash wrappers, and symlinks to find the actual
|
|
29
|
+
* Mach-O/ELF/PE binary (V2+) or `.exe` on Windows. This path is passed to
|
|
30
|
+
* `isNativeBinary()` in `trace-runner.ts` to choose proxy vs interceptor.
|
|
31
|
+
*
|
|
32
|
+
* @param customPath - Optional explicit path from `--claude-path`.
|
|
33
|
+
* @returns Absolute path to the underlying Claude executable.
|
|
34
|
+
*/
|
|
35
|
+
declare function getClaudeBinaryPath(customPath?: string): string;
|
|
36
|
+
/** Resolve the optional absolute log directory used by WorkflowExp/Pier. */
|
|
37
|
+
export declare function getClaudeTraceLogDirectory(environment?: NodeJS.ProcessEnv): string;
|
|
38
|
+
/**
|
|
39
|
+
* Claude Code tool profile consumed by `trace-runner.ts`.
|
|
40
|
+
*
|
|
41
|
+
* Supports both V1 Node interceptor and V2+ reverse-proxy interception.
|
|
42
|
+
* When `settings.json` defines its own `ANTHROPIC_BASE_URL`, a persistent
|
|
43
|
+
* config overlay rewrites that value without modifying the original file.
|
|
44
|
+
*/
|
|
45
|
+
export declare const claudeProfile: ToolProfile;
|
|
46
|
+
/**
|
|
47
|
+
* Extract the OAuth bearer token from a live Claude Code session.
|
|
48
|
+
*
|
|
49
|
+
* Spawns Claude via `node --require token-extractor.js` with a minimal prompt,
|
|
50
|
+
* watches for the token written to `.claude-trace/token.txt`, and prints it
|
|
51
|
+
* to stdout (for `export ANTHROPIC_API_KEY=$(claude-trace --extract-token)`).
|
|
52
|
+
*
|
|
53
|
+
* Uses polling (500 ms) and a 30 s timeout so the child can be killed as soon
|
|
54
|
+
* as the token is captured, without waiting for a full Claude session to finish.
|
|
55
|
+
*
|
|
56
|
+
* @param customClaudePath - Optional explicit path from `--claude-path`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function extractClaudeToken(customClaudePath?: string): Promise<void>;
|
|
59
|
+
/** Re-exported for `trace-runner.ts` binary detection and V1 path resolution. */
|
|
60
|
+
export { getClaudeBinaryPath, isNativeBinary, resolveToJsFile };
|
|
61
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/tools/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiGjE;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAmExD;AAWD,4EAA4E;AAC5E,wBAAgB,0BAA0B,CACzC,WAAW,GAAE,MAAM,CAAC,UAAwB,GAC1C,MAAM,CAOR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,WAoH3B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FjF;AAED,iFAAiF;AACjF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|