@tangle-network/agent-eval 0.207.1 → 0.207.3

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
@@ -4,6 +4,14 @@ All notable changes to `@tangle-network/agent-eval` and its sibling `agent-eval-
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.207.3] — 2026-10-04
8
+
9
+ - fix(supervisor-run): count a receipt as a native session only when its copy is complete and holds a session file (#932)
10
+
11
+ ## [0.207.2] — 2026-10-04
12
+
13
+ - fix(supervisor-run): count every spawned worker and report the root apart in the trace summary (#930)
14
+
7
15
  ## [0.207.1] — 2026-10-04
8
16
 
9
17
  - fix(supervisor-run): read native transcript receipts from reconciled nodes and the root (#928)
@@ -7,7 +7,7 @@ import { a as ExactAnalystBudgetPolicy, c as RegistryRunOpts, i as BudgetPolicy,
7
7
  import { a as createTraceAnalyst, c as BehavioralAnalystOptions, i as TraceAnalystDefinition, l as behavioralAnalyst, n as buildDefaultAnalystRegistry, o as renderPriorFindings, r as CreateTraceAnalystOptions, s as runTraceAnalyst, t as DefaultAnalystRegistryOptions, u as deriveEfficiencyFindings } from "../default-registry-BHEfZHQd.js";
8
8
  import { a as TraceAnalystLimits, c as RawAnalystEvidence, d as evidenceRefsFromRawFinding, f as parseRawFinding, i as TraceAnalysisEngineResult, l as RawAnalystFinding, n as TraceAnalysisEngine, o as resolveTraceAnalystLimits, r as TraceAnalysisEngineRequest, s as RAW_FINDING_SCHEMA_PROMPT, t as DEFAULT_TRACE_ANALYST_OUTPUT_TOKENS, u as RawAnalystFindingSchema } from "../engine-F_PvwesR.js";
9
9
  import { n as buildTraceToolsForGroup, t as TraceToolGroupName } from "../tool-groups-B7_jUPHp.js";
10
- import { A as SemanticConceptJudgeInput, C as DspyRlmTraceEngineOptions, E as createChatTraceEngine, S as renderFindingSubject, T as ChatTraceEngineOptions, _ as FindingSubject, a as FAILURE_MODE_KIND_SPEC, b as findingSubjectGrammarPromptFor, c as emitControlIntegrityFindings, d as FindingsStore, f as PersistedFinding, g as FINDING_SUBJECT_SYNTAX, h as FINDING_SUBJECT_KINDS, i as IMPROVEMENT_KIND_SPEC, j as SemanticConceptJudgeOptions, l as DiffPolicy, m as diffFindings, n as KNOWLEDGE_POISONING_KIND_SPEC, o as CONTROL_INTEGRITY_ANALYST, p as defaultIsMaterial, r as KNOWLEDGE_GAP_KIND_SPEC, s as ControlIntegrityAnalyst, t as DEFAULT_TRACE_ANALYST_KINDS, u as FindingsDiff, v as FindingSubjectKind, w as createDspyRlmTraceEngine, x as parseFindingSubject, y as KIND_EXPECTED_SUBJECTS } from "../index-C9l_-23M.js";
10
+ import { A as SemanticConceptJudgeInput, C as DspyRlmTraceEngineOptions, E as createChatTraceEngine, S as renderFindingSubject, T as ChatTraceEngineOptions, _ as FindingSubject, a as FAILURE_MODE_KIND_SPEC, b as findingSubjectGrammarPromptFor, c as emitControlIntegrityFindings, d as FindingsStore, f as PersistedFinding, g as FINDING_SUBJECT_SYNTAX, h as FINDING_SUBJECT_KINDS, i as IMPROVEMENT_KIND_SPEC, j as SemanticConceptJudgeOptions, l as DiffPolicy, m as diffFindings, n as KNOWLEDGE_POISONING_KIND_SPEC, o as CONTROL_INTEGRITY_ANALYST, p as defaultIsMaterial, r as KNOWLEDGE_GAP_KIND_SPEC, s as ControlIntegrityAnalyst, t as DEFAULT_TRACE_ANALYST_KINDS, u as FindingsDiff, v as FindingSubjectKind, w as createDspyRlmTraceEngine, x as parseFindingSubject, y as KIND_EXPECTED_SUBJECTS } from "../index-DzYX3WBL.js";
11
11
  import { A as ReplyRowDecoded, C as primeProtocolSha256, D as DecodedReply, E as runPrimeExchange, M as decodeReplyRows, O as ReplyContract, S as normalizePrimeUsage, T as projectPrimeTrajectory, _ as buildPrimePrompt, a as PrimeProjectionOutcome, b as extractPrimeJsonObject, c as PrimeProtocolIdentity, d as PrimeRepairPromptSpec, f as PrimeRepairState, g as analystUsageReceiptFromPrimeUsage, h as PrimeTurnRecord, i as PrimeProjectionDelivery, j as ReplyRowRejection, k as ReplyEnvelope, l as PrimeRawUsage, m as PrimeRowDecoded, n as PrimeExchangeOutcome, o as PrimeProjectionSource, p as PrimeReplyContract, r as PrimeFailure, s as PrimePromptSpec, t as PrimeExchangeOptions, u as PrimeRejectedRow, v as buildPrimeRepairPrompt, w as primeReplyDefect, x as mergePrimeRawUsage, y as emptyPrimeRawUsage } from "../prime-protocol-IoN4Qb6c.js";
12
12
  import { i as nodeHttpPrimeBridgeTransport, n as PrimeBridgeTransportRequest, r as PrimeBridgeTransportResult, t as PrimeBridgeTransport } from "../prime-bridge-transport-6feEglLf.js";
13
13
  import { a as askTraceQuestions, i as VerifiedTraceFinding, n as TraceQuestionOutcome, o as citedSpansOnly, r as TraceQuestionSpec, t as AskTraceQuestionsOptions } from "../trace-questions-Dd3AMf-U.js";
package/dist/cli.js CHANGED
@@ -8,7 +8,7 @@ import { t as createChatClient } from "./chat-client-5LLl4Ctl.js";
8
8
  import { t as runAnalystBenchmarkCommand } from "./benchmark-command-DtP94cOB.js";
9
9
  import { a as runRpcBatch, o as runRpcOnce, p as handleVersion, r as startServerAsync, s as buildOpenApi } from "./server-CoBZO1fj.js";
10
10
  import { A as editCreditText, E as front, f as renderMetaSearchText, h as landscape, k as editCredit, l as metaSearch, m as formatLandscape, n as taskMatrix, o as skillManifold, r as formatSkillManifold, t as tree, x as surfaceTextEdits } from "./tree-CN8mlzUO.js";
11
- import { t as runSupervisorRunCommand } from "./report-command-_vNf8qJv.js";
11
+ import { t as runSupervisorRunCommand } from "./report-command-pXtxg5YK.js";
12
12
  import { createHash } from "node:crypto";
13
13
  import { existsSync, readFileSync, writeFileSync } from "node:fs";
14
14
  import { dirname, join } from "node:path";
@@ -6,7 +6,7 @@ import { o as Severity } from "./multi-layer-verifier-BUaQ4C17.js";
6
6
  import { l as ExactCapableAnalyst } from "./exact-types-BBMMYk3g.js";
7
7
  import { i as TraceAnalystDefinition } from "./default-registry-BHEfZHQd.js";
8
8
  import { n as TraceAnalysisEngine } from "./engine-F_PvwesR.js";
9
- import { C as SupervisorRunSources, w as SupervisorRunTree } from "./types-v6nRcIqg.js";
9
+ import { C as SupervisorRunSources, w as SupervisorRunTree } from "./types-DjOMwGY_.js";
10
10
  //#region src/semantic-concept-judge.d.ts
11
11
  /**
12
12
  * Implementation complexity class for weighted scoring.
@@ -476,4 +476,4 @@ declare const KNOWLEDGE_POISONING_KIND_SPEC: TraceAnalystDefinition;
476
476
  declare const DEFAULT_TRACE_ANALYST_KINDS: readonly TraceAnalystDefinition[];
477
477
  //#endregion
478
478
  export { SemanticConceptJudgeInput as A, DspyRlmTraceEngineOptions as C, ConceptFinding as D, createChatTraceEngine as E, SemanticConceptJudgeResult as M, runSemanticConceptJudge as N, ConceptSpec as O, renderFindingSubject as S, ChatTraceEngineOptions as T, FindingSubject as _, FAILURE_MODE_KIND_SPEC as a, findingSubjectGrammarPromptFor as b, emitControlIntegrityFindings as c, FindingsStore as d, PersistedFinding as f, FINDING_SUBJECT_SYNTAX as g, FINDING_SUBJECT_KINDS as h, IMPROVEMENT_KIND_SPEC as i, SemanticConceptJudgeOptions as j, SEMANTIC_CONCEPT_JUDGE_VERSION as k, DiffPolicy as l, diffFindings as m, KNOWLEDGE_POISONING_KIND_SPEC as n, CONTROL_INTEGRITY_ANALYST as o, defaultIsMaterial as p, KNOWLEDGE_GAP_KIND_SPEC as r, ControlIntegrityAnalyst as s, DEFAULT_TRACE_ANALYST_KINDS as t, FindingsDiff as u, FindingSubjectKind as v, createDspyRlmTraceEngine as w, parseFindingSubject as x, KIND_EXPECTED_SUBJECTS as y };
479
- //# sourceMappingURL=index-C9l_-23M.d.ts.map
479
+ //# sourceMappingURL=index-DzYX3WBL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-C9l_-23M.d.ts","names":[],"sources":["../src/semantic-concept-judge.ts","../src/analyst/chat-trace-engine.ts","../src/analyst/trace-tool-callback.ts","../src/analyst/dspy-rlm-engine.ts","../src/analyst/finding-subject.ts","../src/analyst/findings-store.ts","../src/analyst/kinds/control-integrity.ts","../src/analyst/kinds/failure-mode.ts","../src/analyst/kinds/improvement.ts","../src/analyst/kinds/knowledge-gap.ts","../src/analyst/kinds/knowledge-poisoning.ts","../src/analyst/kinds/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDY;UAEK;EACf;;EAEA;;EAEA;;EAEA,aAAa;;UAGE;EACf;EACA;;EAEA;EACA;EACA,UAAU;;UAGK;;EAEf;;EAEA;;EAEA,aAAa;IAAQ;IAAc;;;EAEnC,kBAAkB;;EAElB;EACA;;UAGe;EACf;EACA;;EAEA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;;EAEA;EACA;;;;;;;;KASU;UAQK;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,MAAM;;EAEN,UAAU;EACV,aAAa;EACb;EACA,WAAW;EACX,SAAS;;;;;;EAMT,iBAAiB;;EAEjB,oBAAoB,QAAQ,OAAO;;cAKxB;;;;;;iBAkGS,wBACpB,OAAO,2BACP,SAAS,8BACR,QAAQ;;;UCjMM;;;;;EAKf,MAAM;;EAEN;;EAEA,UAAU;;EAEV;;EAEA;;EAEA,WAAW;;EAEX;;;;;;;;;;EAUA;;;;;;iBAkCc,sBAAsB,SAAS,yBAAyB;;;KCrG5D,0BAA0B;;;UCYrB;;EAEf,MAAM;;EAEN;;EAEA,kBAAkB,aAAa;EAC/B;;EAEA,UAAU;;EAEV;;EAEA;;;;;;EAMA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,kBAAkB,QAAQ;;EAE1B;;;;;;;;;;EAUA;;EAEA,SAAS;;EAET;;;iBAIc,yBAAyB,SAAS,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCtClE;EAEN;EAAwB;EAAc;;EACtC;EAAyB;;EACzB;EAAuB;;EACvB;EAAyB;;EAGzB;EAAuB;;EACvB;EAAe;;EACf;EAAkB;EAAc;;EAChC;EAAkB;;EAClB;EAAa;EAAgB;;EAC7B;EAAc;;EACd;EAAkB;;EAClB;EAAkB;;EAClB;EAAwB;;EACxB;EAAuB;;EACvB;EAAc;;EACd;EAAa;EAAgB;;EAC7B;EAAgB;;EAChB;EAAqB;;EACrB;EAAuB;;EAEvB;EAA4B;;EAC5B;EAA2B;;EAE3B;EAAiB;;KAEX,qBAAqB;cAEpB,uBAAuB,cAAc;;;;;;;;;;;;;;;;;iBAgGlC,oBAAoB,iCAAiC;;;;;;;iBAoHrD,qBAAqB,GAAG;;;;;;;;;;cA8D3B,wBAAwB,SAAS,OAAO;;;;;;;;;cAoExC,wBAAwB,eAAe,cAAc;;iBAqElD,+BAA+B;;;;;;;;UCxc9B,yBAAyB;EACxC;;cAGW;WAGiB;mBAFX;EAEjB,YAA4B;EAItB,OAAO,eAAe,UAAU,mBAAmB;;EAQzD,WAAW;;EAkBX,QAAQ,gBAAgB;;UAOT;;EAEf,UAAU;;EAEV,aAAa;;EAEb,WAAW;;;;;EAKX,SAAS;IAAQ,UAAU;IAAkB,SAAS;;;UAGvC;;;;;;;;EAQf,cAAc,UAAU,gBAAgB,SAAS;;;;;;iBAOnC,kBAAkB,GAAG,gBAAgB,GAAG;;;;;iBAWxC,aACd,UAAU,oBACV,SAAS,oBACT,SAAQ,aACP;;;;iBC7Fa,6BACd,OAAO,uBAAuB,mBAC9B,qBACC;;cA4BU,mCACA,oBAAoB,uBAAuB;WAE7C;WACA;WAEA;WACA;IAAS;IAAgC;;WACzC;WACA;aACP;aACA;;EAGI,QACJ,OAAO,uBAAuB,mBAC9B,KAAK,iBACJ,QAAQ;;cAUA,2BAAyB;;;cCHzB,wBAAwB;;;cC3BxB,uBAAuB;;;cCGvB,yBAAyB;;;cCPzB,+BAA+B;;;;;;;;;;;;cCP/B,sCAAsC"}
1
+ {"version":3,"file":"index-DzYX3WBL.d.ts","names":[],"sources":["../src/semantic-concept-judge.ts","../src/analyst/chat-trace-engine.ts","../src/analyst/trace-tool-callback.ts","../src/analyst/dspy-rlm-engine.ts","../src/analyst/finding-subject.ts","../src/analyst/findings-store.ts","../src/analyst/kinds/control-integrity.ts","../src/analyst/kinds/failure-mode.ts","../src/analyst/kinds/improvement.ts","../src/analyst/kinds/knowledge-gap.ts","../src/analyst/kinds/knowledge-poisoning.ts","../src/analyst/kinds/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDY;UAEK;EACf;;EAEA;;EAEA;;EAEA,aAAa;;UAGE;EACf;EACA;;EAEA;EACA;EACA,UAAU;;UAGK;;EAEf;;EAEA;;EAEA,aAAa;IAAQ;IAAc;;;EAEnC,kBAAkB;;EAElB;EACA;;UAGe;EACf;EACA;;EAEA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;;EAEA;EACA;;;;;;;;KASU;UAQK;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,MAAM;;EAEN,UAAU;EACV,aAAa;EACb;EACA,WAAW;EACX,SAAS;;;;;;EAMT,iBAAiB;;EAEjB,oBAAoB,QAAQ,OAAO;;cAKxB;;;;;;iBAkGS,wBACpB,OAAO,2BACP,SAAS,8BACR,QAAQ;;;UCjMM;;;;;EAKf,MAAM;;EAEN;;EAEA,UAAU;;EAEV;;EAEA;;EAEA,WAAW;;EAEX;;;;;;;;;;EAUA;;;;;;iBAkCc,sBAAsB,SAAS,yBAAyB;;;KCrG5D,0BAA0B;;;UCYrB;;EAEf,MAAM;;EAEN;;EAEA,kBAAkB,aAAa;EAC/B;;EAEA,UAAU;;EAEV;;EAEA;;;;;;EAMA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,kBAAkB,QAAQ;;EAE1B;;;;;;;;;;EAUA;;EAEA,SAAS;;EAET;;;iBAIc,yBAAyB,SAAS,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCtClE;EAEN;EAAwB;EAAc;;EACtC;EAAyB;;EACzB;EAAuB;;EACvB;EAAyB;;EAGzB;EAAuB;;EACvB;EAAe;;EACf;EAAkB;EAAc;;EAChC;EAAkB;;EAClB;EAAa;EAAgB;;EAC7B;EAAc;;EACd;EAAkB;;EAClB;EAAkB;;EAClB;EAAwB;;EACxB;EAAuB;;EACvB;EAAc;;EACd;EAAa;EAAgB;;EAC7B;EAAgB;;EAChB;EAAqB;;EACrB;EAAuB;;EAEvB;EAA4B;;EAC5B;EAA2B;;EAE3B;EAAiB;;KAEX,qBAAqB;cAEpB,uBAAuB,cAAc;;;;;;;;;;;;;;;;;iBAgGlC,oBAAoB,iCAAiC;;;;;;;iBAoHrD,qBAAqB,GAAG;;;;;;;;;;cA8D3B,wBAAwB,SAAS,OAAO;;;;;;;;;cAoExC,wBAAwB,eAAe,cAAc;;iBAqElD,+BAA+B;;;;;;;;UCxc9B,yBAAyB;EACxC;;cAGW;WAGiB;mBAFX;EAEjB,YAA4B;EAItB,OAAO,eAAe,UAAU,mBAAmB;;EAQzD,WAAW;;EAkBX,QAAQ,gBAAgB;;UAOT;;EAEf,UAAU;;EAEV,aAAa;;EAEb,WAAW;;;;;EAKX,SAAS;IAAQ,UAAU;IAAkB,SAAS;;;UAGvC;;;;;;;;EAQf,cAAc,UAAU,gBAAgB,SAAS;;;;;;iBAOnC,kBAAkB,GAAG,gBAAgB,GAAG;;;;;iBAWxC,aACd,UAAU,oBACV,SAAS,oBACT,SAAQ,aACP;;;;iBC7Fa,6BACd,OAAO,uBAAuB,mBAC9B,qBACC;;cA4BU,mCACA,oBAAoB,uBAAuB;WAE7C;WACA;WAEA;WACA;IAAS;IAAgC;;WACzC;WACA;aACP;aACA;;EAGI,QACJ,OAAO,uBAAuB,mBAC9B,KAAK,iBACJ,QAAQ;;cAUA,2BAAyB;;;cCHzB,wBAAwB;;;cC3BxB,uBAAuB;;;cCGvB,yBAAyB;;;cCPzB,+BAA+B;;;;;;;;;;;;cCP/B,sCAAsC"}
package/dist/index.d.ts CHANGED
@@ -30,7 +30,7 @@ import { c as RegistryRunOpts, i as BudgetPolicy, n as AnalystRegistry, r as Ana
30
30
  import { _ as SelfImproveMethodResult, a as DefinedAgentEval, c as SelfImproveMethodOptions, d as SelfImproveProposerOptions, f as SelfImproveProposerResult, g as SelfImproveMethodProvenance, h as selfImprove, i as DefineAgentEvalOptions, l as SelfImproveOptions, n as AgentEvalEvaluateOptions, o as defineAgentEval, p as SelfImproveResult, r as AgentEvalImproveOptions, s as SelfImproveBudget, t as AgentEvalAgent, u as SelfImproveProgressEvent } from "./define-agent-eval-B2YV-RDE.js";
31
31
  import { a as createTraceAnalyst, i as TraceAnalystDefinition, n as buildDefaultAnalystRegistry, r as CreateTraceAnalystOptions, t as DefaultAnalystRegistryOptions } from "./default-registry-BHEfZHQd.js";
32
32
  import { i as TraceAnalysisEngineResult, l as RawAnalystFinding, n as TraceAnalysisEngine, t as DEFAULT_TRACE_ANALYST_OUTPUT_TOKENS } from "./engine-F_PvwesR.js";
33
- import { A as SemanticConceptJudgeInput, C as DspyRlmTraceEngineOptions, D as ConceptFinding, E as createChatTraceEngine, M as SemanticConceptJudgeResult, N as runSemanticConceptJudge, O as ConceptSpec, T as ChatTraceEngineOptions, _ as FindingSubject, a as FAILURE_MODE_KIND_SPEC, d as FindingsStore, f as PersistedFinding, j as SemanticConceptJudgeOptions, k as SEMANTIC_CONCEPT_JUDGE_VERSION, l as DiffPolicy, m as diffFindings, t as DEFAULT_TRACE_ANALYST_KINDS, u as FindingsDiff, v as FindingSubjectKind, w as createDspyRlmTraceEngine } from "./index-C9l_-23M.js";
33
+ import { A as SemanticConceptJudgeInput, C as DspyRlmTraceEngineOptions, D as ConceptFinding, E as createChatTraceEngine, M as SemanticConceptJudgeResult, N as runSemanticConceptJudge, O as ConceptSpec, T as ChatTraceEngineOptions, _ as FindingSubject, a as FAILURE_MODE_KIND_SPEC, d as FindingsStore, f as PersistedFinding, j as SemanticConceptJudgeOptions, k as SEMANTIC_CONCEPT_JUDGE_VERSION, l as DiffPolicy, m as diffFindings, t as DEFAULT_TRACE_ANALYST_KINDS, u as FindingsDiff, v as FindingSubjectKind, w as createDspyRlmTraceEngine } from "./index-DzYX3WBL.js";
34
34
  import { i as BenchmarkEvaluation } from "./types-DZQpUJse.js";
35
35
  import { a as SpanHandle, n as CaptureWrite, o as TraceEmitter, s as TraceEmitterOptions, t as CaptureErrorHandler } from "./emitter-HcCmFQl_.js";
36
36
  import { n as SandboxDriver } from "./sandbox-harness-BlSOu4LX.js";
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "@tangle-network/agent-eval — wire protocol",
5
- "version": "0.207.1",
5
+ "version": "0.207.3",
6
6
  "description": "HTTP and stdio RPC interface to agent-eval. The TypeScript runtime is the source of truth; this spec is the contract that cross-language clients (Python, Rust, Go) generate from.\n\nWire-protocol version: 1.1.0. Bumps on breaking changes to request/response schemas.",
7
7
  "contact": {
8
8
  "name": "Tangle Network",
@@ -1064,16 +1064,56 @@ function keepReceipt(fact, receipt) {
1064
1064
  fact.receipt = receipt;
1065
1065
  }
1066
1066
  /**
1067
- * What this reader can say about harness-session traces: how many nodes carry an available
1068
- * native transcript receipt. Runtime records the session identity on each receipt, so the run's
1069
- * sessions are read per node (`workers[].nativeSession`), not through one command.
1067
+ * The files each harness writes its conversation to. A receipt can be available and complete
1068
+ * while holding none of them: on the 2026-10-04 trace proof a Pi worker that never wrote a session
1069
+ * stored only `.pi/agent/models-store.json`, and this summary counted it as a transcript.
1070
1070
  */
1071
- function nativeTraceSummary(transcripts) {
1072
- const sessions = [...transcripts.values()].map((transcript) => transcript.nativeSession);
1073
- const receipted = sessions.filter((session) => session !== null).length;
1074
- const available = sessions.filter((session) => session?.status === "available").length;
1075
- if (receipted === 0) return "unavailable — no node carries a Runtime harness transcript receipt";
1076
- return `per node — ${available} of ${transcripts.size} nodes carry an available native harness transcript (${receipted - available} receipt(s) name why not); read workers[].nativeSession`;
1071
+ const HARNESS_SESSION_FILE = {
1072
+ "claude-code": /(^|\/)\.claude\/projects\/.+\.jsonl$/u,
1073
+ codex: /(^|\/)\.codex\/sessions\/.+\.jsonl$/u,
1074
+ pi: /(^|\/)\.pi\/agent\/sessions\/.+\.jsonl$/u,
1075
+ opencode: /(^|\/)(\.local\/share\/opencode\/(opencode\.db|storage\/session\/.+\.json|export\/.+\.json)|\.opencode\/sessions\/.+)$/u
1076
+ };
1077
+ /** Session files the receipt's transcript blob lists, or undefined when it cannot say. */
1078
+ async function receiptSessionFiles(file) {
1079
+ let descriptor;
1080
+ try {
1081
+ descriptor = JSON.parse(await readFile(file, "utf8"));
1082
+ } catch {
1083
+ return;
1084
+ }
1085
+ const harness = record(descriptor)?.harness;
1086
+ const files = record(descriptor)?.files;
1087
+ const pattern = typeof harness === "string" ? HARNESS_SESSION_FILE[harness] : void 0;
1088
+ if (pattern === void 0 || !Array.isArray(files)) return void 0;
1089
+ return files.filter((entry) => {
1090
+ const path = record(entry)?.path;
1091
+ return typeof path === "string" && pattern.test(path);
1092
+ }).length;
1093
+ }
1094
+ function nativeSessionState(session) {
1095
+ if (session === null || session === void 0) return "none";
1096
+ if (session.status !== "available") return "unavailable";
1097
+ if (session.coverageComplete === false) return "partial";
1098
+ if (session.sessionFiles === 0) return "no-session-file";
1099
+ return "complete";
1100
+ }
1101
+ /**
1102
+ * What this reader can say about harness-session traces. Every spawned worker counts, including
1103
+ * one that recorded nothing; the root is reported apart because its receipt lives in result.json
1104
+ * (`rootHarnessTranscript`), not on a worker. Runtime records the session identity on each
1105
+ * receipt, so the sessions are read per node, not through one command. A receipt counts as a
1106
+ * session only when its copy is complete and holds a file the harness writes its conversation to.
1107
+ */
1108
+ function nativeTraceSummary(workers, root) {
1109
+ const states = workers.map((worker) => nativeSessionState(worker.nativeSession));
1110
+ const count = (state) => states.filter((s) => s === state).length;
1111
+ const rootSession = root?.nativeSession ?? null;
1112
+ const rootState = nativeSessionState(rootSession);
1113
+ const rootText = rootSession === null ? "no receipt" : rootSession.status === "unavailable" ? `unavailable (${rootSession.reason})` : rootState === "complete" ? "complete" : rootState === "partial" ? "partial copy" : "no session file";
1114
+ if (rootSession === null && states.every((state) => state === "none")) return "unavailable — no node carries a Runtime harness transcript receipt";
1115
+ const gaps = [count("partial") > 0 ? `${count("partial")} only a partial copy` : null, count("no-session-file") > 0 ? `${count("no-session-file")} a receipt with no session file` : null].filter((gap) => gap !== null);
1116
+ return `per node — ${count("complete")} of ${workers.length} workers carry a complete native session receipt (workers[].nativeSession)${gaps.length > 0 ? `; ${gaps.join("; ")}` : ""}; root: ${rootText} (result.json rootHarnessTranscript)`;
1077
1117
  }
1078
1118
  async function workspaceCapturesFromOutput(runDir, ref) {
1079
1119
  const outRef = typeof ref === "string" ? ref : null;
@@ -1219,10 +1259,16 @@ async function nodeTranscripts(runDir, events, nodeIds, root) {
1219
1259
  if (fact.receipt !== null) {
1220
1260
  if (fact.receipt.status === "available") {
1221
1261
  const file = blobFile(runDir, fact.receipt.transcriptRef);
1222
- nativeSession = file !== null && await isFile(file) ? {
1223
- status: "available",
1224
- ref: file
1225
- } : {
1262
+ if (file !== null && await isFile(file)) {
1263
+ const sessionFiles = await receiptSessionFiles(file);
1264
+ const coverageComplete = fact.receipt.coverageComplete;
1265
+ nativeSession = {
1266
+ status: "available",
1267
+ ref: file,
1268
+ ...typeof coverageComplete === "boolean" ? { coverageComplete } : {},
1269
+ ...sessionFiles === void 0 ? {} : { sessionFiles }
1270
+ };
1271
+ } else nativeSession = {
1226
1272
  status: "unavailable",
1227
1273
  reason: "receipt-blob-missing"
1228
1274
  };
@@ -1365,7 +1411,7 @@ async function readRuntimeSupervisorRun(runDir, opts = {}) {
1365
1411
  limits: sourceLimits(normalized.root, normalized.events, workerIds),
1366
1412
  rootTranscriptRef: await isFile(rootStream) ? rootStream : null,
1367
1413
  rootWorkspaceCaptures: transcripts.get(normalized.root)?.workspaceCaptures ?? null,
1368
- traceCommand: nativeTraceSummary(transcripts)
1414
+ traceCommand: nativeTraceSummary(workers, transcripts.get(normalized.root))
1369
1415
  };
1370
1416
  }
1371
1417
  /** The agent-runtime file-backed layout as a `SupervisorRunReader`. */
@@ -1619,4 +1665,4 @@ async function runSupervisorRunCommand(argv, io = PROCESS_IO) {
1619
1665
  //#endregion
1620
1666
  export { writeSupervisorRunReport as a, readRuntimeSupervisorRun as c, renderSupervisorRunHeadline as d, renderSupervisorRunMarkdown as f, rollupSupervisorRuns as h, reportSupervisorRound as i, runtimeSupervisorRunReader as l, parsePatch as m, analyzeSupervisorRun as n, writeSupervisorRunReportSafe as o, analyzeSupervisorRunSources as p, findSupervisorRunDirs as r, isRuntimeSupervisorRunDir as s, runSupervisorRunCommand as t, renderSupervisorRollupMarkdown as u };
1621
1667
 
1622
- //# sourceMappingURL=report-command-_vNf8qJv.js.map
1668
+ //# sourceMappingURL=report-command-pXtxg5YK.js.map