@pinta-ai/pinta-cc 1.2.0 → 1.2.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.
|
@@ -8,9 +8,18 @@
|
|
|
8
8
|
* canonical OTel env names so transport.ts (and any future OTel SDK adoption)
|
|
9
9
|
* can read them via the OTel-spec names.
|
|
10
10
|
*
|
|
11
|
+
* The user-facing `endpoint` is treated as a *full* OTLP/HTTP traces URL
|
|
12
|
+
* (e.g., `http://127.0.0.1:5147/v1/traces`), so we map it to
|
|
13
|
+
* `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` (signal-specific full URL per OTel
|
|
14
|
+
* spec) rather than `OTEL_EXPORTER_OTLP_ENDPOINT` (which is a base URL the
|
|
15
|
+
* SDK appends `/v1/traces` to). This way both the OTel SDK (when used) and
|
|
16
|
+
* pinta-cc's hand-written transport agree on the URL without any path
|
|
17
|
+
* manipulation downstream.
|
|
18
|
+
*
|
|
11
19
|
* Pinta Manager auto-injects `CLAUDE_PLUGIN_OPTION_*` via Claude Code's
|
|
12
20
|
* settings.json. OSS users fill them in via the `/plugin install` UI.
|
|
13
21
|
*
|
|
14
|
-
* Existing
|
|
22
|
+
* Existing OTEL_EXPORTER_OTLP_TRACES_ENDPOINT / HEADERS take precedence
|
|
23
|
+
* (explicit override).
|
|
15
24
|
*/
|
|
16
25
|
export declare function bridgeUserConfigToOtelEnv(): void;
|
package/dist/core/env-bridge.js
CHANGED
|
@@ -11,14 +11,25 @@ exports.bridgeUserConfigToOtelEnv = bridgeUserConfigToOtelEnv;
|
|
|
11
11
|
* canonical OTel env names so transport.ts (and any future OTel SDK adoption)
|
|
12
12
|
* can read them via the OTel-spec names.
|
|
13
13
|
*
|
|
14
|
+
* The user-facing `endpoint` is treated as a *full* OTLP/HTTP traces URL
|
|
15
|
+
* (e.g., `http://127.0.0.1:5147/v1/traces`), so we map it to
|
|
16
|
+
* `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` (signal-specific full URL per OTel
|
|
17
|
+
* spec) rather than `OTEL_EXPORTER_OTLP_ENDPOINT` (which is a base URL the
|
|
18
|
+
* SDK appends `/v1/traces` to). This way both the OTel SDK (when used) and
|
|
19
|
+
* pinta-cc's hand-written transport agree on the URL without any path
|
|
20
|
+
* manipulation downstream.
|
|
21
|
+
*
|
|
14
22
|
* Pinta Manager auto-injects `CLAUDE_PLUGIN_OPTION_*` via Claude Code's
|
|
15
23
|
* settings.json. OSS users fill them in via the `/plugin install` UI.
|
|
16
24
|
*
|
|
17
|
-
* Existing
|
|
25
|
+
* Existing OTEL_EXPORTER_OTLP_TRACES_ENDPOINT / HEADERS take precedence
|
|
26
|
+
* (explicit override).
|
|
18
27
|
*/
|
|
19
28
|
function bridgeUserConfigToOtelEnv() {
|
|
20
|
-
if (process.env.CLAUDE_PLUGIN_OPTION_ENDPOINT &&
|
|
21
|
-
process.env.
|
|
29
|
+
if (process.env.CLAUDE_PLUGIN_OPTION_ENDPOINT &&
|
|
30
|
+
!process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) {
|
|
31
|
+
process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT =
|
|
32
|
+
process.env.CLAUDE_PLUGIN_OPTION_ENDPOINT;
|
|
22
33
|
}
|
|
23
34
|
if (process.env.CLAUDE_PLUGIN_OPTION_API_KEY && !process.env.OTEL_EXPORTER_OTLP_HEADERS) {
|
|
24
35
|
process.env.OTEL_EXPORTER_OTLP_HEADERS =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-bridge.js","sourceRoot":"","sources":["../../src/core/env-bridge.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"env-bridge.js","sourceRoot":"","sources":["../../src/core/env-bridge.ts"],"names":[],"mappings":";;AAwBA,8DAYC;AApCD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,yBAAyB;IACvC,IACE,OAAO,CAAC,GAAG,CAAC,6BAA6B;QACzC,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAC/C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kCAAkC;YAC5C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,0BAA0B;YACpC,uBAAuB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;IACtE,CAAC;AACH,CAAC"}
|
package/dist/core/transport.js
CHANGED
|
@@ -16,11 +16,24 @@ function parseHeadersEnv(raw) {
|
|
|
16
16
|
return out;
|
|
17
17
|
}
|
|
18
18
|
function getOptions() {
|
|
19
|
-
|
|
19
|
+
// OTLP/HTTP spec: TRACES_ENDPOINT is the full URL (no append by exporter);
|
|
20
|
+
// ENDPOINT is a base URL the SDK appends /v1/traces to. We treat the
|
|
21
|
+
// value as a full URL — env-bridge maps CLAUDE_PLUGIN_OPTION_ENDPOINT to
|
|
22
|
+
// TRACES_ENDPOINT specifically. For OSS users who set ENDPOINT directly,
|
|
23
|
+
// assume base URL and append /v1/traces.
|
|
24
|
+
const tracesEndpoint = process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT;
|
|
25
|
+
const baseEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
26
|
+
let endpoint;
|
|
27
|
+
if (tracesEndpoint) {
|
|
28
|
+
endpoint = tracesEndpoint.replace(/\/+$/, "");
|
|
29
|
+
}
|
|
30
|
+
else if (baseEndpoint) {
|
|
31
|
+
endpoint = baseEndpoint.replace(/\/+$/, "") + "/v1/traces";
|
|
32
|
+
}
|
|
20
33
|
if (!endpoint)
|
|
21
34
|
return null;
|
|
22
35
|
return {
|
|
23
|
-
endpoint
|
|
36
|
+
endpoint,
|
|
24
37
|
headers: parseHeadersEnv(process.env.OTEL_EXPORTER_OTLP_HEADERS),
|
|
25
38
|
};
|
|
26
39
|
}
|
|
@@ -69,7 +82,8 @@ class Transport {
|
|
|
69
82
|
const ctrl = new AbortController();
|
|
70
83
|
const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
|
|
71
84
|
try {
|
|
72
|
-
|
|
85
|
+
// opts.endpoint is the full traces URL — no path append.
|
|
86
|
+
const res = await fetch(opts.endpoint, {
|
|
73
87
|
method: "POST",
|
|
74
88
|
headers: {
|
|
75
89
|
"Content-Type": "application/json",
|
|
@@ -79,7 +93,21 @@ class Transport {
|
|
|
79
93
|
signal: ctrl.signal,
|
|
80
94
|
});
|
|
81
95
|
if (!res.ok) {
|
|
82
|
-
|
|
96
|
+
let body = "";
|
|
97
|
+
try {
|
|
98
|
+
body = (await res.text()).slice(0, 200);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
/* ignore */
|
|
102
|
+
}
|
|
103
|
+
const hint = res.status === 401 || res.status === 403
|
|
104
|
+
? " — check OTEL_EXPORTER_OTLP_HEADERS (relay token)"
|
|
105
|
+
: res.status === 404
|
|
106
|
+
? " — check OTEL_EXPORTER_OTLP_TRACES_ENDPOINT path"
|
|
107
|
+
: res.status >= 500
|
|
108
|
+
? " — collector may be down"
|
|
109
|
+
: "";
|
|
110
|
+
process.stderr.write(`[pinta-cc] OTLP POST ${res.status} ${opts.endpoint}${hint}${body ? ` body=${body}` : ""}\n`);
|
|
83
111
|
return false;
|
|
84
112
|
}
|
|
85
113
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,uCAAuC;AAGvC,MAAM,UAAU,GAAG,IAAI,CAAC;AAOxB,SAAS,eAAe,CAAC,GAAuB;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"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"}
|