@damngamerz/pi-otel 0.1.1 → 0.1.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented here.
4
4
 
5
+ ## 0.1.2
6
+
7
+ - feat: tolerant JSON parser fallback for judge responses
8
+ - feat: add thinking-content detection in judge errors
9
+ - feat: `reasoning: "off"` for judge calls
10
+ - feat: increase judge maxTokens from 1_200 to 4_000
11
+ - feat: Grafana URL shown in /otel-status output
12
+ - build: bump @types/node to 25.9.5
13
+
5
14
  ## 0.1.1
6
15
 
7
16
  - fix: safe JSON.parse in judge parser (no judge-response leak in errors)
package/README.md CHANGED
@@ -30,7 +30,7 @@ pi install npm:@damngamerz/pi-otel
30
30
  For a pinned install:
31
31
 
32
32
  ```bash
33
- pi install npm:@damngamerz/pi-otel@0.1.0
33
+ pi install npm:@damngamerz/pi-otel@0.1.1
34
34
  ```
35
35
 
36
36
  ## Local Grafana quick start
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA0B/D,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,MAAM,YAAY,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,gBAAgB,GAAG,SAAS,GAC5C,IAAI,CAiCN"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA4B/D,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,MAAM,YAAY,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,gBAAgB,GAAG,SAAS,GAC5C,IAAI,CAkCN"}
@@ -1,4 +1,5 @@
1
1
  import { createConnection } from "node:net";
2
+ const GRAFANA_URL = "http://127.0.0.1:33000";
2
3
  function probe(endpoint, timeoutMs = 500) {
3
4
  let url;
4
5
  try {
@@ -44,6 +45,7 @@ export function registerStatusCommand(pi, getConfig, getRuntime) {
44
45
  const stats = runtime.stats;
45
46
  ctx.ui.notify([
46
47
  `OTLP: ${config.endpoint} (${reachable ? "reachable" : "unreachable"})`,
48
+ `Grafana: ${GRAFANA_URL}`,
47
49
  `Evaluation: ${config.evaluation.mode} via ${config.evaluation.provider}/${config.evaluation.model}`,
48
50
  "Capture: baseline metadata only; evaluation content follows the configured mode",
49
51
  `Prompts: ${stats.prompts}`,
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/evaluation/evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAoD3B"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/evaluation/evaluator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAqE3B"}
@@ -30,15 +30,25 @@ export async function runRemoteEvaluation(ctx, pair, config) {
30
30
  apiKey: auth.apiKey,
31
31
  ...(auth.headers ? { headers: auth.headers } : {}),
32
32
  ...(auth.env ? { env: auth.env } : {}),
33
- maxTokens: 1_200,
33
+ maxTokens: 4_000,
34
34
  cacheRetention: "none",
35
35
  timeoutMs: 90_000,
36
36
  maxRetries: 1,
37
37
  signal: AbortSignal.timeout(90_000),
38
+ reasoning: "off",
38
39
  });
39
40
  const responseText = messageText(response);
40
- if (!responseText)
41
- throw new Error(`Judge returned no text (${response.stopReason})`);
41
+ if (!responseText) {
42
+ const content = response.content;
43
+ const hadThinking = Array.isArray(content) &&
44
+ content.some((part) => !!part &&
45
+ typeof part === "object" &&
46
+ "type" in part &&
47
+ part.type === "thinking" &&
48
+ typeof part.thinking === "string" &&
49
+ part.thinking.trim().length > 0);
50
+ throw new Error(`Judge returned no text (stopReason=${response.stopReason}${hadThinking ? "; thinking content was produced but no text" : ""})`);
51
+ }
42
52
  const result = parseJudgeResult(responseText);
43
53
  return {
44
54
  batch: {
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/evaluation/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/evaluation/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/evaluation/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAC;AAKpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAiD/D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/evaluation/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAC;AAMpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAqD/D"}
@@ -1,4 +1,5 @@
1
1
  import { safeDimension } from "../privacy/sanitization.js";
2
+ import { tolerantJsonParse } from "./tolerant-json.js";
2
3
  const REQUIRED_NAMES = ["task_success", "instruction_following", "relevance", "correctness"];
3
4
  const VALID_LABELS = new Set(["poor", "fair", "good", "excellent"]);
4
5
  export function parseJudgeResult(text) {
@@ -11,8 +12,13 @@ export function parseJudgeResult(text) {
11
12
  parsed = JSON.parse(candidateText);
12
13
  }
13
14
  catch {
14
- const preview = candidateText.length > 200 ? candidateText.slice(0, 200) + "..." : candidateText;
15
- throw new Error(`Judge returned unparseable JSON: ${preview}`);
15
+ try {
16
+ parsed = tolerantJsonParse(candidateText);
17
+ }
18
+ catch {
19
+ const preview = candidateText.length > 200 ? candidateText.slice(0, 200) + "..." : candidateText;
20
+ throw new Error(`Judge returned unparseable JSON: ${preview}`);
21
+ }
16
22
  }
17
23
  const scores = (parsed.scores ?? []).map((entry) => {
18
24
  if (typeof entry.score !== "number" || !Number.isFinite(entry.score)) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/evaluation/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/evaluation/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Attempt to repair common LLM JSON issues: trailing commas,
3
+ * // and /* * / comments, missing commas between objects/arrays/strings.
4
+ */
5
+ export declare function tolerantJsonParse(source: string): unknown;
6
+ //# sourceMappingURL=tolerant-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tolerant-json.d.ts","sourceRoot":"","sources":["../../src/evaluation/tolerant-json.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAgFzD"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Attempt to repair common LLM JSON issues: trailing commas,
3
+ * // and /* * / comments, missing commas between objects/arrays/strings.
4
+ */
5
+ export function tolerantJsonParse(source) {
6
+ let repaired = "";
7
+ let i = 0;
8
+ while (i < source.length) {
9
+ const char = source[i];
10
+ if (char === undefined)
11
+ break;
12
+ if (char === '"') {
13
+ repaired += char;
14
+ i++;
15
+ while (i < source.length) {
16
+ const s = source[i];
17
+ if (s === undefined)
18
+ break;
19
+ repaired += s;
20
+ if (s === "\\" && i + 1 < source.length) {
21
+ repaired += source[i + 1] ?? "";
22
+ i += 2;
23
+ continue;
24
+ }
25
+ i++;
26
+ if (s === '"')
27
+ break;
28
+ }
29
+ continue;
30
+ }
31
+ // // comments
32
+ if (char === "/" && i + 1 < source.length && source[i + 1] === "/") {
33
+ i += 2;
34
+ while (i < source.length && source[i] !== "\n")
35
+ i++;
36
+ continue;
37
+ }
38
+ // /* */ comments
39
+ if (char === "/" && i + 1 < source.length && source[i + 1] === "*") {
40
+ i += 2;
41
+ while (i < source.length && !(source[i] === "*" && i + 1 < source.length && source[i + 1] === "/")) {
42
+ i++;
43
+ }
44
+ i += 2;
45
+ continue;
46
+ }
47
+ // trailing commas
48
+ if (char === ",") {
49
+ i++;
50
+ while (i < source.length && /\s/.test(source[i] ?? ""))
51
+ i++;
52
+ if (i < source.length) {
53
+ const next = source[i];
54
+ if (next === "}" || next === "]")
55
+ continue;
56
+ }
57
+ repaired += ",";
58
+ continue;
59
+ }
60
+ // missing commas between }/{, ]/[, }/", ]/"
61
+ if (char === "}" || char === "]") {
62
+ repaired += char;
63
+ i++;
64
+ while (i < source.length && /\s/.test(source[i] ?? ""))
65
+ i++;
66
+ if (i < source.length) {
67
+ const next = source[i];
68
+ if (next === "{" || next === "[" || next === '"') {
69
+ repaired += ",";
70
+ }
71
+ }
72
+ continue;
73
+ }
74
+ if (/\s/.test(char)) {
75
+ repaired += char;
76
+ i++;
77
+ continue;
78
+ }
79
+ repaired += char;
80
+ i++;
81
+ }
82
+ return JSON.parse(repaired);
83
+ }
84
+ //# sourceMappingURL=tolerant-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tolerant-json.js","sourceRoot":"","sources":["../../src/evaluation/tolerant-json.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- export declare const VERSION = "0.1.1";
2
+ export declare const VERSION = "0.1.2";
3
3
  export default function piOtel(pi: ExtensionAPI): void;
4
4
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import { anonymize } from "./privacy/sanitization.js";
10
10
  import { containsLikelySecret } from "./privacy/secret-detector.js";
11
11
  import { TelemetryProviders } from "./telemetry/providers.js";
12
12
  import { TelemetryRuntime } from "./telemetry/traces.js";
13
- export const VERSION = "0.1.1";
13
+ export const VERSION = "0.1.2";
14
14
  const STATUS_ID = "damngamerz-pi-otel";
15
15
  const JUDGE_STATUS_ID = "damngamerz-pi-otel-judge";
16
16
  export default function piOtel(pi) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@damngamerz/pi-otel",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Privacy-conscious OpenTelemetry traces, metrics, and optional LLM evaluation for Pi",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -83,7 +83,7 @@
83
83
  "@biomejs/biome": "2.5.4",
84
84
  "@earendil-works/pi-ai": "0.80.10",
85
85
  "@earendil-works/pi-coding-agent": "0.80.10",
86
- "@types/node": "22.19.11",
86
+ "@types/node": "25.9.5",
87
87
  "tsx": "4.23.1",
88
88
  "typescript": "7.0.2"
89
89
  }