From 07d38f0c57f99426b622083c25ee2a83098d7819 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Wed, 21 Oct 2026 01:50:36 +0800 Subject: [PATCH] fix(research): generate deep analysis in the interface language Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../goal-research-analysis.tsx | 39 +++++++----- .../goal-research-progress.tsx | 3 +- .../analysis-language-desktop.png | Bin 0 -> 137703 bytes .../analysis-language-mobile.png | Bin 0 -> 60001 bytes docs/development/design.md | 5 ++ docs/reference/trajectory-assessment.md | 14 +++++ .../research-history.mjs | 39 +++++++++++- .../trajectory_assessment_store.py | 56 +++++++++++------- .../capabilities/trajectory_assessment.ts | 36 +++++++++-- .../trajectory_assessment_types.ts | 4 ++ loopx/presentation/research_analysis_api.py | 22 ++++--- .../test_trajectory_assessment_store.py | 4 +- .../trajectory_assessment.test.ts | 25 ++++++++ .../test_research_analysis_api.py | 56 +++++++++++++++++- 14 files changed, 248 insertions(+), 55 deletions(-) create mode 100644 docs/development/assets/runtime-source-analysis/analysis-language-desktop.png create mode 100644 docs/development/assets/runtime-source-analysis/analysis-language-mobile.png diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx index 88112a4bfc..de8f90b495 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx @@ -1,6 +1,6 @@ import {useCallback, useEffect, useRef, useState} from "react"; import {ArrowUpRight, LoaderCircle, RefreshCw, Sparkles, X} from "lucide-react"; -import type {AssessmentCitation, TrajectoryEpisode} from "../../../../../../loopx/control_plane/capabilities/trajectory_assessment_types.js"; +import type {AssessmentCitation, TrajectoryEpisode, TrajectoryOutputLanguage} from "../../../../../../loopx/control_plane/capabilities/trajectory_assessment_types.js"; import {ResearchProgress, metricCopy, verdictLabel, type ResearchProgressPack} from "./goal-research-progress"; import {requestJson} from "../../data/chat"; import {sourceReadApiUrl} from "../../data/local-status-query"; @@ -13,7 +13,7 @@ type Job = {status: string; attempt?: number; analysis_wall_seconds?: number | n config?: {model: string; effort: string; service_tier: string}; served_service_tier?: string | null; usage?: {input_tokens?: number; output_tokens?: number; reasoning_output_tokens?: number} | null}; type Pack = ResearchProgressPack & {source_count: number; analysis_key: string; method_version: string; - config: {model: string; effort: string; service_tier: string}; availability: string; reason_code: string | null; + config: {model: string; effort: string; service_tier: string; output_language?: TrajectoryOutputLanguage}; availability: string; reason_code: string | null; objective?: string; episodes?: TrajectoryEpisode[]; job?: Job | null}; type Snapshot = {ok: true; execution_enabled?: boolean; catalog: {availability: string; reason_code: string | null; default_pack_id: string | null; packs: Pack[]}; pack: Pack | null}; type Citation = AssessmentCitation & {artifact: string; text: string; applicability: string}; @@ -26,6 +26,7 @@ const locationFor = (goal: string) => { export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean, readSourceUrl?: string) { const endpoint = "/api/chat/research-analysis"; + const outputLanguage = zh ? "zh" : "en"; const [citation, setCitation] = useState(null); const [citationError, setCitationError] = useState(""); const [citationBusy, setCitationBusy] = useState(false); @@ -44,22 +45,23 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean const generation = useRef(0); const readSequence = useRef(0); const submitting = useRef(false); - const scope = useRef({goalId, packId: location.packId}); - scope.current = {goalId, packId: location.packId}; + const scope = useRef({goalId, packId: location.packId, outputLanguage}); + scope.current = {goalId, packId: location.packId, outputLanguage}; const read = useCallback(async (packId: string | null = location.packId, signal?: AbortSignal) => { const current = generation.current, sequence = ++readSequence.current; - const query = new URLSearchParams({goal_id: goalId, ...(packId ? {pack_id: packId} : {})}); + const query = new URLSearchParams({goal_id: goalId, output_language: outputLanguage, ...(packId ? {pack_id: packId} : {})}); let value: Snapshot; try {value = await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}?${query}`), {signal});} catch (e) {if (current === generation.current && sequence === readSequence.current && !signal?.aborted) setReadError(errorText(e)); throw e;} - if (!value?.ok || !Array.isArray(value.catalog?.packs) || (value.pack && value.pack.pack_id !== (packId ?? value.catalog.default_pack_id))) { + if (!value?.ok || !Array.isArray(value.catalog?.packs) || (value.pack && (value.pack.pack_id !== (packId ?? value.catalog.default_pack_id) + || value.pack.config.output_language !== outputLanguage || (value.pack.result && value.pack.result.output_language !== outputLanguage)))) { const failure = new Error(zh ? "分析来源读回不一致。" : "Analysis source readback does not match."); if (current === generation.current && sequence === readSequence.current && !signal?.aborted) setReadError(failure.message); throw failure; } - if (current === generation.current && sequence === readSequence.current && scope.current.goalId === goalId && scope.current.packId === packId && !signal?.aborted) {setSnapshot(value); setReadError(""); if (value.pack?.job?.status === "succeeded" || value.pack?.job?.status === "cancelled") setError("");} + if (current === generation.current && sequence === readSequence.current && scope.current.goalId === goalId && scope.current.packId === packId && scope.current.outputLanguage === outputLanguage && !signal?.aborted) {setSnapshot(value); setReadError(""); if (value.pack?.job?.status === "succeeded" || value.pack?.job?.status === "cancelled") setError("");} return value; - }, [goalId, location.packId, zh, readSourceUrl]); + }, [goalId, location.packId, zh, outputLanguage, readSourceUrl]); const applyLocation = useCallback((next: typeof location) => { // Selection and browser history share one source transition. Invalidate // pending reads/actions before a new scope can display the old snapshot. @@ -69,9 +71,9 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean setPending(false); setCancelPending(false); setError(""); setReadError(""); setSnapshot(previous => previous?.pack?.pack_id === next.packId ? previous : previous ? {...previous, pack: null} : null); } - scope.current = {goalId, packId: next.packId}; + scope.current = {goalId, packId: next.packId, outputLanguage}; setLocation(next); - }, [goalId]); + }, [goalId, outputLanguage]); useEffect(() => { generation.current++; submitting.current = false; applyLocation(locationFor(goalId)); setSnapshot(null); setError(""); setReadError(""); setPending(false); setCancelPending(false); @@ -85,7 +87,10 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean void read(location.packId, controller.signal).catch(() => undefined).finally(() => {if (!controller.signal.aborted) setLoading(false);}); return () => controller.abort(); }, [active, read, location.packId]); - const pack = snapshot?.pack ?? null; + // A language change is an analysis-scope change, not a model invocation. + // Hide the prior language synchronously, before the next effect/read finishes. + const currentSnapshot = snapshot?.pack && snapshot.pack.config.output_language !== outputLanguage ? null : snapshot; + const pack = currentSnapshot?.pack ?? null; useEffect(() => {citeGeneration.current++; setCitation(null); setCitationError(""); setCitationBusy(false);}, [goalId, readSourceUrl, snapshot?.pack?.pack_id, snapshot?.pack?.analysis_key]); useEffect(() => { if ((!citation && !citationBusy && !citationError) || !location.open || !active) return; @@ -129,7 +134,7 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean show(); submitting.current = true; setPending(true); setError(""); const current = generation.current; try { - await requestJson(sourceReadApiUrl(readSourceUrl, endpoint), {method: "POST", body: JSON.stringify({goal_id: goalId, pack_id: pack.pack_id, analysis_key: pack.analysis_key, retry})}); + await requestJson(sourceReadApiUrl(readSourceUrl, endpoint), {method: "POST", body: JSON.stringify({goal_id: goalId, pack_id: pack.pack_id, analysis_key: pack.analysis_key, output_language: outputLanguage, retry})}); if (current === generation.current) await read(pack.pack_id); } catch (e) {if (current === generation.current) {setError(errorText(e)); void read(pack.pack_id).catch(() => undefined);}} finally {if (current === generation.current) {submitting.current = false; setPending(false);}} @@ -140,7 +145,7 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean const current = generation.current; setCancelPending(true); try { - await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}/cancel`), {method: "POST", body: JSON.stringify({goal_id: goalId, pack_id: pack.pack_id, analysis_key: pack.analysis_key})}); + await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}/cancel`), {method: "POST", body: JSON.stringify({goal_id: goalId, pack_id: pack.pack_id, analysis_key: pack.analysis_key, output_language: outputLanguage})}); if (current === generation.current) await read(pack.pack_id); } catch (e) {if (current === generation.current) setError(errorText(e));} finally {if (current === generation.current) setCancelPending(false);} @@ -151,13 +156,13 @@ export function useResearchAnalysis(goalId: string, active: boolean, zh: boolean if (origin) sourceTrigger.current = origin; show(false); const current = ++citeGeneration.current; setCitation(null); setCitationBusy(true); setCitationError(""); - const query = new URLSearchParams({goal_id: goalId, pack_id: p.pack_id, analysis_key: p.analysis_key, source_id: c.source_id, first_line: String(c.first_line), last_line: String(c.last_line)}); + const query = new URLSearchParams({goal_id: goalId, pack_id: p.pack_id, analysis_key: p.analysis_key, output_language: outputLanguage, source_id: c.source_id, first_line: String(c.first_line), last_line: String(c.last_line)}); try {const value = await requestJson(sourceReadApiUrl(readSourceUrl, `${endpoint}/citation?${query}`)); if (current === citeGeneration.current) setCitation(value);} catch (e) {if (current === citeGeneration.current) setCitationError(errorText(e));} finally {if (current === citeGeneration.current) setCitationBusy(false);} }; const closeCitation = () => {citeGeneration.current++; setCitation(null); setCitationError(""); setCitationBusy(false); requestAnimationFrame(() => sourceTrigger.current?.focus());}; - return {readOnly: Boolean(readSourceUrl) && snapshot?.execution_enabled !== true, citation, citationBusy, citationError, sourcePanel, readCitation, closeCitation, goalId, zh, location, snapshot, pack, readError, error: error || readError, loading, pending, cancelPending, recordedRunning, panel, trigger, read, show, execute, cancel, + return {readOnly: Boolean(readSourceUrl) && currentSnapshot?.execution_enabled !== true, citation, citationBusy, citationError, sourcePanel, readCitation, closeCitation, goalId, zh, location, snapshot: currentSnapshot, pack, readError, error: error || readError, loading, pending, cancelPending, recordedRunning, panel, trigger, read, show, execute, cancel, close: () => {citeGeneration.current++; setCitation(null); setCitationError(""); setCitationBusy(false); navigate(false); requestAnimationFrame(() => trigger.current?.focus());}, select: (id: string) => navigate(location.open, id, true)}; } type Controller = ReturnType; @@ -182,6 +187,7 @@ export function ResearchAnalysisButton({analysis: a}: {analysis: Controller}) { {a.pack?.result ? (a.zh ? "查看分析" : "View analysis") : a.zh ? "深度分析" : "Deep analysis"} {a.pack ?

{a.zh ? "分析请求设置(固定):" : "Fixed analysis request: "}{a.pack.config.model} / {a.pack.config.effort} / {a.pack.config.service_tier}

: null} +

{a.zh ? "问题解读、理由与限制说明按界面语言生成;切换语言后单独缓存,需点击才生成。引用保留原文。" : "Questions, reasons and limitations follow the interface language. Each language is cached separately and generated only on request. Citations preserve the original text."}

{a.pack?.result ? (a.zh ? "所选范围已有分析,查看不调用 Agent。" : "An analysis exists for the selected scope. Viewing never invokes an Agent.") : (a.zh ? "点击深度分析使用本机 Codex 账户,单独产生分析用量;普通浏览不调用 Agent。" : "Deep analysis uses the local Codex account with separate analysis usage; ordinary browsing never invokes an Agent.")}

{a.zh ? "只分析已授权的固定轨迹,不改变研究历史。范围、方法与来源版本可在结果中查看。" : "Analyzes an authorized fixed trajectory without changing research history. Scope, method and source revisions remain available with the result."}

{a.pack && !a.pack.result && !unavailable ? {a.pack.config.model} · {a.zh ? "单独用量" : "Separate usage"} : null}; @@ -232,7 +238,8 @@ export function ResearchAnalysisPanel({analysis: a}: {analysis: Controller}) { {failed && !a.pending ?

{p.job?.status === "cancelled" ? (zh ? "分析已取消,研究历史保持可读。" : "Analysis cancelled. Research history remains readable.") : (zh ? "上次分析未完成;可重试,原失败记录会保留。" : "The last analysis did not complete. Retry preserves its failure record.")}

: null} {result ? <>
{zh ? "Agent 判断 · 未校准" : "Agent interpretation · uncalibrated"}{p.applicability === "historical" ? (zh ? " · 历史结果" : " · Historical result") : ""}

{headline}

- {p.episodes?.map(episode =>

{episode.question}

+ {p.episodes?.map(episode =>

{result.episode_questions?.find(q => q.episode_id === episode.id)?.question ?? episode.question}

+ {result.episode_questions ?
{zh ? "原始研究问题" : "Original research question"}

{episode.question}

: null}
{(["benefit_test", "evidence_adoption"] as const).map(metric => { const row = result.assessments.find(item => item.episode_id === episode.id && item.metric === metric); return row ?
{metric === "benefit_test" ? (zh ? "原目标收益的检验与缺口" : "Original-objective utility test and its gaps") : (zh ? "证据如何影响后续行动" : "How evidence informed subsequent action")}

{row.reason}

{citationButtons(row.citations)}
: null; diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx index 720a4dcc6b..7e01ad33be 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-progress.tsx @@ -136,7 +136,8 @@ export function ResearchProgress({pack: p, packs, selectedId, error, zh, onSelec return
{assessment.episode_id}{verdictLabel(metric, assessment.verdict, zh)}
- {episode ?

{episode.question}

: null} + {episode ? <>

{result.episode_questions?.find(q => q.episode_id === episode.id)?.question ?? episode.question}

+ {result.episode_questions ?
{zh ? "原始研究问题" : "Original research question"}

{episode.question}

: null} : null}

{assessment.reason}

{assessment.citations.map(c => )}
diff --git a/docs/development/assets/runtime-source-analysis/analysis-language-desktop.png b/docs/development/assets/runtime-source-analysis/analysis-language-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..999041701b63ef098d7a7c9a78352a6797a8d068 GIT binary patch literal 137703 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 P*ETn`GAT7WcjJEmr{eDy literal 0 HcmV?d00001 diff --git a/docs/development/assets/runtime-source-analysis/analysis-language-mobile.png b/docs/development/assets/runtime-source-analysis/analysis-language-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..58fb8a495df0f7bc46b8df4c08063809ad633546 GIT binary patch literal 60001 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 vYb;t?{xdT${Qv*K{J1v*0|OhV<;Bb}LA! { await page.route("**/api/chat/research-analysis**", async route => { if (route.request().method() !== "GET") {analysisWrites++; return route.fulfill({status: 403, json: {error: "Read-only presentation fixture"}});} if (!analysisFixture) return route.fulfill({json: {ok: true, catalog: {availability: "unavailable", reason_code: "no_available_pack", default_pack_id: null, packs: []}, pack: null}}); const query = new URL(route.request().url()).searchParams; + const language = query.get('output_language'); + assert(['zh', 'en'].includes(language), 'Every analysis and original-citation read binds the interface language'); if (new URL(route.request().url()).pathname.endsWith('/citation')) { if (holdCitation) {citationStarted(); await new Promise(resolve => {releaseCitation = resolve;});} if (failedCitation) return route.fulfill({status: 503, json: {error: 'Synthetic citation transport unavailable'}}); @@ -144,6 +146,17 @@ export const researchHistoryScenario = { const selected = ["b", "c", "d"].find(id => query.get("pack_id") === id.repeat(64)) ?? "a"; if (holdOldAnalysis && selected === "a") {slowStarted(); await new Promise(resolve => {releaseOld = resolve;});} const readback = comparisonFixture ? comparisonReadback() : analysisReadback(selected); + for (const pack of [...readback.catalog.packs, readback.pack]) pack.config = {...pack.config, output_language: language}; + if (readback.pack.result) { + readback.pack.result.output_language = language; + if (localizedFixture) { + readback.pack.result.episode_questions = readback.pack.episodes.map(episode => ({episode_id: episode.id, + question: language === 'zh' ? `${episode.id} 是否检验原始目标?` : `Did ${episode.id} test the original objective?`})); + for (const assessment of readback.pack.result.assessments) assessment.reason = language === 'zh' + ? '来源只记录了实验结果,缺少干预与目标瓶颈的联系。' : 'The source records the result but not the intervention’s link to the objective bottleneck.'; + readback.pack.result.limitations = [language === 'zh' ? '合成展示;不是科学校准结果。' : 'Synthetic presentation; not scientific calibration.']; + } + } if (episodeMetadataLimit === 0) delete readback.pack.episodes; else if (episodeMetadataLimit !== null) readback.pack.episodes = readback.pack.episodes.slice(-episodeMetadataLimit); await route.fulfill(unavailableAnalysis && selected === "a" @@ -721,6 +734,30 @@ Path(sys.argv[1]).write_text(json.dumps({'goal_id':goal,'display_name':'Syntheti await rows.last().locator(':scope > summary').click(); await rows.last().getByText(/Synthetic evidence connects/).waitFor(); assert(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth + 1)); + localizedFixture = true; + await page.reload({waitUntil: 'networkidle'}); + await history.getByRole('button', {name: '查看分析', exact: true}).click(); + const chineseAnalysis = history.getByRole('region', {name: '轨迹深度分析', exact: true}); + await chineseAnalysis.locator('.analysis-episode h4').first().filter({hasText: 'variant-alpha 是否检验原始目标?'}).waitFor(); + assert.match(await chineseAnalysis.innerText(), /来源只记录了实验结果/); + const originalQuestion = chineseAnalysis.locator('.analysis-episode').first().getByText('原始研究问题', {exact: true}); + await originalQuestion.click(); + assert.match(await chineseAnalysis.locator('.analysis-episode').first().innerText(), /variant-alpha 的实验是否检验原始目标/); + await originalQuestion.click(); + await page.setViewportSize({width: 1440, height: 1000}); + await chineseAnalysis.evaluate(element => element.scrollIntoView({block: 'start'})); + await page.screenshot({path: resolve(outputDir, 'research-analysis-language-zh.png'), animations: 'disabled'}); + await page.setViewportSize({width: 390, height: 844}); + await chineseAnalysis.evaluate(element => element.scrollIntoView({block: 'start'})); + await page.screenshot({path: resolve(outputDir, 'research-analysis-language-mobile.png'), animations: 'disabled'}); + await page.evaluate(key => localStorage.setItem(key, 'en'), 'loopx-pw-locale'); + await page.reload({waitUntil: 'networkidle'}); + const englishAnalysis = page.getByRole('region', {name: 'Trajectory analysis', exact: true}); + await englishAnalysis.locator('.analysis-episode h4').first().filter({hasText: 'Did variant-alpha test the original objective?'}).waitFor(); + assert.doesNotMatch(await englishAnalysis.innerText(), /来源只记录了实验结果/); + await page.evaluate(key => localStorage.setItem(key, 'zh-CN'), 'loopx-pw-locale'); + await page.reload({waitUntil: 'networkidle'}); + await chineseAnalysis.locator('.analysis-episode h4').first().filter({hasText: 'variant-alpha 是否检验原始目标?'}).waitFor(); assert.equal(analysisWrites, 0, "Cached, reload, switch and keyboard reading never request execution"); assert.equal(api.turnRequests.length, 0, "Reading the graph cannot start an Agent"); return {note: "Three unchanged real checkpoint histories through production HTTP + packaged UI; per-Goal complete pagination, genuine negative evidence, no invented edges, reload/back/forward, mobile and failed refresh. Separate synthetic coincident-target regression; no benchmark qualification or model dispatch.", diff --git a/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py b/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py index 5a44ac6eda..ddd12bbd0a 100644 --- a/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py +++ b/loopx/capabilities/benchmark_toolkit/trajectory_assessment_store.py @@ -57,10 +57,11 @@ def _pack_id(owner_goal_id: str, record: dict) -> str: return _digest(identity) -def _prepared(record: dict) -> dict: +def _prepared(record: dict, output_language: str | None = None) -> dict: return effect_runtime_result( "benchmark.trajectory.prepare", - {"input": record["input"], "config": record["config"]}, + {"input": record["input"], "config": {**record["config"], + **({"output_language": output_language} if output_language is not None else {})}}, ) @@ -212,7 +213,8 @@ def _availability(record: dict, prepared: dict) -> str | None: return None -def _summary(record: dict, reason: str | None) -> dict: +def _summary(record: dict, reason: str | None, prepared: dict | None = None) -> dict: + analysis = prepared or record return { "pack_id": _pack_id(record["owner_goal_id"], record), "title": record["title"], @@ -220,9 +222,9 @@ def _summary(record: dict, reason: str | None) -> dict: "selection": record["input"]["selection"], "episode_count": len(record["input"]["episodes"]), "source_count": len(record["input"]["sources"]), - "analysis_key": record["analysis_key"], - "method_version": record["method_version"], - "config": record["config"], + "analysis_key": analysis["analysis_key"], + "method_version": analysis["method_version"], + "config": analysis["config"], "availability": "unavailable" if reason else "available", "reason_code": reason, **({field: _captured_view(record, field) for field in ("solver_usage", "native_outcomes") if field in record}), @@ -299,13 +301,15 @@ def register_pack( return {"ok": True, **_summary(record, None)} -def discover(*, runtime_root: Path, owner_goal_id: str) -> dict: +def discover(*, runtime_root: Path, owner_goal_id: str, output_language: str | None = None) -> dict: owner = _owner(runtime_root, owner_goal_id) index = _index(owner) packs = [] for pack_id in index["pack_ids"]: _, record = _resolve(runtime_root, owner_goal_id, pack_id) - packs.append(_summary(record, _availability(record, _prepared(record)))) + prepared = _prepared(record) + packs.append(_summary(record, _availability(record, prepared), + _prepared(record, output_language) if output_language is not None else None)) available = any(p["availability"] == "available" for p in packs) return { "ok": True, @@ -352,18 +356,23 @@ def _public_job(job: dict) -> dict: def inspect_pack( - *, runtime_root: Path, owner_goal_id: str, pack_id: str | None = None + *, runtime_root: Path, owner_goal_id: str, pack_id: str | None = None, + output_language: str | None = None, ) -> dict: owner, record = _resolve(runtime_root, owner_goal_id, pack_id) prepared = _prepared(record) reason = _availability(record, prepared) - directory = _job(owner, record, record["analysis_key"]) + if output_language is not None: + prepared = _prepared(record, output_language) + identity = prepared if output_language is not None else record + directory = _job(owner, identity, identity["analysis_key"]) job = read_job(directory) if (directory / "receipt.json").exists() else None result = None if job is not None: if ( - job["analysis_key"] != record["analysis_key"] + job["analysis_key"] != identity["analysis_key"] or job["scope"] != record["input"]["scope"] + or job["config"] != prepared["config"] ): raise PackUnavailable("receipt_mismatch") if job["status"] == "succeeded": @@ -375,13 +384,12 @@ def inspect_pack( job.get("input_sha256") != _digest(record["input"]) or job.get("assessment_sha256") != hashlib.sha256(payload).hexdigest() - or job.get("config") != record["config"] ): raise PackUnavailable("historical_result_unverified") result = json.loads(payload) if ( result.get("schema_version") != "trajectory_assessment_v1" - or result.get("analysis_key") != record["analysis_key"] + or result.get("analysis_key") != identity["analysis_key"] or result.get("scope") != record["input"]["scope"] or result.get("method_version") != record["method_version"] or job.get("method_version") != record["method_version"] @@ -401,7 +409,7 @@ def inspect_pack( ) return { "ok": True, - **_summary(record, reason), + **_summary(record, reason, prepared if output_language is not None else None), "objective": record["input"]["objective"], "episodes": record["input"]["episodes"], "job": _public_job(job) if job else None, @@ -416,14 +424,16 @@ def execute_pack( owner_goal_id: str, pack_id: str, analysis_key: str, + output_language: str | None = None, retry: bool = False, timeout_seconds: int = 900, codex: str = "codex", ) -> dict: owner, record = _resolve(runtime_root, owner_goal_id, pack_id) - _job(owner, record, analysis_key) - prepared = _prepared(record) - reason = _availability(record, prepared) + base = _prepared(record) + prepared = _prepared(record, output_language) if output_language is not None else base + _job(owner, prepared if output_language is not None else record, analysis_key) + reason = _availability(record, base) if reason: raise PackUnavailable(reason) return _public_job( @@ -438,10 +448,12 @@ def execute_pack( def cancel_pack( - *, runtime_root: Path, owner_goal_id: str, pack_id: str, analysis_key: str + *, runtime_root: Path, owner_goal_id: str, pack_id: str, analysis_key: str, + output_language: str | None = None, ) -> dict: owner, record = _resolve(runtime_root, owner_goal_id, pack_id) - return _public_job(request_cancel(_job(owner, record, analysis_key))) + identity = _prepared(record, output_language) if output_language is not None else record + return _public_job(request_cancel(_job(owner, identity, analysis_key))) def read_citation( @@ -453,12 +465,14 @@ def read_citation( source_id: str, first_line: int, last_line: int, + output_language: str | None = None, ) -> dict: _, record = _resolve(runtime_root, owner_goal_id, pack_id) - if analysis_key != record["analysis_key"]: + if analysis_key != (_prepared(record, output_language) if output_language is not None else record)["analysis_key"]: raise PackUnavailable("analysis_key_mismatch") view = inspect_pack( - runtime_root=runtime_root, owner_goal_id=owner_goal_id, pack_id=pack_id + runtime_root=runtime_root, owner_goal_id=owner_goal_id, pack_id=pack_id, + output_language=output_language, ) result = view["result"] citations = [c for a in (result or {}).get("assessments", []) for c in a["citations"]] diff --git a/loopx/control_plane/capabilities/trajectory_assessment.ts b/loopx/control_plane/capabilities/trajectory_assessment.ts index 3ae78e633d..480f886195 100644 --- a/loopx/control_plane/capabilities/trajectory_assessment.ts +++ b/loopx/control_plane/capabilities/trajectory_assessment.ts @@ -6,7 +6,7 @@ import {EffectRuntimeRequestError} from '../effect_runtime_errors.ts'; export const TRAJECTORY_METHOD = 'research-episodes-v2'; import {TRAJECTORY_METRICS} from './trajectory_assessment_types.ts'; -import type {TrajectoryMetric, TrajectoryInput, AssessmentVerdict, TrajectoryAssessment} from './trajectory_assessment_types.ts'; +import type {TrajectoryMetric, TrajectoryInput, AssessmentVerdict, TrajectoryAssessment, TrajectoryOutputLanguage} from './trajectory_assessment_types.ts'; export * from './trajectory_assessment_types.ts'; const object = (v: unknown, name: string): Record => { if (!v || typeof v !== 'object' || Array.isArray(v)) throw new EffectRuntimeRequestError(`${name} must be an object`); @@ -86,17 +86,33 @@ export const TRAJECTORY_OUTPUT_SCHEMA = {type: 'object', additionalProperties: f required: ['episode_id','metric','verdict','reason','citations'], properties: { episode_id: {type: 'string'}, metric: {type: 'string', enum: [...TRAJECTORY_METRICS]}, verdict: {type: 'string', enum: ['yes','no','unknown']}, reason: {type: 'string'}, citations: {type: 'array', items: citationSchema}}}}, limitations: {type: 'array', items: {type: 'string'}}}}; +const LOCALIZED_OUTPUT_SCHEMA = {...TRAJECTORY_OUTPUT_SCHEMA, + required: [...TRAJECTORY_OUTPUT_SCHEMA.required, 'episode_questions'], + properties: {...TRAJECTORY_OUTPUT_SCHEMA.properties, episode_questions: {type: 'array', items: { + type: 'object', additionalProperties: false, required: ['episode_id', 'question'], + properties: {episode_id: {type: 'string'}, question: {type: 'string'}}}}}}; export function prepareTrajectoryAssessment(params: Record) { const input = parseTrajectoryInput(params.input); const config = object(params.config, 'config'); + if (config.output_language !== undefined && config.output_language !== 'zh' && config.output_language !== 'en') { + throw new EffectRuntimeRequestError('output_language must be zh or en'); + } + const language = config.output_language as TrajectoryOutputLanguage | undefined; // Only analysis identity; provider configuration/execution is owned by its adapter. - const configIdentity = {model: str(config.model, 'model'), effort: str(config.effort, 'effort'), service_tier: str(config.service_tier, 'service_tier')}; - const analysis_key = createHash('sha256').update(JSON.stringify({method: TRAJECTORY_METHOD, rubric: RUBRIC, input, config: configIdentity})).digest('hex'); + // Omission preserves the identity of already registered, language-unspecified artifacts. + const configIdentity = {model: str(config.model, 'model'), effort: str(config.effort, 'effort'), service_tier: str(config.service_tier, 'service_tier'), + ...(language ? {output_language: language} : {})}; const numberedSources = input.sources.map(s => ({...s, text: s.text.split('\n').map((line, n) => `${s.first_line+n}: ${line}`).join('\n')})); + const languageInstruction = language ? `\n\nOutput language: ${language === 'zh' ? 'Simplified Chinese (简体中文)' : 'English'}. Write every reason, limitation and episode question in this language, regardless of the evidence language. +Return episode_questions exactly once per supplied episode: episode_id unchanged and question as a concise faithful rendering of its research question. Preserve uncertainty, negation, comparisons, numbers and units. Do not add conclusions to questions. These are analytical renderings, not replacements for original records. +Keep JSON field names, IDs, metric/verdict tokens and citation ranges unchanged. Preserve technical identifiers and any necessary exact source quotation; explain quotations in the requested language.\n` : ''; + const analysis_key = createHash('sha256').update(JSON.stringify({method: TRAJECTORY_METHOD, rubric: RUBRIC, input, config: configIdentity, + ...(language ? {language_instruction: languageInstruction} : {})})).digest('hex'); return {analysis_key, method_version: TRAJECTORY_METHOD, config: configIdentity, input, ...(params.native_outcomes === undefined ? {} : {native_outcomes: projectTrajectoryNativeOutcomes(params.native_outcomes, input)}), - prompt: `${RUBRIC}\n\nEvidence pack:\n${JSON.stringify({...input, sources: numberedSources})}`, output_schema: TRAJECTORY_OUTPUT_SCHEMA}; + prompt: `${RUBRIC}${languageInstruction}\n\nEvidence pack:\n${JSON.stringify({...input, sources: numberedSources})}`, + output_schema: language ? LOCALIZED_OUTPUT_SCHEMA : TRAJECTORY_OUTPUT_SCHEMA}; } export function qualifyTrajectoryAssessment(params: Record): TrajectoryAssessment { const prepared = prepareTrajectoryAssessment(params); @@ -123,7 +139,19 @@ export function qualifyTrajectoryAssessment(params: Record): Tr return {episode_id: id, metric: m, verdict, reason: str(a.reason, 'reason'), citations}; }); if (seen.size !== expected.size) throw new EffectRuntimeRequestError('missing eligible episode metric; emit unknown instead'); + const language = prepared.config.output_language; + const questions = language ? list(raw.episode_questions, 'episode_questions').map(value => { + const q = object(value, 'episode question'); + const episode_id = str(q.episode_id, 'episode_id'); + if (!input.episodes.some(e => e.id === episode_id)) throw new EffectRuntimeRequestError('question outside supplied episodes'); + return {episode_id, question: str(q.question, 'episode question')}; + }) : undefined; + if (questions) { + unique(questions.map(q => q.episode_id), 'episode questions'); + if (questions.length !== input.episodes.length) throw new EffectRuntimeRequestError('missing episode question'); + } return {schema_version: 'trajectory_assessment_v1', method_version: TRAJECTORY_METHOD, analysis_key: prepared.analysis_key, + ...(language ? {output_language: language, episode_questions: questions!} : {}), scope: input.scope, selection: input.selection, evidence_manifest: input.sources.map(({text: _text, ...s}) => s), calibration: 'uncalibrated_model', assessments, metrics: TRAJECTORY_METRICS.map(m => { const rows = assessments.filter(a => a.metric === m), yes = rows.filter(a => a.verdict === 'yes').length, diff --git a/loopx/control_plane/capabilities/trajectory_assessment_types.ts b/loopx/control_plane/capabilities/trajectory_assessment_types.ts index c78859419e..6b34326bbd 100644 --- a/loopx/control_plane/capabilities/trajectory_assessment_types.ts +++ b/loopx/control_plane/capabilities/trajectory_assessment_types.ts @@ -2,6 +2,8 @@ export const TRAJECTORY_METRICS = ['goal_alignment', 'benefit_test', 'discrimination', 'information_gain', 'evidence_adoption', 'redundancy'] as const; export type TrajectoryMetric = typeof TRAJECTORY_METRICS[number]; export type AssessmentVerdict = 'yes' | 'no' | 'unknown'; +/** Analysis presentation only; never the language or identity of source evidence. */ +export type TrajectoryOutputLanguage = 'zh' | 'en'; export interface TrajectorySource { id: string; artifact: string; artifact_sha256: string; first_line: number; text: string; } @@ -28,6 +30,8 @@ export interface TrajectoryAssessment { metrics: Array<{metric: TrajectoryMetric; yes: number; no: number; unknown: number; eligible: number; assessed_fraction: number | null; missing_data_bounds: [number, number] | null}>; limitations: string[]; + output_language?: TrajectoryOutputLanguage; + episode_questions?: Array<{episode_id: string; question: string}>; } /** Provider-observed facts, separate from inferred episode judgments. */ diff --git a/loopx/presentation/research_analysis_api.py b/loopx/presentation/research_analysis_api.py index 118e422f4d..64a4d72e0c 100644 --- a/loopx/presentation/research_analysis_api.py +++ b/loopx/presentation/research_analysis_api.py @@ -8,6 +8,7 @@ from ..capabilities.benchmark_toolkit import trajectory_assessment_store as store from ..feedback import validate_goal_id +from ..control_plane.effect_runtime import EffectRuntimeRejected from .goal_source_routing import goal_source_catalog, linked_goal_source RESEARCH_ANALYSIS_PATH = "/api/chat/research-analysis" @@ -64,11 +65,14 @@ def _research_analysis_read(self): query = self._research_analysis_query() citation = urlparse(self.path).path.endswith("/citation") required = {"goal_id", "pack_id", "analysis_key", "source_id", "first_line", "last_line"} if citation else {"goal_id"} - allowed = required if citation else {"goal_id", "pack_id"} + allowed = (required if citation else {"goal_id", "pack_id"}) | {"output_language"} if not required <= query.keys() or query.keys() - allowed or any(len(v) != 1 for v in query.values()): raise ValueError("Use the registered Goal and opaque pack identifiers") values = {key: value[0] for key, value in query.items()} goal_id = values.pop("goal_id") + language = values.pop("output_language", None) + if language is not None and not language: + raise ValueError("Output language must be nonempty") runtime = self._research_analysis_scope(goal_id) if runtime is None: return @@ -79,11 +83,11 @@ def _research_analysis_read(self): if first < 1 or last < first: raise ValueError("Invalid citation range") result = store.read_citation(runtime_root=runtime, owner_goal_id=goal_id, - first_line=first, last_line=last, **values) + first_line=first, last_line=last, output_language=language, **values) else: - catalog = store.discover(runtime_root=runtime, owner_goal_id=goal_id) + catalog = store.discover(runtime_root=runtime, owner_goal_id=goal_id, output_language=language) pack_id = values.get("pack_id") or catalog["default_pack_id"] - pack = store.inspect_pack(runtime_root=runtime, owner_goal_id=goal_id, pack_id=pack_id) if pack_id else None + pack = store.inspect_pack(runtime_root=runtime, owner_goal_id=goal_id, pack_id=pack_id, output_language=language) if pack_id else None if pack_id: self._research_analysis_verify_source_goal(runtime, goal_id, pack_id, pack) result = {"ok": True, "catalog": catalog, "pack": pack} @@ -94,7 +98,7 @@ def _research_analysis_read(self): self._send_json(result) except store.PackUnavailable as exc: self._send_error("The registered analysis source is unavailable.", status=409, error_code=exc.reason_code) - except (ValueError, TypeError, KeyError): + except (ValueError, TypeError, KeyError, EffectRuntimeRejected): self._send_error("Analysis needs a registered source in this Goal.", status=400, error_code="research_analysis_scope_invalid") except (OSError, RuntimeError): self._send_error("Analysis could not be read. Research history remains available.", status=503, error_code="research_analysis_unavailable") @@ -106,11 +110,13 @@ def _research_analysis_write(self): body = self._read_json(max_bytes=4096) cancel = urlparse(self.path).path.endswith("/cancel") required = {"goal_id", "pack_id", "analysis_key"} - allowed = required if cancel else required | {"retry"} + allowed = (required if cancel else required | {"retry"}) | {"output_language"} if body.keys() - allowed or not required <= body.keys() or any(not isinstance(body[k], str) or not body[k] for k in required): raise ValueError("Only registered Goal/pack/key operations are accepted") if not cancel and type(body.get("retry", False)) is not bool: raise ValueError("Retry must be an explicit boolean") + if "output_language" in body and (not isinstance(body["output_language"], str) or not body["output_language"]): + raise ValueError("Output language must be nonempty text") if getattr(self.server, "analysis_source_namespace", None) is None: if (linked_goal_source(self.server, body["goal_id"]) is not None or "source_namespace" in parse_qs(urlparse(self.path).query, keep_blank_values=True)): @@ -120,7 +126,7 @@ def _research_analysis_write(self): if runtime is None: return args = dict(runtime_root=runtime, owner_goal_id=body["goal_id"], - pack_id=body["pack_id"], analysis_key=body["analysis_key"]) + pack_id=body["pack_id"], analysis_key=body["analysis_key"], output_language=body.get("output_language")) self._research_analysis_verify_source_goal(runtime, body["goal_id"], body["pack_id"]) # The server's existing threaded request is the asynchronous host. # Provider key/claim, source verification and cancellation @@ -129,7 +135,7 @@ def _research_analysis_write(self): self._send_json({"ok": True, "job": job}) except store.PackUnavailable as exc: self._send_error("Analysis source changed or is unavailable; refresh before retrying.", status=409, error_code=exc.reason_code) - except (ValueError, TypeError, KeyError): + except (ValueError, TypeError, KeyError, EffectRuntimeRejected): self._send_error("Analysis request was not accepted. Refresh its source and retry.", status=400, error_code="research_analysis_request_invalid") except (OSError, RuntimeError): self._send_error("Analysis did not complete. Read its status before retrying.", status=503, error_code="research_analysis_unavailable") diff --git a/tests/capabilities/test_trajectory_assessment_store.py b/tests/capabilities/test_trajectory_assessment_store.py index 6f5507e5e1..66a95cd21c 100644 --- a/tests/capabilities/test_trajectory_assessment_store.py +++ b/tests/capabilities/test_trajectory_assessment_store.py @@ -420,11 +420,11 @@ def test_method_upgrade_reads_verified_old_result_without_rejudging(pack, monkey current = inspect_pack(**scope) original_prepare = store._prepared - def upgraded_method(record): + def upgraded_method(record, output_language=None): # Simulate a new method identity at the typed-owner boundary. The real # old method, child process and stored receipt were exercised above. return { - **original_prepare(record), + **original_prepare(record, output_language), "analysis_key": "b" * 64, "method_version": "future-method", } diff --git a/tests/control_plane_ts/trajectory_assessment.test.ts b/tests/control_plane_ts/trajectory_assessment.test.ts index e7f85f3d2d..e9505f488f 100644 --- a/tests/control_plane_ts/trajectory_assessment.test.ts +++ b/tests/control_plane_ts/trajectory_assessment.test.ts @@ -14,6 +14,31 @@ const output = () => ({assessments:[ {episode_id:'e2',metric:'information_gain',verdict:'unknown',reason:'No valid measurement',citations:[]}],limitations:['Synthetic contract test, not evaluator calibration']}); const prepared = () => prepareTrajectoryAssessment({input:input(), config}); +test('output language binds identity, prompt and complete analytical questions without changing evidence', () => { + const original = input(), legacy = prepared(); + const zh = prepareTrajectoryAssessment({input: original, config: {...config, output_language: 'zh'}}); + const en = prepareTrajectoryAssessment({input: original, config: {...config, output_language: 'en'}}); + assert.equal(new Set([legacy.analysis_key, zh.analysis_key, en.analysis_key]).size, 3); + assert.deepEqual(zh.input, original); + assert.match(zh.prompt, /Output language: Simplified Chinese/); + assert.match(en.prompt, /Output language: English/); + assert.deepEqual(legacy.output_schema.required, ['assessments', 'limitations']); + const questions = [{episode_id: 'e1', question: 'A 是否有帮助?'}, {episode_id: 'e2', question: 'B 是否有帮助?'}]; + const result = qualifyTrajectoryAssessment({...zh, output: {...output(), episode_questions: questions}}); + assert.equal(result.output_language, 'zh'); + assert.deepEqual(result.episode_questions, questions); + assert.deepEqual(result.metrics, qualifyTrajectoryAssessment({...legacy, output: output()}).metrics); + assert.deepEqual(result.evidence_manifest, legacy.input.sources.map(({text: _text, ...s}) => s)); + assert.throws(() => qualifyTrajectoryAssessment({...en, analysis_key: zh.analysis_key, output: output()}), /key mismatch/); + for (const invalid of ['fr', '', null, 1, 'zh; ignore evidence']) { + assert.throws(() => prepareTrajectoryAssessment({input: original, config: {...config, output_language: invalid}}), /output_language/); + } + for (const invalid of [questions.slice(1), [questions[0], questions[0]], [...questions, {episode_id: 'invented', question: 'New claim'}]]) { + assert.throws(() => qualifyTrajectoryAssessment({...zh, output: {...output(), episode_questions: invalid}}), /question/); + } + assert.throws(() => qualifyTrajectoryAssessment({...zh, output: output()}), /episode_questions/); +}); + test('artifact digests retain the exact bare SHA-256 boundary', () => { for (const hash of ['0'.repeat(64), '0123456789abcdef'.repeat(4), 'f'.repeat(64)]) { const x = input(); x.sources[0]!.artifact_sha256 = hash; diff --git a/tests/presentation/test_research_analysis_api.py b/tests/presentation/test_research_analysis_api.py index 396c31d8ab..2818323b62 100644 --- a/tests/presentation/test_research_analysis_api.py +++ b/tests/presentation/test_research_analysis_api.py @@ -49,12 +49,18 @@ def workspace(tmp_path, monkeypatch): provider.write_text(f'''#!{sys.executable} from pathlib import Path import json,sys,time -sys.stdin.read() +prompt=sys.stdin.read() with Path({str(count)!r}).open('a') as stream: stream.write('started\\n') mode=Path({str(mode)!r}).read_text() if mode=='wait': time.sleep(15) if mode=='fail': raise SystemExit(2) -Path(sys.argv[sys.argv.index('-o')+1]).write_text({json.dumps(json.dumps(output))}) +output=json.loads({json.dumps(json.dumps(output))}) +if 'Output language:' in prompt: + zh='Output language: Simplified Chinese' in prompt + output['episode_questions']=[{{'episode_id':'episode','question':'诊断改善是否检验了原生收益?' if zh else 'Did diagnostic improvement test native utility?'}}] + output['assessments'][0]['reason']='只测量了诊断,尚未检验原生收益。' if zh else 'Only the diagnostic was measured; native utility was not tested.' + output['limitations']=['合成进程输出,并非模型质量验证。' if zh else 'Synthetic process, not model quality evidence.'] +Path(sys.argv[sys.argv.index('-o')+1]).write_text(json.dumps(output,ensure_ascii=False),encoding='utf-8') print(json.dumps({{'type':'turn.completed','usage':{{'input_tokens':10,'output_tokens':2}}}})) ''') provider.chmod(0o700) @@ -86,6 +92,52 @@ def request(*, goal="research-owner", body=None, suffix="", headers=None, **quer server.server_close() +def test_frontend_language_scopes_process_retry_cache_and_original_citations(workspace): + w, read = workspace, workspace["request"] + zh, en, legacy = read(output_language="zh")["pack"], read(output_language="en")["pack"], read()["pack"] + assert len({p["analysis_key"] for p in (zh, en, legacy)}) == 3 + assert zh["pack_id"] == en["pack_id"] == legacy["pack_id"] + assert zh["episodes"] == en["episodes"] == legacy["episodes"] + assert not w["count"].exists() + operation = {**w["operation"], "analysis_key": zh["analysis_key"], "output_language": "zh"} + for language in ("fr", "", None, ["zh"]): + with pytest.raises(HTTPError) as invalid: + read(body={**operation, "output_language": language}) + assert invalid.value.code == 400 + assert not w["count"].exists() + with pytest.raises(HTTPError) as mismatch: + read(body={**operation, "output_language": "en"}) + assert mismatch.value.code == 409 and not w["count"].exists() + w["mode"].write_text("fail") + with pytest.raises(HTTPError): + read(body=operation) + assert read(output_language="zh")["pack"]["job"]["status"] == "failed" + assert read(output_language="en")["pack"]["job"] is None + w["mode"].write_text("ok") + assert read(body={**operation, "retry": True})["job"]["status"] == "succeeded" + view = read(output_language="zh")["pack"] + assert view["result"]["output_language"] == "zh" + assert view["result"]["episode_questions"][0]["question"] == "诊断改善是否检验了原生收益?" + assert view["result"]["assessments"][0]["reason"] == "只测量了诊断,尚未检验原生收益。" + assert view["result"]["limitations"] == ["合成进程输出,并非模型质量验证。"] + assert view["episodes"][0]["question"] == "Did diagnostic improvement test native utility?" + calls = w["count"].read_text() + assert read(body=operation)["job"]["reused"] and w["count"].read_text() == calls + citation_query = {k: v for k, v in operation.items() if k != "goal_id"} + citation = read(suffix="/citation", **citation_query, source_id="facts", first_line=2, last_line=2) + assert citation["text"] == "Only the diagnostic was measured; native utility remains untested." + assert read(output_language="en")["pack"]["result"] is None + assert read()["pack"]["result"] is None + english_operation = {**operation, "analysis_key": en["analysis_key"], "output_language": "en"} + with pytest.raises(HTTPError) as wrong_cancel: + read(body={**operation, "output_language": "en"}, suffix="/cancel") + assert wrong_cancel.value.code == 409 + assert read(body=english_operation)["job"]["status"] == "succeeded" + assert read(output_language="en")["pack"]["result"]["output_language"] == "en" + assert read(output_language="zh")["pack"]["result"] == view["result"] + assert all(path.read_bytes() == data for path, data in w["before"].items()) + + def test_registered_http_cancel_failure_retry_reuse_and_source_return(workspace): w = workspace read, operation = w["request"], w["operation"]