diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c6d59a3..8e328a8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -38,7 +38,9 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile - name: Typecheck - run: bun run typecheck + run: | + bun run typecheck + bun node_modules/typescript/bin/tsc --project scripts/bench/tsconfig.json focused-tests: name: Focused tests @@ -70,6 +72,7 @@ jobs: awk -F/ ' /^packages\/[^/]+\// { print $1 "/" $2 } /^apps\/electron\// { print "apps/electron" } + /^scripts\/bench\// { print "scripts/bench" } ' /tmp/changed-files.txt | sort -u ) diff --git "a/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\346\225\260\346\215\256\351\235\242\350\257\225\350\257\264\346\230\216.md" "b/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\346\225\260\346\215\256\351\235\242\350\257\225\350\257\264\346\230\216.md" new file mode 100644 index 0000000..2bea842 --- /dev/null +++ "b/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\346\225\260\346\215\256\351\235\242\350\257\225\350\257\264\346\230\216.md" @@ -0,0 +1,93 @@ +# Trail 性能数据:面试说明与追问 + +## 30 秒版本 + +> 这组数据来自我为 Trail 补建的真实接口基准。研究 Runner 按策略选择数据能力,最多同时执行 4 项。我用同一套代码加串行执行闸门作为对照,固定 AAPL 价值分析、NVDA 风险复核、MSFT 成长分析三个任务,每个任务测 10 对,交替执行顺序。只计从开始取数到进入综合阶段的时间。30 对样本的两组中位数是 4.54 秒和 1.34 秒,降低约 70%。全部 220 次正式能力调用成功,成对的数据哈希一致。我保存了脚本、日志、环境与原始快照。这不包含模型综合时间,也不是一个历史串行版本到新版本的发布效果。 + +这里的“我”应对应你实际审阅、理解并能维护的工作;本次脚本和实验由 Codex 在授权下执行,不能因有证据包就声称独立手写全部项目。 + +## 1. 这组数字是不是模拟出来的? + +不是人工 `sleep` 模拟接口延迟。调用项目已有 Longbridge 真实适配器和本机 CLI,返回公开金融数据。只有计时后的报告综合使用本地规则,不请求付费模型。`payloads/` 保存实际取回的数据,`trials.jsonl` 保存逐次轨迹。 + +2 秒的样本间隔用于控制请求节奏,发生在测量结束之后,不加入两组耗时。 + +## 2. 你改了什么才变快? + +本次没有修改生产取数代码,验证的是已有并发调度相对串行执行的收益。最早相关 Runner 提交已经是 4 路并发,所以不能编造“我发现历史串行瓶颈并改掉”的经历。本次新增工作是性能基准与可审计证据。如果面试官问原模块由谁设计,应按本人真实开发过程回答。 + +## 3. 串行对照是不是故意加延迟? + +没有人为给接口增加耗时。串行 Executor 使用 FIFO 互斥闸门,每次只有一个真实能力调用进入相同的 `super.run`;前一个完成就立即放行下一个,模拟依次等待请求结果的执行方式。并发组使用同一 Runner 原有 worker 池。排队时间计入取数总耗时,不是从单项耗时里手动求和捏造总时间。 + +## 4. 为什么能并行? + +这三个策略中各个能力使用相同的证券标识,取财报、估值、新闻或 K 线时不依赖另一工具的返回值,所以可以并发。报告综合需要这些输入,因此在 worker 全部结束后才进行。若后续工具依赖前一步结果,就不能直接放进同一批无依赖并行任务。 + +源码:`packages/shared/src/research/runner.ts` 的 `CONCURRENCY`、worker 循环和 `Promise.allSettled(workers)`。最多 4 路,有 3 项任务时实际只能同时执行 3 项。 + +## 5. 为什么不是严格快 4 倍? + +串行时间近似各任务耗时之和;一批互相独立的并行任务接近最慢任务加调度成本。请求时间不一样,网络、CLI 进程启动、服务端调度及资源争用都会影响结果;成长策略只有 3 项,也没有 4 倍上限空间。4 是并发数上限,不是性能承诺。 + +## 6. 测了多少次?成功率是什么? + +3 个固定任务,每个任务 10 对,每对两次运行,共 60 次正式运行。另有每任务一对预热,共 6 次,不入统计。正式调用数是 `4×20 + 4×20 + 3×20 = 220`,全部成功。 + +可以说“本次 60 次正式运行均完成”,不能用这个小样本声称系统长期 100% 成功。最初综合策略预检有 2 项失败,已保留,不能省略后扩大到所有策略。 + +## 7. 为什么用中位数?70.4% 怎么算? + +网络耗时会波动,中位数用于描述本次固定工作负载下的典型耗时,原始最小/最大值和均值也都提供。 + +两组各 30 次的中位数为 4540.24945 ms 和 1344.13440 ms: + +`1 − 1344.13440 / 4540.24945 = 70.395142%`。 + +70.4% 是“两组中位数之比”的降幅,不是每对降幅的平均值。逐对降幅中位数为 68.2%,统计量不同,并不矛盾。 + +## 8. 三个任务长度不同,合并会不会误导? + +所以报告同时列出逐任务结果。每任务各占 10 对,没有让某个任务数量更多。价值分析降低 70.9%,风险复核 69.4%,成长分析 64.0%。合并 70.4% 只适用于这个等量任务集合;不能说每个任务都降低了 70.4%。 + +## 9. 怎么知道不是少取数据才变快? + +两组使用同一策略和输入,检查计划能力都执行成功、传给综合器的数据包包含全部能力,并检查实际内容。独立审计要求财报三类报表均有数值,新闻非空且有标题/时间,EPS 有数值,K 线有数值价格。 + +30 对的完整规范化数据哈希全部一致,说明这次短会话里,两组交付给后续流程的数据内容一致。哈希相等证明内容相同,不证明供应商数据绝对正确或最新。 + +## 10. 是不是缓存导致并发更快? + +本次不启用应用级缓存和自动重试,并平衡先串行/先并发的顺序,避免每次总由后一组享受预热。每次新建 Router,但仍不能控制 CLI 或供应商服务端缓存。全部快照在本次会话中保持不变,也符合财务等低频数据的特征。 + +因此只能报告本次真实调用条件下的结果;要回答完全冷缓存或跨日期稳定效果,需要另外设计实验,本轮没有这项证据。 + +## 11. 模型生成报告也快了 70% 吗? + +没有测这个。计时止于 `synthesizing` 状态,模型综合的耗时不在分母。当前使用本地规则综合器,不能证明真实模型耗时、质量或 token 成本改善。模型如果很慢,取数阶段的改进对完整用户等待时间的占比可能较小。 + +## 12. Planner 是 LLM 自主规划吗? + +本次验证的路径是 `strategyId → 预设能力列表 → 输入构建 → 有界 worker 池`。它是策略驱动的确定性编排,不能把这次结果说成验证了任意问题的模型自主拆解与动态工具选择。公司对比也不在这三个单标的任务中。 + +## 13. 引用可追溯是什么意思?是不是答案一定正确? + +Runner 给报告分节附 `capabilityId`、`runId`、`fetchedAt` 和可用的 `instrumentId`。本次检查引用对应到实际成功的能力运行,另存 3 份完整实时报告,11 条引用都可沿运行 ID 找到数据。 + +它证明来源记录的关联,不证明所有自然语言因果结论正确,也不证明模型的 confidence 已校准。不能把引用映射通过写成“模型准确率 100%”。 + +## 14. 失败、超时和取消怎么办? + +现有 Executor 将失败、不可用和取消折叠为运行记录,Runner 等待 workers 后给出 completed/partial/failed 等状态。单能力超时上限 20 秒,最大 worker 数 4。正式实验保留所有尝试,只有两组都完成且校验通过的完整对才纳入性能统计,同时报告失败分母。 + +本次相关源码测试验证了超时、取消及部分失败路径;联网性能样本没有触发这些异常,所以不能把单元测试通过描述为线上故障恢复已被长时间验证。预检失败未修复。 + +## 15. 面试官现场要求复现时怎么做? + +展示 `manifest.json` 的基线 SHA、环境和协议,打开 `pairs.csv` 看逐次样本,运行离线审计重新计算结果;需要联网复测时按 `scripts/bench/README.md` 使用新目录,不覆盖原证据。 + +新运行可能因接口、授权或网络改变而不同。保留新结果并解释范围,不为了得到 70.4% 修改校验或删除慢样本。 + +## 自检 + +不看答案,自己画出“策略 → worker → Executor → Router → CLI → 综合 → 引用”的路径,并解释为什么计时止于综合前。如果还解释不清 FIFO 闸门、数据哈希、中位数与两组对照的区别,应先练会再把数字放进简历。 diff --git "a/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\350\241\245\346\265\213\344\270\216\347\256\200\345\216\206\350\257\201\346\215\256.md" "b/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\350\241\245\346\265\213\344\270\216\347\256\200\345\216\206\350\257\201\346\215\256.md" new file mode 100644 index 0000000..d5702bb --- /dev/null +++ "b/docs/benchmarks/2026-10-19-Trail-\346\200\247\350\203\275\350\241\245\346\265\213\344\270\216\347\256\200\345\216\206\350\257\201\346\215\256.md" @@ -0,0 +1,153 @@ +# Trail:Deep Research 数据获取补测与简历证据 + +测试日期:2026-10-19。项目仅限 `D:\folio\Trail`。生产源码基线:`324dc4ed958f73a0637a68e2e3d2334a6d7d1ba9`。 + +**可用结论:在本机、真实 Longbridge 接口、3 个固定策略与标的组合的 30 对测试中,现有最多 4 路并发的数据获取中位耗时为 1.344 秒,串行对照为 4.540 秒,按两组中位数计算降低 70.4%。** + +这组新数据替代原简历中无法核实的“9.6s → 5.2s、降低 46%”。它不是对旧数据的追认,也不是完整 Deep Research 报告生成速度、生产 SLA 或模型质量指标。 + +## 1. 问题背景 + +原简历数字缺少可定位的测试脚本、版本、计时边界和原始样本。计算 `(9.6-5.2)/9.6` 确实约为 46%,但计算成立不能证明两个输入值真实。 + +本轮在 Trail 当前相关文档、脚本及研究 Runner 历史中进行核查,没有定位到支撑原数字的实验记录。本轮不引用 ResearchTrail 的任何实现或结果。 + +## 2. 方案决策 + +使用真实 `ResearchRunner → CapabilityExecutor → 能力定义 → createRouterFetchers → ProviderRouter → LongbridgeFinancialDataProvider → Longbridge CLI`,不重写一个假执行器来模拟性能。 + +主实验保持生产 Runner 的 4-worker 池不变。串行组通过注入 Executor 的 FIFO 闸门,只让一个真实能力调用进入相同的 `CapabilityExecutor.run`;并发组不加串行闸门。两组使用相同能力、输入、超时、数据源和后续本地综合器。 + +串行组是本次实验对照。研究 Runner 最早相关提交 `73fb860` 已有 `CONCURRENCY = 4`,当前可见历史不能支持“原实现是串行,我后来改成并行”的故事。历史文件及提交列表已保存到证据目录。 + +预检先跑 NVDA 综合策略,16 项中 14 项成功、2 项失败: + +- `market.intraday`:`item.price.toFixed is not a function`。 +- `research.events`:适配层返回 `Longbridge request failed`;本轮未查明下层原因,不将其推断为网络、权限或服务端故障。 + +正式测量前,将范围固定为已有可用的价值分析、风险复核、成长分析。事件驱动与完整综合策略不在成功结论中。预检失败已原样保留,没有当作快速返回的性能成绩,也没有通过修改业务代码绕过失败。 + +## 3. 个人动作 + +本轮用户授权后,由 Codex 完成源码核查、基准脚本、真实接口调用、原始记录保存、独立复算及面试材料整理。没有修改生产 Runner、能力定义或数据适配器,没有提交、推送或发布。 + +新增脚本在 `scripts/bench/`。本轮可明确对应的工作是:建立性能证据、检查对照公平性、验证数据与引用完整性。既有模块的实际设计和个人负责范围仍应按原开发记录说明,不因补测而扩大归属。 + +## 4. 交付状态 + +**已完成本机真实接口技术验证。** 60 次正式运行全部完成,30 对均满足比较条件;220 次正式能力调用成功、0 次失败。另有 6 次预热运行,不计入性能统计。 + +额外做了 3 次实时正确性运行,共 11 次能力调用;保存完整能力记录、综合输入、报告和引用映射,11 条分节引用均能关联本次产生的成功能力记录。这 3 次运行不混入性能样本。 + +本轮模型调用为零:使用项目已有 `LocalResearchSynthesizer` 在取数计时之后完成报告流程。未验证真实大模型的事实正确性、投资结论质量、置信度校准或长篇报告效果。 + +本地相关验证为 34 项测试通过、0 失败;基准脚本及其传递依赖的 TypeScript 检查通过。完整命令和日志保存在正式证据目录 `validation.json`、`validation-tests.log` 与 `validation-typecheck.log`。这些是本地定向检查,不是全量 CI、桌面 E2E 或生产验收。 + +## 5. 落地范围 + +正式测量时间:北京时间 2026-10-19 16:36:55—16:42:16(manifest 保存 UTC 原时间)。 + +环境:Windows 10.0.26100、AMD Ryzen 9 7945HX、约 15.7 GiB 内存、Bun 1.4.2、Longbridge CLI 0.30.0。普通桌面环境,未隔离系统后台负载;测量期间也有轻量源码检查与编译检查,不将结果描述为专用性能实验室数据。 + +| 固定任务 | 能力集合 | 每组正式次数 | +|---|---|---:| +| AAPL.US / value | profile、valuation、financials、dividends | 10 | +| NVDA.US / risk-review | kline、financials、ratings、news | 10 | +| MSFT.US / growth | valuation、financials、earnings | 10 | + +每任务先预热一对,再正式测 10 对。轮换任务顺序,每个任务各有 5 对先串行、5 对先并发。每次运行后间隔 2 秒,不计入耗时。没有失败重试、补跑替换或手动删除样本。 + +计时边界:`fetching` 回调至 `synthesizing` 回调,使用 `performance.now()`。包含计划解析、调度和工具取数,不包含模型规划、模型综合、UI 呈现、Runner 构造、持久化检查点写盘和样本间隔。哈希、语义校验与快照写盘放在计时之后。 + +应用级缓存关闭,Router 默认不启用重试、熔断与缓存;只注册 Longbridge,无其他供应商或演示数据回退。CLI 和远端服务自身缓存状态不可控,不能声称测试完全消除了缓存影响。所有任务只取公开数据,没有访问持仓、余额、私人账户或交易操作。 + +## 6. 效果证据 + +下表均为每组耗时的中位数,采用未舍入值计算下降比例: + +| 固定任务 | 有效配对 | 串行对照 | 现有并发 | 降低比例 | +|---|---:|---:|---:|---:| +| AAPL 价值分析 | 10 | 4.557s | 1.328s | 70.9% | +| NVDA 风险复核 | 10 | 4.821s | 1.475s | 69.4% | +| MSFT 成长分析 | 10 | 3.429s | 1.235s | 64.0% | +| 三任务等量合并 | 30 | **4.540s** | **1.344s** | **70.4%** | + +合并结果的原始值为 4540.24945 ms 与 1344.13440 ms: + +`(4540.24945 - 1344.13440) / 4540.24945 × 100 = 70.395142%`。 + +串行范围 3.181—5.182s,并发范围 1.194—2.242s。两组均值分别为 4.272s、1.398s。不能把中位数降幅称为“平均降幅”;逐对降幅的中位数是 68.2%,它是另一个统计量。 + +固定任务内的配对 bootstrap(10,000 次、种子 20261019)得到中位数降幅约 68.4%—71.4% 的 95% 区间,仅描述本次会话内部波动,不覆盖跨机器、跨网络或跨日期变化。本报告不以这一区间承诺普遍性能。 + +独立审计结果: + +- 30 对都满足两组全部成功、相同计划、数据语义检查通过、分节引用关联检查通过。 +- 正式 220 次能力调用均成功,日志中的 220 条分节来源关联检查均通过。 +- 所有 30 对的完整规范化数据哈希均一致。66 次含预热运行共产生 11 份不同的公开数据快照,数据未在本次短会话中发生变化;这支持两组工作量可比,也说明不能据此声称覆盖了高频变化行情或不同缓存状态。 +- 独立检查财报 IS/BS/CF 三类报表存在数值字段,K 线存在数值收盘价,新闻具有标题与时间,EPS 具有数值。数据内容检查不是对财务信息真伪或时效性的外部核验。 +- 从实际开始/结束时间重算并发:串行组峰值 1,value/risk-review 组峰值 4,growth 组峰值 3,没有超过生产上限。 +- 统计从 `trials.jsonl` 独立复算,与 `summary.json` 一致;快照及计时源码哈希校验通过。 + +证据位置(相对仓库根目录): + +| 文件 | 用途 | +|---|---| +| `artifacts/research-fetch-live-20261019/manifest.json` | 版本、环境、协议、源码哈希 | +| `artifacts/research-fetch-live-20261019/trials.jsonl` | 66 次含预热运行的逐次记录 | +| `artifacts/research-fetch-live-20261019/pairs.csv` | 30 对原始耗时与下降比例 | +| `artifacts/research-fetch-live-20261019/audit.json` | 独立复算与审计结论 | +| `artifacts/research-fetch-live-20261019/payloads/` | 实时取回的公开数据快照 | +| `artifacts/research-fetch-live-20261019/source-snapshot/` | 实际计时使用的关键源码版本 | +| `artifacts/research-fetch-preflight-20261019/` | 16 项综合策略预检及两项失败 | +| `artifacts/research-fetch-correctness-20261019/` | 3 次额外实时正确性验证与完整报告 | + +计时完成后,当前脚本新增了“自动保存源码快照”和“失败返回非零退出码”,供未来复测使用。当前文件与计时版本因而存在这两处行政性差异;原测量版本完整保存在 `source-snapshot/scripts/bench/research-fetch.ts`,其哈希与 manifest 对应。现有数据及生产逻辑未因此改变。最初综合预检使用了更早的脚本版本,不能用正式测量的源码哈希替它作证明。 + +## 7. 个人边界 + +可以说“为 Trail 建立了可复现的性能对照”“验证最多 4 路并发在固定任务下的收益”。若实际负责该模块,也可以结合自己的开发记录说明设计与实现。 + +不能把本次串行对照包装成真实历史版本;不能说“本轮将生产代码从串行改为并行”,因为本轮没有这项代码改动。Git 提交作者信息也不能单独证明手写范围或独立完成程度。 + +源代码中的 Planner 是预设策略到能力列表的解析,非本轮已验证的 LLM 自主规划。单标的 ResearchRunner 测试也不能证明公司对比流程完成了同等验证。 + +引用证明的是报告分节到工具运行记录的关联,不证明每条模型推理都正确;报告中的 confidence 字段也不是经校准的概率。 + +## 8. 待补证据 + +- 原 9.6s、5.2s 的历史出处仍未找到,应从简历中替换。 +- 综合策略的两项失败尚未修复,本轮不为它们宣称成功。 +- 未测真实模型综合、完整 UI 到报告的端到端耗时、持久化恢复写盘开销、公司比较、生产用户规模或长期稳定性。 +- 单会话 3 个固定组合,不能外推所有证券、策略、网络或供应商。 +- 原模块的个人设计和开发责任,需要用户自己的开发记录和理解支撑。本轮材料不补造过去的经历。 + +## 9. 面试追问 + +详见同目录 `2026-10-19-Trail-性能数据面试说明.md`。至少能现场说明计时边界、串行闸门、worker 池、相同工作量、失败分母、中位数计算、缓存边界及为什么不等于完整报告提速。 + +## 升维迁移与候选简历表述 + +原始可核验事实:Runner 已有最多 4 路并发;本次建立 30 对真实接口样本并保存数据快照和审计。 + +升维动作:把孤立秒数改成“机制+样本与口径+真实效果+可核验证据”,同时保留对照和范围。 + +**建议采用:** + +> 为 Trail Deep Research 建立真实接口性能基准,覆盖 3 个固定研究任务、30 对测试;验证最多 4 路并发取数较串行对照将数据获取中位耗时由 4.54s 降至 1.34s(降低 70.4%),并保留逐次日志、数据快照与复现脚本。 + +**若保留原工作流描述,可改为:** + +> Deep Research 投资研究工作流:基于预设研究策略编排行情、财务、估值及新闻工具,以最多 4 路并发获取数据并交由综合器生成报告;在 3 个固定任务、30 对真实接口测试中,数据获取中位耗时较串行对照降低约 70%(4.54s → 1.34s),报告分节关联底层工具运行记录。 + +第二种写法仍需按本人实际负责范围使用,避免把整个仓库的能力都算作个人实现。项目经历中已有具体职责时,可选择更短的指标句: + +> 在 3 个固定任务、30 对真实接口测试中,验证并发取数较串行对照将数据获取中位耗时降低约 70%(4.54s → 1.34s)。 + +不建议写“全流程提速 70%”“优化前 4.54s、优化后 1.34s”“准确率 100%”“自动研究所有场景”。 + +## 复现与保管 + +命令和协议详见 `scripts/bench/README.md`。在 Windows CMD 进入 Trail 后,使用新的输出目录运行测量和审计;先检查预检失败,再解释正式结果。真实接口的新测值出现波动是正常的,不能要求未来每次恰好得到 70.4%。 + +`artifacts/` 被 Git 忽略。供 PR 长期核验的原始证据 ZIP、逐次日志、配对 CSV、汇总、审计及预检失败记录,已复制到 [evidence/2026-10-19/](evidence/2026-10-19/README.md)。ZIP 保持补测完成时的原始字节,包含完整数据快照、计时源码与逐文件 SHA-256 清单。解包后可以按清单验证文件内容,再运行离线审计。 diff --git a/docs/benchmarks/evidence/2026-10-19/README.md b/docs/benchmarks/evidence/2026-10-19/README.md new file mode 100644 index 0000000..3e3f048 --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/README.md @@ -0,0 +1,41 @@ +# 2026-10-19 Trail 真实接口性能证据 + +本目录固定保存这次测量的可核验结果。测试基线为 `324dc4ed958f73a0637a68e2e3d2334a6d7d1ba9`;新增的基准脚本及文档当时尚未提交,测量实际使用的版本另存于 ZIP 内的 `source-snapshot/`,以 manifest 哈希核对。 + +## 结果与范围 + +3 个固定任务、30 对测试,60 次正式运行,另有 6 次预热。正式 220 次能力调用成功,30 对完整规范化数据哈希一致。 + +两组数据获取中位耗时:4540.24945 ms → 1344.13440 ms,降低 70.395142%(约 70.4%)。这是同一 Runner 的串行执行对照与现有最多 4 路并发的比较,不是历史发布前后效果,不包含真实模型综合或 UI。 + +| 文件 | 内容 | +|---|---| +| [manifest.json](manifest.json) | 协议、环境、基线 SHA 和计时源码哈希 | +| [trials.jsonl](trials.jsonl) | 66 次含预热运行的原始轨迹、数据哈希及校验标记 | +| [pairs.csv](pairs.csv) | 30 对串行/并发原始耗时 | +| [summary.json](summary.json) | 实验脚本汇总 | +| [audit.json](audit.json) | 独立复算、内容及并发校验 | +| [preflight-trials.jsonl](preflight-trials.jsonl) | 综合策略预检,14/16 成功,两项失败完整保留 | +| [correctness-checks.json](correctness-checks.json) | 额外 3 次实时正确性验证,11 条引用映射通过 | +| [validation.json](validation.json) | 测量阶段本地定向检查记录,34 项测试通过 | +| [Trail-20261019-evidence.zip](Trail-20261019-evidence.zip) | 完整原始证据包:公开数据快照、逐文件清单、源码副本、验证日志和完整正确性报告 | + +ZIP SHA-256:`911cad12785451b02016d7c9d4adaf3f44471a421702b6ccd42c74ee5e2ae437`。 + +ZIP 保留原始测量后的历史说明。其内文档、脚本不是 PR 后续更新版本;仓库中的当前文档增加了持久证据入口,当前脚本增加了源码快照保存、失败退出码及归档结果回归测试。原始测量数据没有被重写。 + +## Windows PowerShell 离线核验 + +从仓库根目录执行,不需要网络、Longbridge 授权或模型: + +```powershell +Get-FileHash -LiteralPath 'docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip' -Algorithm SHA256 +# 将解压目录名改为一个不存在的新目录,保留原始证据。 +Expand-Archive -LiteralPath 'docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip' -DestinationPath 'artifacts/evidence-offline-check' +bun run scripts/bench/audit-research-fetch.ts artifacts/evidence-offline-check/artifacts/research-fetch-live-20261019 +bun test ./scripts/bench/audit-research-fetch.test.ts +``` + +期望离线审计 `errors: []`、`payloadFailures: []`、`eligiblePairs: 30`,并复算相同中位数与比例。审计重写解压副本的 `audit.json` 时间戳,不改 ZIP。包内 `SHA256SUMS.json` 可用于逐文件检查,交付前已验证 60 个文件哈希。 + +新一轮真实接口复测命令见 [scripts/bench/README.md](../../../../scripts/bench/README.md)。新值可以随环境而变化,不要求再次恰好得到 70.4%。 diff --git a/docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip b/docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip new file mode 100644 index 0000000..402665a Binary files /dev/null and b/docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip differ diff --git a/docs/benchmarks/evidence/2026-10-19/audit.json b/docs/benchmarks/evidence/2026-10-19/audit.json new file mode 100644 index 0000000..63f9fc6 --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/audit.json @@ -0,0 +1,364 @@ +{ + "schema": "trail-research-fetch-audit/v1", + "auditedAt": "2026-10-19T08:42:26.300Z", + "errors": [], + "payloadFailures": [], + "measuredRuns": 60, + "warmupRuns": 6, + "eligiblePairs": 30, + "uniquePublicPayloads": 11, + "successfulCapabilityCalls": 220, + "failedCapabilityCalls": 0, + "sourceReferencesChecked": 220, + "sourceReferenceChecksAllPassed": true, + "serial": { + "n": 30, + "medianMs": 4540.249450000003, + "meanMs": 4271.8550300000015, + "minMs": 3180.60070000001, + "maxMs": 5181.745700000029 + }, + "parallel": { + "n": 30, + "medianMs": 1344.13440000001, + "meanMs": 1398.4650033333362, + "minMs": 1193.6149000000441, + "maxMs": 2242.4937999999966 + }, + "reductionOfMediansPct": 70.3951420554655, + "medianPairedReductionPct": 68.15619864538218, + "pairedBootstrap95Pct": [ + 68.3746858192681, + 71.37729396410703 + ], + "bootstrapMeaning": "10,000 paired resamples, stratified by fixed case; seed 20261019; within-session uncertainty only", + "exactPayloadMatchPairs": 30, + "pairs": [ + { + "caseId": "value-AAPL", + "round": 1, + "eligible": true, + "serialMs": 4668.169199999997, + "parallelMs": 1424.3169000000016, + "reductionPct": 69.48874732304043, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 2, + "eligible": true, + "serialMs": 4587.116500000004, + "parallelMs": 1195.3412000000098, + "reductionPct": 73.94133765732767, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 3, + "eligible": true, + "serialMs": 4353.385999999999, + "parallelMs": 1229.6255000000092, + "reductionPct": 71.75473298255635, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 4, + "eligible": true, + "serialMs": 4874.042300000001, + "parallelMs": 1321.6437999999907, + "reductionPct": 72.88403098184047, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 5, + "eligible": true, + "serialMs": 4724.4347000000125, + "parallelMs": 1295.7318999999843, + "reductionPct": 72.57382137168747, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 6, + "eligible": true, + "serialMs": 4809.862300000008, + "parallelMs": 1332.6609000000171, + "reductionPct": 72.29315899542456, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 7, + "eligible": true, + "serialMs": 4204.586299999995, + "parallelMs": 1362.8900999999896, + "reductionPct": 67.58563143299043, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 8, + "eligible": true, + "serialMs": 4298.91439999998, + "parallelMs": 1332.3643000000156, + "reductionPct": 69.00695905924476, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 9, + "eligible": true, + "serialMs": 4526.393700000015, + "parallelMs": 1415.549699999974, + "reductionPct": 68.72676585777394, + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 10, + "eligible": true, + "serialMs": 4244.506599999964, + "parallelMs": 1323.1083000000217, + "reductionPct": 68.82774784706346, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 1, + "eligible": true, + "serialMs": 5072.9444, + "parallelMs": 2044.6770000000033, + "reductionPct": 59.69447250397613, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 2, + "eligible": true, + "serialMs": 5026.340800000005, + "parallelMs": 1442.1893999999957, + "reductionPct": 71.3073693689852, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 3, + "eligible": true, + "serialMs": 4797.903399999996, + "parallelMs": 1376.7719999999972, + "reductionPct": 71.30471613913697, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 4, + "eligible": true, + "serialMs": 5067.349900000001, + "parallelMs": 1658.335699999996, + "reductionPct": 67.27410317570539, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 5, + "eligible": true, + "serialMs": 4843.681199999992, + "parallelMs": 1508.7062999999907, + "reductionPct": 68.8520726756337, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 6, + "eligible": true, + "serialMs": 4557.736900000018, + "parallelMs": 2242.4937999999966, + "reductionPct": 50.798085778053846, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 7, + "eligible": true, + "serialMs": 4616.210699999996, + "parallelMs": 1643.5576, + "reductionPct": 64.39595792280448, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 8, + "eligible": true, + "serialMs": 4554.105199999991, + "parallelMs": 1355.6079000000027, + "reductionPct": 70.23327656111226, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 9, + "eligible": true, + "serialMs": 5181.745700000029, + "parallelMs": 1394.1953999999678, + "reductionPct": 73.09409838464362, + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 10, + "eligible": true, + "serialMs": 4754.385899999994, + "parallelMs": 1386.6858000000357, + "reductionPct": 70.83354550584467, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 1, + "eligible": true, + "serialMs": 3567.1229999999996, + "parallelMs": 1269.1768999999986, + "reductionPct": 64.42015315984342, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 2, + "eligible": true, + "serialMs": 3655.652000000002, + "parallelMs": 1238.973100000003, + "reductionPct": 66.10801301655623, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 3, + "eligible": true, + "serialMs": 3628.739600000001, + "parallelMs": 1218.9438999999984, + "reductionPct": 66.40861471569913, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 4, + "eligible": true, + "serialMs": 3435.035999999993, + "parallelMs": 1217.5664000000106, + "reductionPct": 64.55447919614195, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 5, + "eligible": true, + "serialMs": 3422.9114999999874, + "parallelMs": 1384.6267999999982, + "reductionPct": 59.548273450832625, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 6, + "eligible": true, + "serialMs": 3337.5781000000134, + "parallelMs": 1230.7159000000102, + "reductionPct": 63.12548011985082, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 7, + "eligible": true, + "serialMs": 3510.4874999999884, + "parallelMs": 1466.8953000000038, + "reductionPct": 58.21391473406447, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 8, + "eligible": true, + "serialMs": 3266.6540000000095, + "parallelMs": 1238.289999999979, + "reductionPct": 62.09301627904347, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 9, + "eligible": true, + "serialMs": 3387.052400000044, + "parallelMs": 1208.6934000000474, + "reductionPct": 64.31429876904085, + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 10, + "eligible": true, + "serialMs": 3180.60070000001, + "parallelMs": 1193.6149000000441, + "reductionPct": 62.47202926164104, + "fullPayloadMatch": true + } + ], + "perCase": [ + { + "caseId": "value-AAPL", + "serial": { + "n": 10, + "medianMs": 4556.755100000009, + "meanMs": 4529.141199999997, + "minMs": 4204.586299999995, + "maxMs": 4874.042300000001 + }, + "parallel": { + "n": 10, + "medianMs": 1327.7363000000187, + "meanMs": 1323.3232600000015, + "minMs": 1195.3412000000098, + "maxMs": 1424.3169000000016 + }, + "reductionOfMediansPct": 70.86224142262954 + }, + { + "caseId": "risk-review-NVDA", + "serial": { + "n": 10, + "medianMs": 4820.792299999994, + "meanMs": 4847.240410000002, + "minMs": 4554.105199999991, + "maxMs": 5181.745700000029 + }, + "parallel": { + "n": 10, + "medianMs": 1475.4478499999932, + "meanMs": 1605.3220899999985, + "minMs": 1355.6079000000027, + "maxMs": 2242.4937999999966 + }, + "reductionOfMediansPct": 69.39407968271118 + }, + { + "caseId": "growth-MSFT", + "serial": { + "n": 10, + "medianMs": 3428.97374999999, + "meanMs": 3439.1834800000047, + "minMs": 3180.60070000001, + "maxMs": 3655.652000000002 + }, + "parallel": { + "n": 10, + "medianMs": 1234.5029499999946, + "meanMs": 1266.7496600000093, + "minMs": 1193.6149000000441, + "maxMs": 1466.8953000000038 + }, + "reductionOfMediansPct": 63.9978885810952 + } + ] +} \ No newline at end of file diff --git a/docs/benchmarks/evidence/2026-10-19/correctness-checks.json b/docs/benchmarks/evidence/2026-10-19/correctness-checks.json new file mode 100644 index 0000000..01c0c9c --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/correctness-checks.json @@ -0,0 +1,26 @@ +[ + { + "caseId": "value-AAPL", + "status": "completed", + "capabilities": 4, + "evidenceCount": 4, + "everyReferenceResolves": true, + "numericDataValid": true + }, + { + "caseId": "risk-review-NVDA", + "status": "completed", + "capabilities": 4, + "evidenceCount": 4, + "everyReferenceResolves": true, + "numericDataValid": true + }, + { + "caseId": "growth-MSFT", + "status": "completed", + "capabilities": 3, + "evidenceCount": 3, + "everyReferenceResolves": true, + "numericDataValid": true + } +] \ No newline at end of file diff --git a/docs/benchmarks/evidence/2026-10-19/manifest.json b/docs/benchmarks/evidence/2026-10-19/manifest.json new file mode 100644 index 0000000..901f1c4 --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/manifest.json @@ -0,0 +1,73 @@ +{ + "schema": "trail-research-fetch/v1", + "startedAt": "2026-10-19T08:36:55.943Z", + "project": "Trail", + "head": "324dc4ed958f73a0637a68e2e3d2334a6d7d1ba9", + "trackedChangesAtStart": "", + "environment": { + "platform": "win32", + "release": "10.0.26100", + "arch": "x64", + "cpu": "AMD Ryzen 9 7945HX with Radeon Graphics ", + "logicalCpus": 32, + "totalMemoryGiB": 15.68802261352539, + "bun": "1.4.2", + "node": "v26.3.0", + "longbridge": "longbridge 0.30.0", + "timezone": "Asia/Shanghai" + }, + "sourceHashes": { + "packages/shared/src/research/runner.ts": "cf5d92e5e51d8e9a260a6ac78dcef8b9bb4f4b041604e6d5855f887b3b804477", + "packages/shared/src/research/planner.ts": "e53205e2c165b92cf9a43e12ed108cfd55d974cd5d7c2f6537e7e0f9cfa9c28f", + "packages/shared/src/capabilities/executor.ts": "cbc5bb919993b23be1b4e23767f7acf4c7b7d5801ef412f9dfc39dc7ffd417e5", + "packages/shared/src/strategies/presets.ts": "b53c63074e2be39b544041e50e0eee7be63922a3ecff47fe91c68a30401c6fef", + "packages/shared/src/providers/router.ts": "b603d13b93309ef9b843d74aaddd7284dd8fd3a24912d4616291d4ef041ba552", + "packages/shared/src/providers/router-fetchers.ts": "2fe5edbb176458f48ec8dd9168ce7d2266bbc01d735d72b4a21ac5ab0bfaec6c", + "packages/shared/src/providers/longbridge/adapter.ts": "0b7df3e3401e58407858491ebe2a66aef0eff2479891b3fc99c313753a1c5746", + "scripts/bench/research-fetch.ts": "46346cd207288674fd5e543c54df1baaeda45a3ac793bbadd393a0a026cb2c29" + }, + "protocol": { + "preflight": false, + "repeats": 10, + "warmupPairsPerCase": 1, + "cooldownMs": 2000, + "cases": [ + { + "id": "value-AAPL", + "symbol": "AAPL.US", + "strategyId": "value" + }, + { + "id": "risk-review-NVDA", + "symbol": "NVDA.US", + "strategyId": "risk-review" + }, + { + "id": "growth-MSFT", + "symbol": "MSFT.US", + "strategyId": "growth" + } + ], + "primaryMetric": "monotonic time from fetching status callback to synthesizing status callback; ms", + "comparison": "unchanged ResearchRunner: FIFO-gated CapabilityExecutor (one active call) vs native worker pool (four)", + "baselineIsHistoricalVersion": false, + "provider": "Longbridge only via production ProviderRouter/createRouterFetchers", + "appCache": "disabled (router default; no MarketDataService cache)", + "providerCache": "uncontrolled/unknown", + "retries": "none (router default one attempt)", + "capabilityTimeoutMs": 20000, + "synthesis": "local deterministic synthesizer AFTER primary timing; no remote LLM", + "excluded": [ + "Electron/UI", + "model planning", + "LLM synthesis", + "durable checkpoint IO", + "broker/private account calls" + ], + "order": "alternate serial/parallel order by (round + caseIndex) parity; rotate case order each round", + "eligibility": "only matched pairs where BOTH runs and all capabilities succeed AND all semantic payload checks pass", + "failures": "every attempt retained; no retries, replacement, or selective deletion", + "payloadStorage": "public normalized data snapshots stored for equivalence audit; no auth/status output or account data", + "caseSelection": "Before paired measurement: comprehensive NVDA preflight failed market.intraday and research.events. Chose value/risk-review/growth presets using available capabilities; failures remain in separate preflight artifacts. No full-comprehensive or event-driven success claim." + } +} \ No newline at end of file diff --git a/docs/benchmarks/evidence/2026-10-19/pairs.csv b/docs/benchmarks/evidence/2026-10-19/pairs.csv new file mode 100644 index 0000000..5633068 --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/pairs.csv @@ -0,0 +1,31 @@ +case_id,round,eligible,serial_ms,parallel_ms,reduction_pct,exact_payload_match +value-AAPL,1,true,4668.169199999997,1424.3169000000016,69.48874732304043,true +value-AAPL,2,true,4587.116500000004,1195.3412000000098,73.94133765732767,true +value-AAPL,3,true,4353.385999999999,1229.6255000000092,71.75473298255635,true +value-AAPL,4,true,4874.042300000001,1321.6437999999907,72.88403098184047,true +value-AAPL,5,true,4724.4347000000125,1295.7318999999843,72.57382137168747,true +value-AAPL,6,true,4809.862300000008,1332.6609000000171,72.29315899542456,true +value-AAPL,7,true,4204.586299999995,1362.8900999999896,67.58563143299043,true +value-AAPL,8,true,4298.91439999998,1332.3643000000156,69.00695905924476,true +value-AAPL,9,true,4526.393700000015,1415.549699999974,68.72676585777394,true +value-AAPL,10,true,4244.506599999964,1323.1083000000217,68.82774784706346,true +risk-review-NVDA,1,true,5072.9444,2044.6770000000033,59.69447250397613,true +risk-review-NVDA,2,true,5026.340800000005,1442.1893999999957,71.3073693689852,true +risk-review-NVDA,3,true,4797.903399999996,1376.7719999999972,71.30471613913697,true +risk-review-NVDA,4,true,5067.349900000001,1658.335699999996,67.27410317570539,true +risk-review-NVDA,5,true,4843.681199999992,1508.7062999999907,68.8520726756337,true +risk-review-NVDA,6,true,4557.736900000018,2242.4937999999966,50.798085778053846,true +risk-review-NVDA,7,true,4616.210699999996,1643.5576,64.39595792280448,true +risk-review-NVDA,8,true,4554.105199999991,1355.6079000000027,70.23327656111226,true +risk-review-NVDA,9,true,5181.745700000029,1394.1953999999678,73.09409838464362,true +risk-review-NVDA,10,true,4754.385899999994,1386.6858000000357,70.83354550584467,true +growth-MSFT,1,true,3567.1229999999996,1269.1768999999986,64.42015315984342,true +growth-MSFT,2,true,3655.652000000002,1238.973100000003,66.10801301655623,true +growth-MSFT,3,true,3628.739600000001,1218.9438999999984,66.40861471569913,true +growth-MSFT,4,true,3435.035999999993,1217.5664000000106,64.55447919614195,true +growth-MSFT,5,true,3422.9114999999874,1384.6267999999982,59.548273450832625,true +growth-MSFT,6,true,3337.5781000000134,1230.7159000000102,63.12548011985082,true +growth-MSFT,7,true,3510.4874999999884,1466.8953000000038,58.21391473406447,true +growth-MSFT,8,true,3266.6540000000095,1238.289999999979,62.09301627904347,true +growth-MSFT,9,true,3387.052400000044,1208.6934000000474,64.31429876904085,true +growth-MSFT,10,true,3180.60070000001,1193.6149000000441,62.47202926164104,true diff --git a/docs/benchmarks/evidence/2026-10-19/preflight-trials.jsonl b/docs/benchmarks/evidence/2026-10-19/preflight-trials.jsonl new file mode 100644 index 0000000..cd115ed --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/preflight-trials.jsonl @@ -0,0 +1 @@ +{"trialId":"measure-1-preflight-comprehensive-NVDA-parallel","startedAt":"2026-10-19T08:36:00.286Z","caseId":"preflight-comprehensive-NVDA","symbol":"NVDA.US","strategyId":"comprehensive","round":1,"warmup":false,"mode":"parallel","fetchMs":6062.5873,"wallMs":6065.6233,"status":"partial","planned":["market.quote","market.kline","market.intraday","market.depth","market.trades","market.capitalFlow","market.sentiment","market.status","company.profile","company.valuation","company.financials","company.dividends","company.earnings","company.ratings","research.news","research.events"],"completed":["market.kline","market.depth","market.quote","market.sentiment","market.status","market.capitalFlow","market.trades","company.profile","company.valuation","company.financials","company.dividends","company.earnings","company.ratings","research.news"],"failed":["market.intraday","research.events"],"maxActive":4,"traces":[{"capabilityId":"market.intraday","submittedMs":1030.7037,"startedMs":1030.7039,"finishedMs":2348.1716,"durationMs":1317.4677000000001,"status":"failed","error":"item.price.toFixed is not a function. (In 'item.price.toFixed(2)', 'item.price.toFixed' is undefined)","payloadValid":false},{"capabilityId":"market.kline","submittedMs":982.2531,"startedMs":982.2535,"finishedMs":2411.0545,"durationMs":1428.8010000000002,"status":"success","payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","payloadValid":true,"emptyArray":false},{"capabilityId":"market.depth","submittedMs":1074.4313,"startedMs":1074.4317,"finishedMs":2458.5797,"durationMs":1384.1479999999997,"status":"success","payloadHash":"05a521c619c81a3038a53bb583c8c61c4f0b732bcd7b10d3694825c898b1c3d1","payloadFile":"payloads/05a521c619c81a3038a53bb583c8c61c4f0b732bcd7b10d3694825c898b1c3d1.json","payloadValid":true},{"capabilityId":"market.quote","submittedMs":927.5177,"startedMs":927.5179,"finishedMs":2504.2314,"durationMs":1576.7135,"status":"success","payloadHash":"24a00e97a5b04361cd3027e89a3d52d21314906f94dbaef7ad8901876517f5a9","payloadFile":"payloads/24a00e97a5b04361cd3027e89a3d52d21314906f94dbaef7ad8901876517f5a9.json","payloadValid":true},{"capabilityId":"market.sentiment","submittedMs":2459.0985,"startedMs":2459.0987,"finishedMs":3494.6014,"durationMs":1035.5027,"status":"success","payloadHash":"3de4d7b0f5c07e62f277658f36951e3332cace1cc840b4ddbed480f6210bd852","payloadFile":"payloads/3de4d7b0f5c07e62f277658f36951e3332cace1cc840b4ddbed480f6210bd852.json","payloadValid":true},{"capabilityId":"market.status","submittedMs":2504.8799,"startedMs":2504.8803,"finishedMs":3616.3931,"durationMs":1111.5128,"status":"success","payloadHash":"18e4f53172387ea023469455490327109c6d892b3cb5f210178b9d8afcc3a00f","payloadFile":"payloads/18e4f53172387ea023469455490327109c6d892b3cb5f210178b9d8afcc3a00f.json","payloadValid":true,"emptyArray":false},{"capabilityId":"market.capitalFlow","submittedMs":2412.0703,"startedMs":2412.0705,"finishedMs":3959.4299,"durationMs":1547.3594000000003,"status":"success","payloadHash":"53b6d5b5427e95ea5137dbfc268d6db61035d6387b9e9873a3de6c38c7c21078","payloadFile":"payloads/53b6d5b5427e95ea5137dbfc268d6db61035d6387b9e9873a3de6c38c7c21078.json","payloadValid":true},{"capabilityId":"market.trades","submittedMs":2348.2374,"startedMs":2348.2375,"finishedMs":4019.0692,"durationMs":1670.8316999999997,"status":"success","payloadHash":"cebb8f7728e022382a9f964351983056053b5dd8f8b2070b080b0512f06653ea","payloadFile":"payloads/cebb8f7728e022382a9f964351983056053b5dd8f8b2070b080b0512f06653ea.json","payloadValid":true,"emptyArray":false},{"capabilityId":"company.profile","submittedMs":3495.3156,"startedMs":3495.3158,"finishedMs":4518.5903,"durationMs":1023.2745,"status":"success","payloadHash":"7be6494e4b84b395e498a66380d85f4e1fe7be00d5db814ffb9bc525346af60c","payloadFile":"payloads/7be6494e4b84b395e498a66380d85f4e1fe7be00d5db814ffb9bc525346af60c.json","payloadValid":true},{"capabilityId":"company.valuation","submittedMs":3616.9476,"startedMs":3616.9478,"finishedMs":4747.2547,"durationMs":1130.3069000000005,"status":"success","payloadHash":"0c3c0dd6b6222da8fa13be7edba8fa36e6fa7339d230220d8fda6cd0c2aa771e","payloadFile":"payloads/0c3c0dd6b6222da8fa13be7edba8fa36e6fa7339d230220d8fda6cd0c2aa771e.json","payloadValid":true},{"capabilityId":"company.financials","submittedMs":3960.0926,"startedMs":3960.0929,"finishedMs":5170.8523,"durationMs":1210.7593999999995,"status":"success","payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json","payloadValid":true},{"capabilityId":"company.dividends","submittedMs":4019.8887,"startedMs":4019.889,"finishedMs":5221.2843,"durationMs":1201.3953000000001,"status":"success","payloadHash":"c7963b2157cead556ec99108035b3c1beb88c7b051a05fdc258639712d88a800","payloadFile":"payloads/c7963b2157cead556ec99108035b3c1beb88c7b051a05fdc258639712d88a800.json","payloadValid":true,"emptyArray":false},{"capabilityId":"research.events","submittedMs":5222.2525,"startedMs":5222.2527,"finishedMs":5319.8074,"durationMs":97.55469999999968,"status":"failed","error":"Longbridge request failed.","payloadValid":false},{"capabilityId":"company.earnings","submittedMs":4519.1271,"startedMs":4519.1273,"finishedMs":5562.0837,"durationMs":1042.9564,"status":"success","payloadHash":"145f4aa0d5f9d8d299331a93cf1cf6db518c10a2343e1eca53639185a76377f4","payloadFile":"payloads/145f4aa0d5f9d8d299331a93cf1cf6db518c10a2343e1eca53639185a76377f4.json","payloadValid":true,"emptyArray":false},{"capabilityId":"company.ratings","submittedMs":4747.7779,"startedMs":4747.7786,"finishedMs":6009.2654,"durationMs":1261.4868000000006,"status":"success","payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json","payloadValid":true},{"capabilityId":"research.news","submittedMs":5173.6106,"startedMs":5173.6109,"finishedMs":6988.8896,"durationMs":1815.2787000000008,"status":"success","payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","payloadValid":true,"emptyArray":false}],"semanticPayloadsValid":false,"sourceAttributionValid":false,"evidenceCount":14,"sectionCount":16,"synthesisInput":{"plannedCapabilities":["market.quote","market.kline","market.intraday","market.depth","market.trades","market.capitalFlow","market.sentiment","market.status","company.profile","company.valuation","company.financials","company.dividends","company.earnings","company.ratings","research.news","research.events"],"bundleCapabilityIds":["market.kline","market.depth","market.quote","market.sentiment","market.status","market.capitalFlow","market.trades","company.profile","company.valuation","company.financials","company.dividends","company.earnings","company.ratings","research.news"]}} diff --git a/docs/benchmarks/evidence/2026-10-19/summary.json b/docs/benchmarks/evidence/2026-10-19/summary.json new file mode 100644 index 0000000..36d871b --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/summary.json @@ -0,0 +1,534 @@ +{ + "finishedAt": "2026-10-19T08:42:16.702Z", + "measuredRuns": 60, + "warmupRuns": 6, + "completedRuns": 60, + "semanticValidRuns": 60, + "failureRuns": 0, + "eligiblePairs": 30, + "pairs": [ + { + "caseId": "value-AAPL", + "round": 1, + "eligible": true, + "serialMs": 4668.169199999997, + "parallelMs": 1424.3169000000016, + "reductionPct": 69.48874732304043, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 2, + "eligible": true, + "serialMs": 4587.116500000004, + "parallelMs": 1195.3412000000098, + "reductionPct": 73.94133765732767, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 3, + "eligible": true, + "serialMs": 4353.385999999999, + "parallelMs": 1229.6255000000092, + "reductionPct": 71.75473298255635, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 4, + "eligible": true, + "serialMs": 4874.042300000001, + "parallelMs": 1321.6437999999907, + "reductionPct": 72.88403098184047, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 5, + "eligible": true, + "serialMs": 4724.4347000000125, + "parallelMs": 1295.7318999999843, + "reductionPct": 72.57382137168747, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 6, + "eligible": true, + "serialMs": 4809.862300000008, + "parallelMs": 1332.6609000000171, + "reductionPct": 72.29315899542456, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 7, + "eligible": true, + "serialMs": 4204.586299999995, + "parallelMs": 1362.8900999999896, + "reductionPct": 67.58563143299043, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 8, + "eligible": true, + "serialMs": 4298.91439999998, + "parallelMs": 1332.3643000000156, + "reductionPct": 69.00695905924476, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 9, + "eligible": true, + "serialMs": 4526.393700000015, + "parallelMs": 1415.549699999974, + "reductionPct": 68.72676585777394, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "value-AAPL", + "round": 10, + "eligible": true, + "serialMs": 4244.506599999964, + "parallelMs": 1323.1083000000217, + "reductionPct": 68.82774784706346, + "samePayloadCapabilities": [ + "company.profile", + "company.valuation", + "company.financials", + "company.dividends" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 1, + "eligible": true, + "serialMs": 5072.9444, + "parallelMs": 2044.6770000000033, + "reductionPct": 59.69447250397613, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 2, + "eligible": true, + "serialMs": 5026.340800000005, + "parallelMs": 1442.1893999999957, + "reductionPct": 71.3073693689852, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 3, + "eligible": true, + "serialMs": 4797.903399999996, + "parallelMs": 1376.7719999999972, + "reductionPct": 71.30471613913697, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 4, + "eligible": true, + "serialMs": 5067.349900000001, + "parallelMs": 1658.335699999996, + "reductionPct": 67.27410317570539, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 5, + "eligible": true, + "serialMs": 4843.681199999992, + "parallelMs": 1508.7062999999907, + "reductionPct": 68.8520726756337, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 6, + "eligible": true, + "serialMs": 4557.736900000018, + "parallelMs": 2242.4937999999966, + "reductionPct": 50.798085778053846, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 7, + "eligible": true, + "serialMs": 4616.210699999996, + "parallelMs": 1643.5576, + "reductionPct": 64.39595792280448, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 8, + "eligible": true, + "serialMs": 4554.105199999991, + "parallelMs": 1355.6079000000027, + "reductionPct": 70.23327656111226, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 9, + "eligible": true, + "serialMs": 5181.745700000029, + "parallelMs": 1394.1953999999678, + "reductionPct": 73.09409838464362, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "risk-review-NVDA", + "round": 10, + "eligible": true, + "serialMs": 4754.385899999994, + "parallelMs": 1386.6858000000357, + "reductionPct": 70.83354550584467, + "samePayloadCapabilities": [ + "market.kline", + "company.financials", + "company.ratings", + "research.news" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 1, + "eligible": true, + "serialMs": 3567.1229999999996, + "parallelMs": 1269.1768999999986, + "reductionPct": 64.42015315984342, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 2, + "eligible": true, + "serialMs": 3655.652000000002, + "parallelMs": 1238.973100000003, + "reductionPct": 66.10801301655623, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 3, + "eligible": true, + "serialMs": 3628.739600000001, + "parallelMs": 1218.9438999999984, + "reductionPct": 66.40861471569913, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 4, + "eligible": true, + "serialMs": 3435.035999999993, + "parallelMs": 1217.5664000000106, + "reductionPct": 64.55447919614195, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 5, + "eligible": true, + "serialMs": 3422.9114999999874, + "parallelMs": 1384.6267999999982, + "reductionPct": 59.548273450832625, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 6, + "eligible": true, + "serialMs": 3337.5781000000134, + "parallelMs": 1230.7159000000102, + "reductionPct": 63.12548011985082, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 7, + "eligible": true, + "serialMs": 3510.4874999999884, + "parallelMs": 1466.8953000000038, + "reductionPct": 58.21391473406447, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 8, + "eligible": true, + "serialMs": 3266.6540000000095, + "parallelMs": 1238.289999999979, + "reductionPct": 62.09301627904347, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 9, + "eligible": true, + "serialMs": 3387.052400000044, + "parallelMs": 1208.6934000000474, + "reductionPct": 64.31429876904085, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + }, + { + "caseId": "growth-MSFT", + "round": 10, + "eligible": true, + "serialMs": 3180.60070000001, + "parallelMs": 1193.6149000000441, + "reductionPct": 62.47202926164104, + "samePayloadCapabilities": [ + "company.valuation", + "company.financials", + "company.earnings" + ], + "fullPayloadMatch": true + } + ], + "serial": { + "n": 30, + "medianMs": 4540.249450000003, + "meanMs": 4271.8550300000015, + "minMs": 3180.60070000001, + "maxMs": 5181.745700000029 + }, + "parallel": { + "n": 30, + "medianMs": 1344.13440000001, + "meanMs": 1398.4650033333362, + "minMs": 1193.6149000000441, + "maxMs": 2242.4937999999966 + }, + "reductionOfMediansPct": 70.3951420554655, + "medianPairedReductionPct": 68.15619864538218, + "perCase": [ + { + "caseId": "value-AAPL", + "eligiblePairs": 10, + "serial": { + "n": 10, + "medianMs": 4556.755100000009, + "meanMs": 4529.141199999997, + "minMs": 4204.586299999995, + "maxMs": 4874.042300000001 + }, + "parallel": { + "n": 10, + "medianMs": 1327.7363000000187, + "meanMs": 1323.3232600000015, + "minMs": 1195.3412000000098, + "maxMs": 1424.3169000000016 + }, + "reductionOfMediansPct": 70.86224142262954 + }, + { + "caseId": "risk-review-NVDA", + "eligiblePairs": 10, + "serial": { + "n": 10, + "medianMs": 4820.792299999994, + "meanMs": 4847.240410000002, + "minMs": 4554.105199999991, + "maxMs": 5181.745700000029 + }, + "parallel": { + "n": 10, + "medianMs": 1475.4478499999932, + "meanMs": 1605.3220899999985, + "minMs": 1355.6079000000027, + "maxMs": 2242.4937999999966 + }, + "reductionOfMediansPct": 69.39407968271118 + }, + { + "caseId": "growth-MSFT", + "eligiblePairs": 10, + "serial": { + "n": 10, + "medianMs": 3428.97374999999, + "meanMs": 3439.1834800000047, + "minMs": 3180.60070000001, + "maxMs": 3655.652000000002 + }, + "parallel": { + "n": 10, + "medianMs": 1234.5029499999946, + "meanMs": 1266.7496600000093, + "minMs": 1193.6149000000441, + "maxMs": 1466.8953000000038 + }, + "reductionOfMediansPct": 63.9978885810952 + } + ], + "allAttemptsStatus": { + "serial": { + "completed": 30 + }, + "parallel": { + "completed": 30 + } + } +} \ No newline at end of file diff --git a/docs/benchmarks/evidence/2026-10-19/trials.jsonl b/docs/benchmarks/evidence/2026-10-19/trials.jsonl new file mode 100644 index 0000000..bc0281c --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/trials.jsonl @@ -0,0 +1,66 @@ +{"trialId":"warmup-0-value-AAPL-serial","startedAt":"2026-10-19T08:36:56.084Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":0,"warmup":true,"mode":"serial","fetchMs":5071.8919000000005,"wallMs":5074.8328,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":253.7757,"startedMs":253.81,"finishedMs":1556.1964,"durationMs":1302.3864,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":302.392,"startedMs":1556.2027,"finishedMs":2776.7441,"durationMs":1220.5413999999998,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":302.3996,"startedMs":2776.7489,"finishedMs":3982.469,"durationMs":1205.7201,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":302.4043,"startedMs":3982.4743,"finishedMs":5325.2591,"durationMs":1342.7848000000004,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"warmup-0-value-AAPL-parallel","startedAt":"2026-10-19T08:37:03.167Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":0,"warmup":true,"mode":"parallel","fetchMs":1359.4215000000004,"wallMs":1361.2191999999995,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":7336.0475,"startedMs":7336.0478,"finishedMs":8396.5175,"durationMs":1060.4696999999996,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":7385.6522,"startedMs":7385.6525,"finishedMs":8474.9812,"durationMs":1089.3287,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":7434.3922,"startedMs":7434.3929,"finishedMs":8665.2143,"durationMs":1230.8213999999998,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":7485.2089,"startedMs":7485.2093,"finishedMs":8695.3944,"durationMs":1210.1850999999988,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"warmup-0-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:37:06.535Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":0,"warmup":true,"mode":"parallel","fetchMs":1824.3974999999991,"wallMs":1826.4892,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":10704.5852,"startedMs":10704.5855,"finishedMs":11769.9101,"durationMs":1065.3246,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":10765.9882,"startedMs":10765.9884,"finishedMs":12030.7451,"durationMs":1264.7567,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":10836.8872,"startedMs":10836.8877,"finishedMs":12138.1695,"durationMs":1301.2818000000007,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":10908.6953,"startedMs":10908.6962,"finishedMs":12528.9099,"durationMs":1620.2137000000002,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"warmup-0-risk-review-NVDA-serial","startedAt":"2026-10-19T08:37:10.369Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":0,"warmup":true,"mode":"serial","fetchMs":5014.547600000002,"wallMs":5016.6296999999995,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":14538.732,"startedMs":14538.7368,"finishedMs":15669.3179,"durationMs":1130.5810999999994,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":14599.7633,"startedMs":15669.3293,"finishedMs":16851.8998,"durationMs":1182.5704999999998,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":14599.7697,"startedMs":16851.917,"finishedMs":17967.9759,"durationMs":1116.0589,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":14599.7723,"startedMs":17968.0374,"finishedMs":19553.2116,"durationMs":1585.1741999999977,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"warmup-0-growth-MSFT-serial","startedAt":"2026-10-19T08:37:17.393Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":0,"warmup":true,"mode":"serial","fetchMs":3577.0779,"wallMs":3578.8862999999983,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":21562.0512,"startedMs":21562.0576,"finishedMs":22869.563,"durationMs":1307.5053999999982,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":21627.9094,"startedMs":22869.5712,"finishedMs":24029.9329,"durationMs":1160.3617000000013,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":21627.9299,"startedMs":24029.9371,"finishedMs":25139.0477,"durationMs":1109.1106,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"warmup-0-growth-MSFT-parallel","startedAt":"2026-10-19T08:37:22.979Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":0,"warmup":true,"mode":"parallel","fetchMs":1268.571100000001,"wallMs":1270.3934000000008,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":27148.0997,"startedMs":27148.1,"finishedMs":28145.7025,"durationMs":997.6025000000009,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":27238.471,"startedMs":27238.4713,"finishedMs":28362.0846,"durationMs":1123.6132999999973,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":27192.5951,"startedMs":27192.5953,"finishedMs":28416.5973,"durationMs":1224.0020000000004,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-1-value-AAPL-parallel","startedAt":"2026-10-19T08:37:26.253Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":1,"warmup":false,"mode":"parallel","fetchMs":1424.3169000000016,"wallMs":1425.630299999997,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":30421.8645,"startedMs":30421.8648,"finishedMs":31455.9704,"durationMs":1034.105599999999,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":30465.1537,"startedMs":30465.1542,"finishedMs":31487.0584,"durationMs":1021.9042000000009,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":30511.8104,"startedMs":30511.8105,"finishedMs":31638.9435,"durationMs":1127.1330000000016,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":30565.5375,"startedMs":30565.5377,"finishedMs":31846.1169,"durationMs":1280.5792000000001,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-1-value-AAPL-serial","startedAt":"2026-10-19T08:37:29.683Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":1,"warmup":false,"mode":"serial","fetchMs":4668.169199999997,"wallMs":4670.139599999995,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":33852.243,"startedMs":33852.246,"finishedMs":34983.6019,"durationMs":1131.3559000000023,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":33895.9161,"startedMs":34983.6059,"finishedMs":36068.1152,"durationMs":1084.509299999998,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":33895.9214,"startedMs":36068.1205,"finishedMs":37172.6394,"durationMs":1104.5189000000028,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":33895.9231,"startedMs":37172.6443,"finishedMs":38520.3303,"durationMs":1347.6860000000015,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-1-risk-review-NVDA-serial","startedAt":"2026-10-19T08:37:36.358Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":1,"warmup":false,"mode":"serial","fetchMs":5072.9444,"wallMs":5074.4208,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":40527.7644,"startedMs":40527.7673,"finishedMs":41839.5076,"durationMs":1311.7402999999977,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":40569.5322,"startedMs":41839.5119,"finishedMs":43003.4694,"durationMs":1163.957500000004,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":40569.5368,"startedMs":43003.4736,"finishedMs":44155.8985,"durationMs":1152.4249000000054,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":40569.5446,"startedMs":44155.9027,"finishedMs":45600.6278,"durationMs":1444.7251000000033,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-1-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:37:43.437Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":1,"warmup":false,"mode":"parallel","fetchMs":2044.6770000000033,"wallMs":2046.2526999999973,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["company.financials","company.ratings","research.news","market.kline"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.financials","submittedMs":47648.1524,"startedMs":47648.1526,"finishedMs":48772.103,"durationMs":1123.9504000000015,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":47694.0179,"startedMs":47694.0181,"finishedMs":48868.1301,"durationMs":1174.112000000001,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":47737.0044,"startedMs":47737.0046,"finishedMs":49136.6,"durationMs":1399.5953999999983,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false},{"capabilityId":"market.kline","submittedMs":47606.3785,"startedMs":47606.3788,"finishedMs":49650.9644,"durationMs":2044.5855999999985,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["company.financials","company.ratings","research.news","market.kline"]}} +{"trialId":"measure-1-growth-MSFT-parallel","startedAt":"2026-10-19T08:37:47.488Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":1,"warmup":false,"mode":"parallel","fetchMs":1269.1768999999986,"wallMs":1270.7350000000006,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":51657.1757,"startedMs":51657.176,"finishedMs":52801.8606,"durationMs":1144.6846000000005,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":51742.3114,"startedMs":51742.3116,"finishedMs":52879.0228,"durationMs":1136.711199999998,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":51698.6134,"startedMs":51698.6135,"finishedMs":52926.3007,"durationMs":1227.6872000000003,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-1-growth-MSFT-serial","startedAt":"2026-10-19T08:37:50.764Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":1,"warmup":false,"mode":"serial","fetchMs":3567.1229999999996,"wallMs":3568.688900000001,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":54933.3042,"startedMs":54933.3076,"finishedMs":56007.1809,"durationMs":1073.8732999999993,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":54972.5063,"startedMs":56007.1847,"finishedMs":57249.1343,"durationMs":1241.9496,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":54972.5104,"startedMs":57249.1379,"finishedMs":58500.3702,"durationMs":1251.232299999996,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-2-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:37:56.337Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":2,"warmup":false,"mode":"parallel","fetchMs":1442.1893999999957,"wallMs":1443.7786999999953,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":60506.1234,"startedMs":60506.1239,"finishedMs":61652.4141,"durationMs":1146.290200000003,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":60552.3453,"startedMs":60552.3454,"finishedMs":61683.7283,"durationMs":1131.3829000000042,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":60607.6885,"startedMs":60607.6887,"finishedMs":61947.8957,"durationMs":1340.2070000000022,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":60654.5803,"startedMs":60654.5805,"finishedMs":61948.2593,"durationMs":1293.6788000000015,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-2-risk-review-NVDA-serial","startedAt":"2026-10-19T08:37:59.786Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":2,"warmup":false,"mode":"serial","fetchMs":5026.340800000005,"wallMs":5027.645499999991,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":63955.0161,"startedMs":63955.0184,"finishedMs":65047.9583,"durationMs":1092.9398999999976,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":63998.7232,"startedMs":65047.9634,"finishedMs":66111.2833,"durationMs":1063.319899999995,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":63998.7292,"startedMs":66111.2869,"finishedMs":67288.298,"durationMs":1177.0110999999888,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":63998.7309,"startedMs":67288.3024,"finishedMs":68981.2952,"durationMs":1692.9927999999927,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-2-growth-MSFT-serial","startedAt":"2026-10-19T08:38:06.817Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":2,"warmup":false,"mode":"serial","fetchMs":3655.652000000002,"wallMs":3657.4767999999895,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":70986.599,"startedMs":70986.6017,"finishedMs":72409.3056,"durationMs":1422.7039000000077,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":71030.0539,"startedMs":72409.3099,"finishedMs":73507.2117,"durationMs":1097.901800000007,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":71030.0594,"startedMs":73507.2167,"finishedMs":74642.1959,"durationMs":1134.9792000000016,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-2-growth-MSFT-parallel","startedAt":"2026-10-19T08:38:12.479Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":2,"warmup":false,"mode":"parallel","fetchMs":1238.973100000003,"wallMs":1240.4616999999998,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":76648.2725,"startedMs":76648.2727,"finishedMs":77716.5941,"durationMs":1068.3214000000007,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":76747.319,"startedMs":76747.3192,"finishedMs":77812.2589,"durationMs":1064.9397000000026,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":76694.6604,"startedMs":76694.6605,"finishedMs":77887.193,"durationMs":1192.5325000000012,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-2-value-AAPL-serial","startedAt":"2026-10-19T08:38:15.723Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":2,"warmup":false,"mode":"serial","fetchMs":4587.116500000004,"wallMs":4588.381500000003,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":79891.8539,"startedMs":79891.8565,"finishedMs":80996.3724,"durationMs":1104.5158999999985,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":79931.4465,"startedMs":80996.3764,"finishedMs":82049.1603,"durationMs":1052.7839000000095,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":79931.4524,"startedMs":82049.1635,"finishedMs":83213.7086,"durationMs":1164.545100000003,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":79931.4542,"startedMs":83213.713,"finishedMs":84478.8998,"durationMs":1265.1867999999959,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-2-value-AAPL-parallel","startedAt":"2026-10-19T08:38:22.314Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":2,"warmup":false,"mode":"parallel","fetchMs":1195.3412000000098,"wallMs":1196.6039000000019,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.dividends","company.financials"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":86482.9143,"startedMs":86482.9145,"finishedMs":87567.7549,"durationMs":1084.840400000001,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":86521.7988,"startedMs":86521.7989,"finishedMs":87676.534,"durationMs":1154.7351000000053,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.dividends","submittedMs":86606.7675,"startedMs":86606.7677,"finishedMs":87676.7635,"durationMs":1069.9958000000042,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":86563.712,"startedMs":86563.7121,"finishedMs":87678.2046,"durationMs":1114.492499999993,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.dividends","company.financials"]}} +{"trialId":"measure-3-growth-MSFT-parallel","startedAt":"2026-10-19T08:38:25.513Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":3,"warmup":false,"mode":"parallel","fetchMs":1218.9438999999984,"wallMs":1220.468200000003,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":89682.3052,"startedMs":89682.3059,"finishedMs":90778.3557,"durationMs":1096.0497999999934,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":89772.8876,"startedMs":89772.8877,"finishedMs":90841.8316,"durationMs":1068.9438999999984,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":89725.1538,"startedMs":89725.154,"finishedMs":90901.1931,"durationMs":1176.039100000009,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-3-growth-MSFT-serial","startedAt":"2026-10-19T08:38:28.740Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":3,"warmup":false,"mode":"serial","fetchMs":3628.739600000001,"wallMs":3630.3162999999913,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":92909.1312,"startedMs":92909.1622,"finishedMs":94135.4245,"durationMs":1226.2622999999876,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":92952.4248,"startedMs":94135.4296,"finishedMs":95313.3575,"durationMs":1177.9278999999951,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":92952.4289,"startedMs":95313.362,"finishedMs":96537.8196,"durationMs":1224.4576000000088,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-3-value-AAPL-parallel","startedAt":"2026-10-19T08:38:34.373Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":3,"warmup":false,"mode":"parallel","fetchMs":1229.6255000000092,"wallMs":1231.0767999999953,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.financials","company.profile","company.valuation","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.financials","submittedMs":98622.482,"startedMs":98622.4822,"finishedMs":99604.0802,"durationMs":981.5979999999981,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.profile","submittedMs":98542.5438,"startedMs":98542.5445,"finishedMs":99617.7814,"durationMs":1075.2369000000035,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":98581.9993,"startedMs":98581.9996,"finishedMs":99663.8639,"durationMs":1081.864300000001,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.dividends","submittedMs":98665.8887,"startedMs":98665.8889,"finishedMs":99772.1207,"durationMs":1106.231799999994,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.financials","company.profile","company.valuation","company.dividends"]}} +{"trialId":"measure-3-value-AAPL-serial","startedAt":"2026-10-19T08:38:37.608Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":3,"warmup":false,"mode":"serial","fetchMs":4353.385999999999,"wallMs":4354.656400000007,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":101777.2274,"startedMs":101777.2299,"finishedMs":102898.7961,"durationMs":1121.5662000000011,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":101816.6609,"startedMs":102898.8009,"finishedMs":103923.2598,"durationMs":1024.4588999999978,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":101816.6651,"startedMs":103923.2633,"finishedMs":104997.2566,"durationMs":1073.9932999999874,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":101816.6666,"startedMs":104997.261,"finishedMs":106130.5685,"durationMs":1133.3074999999953,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-3-risk-review-NVDA-serial","startedAt":"2026-10-19T08:38:43.967Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":3,"warmup":false,"mode":"serial","fetchMs":4797.903399999996,"wallMs":4799.296599999987,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":108135.7963,"startedMs":108135.7984,"finishedMs":109302.9087,"durationMs":1167.1103000000003,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":108176.3131,"startedMs":109302.9132,"finishedMs":110407.8009,"durationMs":1104.8877000000066,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":108176.3169,"startedMs":110407.8049,"finishedMs":111649.6336,"durationMs":1241.8286999999982,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":108176.3187,"startedMs":111649.6373,"finishedMs":112933.6502,"durationMs":1284.0129000000015,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-3-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:38:50.770Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":3,"warmup":false,"mode":"parallel","fetchMs":1376.7719999999972,"wallMs":1378.2100999999966,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["company.financials","market.kline","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.financials","submittedMs":114979.8263,"startedMs":114979.8264,"finishedMs":116051.2852,"durationMs":1071.458799999993,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"market.kline","submittedMs":114939.243,"startedMs":114939.2433,"finishedMs":116129.4882,"durationMs":1190.2449000000051,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.ratings","submittedMs":115023.2593,"startedMs":115023.2595,"finishedMs":116190.5007,"durationMs":1167.241200000004,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":115067.2116,"startedMs":115067.2118,"finishedMs":116315.965,"durationMs":1248.753199999992,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["company.financials","market.kline","company.ratings","research.news"]}} +{"trialId":"measure-4-value-AAPL-serial","startedAt":"2026-10-19T08:38:54.152Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":4,"warmup":false,"mode":"serial","fetchMs":4874.042300000001,"wallMs":4875.390599999999,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":118320.7888,"startedMs":118320.7905,"finishedMs":119886.9187,"durationMs":1566.128199999992,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":118359.9882,"startedMs":119886.9206,"finishedMs":120975.2182,"durationMs":1088.2976000000053,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":118359.9927,"startedMs":120975.2195,"finishedMs":122091.7922,"durationMs":1116.5726999999897,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":118359.9968,"startedMs":122091.7937,"finishedMs":123194.7836,"durationMs":1102.9899000000005,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-4-value-AAPL-parallel","startedAt":"2026-10-19T08:39:01.030Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":4,"warmup":false,"mode":"parallel","fetchMs":1321.6437999999907,"wallMs":1322.822199999995,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.dividends","company.financials"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":125198.7991,"startedMs":125198.7993,"finishedMs":126301.6238,"durationMs":1102.8245000000024,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":125238.481,"startedMs":125238.4816,"finishedMs":126316.6989,"durationMs":1078.217300000004,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.dividends","submittedMs":125326.1058,"startedMs":125326.106,"finishedMs":126487.234,"durationMs":1161.127999999997,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":125282.3251,"startedMs":125282.3252,"finishedMs":126520.4006,"durationMs":1238.075399999987,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.dividends","company.financials"]}} +{"trialId":"measure-4-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:39:04.356Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":4,"warmup":false,"mode":"parallel","fetchMs":1658.335699999996,"wallMs":1659.9777999999933,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["company.financials","market.kline","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.financials","submittedMs":128574.5348,"startedMs":128574.535,"finishedMs":129732.4973,"durationMs":1157.9622999999992,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"market.kline","submittedMs":128524.9214,"startedMs":128524.9216,"finishedMs":129763.0432,"durationMs":1238.1215999999986,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.ratings","submittedMs":128622.1542,"startedMs":128622.1546,"finishedMs":129763.2035,"durationMs":1141.0489000000089,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":128665.5376,"startedMs":128665.538,"finishedMs":130183.2071,"durationMs":1517.6690999999992,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["company.financials","market.kline","company.ratings","research.news"]}} +{"trialId":"measure-4-risk-review-NVDA-serial","startedAt":"2026-10-19T08:39:08.020Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":4,"warmup":false,"mode":"serial","fetchMs":5067.349900000001,"wallMs":5069.06700000001,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":132189.2129,"startedMs":132189.2149,"finishedMs":133392.6487,"durationMs":1203.4337999999989,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":132230.732,"startedMs":133392.6506,"finishedMs":134597.2837,"durationMs":1204.6331000000064,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":132230.7364,"startedMs":134597.2849,"finishedMs":135905.6981,"durationMs":1308.41320000001,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":132230.7379,"startedMs":135905.6997,"finishedMs":137256.3063,"durationMs":1350.6065999999992,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-4-growth-MSFT-serial","startedAt":"2026-10-19T08:39:15.093Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":4,"warmup":false,"mode":"serial","fetchMs":3435.035999999993,"wallMs":3436.644899999985,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":139262.2512,"startedMs":139262.2525,"finishedMs":140413.5976,"durationMs":1151.345100000006,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":139302.1004,"startedMs":140413.5994,"finishedMs":141580.0677,"durationMs":1166.4683000000077,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":139302.1038,"startedMs":141580.0693,"finishedMs":142697.2409,"durationMs":1117.1716000000015,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-4-growth-MSFT-parallel","startedAt":"2026-10-19T08:39:20.534Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":4,"warmup":false,"mode":"parallel","fetchMs":1217.5664000000106,"wallMs":1219.2460000000137,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":144703.0431,"startedMs":144703.0433,"finishedMs":145732.4217,"durationMs":1029.378400000016,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":144743.7084,"startedMs":144743.7086,"finishedMs":145874.1518,"durationMs":1130.4431999999797,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":144785.8051,"startedMs":144785.8053,"finishedMs":145920.5674,"durationMs":1134.7620999999926,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-5-risk-review-NVDA-serial","startedAt":"2026-10-19T08:39:23.756Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":5,"warmup":false,"mode":"serial","fetchMs":4843.681199999992,"wallMs":4845.142099999997,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":147925.4697,"startedMs":147925.4714,"finishedMs":148978.4837,"durationMs":1053.0123000000021,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":147967.5641,"startedMs":148978.4859,"finishedMs":150154.3114,"durationMs":1175.8255000000063,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":147967.5679,"startedMs":150154.3127,"finishedMs":151388.375,"durationMs":1234.0622999999905,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":147967.5696,"startedMs":151388.3766,"finishedMs":152769.1003,"durationMs":1380.7237000000023,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-5-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:39:30.605Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":5,"warmup":false,"mode":"parallel","fetchMs":1508.7062999999907,"wallMs":1510.1582000000053,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":154774.1203,"startedMs":154774.1205,"finishedMs":155958.5566,"durationMs":1184.4361000000208,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":154824.6694,"startedMs":154824.6697,"finishedMs":156037.1986,"durationMs":1212.5289000000048,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":154874.3851,"startedMs":154874.3853,"finishedMs":156238.158,"durationMs":1363.7727000000014,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":154920.7359,"startedMs":154920.7361,"finishedMs":156282.7845,"durationMs":1362.0483999999997,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-5-growth-MSFT-parallel","startedAt":"2026-10-19T08:39:34.118Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":5,"warmup":false,"mode":"parallel","fetchMs":1384.6267999999982,"wallMs":1386.2302999999956,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":158287.2246,"startedMs":158287.2248,"finishedMs":159344.2554,"durationMs":1057.0305999999982,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":158374.587,"startedMs":158374.5872,"finishedMs":159446.0261,"durationMs":1071.4388999999792,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":158330.7956,"startedMs":158330.7957,"finishedMs":159671.8069,"durationMs":1341.011200000008,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-5-growth-MSFT-serial","startedAt":"2026-10-19T08:39:37.509Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":5,"warmup":false,"mode":"serial","fetchMs":3422.9114999999874,"wallMs":3424.5946000000113,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":161678.3,"startedMs":161678.3024,"finishedMs":162835.8579,"durationMs":1157.5555000000168,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":161724.6633,"startedMs":162835.8595,"finishedMs":163941.5687,"durationMs":1105.709200000012,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":161724.6674,"startedMs":163941.5701,"finishedMs":165101.1628,"durationMs":1159.5926999999792,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-5-value-AAPL-parallel","startedAt":"2026-10-19T08:39:42.939Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":5,"warmup":false,"mode":"parallel","fetchMs":1295.7318999999843,"wallMs":1297.0259999999835,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":167107.869,"startedMs":167107.8691,"finishedMs":168140.1823,"durationMs":1032.313199999975,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":167147.1616,"startedMs":167147.1618,"finishedMs":168222.5538,"durationMs":1075.3919999999925,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":167192.0793,"startedMs":167192.0796,"finishedMs":168358.045,"durationMs":1165.9654000000155,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":167240.3058,"startedMs":167240.306,"finishedMs":168403.559,"durationMs":1163.252999999997,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-5-value-AAPL-serial","startedAt":"2026-10-19T08:39:46.242Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":5,"warmup":false,"mode":"serial","fetchMs":4724.4347000000125,"wallMs":4725.783100000001,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":170411.0317,"startedMs":170411.0336,"finishedMs":171545.0412,"durationMs":1134.0076000000117,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":170452.8063,"startedMs":171545.0432,"finishedMs":172678.7296,"durationMs":1133.686400000006,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":170452.8099,"startedMs":172678.7307,"finishedMs":173799.5107,"durationMs":1120.780000000028,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":170452.8112,"startedMs":173799.5121,"finishedMs":175135.4158,"durationMs":1335.9036999999953,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-6-growth-MSFT-serial","startedAt":"2026-10-19T08:39:52.970Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":6,"warmup":false,"mode":"serial","fetchMs":3337.5781000000134,"wallMs":3339.463000000018,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":177139.4793,"startedMs":177139.4809,"finishedMs":178281.9873,"durationMs":1142.506400000013,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":177180.1891,"startedMs":178281.9921,"finishedMs":179342.1888,"durationMs":1060.1967000000004,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":177180.1945,"startedMs":179342.1896,"finishedMs":180477.0014,"durationMs":1134.8117999999959,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-6-growth-MSFT-parallel","startedAt":"2026-10-19T08:39:58.314Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":6,"warmup":false,"mode":"parallel","fetchMs":1230.7159000000102,"wallMs":1232.2360000000044,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":182483.2813,"startedMs":182483.2815,"finishedMs":183586.6,"durationMs":1103.318499999994,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":182572.5808,"startedMs":182572.5809,"finishedMs":183712.4399,"durationMs":1139.8589999999967,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":182525.9002,"startedMs":182525.9003,"finishedMs":183713.9313,"durationMs":1188.0309999999881,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-6-value-AAPL-serial","startedAt":"2026-10-19T08:40:01.552Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":6,"warmup":false,"mode":"serial","fetchMs":4809.862300000008,"wallMs":4811.145499999984,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":185720.8895,"startedMs":185720.891,"finishedMs":186830.6071,"durationMs":1109.7160999999905,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":185768.6028,"startedMs":186830.6088,"finishedMs":188030.0948,"durationMs":1199.4860000000044,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":185768.6062,"startedMs":188030.0959,"finishedMs":189209.2377,"durationMs":1179.1418000000122,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":185768.6073,"startedMs":189209.2388,"finishedMs":190530.6904,"durationMs":1321.4516000000003,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-6-value-AAPL-parallel","startedAt":"2026-10-19T08:40:08.367Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":6,"warmup":false,"mode":"parallel","fetchMs":1332.6609000000171,"wallMs":1333.9695999999822,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":192536.0275,"startedMs":192536.0276,"finishedMs":193564.1168,"durationMs":1028.0891999999876,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":192576.5412,"startedMs":192576.5413,"finishedMs":193733.4375,"durationMs":1156.8961999999883,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":192618.2184,"startedMs":192618.2186,"finishedMs":193797.2849,"durationMs":1179.0663000000059,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":192661.3319,"startedMs":192661.332,"finishedMs":193868.6482,"durationMs":1207.3162000000011,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-6-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:40:11.705Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":6,"warmup":false,"mode":"parallel","fetchMs":2242.4937999999966,"wallMs":2244.051599999977,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","research.news","company.ratings"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":195874.177,"startedMs":195874.1772,"finishedMs":196967.6616,"durationMs":1093.4843999999866,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":195917.2854,"startedMs":195917.2856,"finishedMs":196969.1259,"durationMs":1051.8403000000108,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"research.news","submittedMs":196006.355,"startedMs":196006.3552,"finishedMs":197308.065,"durationMs":1301.7098000000115,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false},{"capabilityId":"company.ratings","submittedMs":195961.5496,"startedMs":195961.5498,"finishedMs":198116.6277,"durationMs":2155.077900000004,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","research.news","company.ratings"]}} +{"trialId":"measure-6-risk-review-NVDA-serial","startedAt":"2026-10-19T08:40:15.953Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":6,"warmup":false,"mode":"serial","fetchMs":4557.736900000018,"wallMs":4559.072500000009,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":200122.3636,"startedMs":200122.3652,"finishedMs":201147.0226,"durationMs":1024.6573999999964,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":200169.455,"startedMs":201147.0242,"finishedMs":202319.7589,"durationMs":1172.7346999999718,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":200169.4592,"startedMs":202319.76,"finishedMs":203420.5651,"durationMs":1100.8050999999978,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":200169.4607,"startedMs":203420.5669,"finishedMs":204680.0584,"durationMs":1259.4915000000037,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-7-value-AAPL-parallel","startedAt":"2026-10-19T08:40:22.515Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":7,"warmup":false,"mode":"parallel","fetchMs":1362.8900999999896,"wallMs":1364.2045999999973,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.valuation","company.financials","company.dividends","company.profile"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.valuation","submittedMs":206724.5617,"startedMs":206724.5618,"finishedMs":207739.4284,"durationMs":1014.8666000000085,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":206766.8222,"startedMs":206766.8224,"finishedMs":207862.0922,"durationMs":1095.2698000000091,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":206811.4244,"startedMs":206811.4245,"finishedMs":207959.3595,"durationMs":1147.9349999999977,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false},{"capabilityId":"company.profile","submittedMs":206684.7257,"startedMs":206684.7258,"finishedMs":208047.5745,"durationMs":1362.8487000000023,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.valuation","company.financials","company.dividends","company.profile"]}} +{"trialId":"measure-7-value-AAPL-serial","startedAt":"2026-10-19T08:40:25.885Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":7,"warmup":false,"mode":"serial","fetchMs":4204.586299999995,"wallMs":4205.905700000003,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":210053.8596,"startedMs":210053.8611,"finishedMs":211063.097,"durationMs":1009.2358999999997,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":210096.8793,"startedMs":211063.0989,"finishedMs":212092.4728,"durationMs":1029.3738999999769,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":210096.8829,"startedMs":212092.4745,"finishedMs":213136.77,"durationMs":1044.2954999999783,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":210096.8844,"startedMs":213136.7715,"finishedMs":214258.4023,"durationMs":1121.6307999999844,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-7-risk-review-NVDA-serial","startedAt":"2026-10-19T08:40:32.095Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":7,"warmup":false,"mode":"serial","fetchMs":4616.210699999996,"wallMs":4617.643400000001,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":216263.7974,"startedMs":216263.8023,"finishedMs":217419.0247,"durationMs":1155.2223999999987,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":216304.3114,"startedMs":217419.0267,"finishedMs":218513.2518,"durationMs":1094.2251000000106,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":216304.3151,"startedMs":218513.2538,"finishedMs":219683.9693,"durationMs":1170.7154999999912,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":216304.3164,"startedMs":219683.9713,"finishedMs":220879.9585,"durationMs":1195.9872000000032,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-7-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:40:38.716Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":7,"warmup":false,"mode":"parallel","fetchMs":1643.5576,"wallMs":1645.227899999998,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":222884.9141,"startedMs":222884.9145,"finishedMs":223982.8763,"durationMs":1097.96179999999,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":222932.0938,"startedMs":222932.094,"finishedMs":223984.3453,"durationMs":1052.2512999999744,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":222979.6507,"startedMs":222979.6508,"finishedMs":224130.5366,"durationMs":1150.885799999989,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":223025.0446,"startedMs":223025.0448,"finishedMs":224528.4264,"durationMs":1503.3815999999933,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-7-growth-MSFT-parallel","startedAt":"2026-10-19T08:40:42.365Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":7,"warmup":false,"mode":"parallel","fetchMs":1466.8953000000038,"wallMs":1468.512400000007,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":226534.1281,"startedMs":226534.1282,"finishedMs":227515.9376,"durationMs":981.8093999999983,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":226573.3268,"startedMs":226573.3269,"finishedMs":227701.2831,"durationMs":1127.956200000015,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":226616.096,"startedMs":226616.0961,"finishedMs":228000.9758,"durationMs":1384.8796999999904,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-7-growth-MSFT-serial","startedAt":"2026-10-19T08:40:45.840Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":7,"warmup":false,"mode":"serial","fetchMs":3510.4874999999884,"wallMs":3512.153499999986,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":230008.7927,"startedMs":230008.794,"finishedMs":231184.0505,"durationMs":1175.2565000000177,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":230059.1774,"startedMs":231184.0528,"finishedMs":232325.2714,"durationMs":1141.2185999999929,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":230059.1857,"startedMs":232325.2727,"finishedMs":233519.2294,"durationMs":1193.9567000000097,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-8-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:40:51.355Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":8,"warmup":false,"mode":"parallel","fetchMs":1355.6079000000027,"wallMs":1357.1791000000085,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":235524.2039,"startedMs":235524.2041,"finishedMs":236573.7285,"durationMs":1049.5243999999948,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":235563.9505,"startedMs":235563.9507,"finishedMs":236710.5775,"durationMs":1146.6268000000273,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":235610.0209,"startedMs":235610.0211,"finishedMs":236822.6621,"durationMs":1212.6409999999742,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":235655.4149,"startedMs":235655.415,"finishedMs":236879.7712,"durationMs":1224.3561999999802,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-8-risk-review-NVDA-serial","startedAt":"2026-10-19T08:40:54.717Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":8,"warmup":false,"mode":"serial","fetchMs":4554.105199999991,"wallMs":4555.51509999999,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":238886.2489,"startedMs":238886.25,"finishedMs":239915.8716,"durationMs":1029.6216000000131,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":238927.6245,"startedMs":239915.8731,"finishedMs":240958.905,"durationMs":1043.0319000000018,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":238927.628,"startedMs":240958.9064,"finishedMs":242061.8502,"durationMs":1102.943799999979,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":238927.6293,"startedMs":242061.8513,"finishedMs":243440.3102,"durationMs":1378.4588999999978,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-8-growth-MSFT-serial","startedAt":"2026-10-19T08:41:01.275Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":8,"warmup":false,"mode":"serial","fetchMs":3266.6540000000095,"wallMs":3268.2852999999886,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":245444.7441,"startedMs":245444.749,"finishedMs":246470.5448,"durationMs":1025.7957999999926,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":245483.4654,"startedMs":246470.5465,"finishedMs":247575.7855,"durationMs":1105.2390000000014,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":245483.4689,"startedMs":247575.7866,"finishedMs":248711.355,"durationMs":1135.5684000000183,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-8-growth-MSFT-parallel","startedAt":"2026-10-19T08:41:06.548Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":8,"warmup":false,"mode":"parallel","fetchMs":1238.289999999979,"wallMs":1239.881400000013,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":250717.2105,"startedMs":250717.2106,"finishedMs":251803.6474,"durationMs":1086.4367999999959,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":250756.5088,"startedMs":250756.5089,"finishedMs":251909.0261,"durationMs":1152.517200000002,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":250800.4482,"startedMs":250800.4485,"finishedMs":251955.4667,"durationMs":1155.0181999999913,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-8-value-AAPL-serial","startedAt":"2026-10-19T08:41:09.792Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":8,"warmup":false,"mode":"serial","fetchMs":4298.91439999998,"wallMs":4300.145900000003,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":253961.5597,"startedMs":253961.5613,"finishedMs":254992.954,"durationMs":1031.3926999999967,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":254008.1585,"startedMs":254992.9553,"finishedMs":255988.4772,"durationMs":995.5218999999925,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":254008.1627,"startedMs":255988.4781,"finishedMs":257065.6812,"durationMs":1077.2030999999843,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":254008.1642,"startedMs":257065.6833,"finishedMs":258260.4313,"durationMs":1194.7479999999923,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-8-value-AAPL-parallel","startedAt":"2026-10-19T08:41:16.096Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":8,"warmup":false,"mode":"parallel","fetchMs":1332.3643000000156,"wallMs":1333.8394999999728,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":260265.4813,"startedMs":260265.4815,"finishedMs":261288.15,"durationMs":1022.6684999999998,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":260307.2385,"startedMs":260307.2386,"finishedMs":261336.0791,"durationMs":1028.8404999999912,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":260352.1802,"startedMs":260352.1804,"finishedMs":261567.8753,"durationMs":1215.6949000000022,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":260400.4878,"startedMs":260400.488,"finishedMs":261597.7896,"durationMs":1197.301599999977,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-9-growth-MSFT-parallel","startedAt":"2026-10-19T08:41:19.433Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":9,"warmup":false,"mode":"parallel","fetchMs":1208.6934000000474,"wallMs":1210.262299999944,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":263602.5681,"startedMs":263602.5682,"finishedMs":264600.805,"durationMs":998.2368000000133,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":263699.0714,"startedMs":263699.0717,"finishedMs":264724.5209,"durationMs":1025.4492000000319,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":263648.599,"startedMs":263648.5992,"finishedMs":264811.2173,"durationMs":1162.6181000000215,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} +{"trialId":"measure-9-growth-MSFT-serial","startedAt":"2026-10-19T08:41:22.648Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":9,"warmup":false,"mode":"serial","fetchMs":3387.052400000044,"wallMs":3388.9904000000097,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":266817.2371,"startedMs":266817.2388,"finishedMs":267908.9276,"durationMs":1091.6888000000035,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":266857.1628,"startedMs":267908.9296,"finishedMs":269064.2165,"durationMs":1155.2869000000064,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":266857.1792,"startedMs":269064.2177,"finishedMs":270204.2385,"durationMs":1140.0207999999984,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-9-value-AAPL-parallel","startedAt":"2026-10-19T08:41:28.040Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":9,"warmup":false,"mode":"parallel","fetchMs":1415.549699999974,"wallMs":1416.9442999999737,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.financials","company.valuation","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":272209.5657,"startedMs":272209.5659,"finishedMs":273219.1816,"durationMs":1009.6157000000239,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.financials","submittedMs":272295.0788,"startedMs":272295.0789,"finishedMs":273454.675,"durationMs":1159.596099999966,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.valuation","submittedMs":272252.398,"startedMs":272252.3981,"finishedMs":273468.4221,"durationMs":1216.024000000034,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.dividends","submittedMs":272337.355,"startedMs":272337.3551,"finishedMs":273625.0759,"durationMs":1287.72080000001,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.financials","company.valuation","company.dividends"]}} +{"trialId":"measure-9-value-AAPL-serial","startedAt":"2026-10-19T08:41:31.464Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":9,"warmup":false,"mode":"serial","fetchMs":4526.393700000015,"wallMs":4527.659600000014,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":275633.5944,"startedMs":275633.5951,"finishedMs":276659.8145,"durationMs":1026.2194000000018,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":275674.5372,"startedMs":276659.8166,"finishedMs":277827.5724,"durationMs":1167.7557999999844,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":275674.5422,"startedMs":277827.5739,"finishedMs":279011.35,"durationMs":1183.7760999999591,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":275674.5443,"startedMs":279011.3513,"finishedMs":280159.9472,"durationMs":1148.5959000000148,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-9-risk-review-NVDA-serial","startedAt":"2026-10-19T08:41:37.996Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":9,"warmup":false,"mode":"serial","fetchMs":5181.745700000029,"wallMs":5183.165099999984,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":282165.1862,"startedMs":282165.1888,"finishedMs":283288.6873,"durationMs":1123.498499999987,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":282207.0293,"startedMs":283288.689,"finishedMs":284409.2752,"durationMs":1120.5861999999615,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":282207.0346,"startedMs":284409.2764,"finishedMs":285542.8834,"durationMs":1133.6070000000182,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":282207.0359,"startedMs":285542.8855,"finishedMs":287346.8881,"durationMs":1804.002600000007,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-9-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:41:45.183Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":9,"warmup":false,"mode":"parallel","fetchMs":1394.1953999999678,"wallMs":1395.9892999999574,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":289352.3033,"startedMs":289352.3034,"finishedMs":290466.6351,"durationMs":1114.3317000000388,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":289394.7664,"startedMs":289394.7665,"finishedMs":290528.5326,"durationMs":1133.7660999999498,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":289436.6109,"startedMs":289436.6111,"finishedMs":290668.5641,"durationMs":1231.9530000000377,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":289479.8054,"startedMs":289479.8058,"finishedMs":290746.4577,"durationMs":1266.6519000000553,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-10-value-AAPL-serial","startedAt":"2026-10-19T08:41:48.584Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":10,"warmup":false,"mode":"serial","fetchMs":4244.506599999964,"wallMs":4245.882900000026,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.profile","submittedMs":292752.8721,"startedMs":292752.8736,"finishedMs":293794.5608,"durationMs":1041.6871999999858,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":292794.3211,"startedMs":293794.5631,"finishedMs":294796.4317,"durationMs":1001.868599999987,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":292794.3257,"startedMs":294796.4329,"finishedMs":295832.0317,"durationMs":1035.598799999978,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":292794.3273,"startedMs":295832.0329,"finishedMs":296997.335,"durationMs":1165.30210000003,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-10-value-AAPL-parallel","startedAt":"2026-10-19T08:41:54.834Z","caseId":"value-AAPL","symbol":"AAPL.US","strategyId":"value","round":10,"warmup":false,"mode":"parallel","fetchMs":1323.1083000000217,"wallMs":1324.415800000017,"status":"completed","planned":["company.profile","company.valuation","company.financials","company.dividends"],"completed":["company.profile","company.valuation","company.financials","company.dividends"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"company.profile","submittedMs":299002.8911,"startedMs":299002.8913,"finishedMs":300102.4307,"durationMs":1099.5394000000088,"status":"success","payloadValid":true,"payloadHash":"ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441","payloadFile":"payloads/ae4df520394d55154a766129840d5b745c66ff48b43a56ecfdb0b2f9a93e3441.json"},{"capabilityId":"company.valuation","submittedMs":299043.7314,"startedMs":299043.7315,"finishedMs":300102.5875,"durationMs":1058.8560000000289,"status":"success","payloadValid":true,"payloadHash":"679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f","payloadFile":"payloads/679a01f5757291fa32ec384fac6439e70438ee1d8913140c1a55918b3b32666f.json"},{"capabilityId":"company.financials","submittedMs":299095.076,"startedMs":299095.0762,"finishedMs":300239.8579,"durationMs":1144.7816999999923,"status":"success","payloadValid":true,"payloadHash":"be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041","payloadFile":"payloads/be09e6bf164460e04e48c6256cb92ff0dbb83418080339d99c990c63bf17e041.json"},{"capabilityId":"company.dividends","submittedMs":299137.842,"startedMs":299137.8421,"finishedMs":300325.9584,"durationMs":1188.1162999999942,"status":"success","payloadValid":true,"payloadHash":"c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4","payloadFile":"payloads/c7725329bb422e35ed6f114a99c6e0897a9ba18c16f711435491b540075344e4.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["company.profile","company.valuation","company.financials","company.dividends"],"bundleCapabilityIds":["company.profile","company.valuation","company.financials","company.dividends"]}} +{"trialId":"measure-10-risk-review-NVDA-parallel","startedAt":"2026-10-19T08:41:58.162Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":10,"warmup":false,"mode":"parallel","fetchMs":1386.6858000000357,"wallMs":1388.0439000000479,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":4,"traces":[{"capabilityId":"market.kline","submittedMs":302331.2577,"startedMs":302331.2578,"finishedMs":303439.0551,"durationMs":1107.7972999999765,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":302373.0993,"startedMs":302373.0994,"finishedMs":303440.6038,"durationMs":1067.5043999999762,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":302419.3308,"startedMs":302419.3312,"finishedMs":303499.2134,"durationMs":1079.8821999999927,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":302462.2677,"startedMs":302462.2682,"finishedMs":303717.905,"durationMs":1255.6368000000366,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-10-risk-review-NVDA-serial","startedAt":"2026-10-19T08:42:01.554Z","caseId":"risk-review-NVDA","symbol":"NVDA.US","strategyId":"risk-review","round":10,"warmup":false,"mode":"serial","fetchMs":4754.385899999994,"wallMs":4755.815400000021,"status":"completed","planned":["market.kline","company.financials","company.ratings","research.news"],"completed":["market.kline","company.financials","company.ratings","research.news"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"market.kline","submittedMs":305723.1964,"startedMs":305723.1976,"finishedMs":306796.4877,"durationMs":1073.2900999999838,"status":"success","payloadValid":true,"payloadHash":"5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc","payloadFile":"payloads/5cff620db6abf710fa40da81318de09a2e4e44c2f5478be145488808f4557bdc.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":305762.4046,"startedMs":306796.49,"finishedMs":307901.8139,"durationMs":1105.3239000000176,"status":"success","payloadValid":true,"payloadHash":"f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc","payloadFile":"payloads/f47309dc805721a249589622aa4bb9fcf0d354e49886779616dc5055ecaba0cc.json"},{"capabilityId":"company.ratings","submittedMs":305762.4079,"startedMs":307901.8157,"finishedMs":309201.5752,"durationMs":1299.7595000000438,"status":"success","payloadValid":true,"payloadHash":"cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a","payloadFile":"payloads/cba9b867c5e2e357d5ea071e72a9841e57fb5ebccf324db033d393d8f3f7bb7a.json"},{"capabilityId":"research.news","submittedMs":305762.4092,"startedMs":309201.5768,"finishedMs":310477.525,"durationMs":1275.9482000000426,"status":"success","payloadValid":true,"payloadHash":"c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a","payloadFile":"payloads/c7d9d1cbce8b5e31a39624d497ef825bfb0e121c581d16d8f46a46b3b004df3a.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":4,"sectionCount":4,"synthesisInput":{"plannedCapabilities":["market.kline","company.financials","company.ratings","research.news"],"bundleCapabilityIds":["market.kline","company.financials","company.ratings","research.news"]}} +{"trialId":"measure-10-growth-MSFT-serial","startedAt":"2026-10-19T08:42:08.314Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":10,"warmup":false,"mode":"serial","fetchMs":3180.60070000001,"wallMs":3182.3859999999986,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.financials","company.earnings"],"failed":[],"maxActive":1,"traces":[{"capabilityId":"company.valuation","submittedMs":312482.934,"startedMs":312482.9357,"finishedMs":313516.9427,"durationMs":1034.0070000000414,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.financials","submittedMs":312521.1556,"startedMs":313516.9444,"finishedMs":314615.1269,"durationMs":1098.1824999999953,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"},{"capabilityId":"company.earnings","submittedMs":312521.1609,"startedMs":314615.129,"finishedMs":315663.495,"durationMs":1048.36599999998,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.financials","company.earnings"]}} +{"trialId":"measure-10-growth-MSFT-parallel","startedAt":"2026-10-19T08:42:13.500Z","caseId":"growth-MSFT","symbol":"MSFT.US","strategyId":"growth","round":10,"warmup":false,"mode":"parallel","fetchMs":1193.6149000000441,"wallMs":1195.374300000025,"status":"completed","planned":["company.valuation","company.financials","company.earnings"],"completed":["company.valuation","company.earnings","company.financials"],"failed":[],"maxActive":3,"traces":[{"capabilityId":"company.valuation","submittedMs":317669.2107,"startedMs":317669.2108,"finishedMs":318684.5441,"durationMs":1015.3332999999984,"status":"success","payloadValid":true,"payloadHash":"500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5","payloadFile":"payloads/500928a94163111e325e346947637c63cd448171709987752056eea737f95ce5.json"},{"capabilityId":"company.earnings","submittedMs":317754.5003,"startedMs":317754.5005,"finishedMs":318844.2962,"durationMs":1089.7956999999587,"status":"success","payloadValid":true,"payloadHash":"a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa","payloadFile":"payloads/a365ea2dfba67cfa5063409351153ff8649b7658cb8b5dba0d9f749c976baaaa.json","emptyArray":false},{"capabilityId":"company.financials","submittedMs":317711.3635,"startedMs":317711.3636,"finishedMs":318862.7602,"durationMs":1151.3966000000364,"status":"success","payloadValid":true,"payloadHash":"9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c","payloadFile":"payloads/9f02f8c6b45e0a7810ea5570499f889c52d769609e0c74d38b80b907aff41c3c.json"}],"semanticPayloadsValid":true,"sourceAttributionValid":true,"evidenceCount":3,"sectionCount":3,"synthesisInput":{"plannedCapabilities":["company.valuation","company.financials","company.earnings"],"bundleCapabilityIds":["company.valuation","company.earnings","company.financials"]}} diff --git a/docs/benchmarks/evidence/2026-10-19/validation.json b/docs/benchmarks/evidence/2026-10-19/validation.json new file mode 100644 index 0000000..5b35bde --- /dev/null +++ b/docs/benchmarks/evidence/2026-10-19/validation.json @@ -0,0 +1,9 @@ +{ + "recordedAt": "2026-10-19T08:45:41.5425787Z", + "testsExitCode": 0, + "typecheckExitCode": 0, + "diffCheckExitCode": 0, + "tests": "34 tests: existing research/executor/strategy behavior and independent benchmark validation", + "typecheck": "scripts/bench/tsconfig.json with transitive production imports", + "scope": "local targeted checks, not full CI or full app suite" +} diff --git a/scripts/bench/README.md b/scripts/bench/README.md new file mode 100644 index 0000000..0d0298d --- /dev/null +++ b/scripts/bench/README.md @@ -0,0 +1,47 @@ +# Trail Deep Research 数据获取基准 + +本目录只测 Trail 的真实数据获取链路。`ResearchRunner`、Planner、能力定义、ProviderRouter 和 Longbridge 适配器均使用项目已有代码;不修改生产并发常量,不调用交易或私人账户能力。 + +2026-10-19 的固定证据、原始 ZIP 和离线核验步骤见 [docs/benchmarks/evidence/2026-10-19/README.md](../../docs/benchmarks/evidence/2026-10-19/README.md)。仓库内回归测试复算已归档的 30 对结果,并校验 ZIP 哈希;CI 不调用真实接口。 + +## 在 Windows CMD 中复现 + +需要项目既有 Bun 依赖、可用的 Longbridge CLI 和其已有授权。不要把授权文件或令牌放进报告。 + +```cmd +cd /d D:\folio\Trail +bun run scripts/bench/research-fetch.ts --preflight --cooldown-ms 0 --out artifacts/research-fetch-preflight-new +bun run scripts/bench/research-fetch.ts --repeats 10 --cooldown-ms 2000 --out artifacts/research-fetch-live-new +bun run scripts/bench/audit-research-fetch.ts artifacts/research-fetch-live-new +bun run scripts/bench/verify-research-citations.ts artifacts/research-fetch-correctness-new +bun test ./scripts/bench/audit-research-fetch.test.ts +bun node_modules/typescript/bin/tsc --project scripts/bench/tsconfig.json +``` + +每次都使用新的输出目录。脚本拒绝覆盖已有 manifest;正确性脚本拒绝覆盖已有目录。不要同时运行两个联网测量进程;在计时结束后运行审计、正确性验证及测试。 + +## 口径 + +- 主指标:`fetching` 状态回调到 `synthesizing` 状态回调的单调时钟差,单位毫秒。 +- 对照:同一 Runner、同一策略、同一输入、同一 Executor。串行组只在注入 Executor 前增加 FIFO 闸门,每次允许一个真实能力调用;现有 worker 组保持生产代码最多 4 路并发。对照不是历史版本。 +- 正式任务:AAPL 价值分析(4 项)、NVDA 风险复核(4 项)、MSFT 成长分析(3 项)。每任务先预热一对,再正式测 10 对,合计 60 次正式运行、220 次正式能力调用。 +- 正式测量轮换任务顺序,并平衡每对的串行/并发先后顺序。每次运行后等待 2 秒;此等待不计入耗时。 +- 无模拟数据、人工延迟、应用缓存、自动重试、数据源切换。远端服务和 CLI 自身缓存状态不可控;不能声称彻底排除缓存影响。 +- 哈希、语义校验和快照写盘发生在计时结束之后。时间戳和轻量轨迹收集仍有开销。 +- 使用本地确定性 Synthesizer 完成后续流程,模型调用次数为零。报告质量、完整用户等待时间、UI、崩溃恢复写盘均不在指标内。 +- 全部原始尝试保留。只有两组均成功且数据/证据校验通过的完整配对才能进入性能比较。报告必须同时给出全部失败数和有效配对分母。 +- 若预检失败或任务不具备数据,不得为了获得好看的结果修改生产代码、弱化校验或默默更换任务。本次 2026-10-19 的综合预检有两项失败,范围收窄记录在 manifest 和报告中。 + +## 输出 + +- `manifest.json`:版本、环境、固定任务、计时定义和源码哈希。 +- `source-snapshot/`:与 manifest 哈希对应的关键源码副本。审计必须使用测量时版本;后续脚本更新不改变已有证据。 +- `trials.jsonl`:逐次运行、每项能力轨迹、数据哈希、成功/失败、证据校验结果。 +- `payloads/`:真实公开数据的规范化快照,按 SHA-256 去重,无账户数据。 +- `summary.json`:测量脚本生成的汇总。 +- `audit.json`、`pairs.csv`:独立复算、较严格的数据内容校验、实际重叠并发检查及配对结果。 +- 正确性目录下的三个任务 JSON:额外实时取数的原始能力记录、综合输入、完整报告、证据引用映射;不混入性能样本。 + +分位区间使用固定任务内的配对 bootstrap,10,000 次、随机种子 20261019。该区间仅描述本次会话的抽样波动,不能覆盖不同网络、机器、数据源或任务下的差异。 + +本基准不是默认 CI 或发布门禁,也不会提交、推送或修改桌面应用设置。 diff --git a/scripts/bench/audit-research-fetch.test.ts b/scripts/bench/audit-research-fetch.test.ts new file mode 100644 index 0000000..2ba38b7 --- /dev/null +++ b/scripts/bench/audit-research-fetch.test.ts @@ -0,0 +1,42 @@ +import { describe, expect, it } from 'bun:test'; +import { createHash } from 'node:crypto'; +import { readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import { median, observedConcurrency, strictPayload } from './audit-research-fetch.ts'; +describe('benchmark evidence validation',()=>{ + it('calculates odd/even medians without reordering raw input',()=>{ + const xs=[9,1,4]; expect(median(xs)).toBe(4); expect(xs).toEqual([9,1,4]); expect(median([2,8])).toBe(5); expect(median([])).toBeNull(); + }); + it('rejects financial statement shells without numeric financial data',()=>{ + expect(strictPayload('company.financials',{symbol:'AAPL.US',statements:{IS:{},BS:{},CF:{}}})).toBe(false); + const statement={indicators:[{accounts:[{field:'Revenue',values:[{value:100}]}]}]}; + expect(strictPayload('company.financials',{symbol:'AAPL.US',statements:{IS:statement,BS:statement,CF:statement}})).toBe(true); + }); + it('rejects empty news/forecasts and unrecognized payloads',()=>{ + expect(strictPayload('research.news',[])).toBe(false);expect(strictPayload('company.earnings',[])).toBe(false); + expect(strictPayload('company.earnings',[{epsMean:'12'}])).toBe(false); + expect(strictPayload('company.dividends',[])).toBe(true);expect(strictPayload('unknown',{})).toBe(false); + }); + it('recomputes overlap rather than trusting a claimed concurrency number',()=>{ + expect(observedConcurrency([{startedMs:0,finishedMs:2},{startedMs:1,finishedMs:3}])).toBe(2); + expect(observedConcurrency([{startedMs:0,finishedMs:2},{startedMs:2,finishedMs:3}])).toBe(1); + }); + it('reproduces the published metric from every committed pair',()=>{ + const dir=resolve(import.meta.dir,'../../docs/benchmarks/evidence/2026-10-19'); + const rows=readFileSync(resolve(dir,'pairs.csv'),'utf8').trim().split(/\r?\n/).slice(1).map(line=>line.split(',')); + expect(rows).toHaveLength(30); + expect(rows.every(row=>row[2]==='true'&&row[6]==='true')).toBe(true); + const serial=median(rows.map(row=>Number(row[3])))!; + const parallel=median(rows.map(row=>Number(row[4])))!; + expect(serial).toBeCloseTo(4540.24945,5); + expect(parallel).toBeCloseTo(1344.1344,5); + expect((1-parallel/serial)*100).toBeCloseTo(70.3951420554655,8); + const raw=readFileSync(resolve(dir,'trials.jsonl'),'utf8').trim().split('\n').map(line=>JSON.parse(line)); + expect(raw.filter(row=>!row.warmup)).toHaveLength(60); + expect(raw.filter(row=>!row.warmup).reduce((n,row)=>n+row.traces.length,0)).toBe(220); + }); + it('keeps the complete original evidence archive byte-identical',()=>{ + const path=resolve(import.meta.dir,'../../docs/benchmarks/evidence/2026-10-19/Trail-20261019-evidence.zip'); + expect(createHash('sha256').update(readFileSync(path)).digest('hex')).toBe('911cad12785451b02016d7c9d4adaf3f44471a421702b6ccd42c74ee5e2ae437'); + }); +}); diff --git a/scripts/bench/audit-research-fetch.ts b/scripts/bench/audit-research-fetch.ts new file mode 100644 index 0000000..e9a9e64 --- /dev/null +++ b/scripts/bench/audit-research-fetch.ts @@ -0,0 +1,112 @@ +/** Independently recompute statistics and audit stored public payloads. No network. */ +import { createHash } from 'node:crypto'; +import { readFileSync, writeFileSync, existsSync } from 'node:fs'; +import { join, resolve } from 'node:path'; + +export const median = (xs: number[]) => { + const s = [...xs].sort((a, b) => a - b); const i = Math.floor(s.length / 2); + return s.length ? s.length % 2 ? s[i]! : (s[i - 1]! + s[i]!) / 2 : null; +}; +export function strictPayload(id: string, data: any): boolean { + const finite = (x: unknown) => typeof x === 'number' && Number.isFinite(x); + const nonempty = (x: unknown) => typeof x === 'string' && x.length > 0; + if (id === 'company.profile') return nonempty(data?.name) && nonempty(data?.symbol); + if (id === 'company.valuation') return !!data && nonempty(data.symbol) && ['pe', 'pb', 'totalMarketValue'].some(k => finite(data[k])); + if (id === 'company.financials') return !!data && nonempty(data.symbol) && ['IS', 'BS', 'CF'].every(k => + Array.isArray(data.statements?.[k]?.indicators) && data.statements[k].indicators.some((i: any) => + Array.isArray(i.accounts) && i.accounts.some((a: any) => nonempty(a.field) && Array.isArray(a.values) && a.values.some((v: any) => finite(v.value))))); + if (id === 'company.ratings') return nonempty(data?.symbol) && (nonempty(data.recommend) || finite(data.target)); + if (id === 'company.earnings') return Array.isArray(data) && data.length > 0 && data.every(x => finite(x.epsMean)); + if (id === 'market.kline') return Array.isArray(data) && data.length >= 2 && data.every(x => finite(x.close) && finite(x.timestamp)); + if (id === 'research.news') return Array.isArray(data) && data.length > 0 && data.every(x => nonempty(x.title) && finite(x.timestamp)); + if (id === 'company.dividends') return Array.isArray(data); // empty is explicitly allowed + return false; // unknown data never silently passes an audit +} +export function observedConcurrency(traces: Array<{ startedMs: number; finishedMs: number }>) { + const events = traces.flatMap(t => [{ at: t.startedMs, delta: 1 }, { at: t.finishedMs, delta: -1 }]); + events.sort((a, b) => a.at - b.at || a.delta - b.delta); + let active = 0; let peak = 0; + for (const e of events) { active += e.delta; peak = Math.max(peak, active); } + return peak; +} +function stat(xs: number[]) { return { n: xs.length, medianMs: median(xs), meanMs: xs.length ? xs.reduce((a,b) => a+b,0)/xs.length : null, + minMs: xs.length ? Math.min(...xs) : null, maxMs: xs.length ? Math.max(...xs) : null }; } +export function audit(dir: string) { + const manifest = JSON.parse(readFileSync(join(dir, 'manifest.json'), 'utf8')); + const reported = JSON.parse(readFileSync(join(dir, 'summary.json'), 'utf8')); + const records = readFileSync(join(dir, 'trials.jsonl'), 'utf8').trim().split('\n').map(s => JSON.parse(s)); + const errors: string[] = []; const payloadFailures: any[] = []; const payloadSeen = new Set(); + const sha256 = (s: string) => createHash('sha256').update(s).digest('hex'); + for (const [path, hash] of Object.entries(manifest.sourceHashes)) { + const p = join(dir, 'source-snapshot', path); + if (!existsSync(p) || sha256(readFileSync(p, 'utf8')) !== hash) errors.push(`source snapshot mismatch: ${path}`); + } + const ids = new Set(); + for (const r of records) { + if (ids.has(r.trialId)) errors.push(`duplicate trial: ${r.trialId}`); ids.add(r.trialId); + const capIds = r.traces.map((t: any) => t.capabilityId).sort(); + if (JSON.stringify(capIds) !== JSON.stringify([...r.planned].sort())) errors.push(`capability mismatch: ${r.trialId}`); + if (observedConcurrency(r.traces) !== r.maxActive || r.maxActive > (r.mode === 'serial' ? 1 : 4)) errors.push(`concurrency mismatch: ${r.trialId}`); + const span = Math.max(...r.traces.map((t: any) => t.finishedMs)) - Math.min(...r.traces.map((t: any) => t.submittedMs)); + if (r.fetchMs !== null && r.fetchMs + 1 < span) errors.push(`fetch timer shorter than capability span: ${r.trialId}`); + for (const t of r.traces) { + if (t.status !== 'success') continue; + if (!t.payloadFile) { errors.push(`missing payload: ${r.trialId}/${t.capabilityId}`); continue; } + const raw = readFileSync(join(dir, t.payloadFile), 'utf8'); + if (sha256(raw) !== t.payloadHash) errors.push(`payload hash mismatch: ${r.trialId}/${t.capabilityId}`); + payloadSeen.add(t.payloadHash); + if (!strictPayload(t.capabilityId, JSON.parse(raw))) payloadFailures.push({ trialId: r.trialId, capabilityId: t.capabilityId }); + } + } + const measured = records.filter(r => !r.warmup); const warmups = records.filter(r => r.warmup); + const expected = manifest.protocol.repeats * manifest.protocol.cases.length * 2; + if (measured.length !== expected) errors.push(`expected ${expected} measured runs, found ${measured.length}`); + if (warmups.length !== manifest.protocol.warmupPairsPerCase * manifest.protocol.cases.length * 2) errors.push('wrong warmup count'); + const pairs: any[] = []; + for (const c of manifest.protocol.cases) for (let round=1;round<=manifest.protocol.repeats;round++) { + const rows = measured.filter(r => r.caseId===c.id && r.round===round); + const serial=rows.find(r=>r.mode==='serial'); const parallel=rows.find(r=>r.mode==='parallel'); + if (rows.length!==2 || !serial || !parallel) { errors.push(`missing pair: ${c.id}/${round}`); continue; } + const ok=(r:any) => r.status==='completed' && r.semanticPayloadsValid && r.sourceAttributionValid && r.fetchMs>0 && !payloadFailures.some(f=>f.trialId===r.trialId); + const eligible=ok(serial)&&ok(parallel); + const fullPayloadMatch=serial.traces.every((s:any)=>parallel.traces.some((p:any)=>p.capabilityId===s.capabilityId&&p.payloadHash===s.payloadHash)); + pairs.push({caseId:c.id, round, eligible, serialMs:serial.fetchMs, parallelMs:parallel.fetchMs, + reductionPct:eligible?(1-parallel.fetchMs/serial.fetchMs)*100:null, fullPayloadMatch}); + } + const eligible=pairs.filter(p=>p.eligible); const serial=stat(eligible.map(p=>p.serialMs)); const parallel=stat(eligible.map(p=>p.parallelMs)); + const reductionPct=serial.medianMs&¶llel.medianMs?(1-parallel.medianMs/serial.medianMs)*100:null; + if (eligible.length!==reported.eligiblePairs || serial.medianMs!==reported.serial.medianMs || parallel.medianMs!==reported.parallel.medianMs) errors.push('summary does not match raw JSONL'); + // Deterministic paired bootstrap, stratified by case (10 observations per case). + let seed=20261019; const random=()=>{seed=(Math.imul(1664525,seed)+1013904223)>>>0;return seed/4294967296;}; + const boot:number[]=[]; + if (eligible.length) for(let k=0;k<10000;k++) { + const sample=manifest.protocol.cases.flatMap((c:any)=>{ + const ps=eligible.filter(p=>p.caseId===c.id); + return Array.from({length:ps.length},()=>ps[Math.floor(random()*ps.length)]); + }); + boot.push((1-median(sample.map((p:any)=>p.parallelMs))!/median(sample.map((p:any)=>p.serialMs))!)*100); + } + boot.sort((a,b)=>a-b); + return { schema:'trail-research-fetch-audit/v1', auditedAt:new Date().toISOString(), errors, payloadFailures, + measuredRuns:measured.length, warmupRuns:warmups.length, eligiblePairs:eligible.length, uniquePublicPayloads:payloadSeen.size, + successfulCapabilityCalls:measured.reduce((n,r)=>n+r.traces.filter((t:any)=>t.status==='success').length,0), + failedCapabilityCalls:measured.reduce((n,r)=>n+r.traces.filter((t:any)=>t.status!=='success').length,0), + sourceReferencesChecked:measured.reduce((n,r)=>n+r.evidenceCount,0), sourceReferenceChecksAllPassed:measured.every(r=>r.sourceAttributionValid), + serial, parallel, reductionOfMediansPct:reductionPct, medianPairedReductionPct:median(eligible.map(p=>p.reductionPct)), + pairedBootstrap95Pct:boot.length?[boot[250],boot[9749]]:null, + bootstrapMeaning:'10,000 paired resamples, stratified by fixed case; seed 20261019; within-session uncertainty only', + exactPayloadMatchPairs:eligible.filter(p=>p.fullPayloadMatch).length, pairs, + perCase:manifest.protocol.cases.map((c:any)=>{ + const ps=eligible.filter(p=>p.caseId===c.id); const s=stat(ps.map(p=>p.serialMs)); const p=stat(ps.map(p=>p.parallelMs)); + return {caseId:c.id,serial:s,parallel:p,reductionOfMediansPct:s.medianMs&&p.medianMs?(1-p.medianMs/s.medianMs)*100:null}; + }), + }; +} +if(import.meta.main){ + const dir=resolve(process.argv[2]??'artifacts/research-fetch-live-20261019'); const result=audit(dir); + writeFileSync(join(dir,'audit.json'),JSON.stringify(result,null,2)); + const csv=['case_id,round,eligible,serial_ms,parallel_ms,reduction_pct,exact_payload_match',...result.pairs.map(p=>[p.caseId,p.round,p.eligible,p.serialMs,p.parallelMs,p.reductionPct,p.fullPayloadMatch].join(','))].join('\n')+'\n'; + writeFileSync(join(dir,'pairs.csv'),csv); + console.log(JSON.stringify({...result,pairs:undefined},null,2)); + if(result.errors.length||result.payloadFailures.length)process.exitCode=1; +} diff --git a/scripts/bench/research-fetch.ts b/scripts/bench/research-fetch.ts new file mode 100644 index 0000000..57f10c6 --- /dev/null +++ b/scripts/bench/research-fetch.ts @@ -0,0 +1,208 @@ +/** Trail-only, read-only live retrieval benchmark. No model or broker calls. */ +import { createHash, randomUUID } from 'node:crypto'; +import { mkdirSync, appendFileSync, writeFileSync, readFileSync, existsSync } from 'node:fs'; +import { resolve, join } from 'node:path'; +import { cpus, platform, release, arch, totalmem } from 'node:os'; +import { execFileSync } from 'node:child_process'; +import { performance } from 'node:perf_hooks'; +import { InstrumentResolver, DEFAULT_INSTRUMENT_CATALOG, type FinanceCapability, type ResearchSynthesisInput, type StrategyId } from '@finagent/core'; +import { createFullRegistry, CapabilityExecutor, type RunOptions, type RunOutcome } from '../../packages/shared/src/capabilities/index.ts'; +import { ResearchRunner } from '../../packages/shared/src/research/runner.ts'; +import { LocalResearchSynthesizer } from '../../packages/shared/src/research/synthesizer-local.ts'; +import { ProviderRouter } from '../../packages/shared/src/providers/router.ts'; +import { createRouterFetchers } from '../../packages/shared/src/providers/router-fetchers.ts'; +import { LongbridgeFinancialDataProvider } from '../../packages/shared/src/providers/longbridge/index.ts'; + +const root = resolve(import.meta.dir, '../..'); +const args = process.argv.slice(2); +function arg(name: string, fallback: string) { const i = args.indexOf(name); return i < 0 ? fallback : args[i + 1]!; } +const out = resolve(root, arg('--out', `artifacts/research-fetch-${new Date().toISOString().replace(/[:.]/g, '-')}`)); +if (existsSync(join(out, 'manifest.json'))) throw new Error('Use a new --out directory; existing evidence is never overwritten.'); +mkdirSync(out, { recursive: true }); +const preflight = args.includes('--preflight'); +const repeats = Number(arg('--repeats', '10')); +const cooldownMs = Number(arg('--cooldown-ms', '2000')); +if (!Number.isInteger(repeats) || repeats < 1 || !Number.isFinite(cooldownMs) || cooldownMs < 0) throw new Error('Invalid benchmark options.'); +const cases: Array<{ id: string; symbol: string; strategyId: StrategyId }> = preflight + ? [{ id: 'preflight-comprehensive-NVDA', symbol: 'NVDA.US', strategyId: 'comprehensive' }] + : [ + { id: 'value-AAPL', symbol: 'AAPL.US', strategyId: 'value' }, + { id: 'risk-review-NVDA', symbol: 'NVDA.US', strategyId: 'risk-review' }, + { id: 'growth-MSFT', symbol: 'MSFT.US', strategyId: 'growth' }, + ]; +const sha256 = (s: string) => createHash('sha256').update(s).digest('hex'); +const sourcePaths = [ + 'packages/shared/src/research/runner.ts', 'packages/shared/src/research/planner.ts', + 'packages/shared/src/capabilities/executor.ts', 'packages/shared/src/strategies/presets.ts', + 'packages/shared/src/providers/router.ts', 'packages/shared/src/providers/router-fetchers.ts', + 'packages/shared/src/providers/longbridge/adapter.ts', 'scripts/bench/research-fetch.ts', +]; +const manifest = { + schema: 'trail-research-fetch/v1', startedAt: new Date().toISOString(), project: 'Trail', + head: execFileSync('git', ['rev-parse', 'HEAD'], { cwd: root, encoding: 'utf8' }).trim(), + trackedChangesAtStart: execFileSync('git', ['diff', '--name-only', 'HEAD'], { cwd: root, encoding: 'utf8' }).trim(), + environment: { platform: platform(), release: release(), arch: arch(), cpu: cpus()[0]?.model, + logicalCpus: cpus().length, totalMemoryGiB: totalmem() / 1024 ** 3, bun: Bun.version, node: process.version, + longbridge: execFileSync('longbridge', ['--version'], { encoding: 'utf8' }).trim(), timezone: Intl.DateTimeFormat().resolvedOptions().timeZone }, + sourceHashes: Object.fromEntries(sourcePaths.map(p => [p, sha256(readFileSync(join(root, p), 'utf8'))])), + protocol: { + preflight, repeats: preflight ? 1 : repeats, warmupPairsPerCase: preflight ? 0 : 1, cooldownMs, cases, + primaryMetric: 'monotonic time from fetching status callback to synthesizing status callback; ms', + comparison: 'unchanged ResearchRunner: FIFO-gated CapabilityExecutor (one active call) vs native worker pool (four)', + baselineIsHistoricalVersion: false, provider: 'Longbridge only via production ProviderRouter/createRouterFetchers', + appCache: 'disabled (router default; no MarketDataService cache)', providerCache: 'uncontrolled/unknown', + retries: 'none (router default one attempt)', capabilityTimeoutMs: 20000, + synthesis: 'local deterministic synthesizer AFTER primary timing; no remote LLM', + excluded: ['Electron/UI', 'model planning', 'LLM synthesis', 'durable checkpoint IO', 'broker/private account calls'], + order: 'alternate serial/parallel order by (round + caseIndex) parity; rotate case order each round', + eligibility: 'only matched pairs where BOTH runs and all capabilities succeed AND all semantic payload checks pass', + failures: 'every attempt retained; no retries, replacement, or selective deletion', + payloadStorage: 'public normalized data snapshots stored for equivalence audit; no auth/status output or account data', + caseSelection: 'Before paired measurement: comprehensive NVDA preflight failed market.intraday and research.events. Chose value/risk-review/growth presets using available capabilities; failures remain in separate preflight artifacts. No full-comprehensive or event-driven success claim.', + }, +}; +writeFileSync(join(out, 'manifest.json'), JSON.stringify(manifest, null, 2)); +for (const path of sourcePaths) { + const target = join(out, 'source-snapshot', path); + mkdirSync(resolve(target, '..'), { recursive: true }); + writeFileSync(target, readFileSync(join(root, path), 'utf8')); +} + +function stable(x: any): any { + if (Array.isArray(x)) return x.map(stable); + if (x && typeof x === 'object') return Object.fromEntries(Object.keys(x).sort().map(k => [k, stable(x[k])])); + return x; +} +function checkPayload(id: string, x: any): boolean { + if (x === null || x === undefined) return false; + if (id === 'company.profile') return typeof x.name === 'string' && x.name.length > 0 && typeof x.symbol === 'string'; + if (id === 'company.valuation') return ['pe', 'pb', 'totalMarketValue'].some(k => typeof x[k] === 'number' && Number.isFinite(x[k])); + if (id === 'company.financials') return !!x.statements && Object.keys(x.statements).length > 0; + if (id === 'company.ratings') return !!x.recommend || typeof x.target === 'number'; + if (['market.kline', 'market.intraday', 'market.trades', 'research.news'].includes(id)) return Array.isArray(x) && x.length > 0; + if (['company.dividends', 'company.earnings', 'research.events'].includes(id)) return Array.isArray(x); // empty can be legitimate; record it explicitly + return typeof x === 'object'; +} +type Trace = { capabilityId: string; submittedMs: number; startedMs: number; finishedMs: number; durationMs: number; + status: string; error?: string; payloadHash?: string; payloadFile?: string; payloadValid: boolean; emptyArray?: boolean }; +class ObservedExecutor extends CapabilityExecutor { + traces: Trace[] = []; + payloads: Array<{ trace: Trace; data: unknown }> = []; + active = 0; + maxActive = 0; + private tail: Promise = Promise.resolve(); + constructor(private serial: boolean) { super(); } + override async run(cap: FinanceCapability, input: unknown, options: RunOptions = {}): Promise { + if (cap.riskLevel !== 'read' || cap.auth !== 'public' || cap.id.startsWith('portfolio.')) throw new Error('Public read-only capabilities only.'); + const submittedMs = performance.now(); + let unlock: (() => void) | undefined; + if (this.serial) { + const prior = this.tail; + this.tail = new Promise(r => { unlock = r; }); + await prior; + } + const startedMs = performance.now(); + this.active += 1; this.maxActive = Math.max(this.maxActive, this.active); + try { + const outcome = await super.run(cap, input, options); + const finishedMs = performance.now(); + const trace: Trace = { capabilityId: cap.id, submittedMs, startedMs, finishedMs, durationMs: finishedMs - startedMs, + status: outcome.record.status, ...(outcome.record.error ? { error: outcome.record.error } : {}), + payloadValid: false }; + this.traces.push(trace); this.payloads.push({ trace, data: outcome.result?.data }); + return outcome; + } finally { this.active -= 1; unlock?.(); } + } +} +mkdirSync(join(out, 'payloads'), { recursive: true }); +const records: any[] = []; +async function trial(c: typeof cases[number], mode: 'serial' | 'parallel', round: number, warmup: boolean) { + const trialId = `${warmup ? 'warmup' : 'measure'}-${round}-${c.id}-${mode}`; + const router = new ProviderRouter(); + router.register(new LongbridgeFinancialDataProvider()); + router.setRouting({ primary: 'longbridge' }); + const resolver = new InstrumentResolver(DEFAULT_INSTRUMENT_CATALOG); + const registry = createFullRegistry(createRouterFetchers(router, { resolve: (q, opts) => resolver.resolve(q, opts) })); + const executor = new ObservedExecutor(mode === 'serial'); + let fetchStart = 0; let fetchEnd = 0; let synthesisInput: ResearchSynthesisInput | undefined; + const local = new LocalResearchSynthesizer(); + const runner = new ResearchRunner({ registry, executor, synthesizer: { async synthesize(input, signal) { + synthesisInput = input; return local.synthesize(input, signal); + } } }); + const startedAt = new Date().toISOString(); const start = performance.now(); + let result: Awaited> | undefined; let exception: string | undefined; + try { result = await runner.run({ symbol: c.symbol, strategyId: c.strategyId, runId: randomUUID(), locale: 'en-US', + onStatus(s) { if (s.status === 'fetching') fetchStart = performance.now(); if (s.status === 'synthesizing') fetchEnd = performance.now(); }, + }); } catch (e) { exception = e instanceof Error ? e.message : String(e); } + const wallMs = performance.now() - start; + // Disk writes, semantic checks and hashing happen only AFTER the timed runner. + for (const { trace, data } of executor.payloads) { + const payload = data === undefined ? undefined : JSON.stringify(stable(data)); + if (payload !== undefined) { + trace.payloadHash = sha256(payload); trace.payloadFile = `payloads/${trace.payloadHash}.json`; + if (!existsSync(join(out, trace.payloadFile))) writeFileSync(join(out, trace.payloadFile), payload); + } + trace.payloadValid = trace.status === 'success' && checkPayload(trace.capabilityId, data); + if (Array.isArray(data)) trace.emptyArray = data.length === 0; + } + const runs = result?.report?.capabilityRuns ?? []; + const evidence = result?.report?.sections.flatMap(s => s.evidence) ?? []; + const knownRunIds = new Set(runs.map(r => r.runId)); + const planned = result?.summary.plannedCapabilities ?? []; + const record = { trialId, startedAt, caseId: c.id, symbol: c.symbol, strategyId: c.strategyId, round, warmup, mode, + fetchMs: fetchEnd > fetchStart && fetchStart > 0 ? fetchEnd - fetchStart : null, wallMs, status: result?.summary.status ?? 'exception', exception, + planned, completed: result?.summary.completedCapabilities ?? [], failed: result?.summary.failedCapabilities ?? [], + maxActive: executor.maxActive, traces: executor.traces, + semanticPayloadsValid: executor.traces.length === planned.length && executor.traces.every(t => t.payloadValid), + sourceAttributionValid: evidence.length === planned.length && evidence.every(e => knownRunIds.has(e.runId) && runs.some(r => r.runId === e.runId && r.capabilityId === e.capabilityId && r.status === 'success')), + evidenceCount: evidence.length, sectionCount: result?.report?.sections.length ?? 0, + synthesisInput: synthesisInput ? { plannedCapabilities: synthesisInput.plannedCapabilities, + bundleCapabilityIds: Object.keys(JSON.parse(synthesisInput.dataBundle)) } : undefined, + }; + records.push(record); appendFileSync(join(out, 'trials.jsonl'), JSON.stringify(record) + '\n'); + console.log(`${trialId}: ${record.status}; fetch=${record.fetchMs?.toFixed(1)}ms; ${record.completed.length}/${planned.length}; valid=${record.semanticPayloadsValid}; maxActive=${record.maxActive}`); + for (const t of executor.traces) if (t.status !== 'success' || !t.payloadValid) console.log(` ${t.capabilityId}: ${t.status}; valid=${t.payloadValid}; ${t.error ?? ''}`); + await Bun.sleep(cooldownMs); +} +const median = (xs: number[]) => { const s = [...xs].sort((a,b) => a-b); const m = Math.floor(s.length/2); return s.length ? s.length%2 ? s[m]! : (s[m-1]!+s[m]!)/2 : null; }; +function stats(xs: number[]) { return { n: xs.length, medianMs: median(xs), meanMs: xs.length ? xs.reduce((a,b)=>a+b,0)/xs.length : null, minMs: xs.length ? Math.min(...xs) : null, maxMs: xs.length ? Math.max(...xs) : null }; } +function summarize() { + const measured = records.filter(r => !r.warmup); + const pairs = cases.flatMap(c => Array.from({ length: preflight ? 1 : repeats }, (_, i) => { + const round = i + 1; const both = measured.filter(r => r.caseId === c.id && r.round === round); + const serial = both.find(r => r.mode === 'serial'); const parallel = both.find(r => r.mode === 'parallel'); + const eligible = [serial, parallel].every(r => r?.status === 'completed' && r.semanticPayloadsValid && r.sourceAttributionValid && r.fetchMs !== null); + const samePayloadCapabilities = serial && parallel ? serial.traces.filter((s: Trace) => parallel.traces.some((p: Trace) => p.capabilityId === s.capabilityId && p.payloadHash === s.payloadHash)).map((t: Trace) => t.capabilityId) : []; + return { caseId: c.id, round, eligible, serialMs: serial?.fetchMs ?? null, parallelMs: parallel?.fetchMs ?? null, + reductionPct: eligible ? (1-parallel.fetchMs/serial.fetchMs)*100 : null, samePayloadCapabilities, + fullPayloadMatch: !!serial && !!parallel && samePayloadCapabilities.length === serial.planned.length }; + })); + const eligible = pairs.filter(p=>p.eligible); + const serialStats = stats(eligible.map(p=>p.serialMs as number)); const parallelStats = stats(eligible.map(p=>p.parallelMs as number)); + const summary = { finishedAt: new Date().toISOString(), measuredRuns: measured.length, warmupRuns: records.length-measured.length, + completedRuns: measured.filter(r=>r.status==='completed').length, semanticValidRuns: measured.filter(r=>r.semanticPayloadsValid).length, + failureRuns: measured.filter(r=>r.status!=='completed').length, eligiblePairs: eligible.length, pairs, + serial: serialStats, parallel: parallelStats, + reductionOfMediansPct: serialStats.medianMs && parallelStats.medianMs ? (1-parallelStats.medianMs/serialStats.medianMs)*100 : null, + medianPairedReductionPct: median(eligible.map(p=>p.reductionPct as number)), + perCase: cases.map(c=> { const ps=eligible.filter(p=>p.caseId===c.id); const s=stats(ps.map(p=>p.serialMs as number)); const p=stats(ps.map(p=>p.parallelMs as number)); + return { caseId:c.id, eligiblePairs:ps.length, serial:s, parallel:p, reductionOfMediansPct:s.medianMs&&p.medianMs?(1-p.medianMs/s.medianMs)*100:null }; }), + allAttemptsStatus: Object.fromEntries(['serial','parallel'].map(mode=>[mode, measured.filter(r=>r.mode===mode).reduce((a:Record,r)=>{a[r.status]=(a[r.status]??0)+1;return a;},{})])), + }; + writeFileSync(join(out, 'summary.json'), JSON.stringify(summary, null, 2)); + return summary; +} +try { + if (preflight) { await trial(cases[0]!, 'parallel', 1, false); } + else { + for (let i=0;i) await trial(cases[i]!,mode,0,true); + for (let round=1;round<=repeats;round++) for (let offset=0;offset) await trial(c,mode,round,false); + } + } +} finally { + const s=summarize(); + console.log(JSON.stringify({ out, measuredRuns:s.measuredRuns, eligiblePairs:s.eligiblePairs, serial:s.serial, parallel:s.parallel, reductionOfMediansPct:s.reductionOfMediansPct },null,2)); + if (preflight ? s.completedRuns !== 1 : s.eligiblePairs !== repeats * cases.length) process.exitCode = 1; +} diff --git a/scripts/bench/tsconfig.json b/scripts/bench/tsconfig.json new file mode 100644 index 0000000..5b15aca --- /dev/null +++ b/scripts/bench/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { "noEmit": true }, + "include": ["./*.ts"] +} diff --git a/scripts/bench/verify-research-citations.ts b/scripts/bench/verify-research-citations.ts new file mode 100644 index 0000000..a9ed48a --- /dev/null +++ b/scripts/bench/verify-research-citations.ts @@ -0,0 +1,51 @@ +/** Extra live correctness evidence, deliberately excluded from latency statistics. */ +import { mkdirSync, writeFileSync, existsSync } from 'node:fs'; +import { resolve, join } from 'node:path'; +import { randomUUID } from 'node:crypto'; +import { InstrumentResolver, DEFAULT_INSTRUMENT_CATALOG, type FinanceCapability, type StrategyId } from '@finagent/core'; +import { createFullRegistry, CapabilityExecutor, type RunOptions, type RunOutcome } from '../../packages/shared/src/capabilities/index.ts'; +import { ResearchRunner } from '../../packages/shared/src/research/runner.ts'; +import { LocalResearchSynthesizer } from '../../packages/shared/src/research/synthesizer-local.ts'; +import { ProviderRouter } from '../../packages/shared/src/providers/router.ts'; +import { createRouterFetchers } from '../../packages/shared/src/providers/router-fetchers.ts'; +import { LongbridgeFinancialDataProvider } from '../../packages/shared/src/providers/longbridge/index.ts'; +import { strictPayload } from './audit-research-fetch.ts'; + +const out=resolve(process.argv[2]??'artifacts/research-fetch-correctness-20261019'); +if(existsSync(out))throw new Error('Use a fresh output directory.'); +mkdirSync(out,{recursive:true}); +const cases:Array<{id:string;symbol:string;strategyId:StrategyId}>=[ + {id:'value-AAPL',symbol:'AAPL.US',strategyId:'value'}, + {id:'risk-review-NVDA',symbol:'NVDA.US',strategyId:'risk-review'}, + {id:'growth-MSFT',symbol:'MSFT.US',strategyId:'growth'}, +]; +class CapturingExecutor extends CapabilityExecutor{ + outcomes:RunOutcome[]=[]; + override async run(cap:FinanceCapability,input:unknown,options:RunOptions={}){ + if(cap.riskLevel!=='read'||cap.auth!=='public'||cap.id.startsWith('portfolio.'))throw new Error('Only public read-only data allowed.'); + const outcome=await super.run(cap,input,options);this.outcomes.push(outcome);return outcome; + } +} +const checks:any[]=[]; +for(const c of cases){ + const router=new ProviderRouter();router.register(new LongbridgeFinancialDataProvider());router.setRouting({primary:'longbridge'}); + const resolver=new InstrumentResolver(DEFAULT_INSTRUMENT_CATALOG); + const registry=createFullRegistry(createRouterFetchers(router,{resolve:(q,o)=>resolver.resolve(q,o)})); + const executor=new CapturingExecutor();const local=new LocalResearchSynthesizer();let synthesisInput:unknown; + const runner=new ResearchRunner({registry,executor,synthesizer:{async synthesize(input,signal){synthesisInput=input;return local.synthesize(input,signal);}}}); + const statuses:any[]=[]; + const result=await runner.run({symbol:c.symbol,strategyId:c.strategyId,runId:randomUUID(),locale:'en-US',onStatus:s=>{statuses.push(s);}}); + const evidence=result.report?.sections.flatMap(s=>s.evidence)??[]; + const mappings=evidence.map(ref=>{ + const underlying=executor.outcomes.find(o=>o.record.id===ref.runId); + return {ref,capabilityRecord:underlying?.record,valid:!!underlying&&underlying.record.status==='success'&&underlying.record.capabilityId===ref.capabilityId&&underlying.result?.provenance.fetchedAt===ref.fetchedAt}; + }); + const numericDataValid=executor.outcomes.every(o=>o.record.status==='success'&&strictPayload(o.record.capabilityId,o.result?.data)); + const check={caseId:c.id,status:result.summary.status,capabilities:result.summary.plannedCapabilities.length,evidenceCount:evidence.length, + everyReferenceResolves:mappings.every(m=>m.valid)&&evidence.length===result.summary.plannedCapabilities.length,numericDataValid}; + checks.push(check); + writeFileSync(join(out,`${c.id}.json`),JSON.stringify({recordedAt:new Date().toISOString(),scope:'extra live retrieval and local rule-based synthesis; excluded from performance samples; no real-model evaluation',...c,statuses,outcomes:executor.outcomes,synthesisInput,result,mappings,check},null,2)); + console.log(JSON.stringify(check));await Bun.sleep(2000); +} +writeFileSync(join(out,'checks.json'),JSON.stringify(checks,null,2)); +if(checks.some(c=>c.status!=='completed'||!c.everyReferenceResolves||!c.numericDataValid))process.exitCode=1;