feat: add investigation map workspace view
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Investigation Map Mock Adapter
|
||||
*
|
||||
* Provides the Investigation Map with a set of investigation topics and their
|
||||
* current status (established / current / unknown).
|
||||
*
|
||||
* TODO: Replace this mock adapter when the reasoning engine emits real
|
||||
* investigation data. The eventual contract should provide:
|
||||
* - `investigationTopics`: [{ title, status, evidenceCount? }]
|
||||
* - `topicStatus` values: "established" | "current" | "unknown"
|
||||
* - `topicOrdering`: the reasoning-engine-determined sequence
|
||||
* - `evidenceCount`: optional count of supporting evidence per topic
|
||||
*
|
||||
* Until then, this adapter drives a realistic mock progression across turns.
|
||||
*/
|
||||
|
||||
/** @type {Array<{ title: string }>} */
|
||||
const TOPICS = [
|
||||
{ title: "Central situation" },
|
||||
{ title: "Complaint trend direction" },
|
||||
{ title: "Measurement basis" },
|
||||
{ title: "Production volume context" },
|
||||
{ title: "QA process changes" },
|
||||
{ title: "Product change log" },
|
||||
{ title: "Support response patterns" },
|
||||
{ title: "Prior similar cases" },
|
||||
];
|
||||
|
||||
/**
|
||||
* Status progression per turn index.
|
||||
* The reasoning engine will eventually determine these values.
|
||||
*/
|
||||
const PROGRESSION = [
|
||||
// Turn 0 — initial analysis just started
|
||||
["established", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown"],
|
||||
// Turn 1 — first question answered
|
||||
["established", "established", "current", "unknown", "unknown", "unknown", "unknown", "unknown"],
|
||||
// Turn 2 — second question answered
|
||||
["established", "established", "established", "current", "unknown", "unknown", "unknown", "unknown"],
|
||||
// Turn 3 — third question answered
|
||||
["established", "established", "established", "established", "current", "unknown", "unknown", "unknown"],
|
||||
// Turn 4 — fourth question answered
|
||||
["established", "established", "established", "established", "established", "current", "unknown", "unknown"],
|
||||
// Turn 5 — fifth question answered
|
||||
["established", "established", "established", "established", "established", "established", "current", "unknown"],
|
||||
// Turn 6+ — final turn
|
||||
["established", "established", "established", "established", "established", "established", "established", "current"],
|
||||
];
|
||||
|
||||
/**
|
||||
* Get investigation map topics for a given turn index.
|
||||
* @param {number} turnIndex - Zero-based turn number (0 = initial analysis).
|
||||
* @returns {{ title: string, status: 'established' | 'current' | 'unknown' }[]}
|
||||
*/
|
||||
export function getInvestigationMapTopics(turnIndex) {
|
||||
const idx = Math.min(turnIndex, PROGRESSION.length - 1);
|
||||
return TOPICS.map((topic, i) => ({
|
||||
title: topic.title,
|
||||
status: PROGRESSION[idx][i],
|
||||
}));
|
||||
}
|
||||
|
||||
export default getInvestigationMapTopics;
|
||||
Reference in New Issue
Block a user