{
  "common": {
    "confirm": "Confirm",
    "cancel": "Cancel",
    "loading": "Loading...",
    "error": "Error",
    "success": "Success",
    "completed": "Completed",
    "processing": "Generating",
    "pending": "Pending",
    "ready": "Ready",
    "running": "Running",
    "failed": "Failed",
    "unknown": "Unknown",
    "unknownError": "Unknown error",
    "none": "None",
    "close": "Close",
    "back": "Back",
    "next": "Next",
    "retry": "Retry",
    "noData": "No data available",
    "hours": "hours",
    "minutes": "minutes",
    "rounds": "rounds",
    "items": "items",
    "files": "files"
  },
  "meta": {
    "title": "MiroFish - Predict Everything",
    "description": "MiroFish - Social Media Opinion Simulation System"
  },
  "nav": {
    "visitGithub": "Visit our Github page"
  },
  "home": {
    "tagline": "Concise & Universal Swarm Intelligence Engine",
    "version": "/ v0.1-Preview",
    "heroTitle1": "Upload Reports,",
    "heroTitle2": "Predict the Future",
    "heroDesc": "From a single document, {brand} extracts reality seeds to auto-generate a parallel world with up to {agentScale}. Inject variables from a god's-eye view to find the {optimalSolution} in complex group dynamics.",
    "heroDescBrand": "MiroFish",
    "heroDescAgentScale": "million-scale Agents",
    "heroDescOptimalSolution": "\"local optimum\"",
    "slogan": "Let Agents rehearse the future, let decisions prevail",
    "systemStatus": "System Status",
    "systemReady": "Ready",
    "systemReadyDesc": "Prediction engine on standby. Upload unstructured data to initialize a simulation sequence.",
    "metricLowCost": "Low Cost",
    "metricLowCostDesc": "Avg. $5/sim",
    "metricHighAvail": "Scalable",
    "metricHighAvailDesc": "Millions of Agents",
    "workflowSequence": "Workflow",
    "step01Title": "Graph Build",
    "step01Desc": "Seed extraction & memory injection & GraphRAG construction",
    "step02Title": "Env Setup",
    "step02Desc": "Entity extraction & persona generation & Agent config injection",
    "step03Title": "Simulation",
    "step03Desc": "Dual-platform parallel sim & auto-parse requirements & temporal memory",
    "step04Title": "Report",
    "step04Desc": "ReportAgent interacts with the post-simulation environment via rich tools",
    "step05Title": "Interaction",
    "step05Desc": "Chat with any simulated individual & converse with ReportAgent",
    "realitySeed": "01 / Reality Seed",
    "supportedFormats": "Formats: PDF, MD, TXT",
    "dragToUpload": "Drag files to upload",
    "orBrowse": "or click to browse files",
    "inputParams": "Input Parameters",
    "simulationPrompt": ">_ 02 / Simulation Prompt",
    "promptPlaceholder": "// Describe your simulation or prediction requirement in natural language",
    "engineBadge": "Engine: MiroFish-V1.0",
    "startEngine": "Start Engine",
    "initializing": "Initializing..."
  },
  "main": {
    "layoutGraph": "Graph",
    "layoutSplit": "Split",
    "layoutWorkbench": "Workbench",
    "stepNames": ["Graph Build", "Env Setup", "Run Simulation", "Report Generation", "Deep Interaction"]
  },
  "step1": {
    "ontologyGeneration": "Ontology Generation",
    "ontologyCompleted": "Completed",
    "ontologyGenerating": "Generating",
    "ontologyPending": "Pending",
    "ontologyDesc": "LLM analyzes document content and simulation requirements, extracts reality seeds, and auto-generates a suitable ontology structure",
    "analyzingDocs": "Analyzing documents...",
    "graphRagBuild": "GraphRAG Build",
    "graphRagDesc": "Based on the generated ontology, documents are auto-chunked and sent to Zep to build a knowledge graph, extracting entities and relations, forming temporal memory and community summaries",
    "entityNodes": "Entity Nodes",
    "relationEdges": "Relation Edges",
    "schemaTypes": "Schema Types",
    "buildComplete": "Build Complete",
    "buildCompleteDesc": "Graph build is complete. Proceed to the next step for simulation environment setup.",
    "inProgress": "In Progress",
    "creating": "Creating...",
    "enterEnvSetup": "Enter Environment Setup",
    "createSimulationFailed": "Failed to create simulation: {error}",
    "createSimulationException": "Simulation creation error: {error}"
  },
  "step2": {
    "simInstanceInit": "Simulation Instance Initialization",
    "simInstanceDesc": "Create a new simulation instance and pull world parameter templates",
    "asyncTaskDone": "Async task completed",
    "generateAgentPersona": "Generate Agent Personas",
    "generateAgentPersonaDesc": "Combine context to auto-extract entities and relations from the knowledge graph, initialize simulated individuals, and assign unique behaviors and memories based on reality seeds",
    "currentAgentCount": "Current Agents",
    "expectedAgentTotal": "Expected Total Agents",
    "relatedTopicsCount": "Reality Seed Related Topics",
    "generatedAgentPersonas": "Generated Agent Personas",
    "unknownProfession": "Unknown profession",
    "noBio": "No bio available",
    "dualPlatformConfig": "Generate Dual-Platform Config",
    "dualPlatformConfigDesc": "LLM intelligently sets world time flow, recommendation algorithms, each individual's active hours, posting frequency, event triggers, and more based on requirements and reality seeds",
    "simulationDuration": "Simulation Duration",
    "roundDuration": "Round Duration",
    "totalRounds": "Total Rounds",
    "activePerHour": "Active Per Hour",
    "peakHours": "Peak Hours",
    "workHours": "Work Hours",
    "morningHours": "Morning Hours",
    "offPeakHours": "Off-Peak Hours",
    "agentConfig": "Agent Config",
    "activeTimePeriod": "Active Hours",
    "postsPerHour": "Posts/hr",
    "commentsPerHour": "Comments/hr",
    "responseDelay": "Response Delay",
    "activityLevel": "Activity Level",
    "sentimentBias": "Sentiment Bias",
    "influenceWeight": "Influence",
    "recommendAlgoConfig": "Recommendation Algorithm Config",
    "platform1Name": "Platform 1: Plaza / Feed",
    "platform2Name": "Platform 2: Topic / Community",
    "recencyWeight": "Recency Weight",
    "popularityWeight": "Popularity Weight",
    "relevanceWeight": "Relevance Weight",
    "viralThreshold": "Viral Threshold",
    "echoChamberStrength": "Echo Chamber Strength",
    "llmConfigReasoning": "LLM Config Reasoning",
    "initialActivation": "Initial Activation Orchestration",
    "initialActivationDesc": "Auto-generate initial activation events and hot topics based on narrative direction to guide the simulation world's initial state",
    "orchestrating": "Orchestrating",
    "narrativeDirection": "Narrative Direction",
    "initialHotTopics": "Initial Hot Topics",
    "initialActivationSeq": "Initial Activation Sequence ({count})",
    "setupComplete": "Setup Complete",
    "setupCompleteDesc": "Simulation environment is ready. You can now start the simulation.",
    "roundsConfig": "Simulation Rounds Configuration",
    "roundsConfigDesc": "MiroFish auto-plans to simulate {hours} real-world hours, each round representing {minutesPerRound} minutes of elapsed time",
    "customToggle": "Custom",
    "roundsUnit": "rounds",
    "estimatedDuration": "For 100 Agents: est. ~{minutes} minutes",
    "estimatedDurationFull": "For 100 Agents: est. {minutes} minutes",
    "recommendedRounds": "{rounds} (recommended)",
    "customTip": "For first-time runs, we strongly recommend switching to 'Custom Mode' to reduce rounds for a quick preview and lower error risk",
    "backToGraphBuild": "Back to Graph Build",
    "startDualWorldSim": "Start Dual-World Parallel Simulation",
    "profileModalAge": "Apparent Age",
    "profileModalGender": "Apparent Gender",
    "profileModalCountry": "Country/Region",
    "profileModalMbti": "Apparent MBTI",
    "profileModalBio": "Persona Bio",
    "profileModalTopics": "Reality Seed Related Topics",
    "profileModalPersona": "Detailed Persona Background",
    "personaDimExperience": "Full Event Experience",
    "personaDimExperienceDesc": "Complete behavioral trajectory in this event",
    "personaDimBehavior": "Behavioral Profile",
    "personaDimBehaviorDesc": "Experience summary and behavioral preferences",
    "personaDimMemory": "Unique Memory Imprint",
    "personaDimMemoryDesc": "Memories formed from reality seeds",
    "personaDimSocial": "Social Network",
    "personaDimSocialDesc": "Individual connections and interaction graph",
    "genderMale": "Male",
    "genderFemale": "Female",
    "genderOther": "Other",
    "yearsOld": "years old",
    "initializing": "Initializing",
    "generating": "Generating"
  },
  "step3": {
    "startGenerateReport": "Generate Report",
    "generatingReport": "Starting...",
    "waitingForActions": "Waiting for agent actions...",
    "errorMissingSimId": "Error: missing simulationId",
    "startingDualSim": "Starting dual-platform parallel simulation...",
    "graphMemoryUpdateEnabled": "Dynamic graph memory update enabled",
    "setMaxRounds": "Max simulation rounds set to: {rounds}",
    "oldSimCleared": "Old simulation logs cleared, restarting simulation",
    "engineStarted": "Simulation engine started successfully",
    "startFailed": "Start failed: {error}",
    "startException": "Start error: {error}",
    "stoppingSim": "Stopping simulation...",
    "simStopped": "Simulation stopped",
    "stopFailed": "Stop failed: {error}",
    "stopException": "Stop error: {error}",
    "allPlatformsCompleted": "All platform simulations have ended",
    "simCompleted": "Simulation completed",
    "graphRealtimeRefresh": "Graph real-time refresh enabled (30s)",
    "graphRefreshStopped": "Graph real-time refresh stopped",
    "preparingGoBack": "Preparing to return to Step 2, closing simulation...",
    "closingSimEnv": "Closing simulation environment...",
    "simEnvClosed": "Simulation environment closed",
    "closeFailed": "Failed to close simulation environment, attempting force stop...",
    "stoppingProcess": "Stopping simulation process...",
    "checkStatusFailed": "Failed to check simulation status: {error}",
    "forceStopSuccess": "Simulation force stopped",
    "forceStopFailed": "Force stop failed: {error}",
    "startGenerateReportBtn": "Generate Report",
    "generatingReportBtn": "Starting..."
  },
  "step4": {
    "generatingSection": "Generating {title}...",
    "goToInteraction": "Enter Deep Interaction",
    "waitingForReportAgent": "Waiting for Report Agent...",
    "collapse": "Collapse ▲",
    "expandAll": "Show all {count} ▼",
    "expandAllEntities": "Show all {count} ▼",
    "scenarioLabel": "Scenario: ",
    "tabKeyFacts": "Key Facts ({count})",
    "tabCoreEntities": "Core Entities ({count})",
    "tabRelationChains": "Relation Chains ({count})",
    "tabSubQueries": "Sub-queries ({count})",
    "panelKeyFacts": "Latest key facts from temporal memory",
    "totalCount": "{count} total",
    "totalEntityCount": "{count} total",
    "panelCoreEntities": "Core Entities",
    "factCount": "{count} facts",
    "panelRelationChains": "Relation Chains",
    "panelSubQueries": "Drift query analysis sub-questions",
    "emptyKeyFacts": "No key facts available",
    "emptyCoreEntities": "No core entities available",
    "emptyRelationChains": "No relation chains available",
    "tabActiveFacts": "Active Facts ({count})",
    "tabHistoricalFacts": "Historical Facts ({count})",
    "tabEntities": "Entities ({count})",
    "panelActiveFacts": "Active Facts",
    "emptyActiveFacts": "No active facts available",
    "panelHistoricalFacts": "Historical Facts",
    "emptyHistoricalFacts": "No historical facts available",
    "panelEntities": "Entities",
    "emptyEntities": "No entities available",
    "searchLabel": "Search: ",
    "tabFacts": "Facts ({count})",
    "tabEdges": "Edges ({count})",
    "tabNodes": "Nodes ({count})",
    "panelSearchResults": "Search Results",
    "emptySearchResults": "No results found",
    "panelRelatedEdges": "Related Edges",
    "panelRelatedNodes": "Related Nodes",
    "world1": "World 1",
    "world2": "World 2"
  },
  "step5": {
    "interactiveTools": "Interactive Tools",
    "agentsAvailable": "{count} agents available",
    "chatWithReportAgent": "Chat with Report Agent",
    "chatWithAgent": "Chat with any individual in the world",
    "selectChatTarget": "Select chat target",
    "sendSurvey": "Send survey to the world",
    "reportAgentChat": "Report Agent - Chat",
    "reportAgentDesc": "A conversational version of the report generation agent with access to 4 professional tools and MiroFish's complete memory",
    "toolInsightForge": "InsightForge Deep Attribution",
    "toolInsightForgeDesc": "Aligns real-world seed data with simulation state, combining Global/Local Memory for cross-temporal deep attribution analysis",
    "toolPanoramaSearch": "PanoramaSearch Full Tracking",
    "toolPanoramaSearchDesc": "Graph-based BFS algorithm that reconstructs event propagation paths, capturing the full topology of information flow",
    "toolQuickSearch": "QuickSearch Fast Retrieval",
    "toolQuickSearchDesc": "GraphRAG-based instant query interface with optimized indexing for fast extraction of node attributes and discrete facts",
    "toolInterviewSubAgent": "InterviewSubAgent Virtual Interview",
    "toolInterviewSubAgentDesc": "Autonomous interviews that conduct parallel multi-round dialogues with simulated individuals, collecting unstructured opinion data and psychological states",
    "profileBio": "Bio",
    "chatEmptyReportAgent": "Chat with Report Agent to explore report content in depth",
    "chatEmptyAgent": "Chat with simulated individuals to understand their perspectives",
    "chatInputPlaceholder": "Type your question...",
    "selectSurveyTarget": "Select survey targets",
    "selectedCount": "Selected {selected} / {total}",
    "surveyQuestions": "Survey Questions",
    "surveyInputPlaceholder": "Enter the question you want to ask all selected targets...",
    "submitSurvey": "Send Survey",
    "surveyResults": "Survey Results",
    "surveyResultsCount": "{count} responses",
    "selectAll": "Select All",
    "clearSelection": "Clear",
    "errorOccurred": "Sorry, an error occurred: {error}",
    "noResponse": "No response",
    "requestFailed": "Request failed",
    "selectAgentFirst": "Please select a simulated individual first"
  },
  "graph": {
    "panelTitle": "Graph Relationship Visualization",
    "refreshGraph": "Refresh Graph",
    "graphMemoryRealtime": "GraphRAG short/long-term memory updating in real-time",
    "realtimeUpdating": "Updating in real-time...",
    "pendingContentHint": "Some content is still processing. Consider refreshing the graph manually later.",
    "nodeDetails": "Node Details",
    "relationship": "Relationship",
    "graphDataLoading": "Loading graph data...",
    "waitingOntology": "Waiting for ontology generation...",
    "toggleMaximize": "Maximize/Restore",
    "closeHint": "Close hint"
  },
  "history": {
    "title": "Simulation History",
    "graphBuild": "Graph Build",
    "envSetup": "Env Setup",
    "analysisReport": "Analysis Report",
    "moreFiles": "+{count} files",
    "noFiles": "No files",
    "loadingText": "Loading...",
    "simRequirement": "Simulation Requirement",
    "relatedFiles": "Related Files",
    "noRelatedFiles": "No related files",
    "replayTitle": "Simulation Replay",
    "step1Button": "Graph Build",
    "step2Button": "Env Setup",
    "step4Button": "Analysis Report",
    "replayHint": "Step 3 'Run Simulation' and Step 5 'Deep Interaction' must be started during runtime and do not support history replay",
    "notStarted": "Not started",
    "roundsProgress": "{current}/{total} rounds",
    "untitledSimulation": "Untitled simulation",
    "unknownFile": "Unknown file"
  },
  "api": {
    "projectNotFound": "Project not found: {id}",
    "projectDeleteFailed": "Project not found or deletion failed: {id}",
    "projectDeleted": "Project deleted: {id}",
    "projectReset": "Project reset: {id}",
    "requireSimulationRequirement": "Please provide a simulation requirement (simulation_requirement)",
    "requireFileUpload": "Please upload at least one document file",
    "noDocProcessed": "No documents were processed successfully. Please check file formats.",
    "requireProjectId": "Please provide project_id",
    "configError": "Configuration error: {details}",
    "zepApiKeyMissing": "ZEP_API_KEY not configured",
    "ontologyNotGenerated": "Ontology not yet generated. Please call /ontology/generate first.",
    "graphBuilding": "Graph build in progress. Do not resubmit. To force rebuild, add force: true.",
    "textNotFound": "Extracted text content not found",
    "ontologyNotFound": "Ontology definition not found",
    "graphBuildStarted": "Graph build task started. Query progress via /task/{taskId}.",
    "graphBuildComplete": "Graph build complete",
    "buildFailed": "Build failed: {error}",
    "taskNotFound": "Task not found: {id}",
    "graphDeleted": "Graph deleted: {id}",
    "entityNotFound": "Entity not found: {id}",
    "graphNotBuilt": "Graph not yet built. Please call /api/graph/build first.",
    "requireSimulationId": "Please provide simulation_id",
    "simulationNotFound": "Simulation not found: {id}",
    "projectMissingRequirement": "Project missing simulation requirement (simulation_requirement)",
    "prepareStarted": "Preparation task started. Query progress via /api/simulation/prepare/status.",
    "alreadyPrepared": "Preparation already complete. No need to regenerate.",
    "notStartedPrepare": "Preparation not started. Please call /api/simulation/prepare.",
    "taskCompletedPrepared": "Task completed (preparation already exists)",
    "requireTaskOrSimId": "Please provide task_id or simulation_id",
    "configNotFound": "Simulation config not found. Please call /prepare first.",
    "configFileNotFound": "Config file not found. Please call /prepare first.",
    "unknownScript": "Unknown script: {name}. Available: {allowed}",
    "scriptFileNotFound": "Script file not found: {name}",
    "requireGraphId": "Please provide graph_id",
    "noMatchingEntities": "No matching entities found",
    "maxRoundsPositive": "max_rounds must be a positive integer",
    "maxRoundsInvalid": "max_rounds must be a valid integer",
    "invalidPlatform": "Invalid platform type: {platform}. Options: twitter/reddit/parallel",
    "simRunningForceHint": "Simulation is running. Stop it first via /stop, or use force=true to restart.",
    "simNotReady": "Simulation not ready. Current status: {status}. Please call /prepare first.",
    "graphIdRequiredForMemory": "Graph memory update requires a valid graph_id. Ensure the graph is built.",
    "dbNotExist": "Database does not exist. The simulation may not have run yet.",
    "requireMessage": "Please provide a message",
    "missingGraphId": "Missing graph ID",
    "missingGraphIdEnsure": "Missing graph ID. Please ensure the graph has been built.",
    "missingSimRequirement": "Missing simulation requirement description",
    "reportAlreadyExists": "Report already exists",
    "reportGenerateStarted": "Report generation task started. Query progress via /api/report/generate/status.",
    "reportGenerated": "Report generated",
    "reportNotFound": "Report not found: {id}",
    "noReportForSim": "No report found for this simulation: {id}",
    "reportDeleted": "Report deleted: {id}",
    "reportGenerateFailed": "Report generation failed",
    "sectionNotFound": "Section not found: section_{index}.md",
    "reportProgressNotAvail": "Report not found or progress unavailable: {id}",
    "requireAgentId": "Please provide agent_id",
    "requirePrompt": "Please provide a prompt (interview question)",
    "invalidInterviewPlatform": "Platform must be either 'twitter' or 'reddit'",
    "envNotRunning": "Simulation environment not running or closed. Ensure simulation is complete and in command-wait mode.",
    "interviewTimeout": "Interview response timed out: {error}",
    "requireInterviews": "Please provide interviews (interview list)",
    "interviewListMissingAgentId": "Interview list item {index} missing agent_id",
    "interviewListMissingPrompt": "Interview list item {index} missing prompt",
    "interviewListInvalidPlatform": "Interview list item {index} platform must be 'twitter' or 'reddit'",
    "batchInterviewTimeout": "Batch interview response timed out: {error}",
    "globalInterviewTimeout": "Global interview response timed out: {error}",
    "envRunning": "Environment is running and ready for Interview commands",
    "envNotRunningShort": "Environment not running or closed",
    "requireGraphIdAndQuery": "Please provide graph_id and query",
    "initReportAgent": "Initializing Report Agent..."
  },
  "progress": {
    "initGraphService": "Initializing graph build service...",
    "textChunking": "Chunking text...",
    "creatingZepGraph": "Creating Zep graph...",
    "settingOntology": "Setting ontology definition...",
    "addingChunks": "Adding {count} text chunks...",
    "waitingZepProcess": "Waiting for Zep to process data...",
    "fetchingGraphData": "Fetching graph data...",
    "graphBuildComplete": "Graph build complete",
    "buildFailed": "Build failed: {error}",
    "startBuildingGraph": "Starting graph build...",
    "graphCreated": "Graph created: {graphId}",
    "ontologySet": "Ontology set",
    "textSplit": "Text split into {count} chunks",
    "fetchingGraphInfo": "Fetching graph info...",
    "sendingBatch": "Sending batch {current}/{total} ({chunks} chunks)...",
    "batchFailed": "Batch {batch} failed: {error}",
    "noEpisodesWait": "No episodes to wait for",
    "waitingEpisodes": "Waiting for {count} text chunks to process...",
    "episodesTimeout": "Some chunks timed out, {completed}/{total} completed",
    "zepProcessing": "Zep processing... {completed}/{total} done, {pending} pending ({elapsed}s)",
    "processingComplete": "Processing complete: {completed}/{total}",
    "taskComplete": "Task complete",
    "taskFailed": "Task failed",
    "startPreparingEnv": "Preparing simulation environment...",
    "connectingZepGraph": "Connecting to Zep graph...",
    "readingNodeData": "Reading node data...",
    "readingComplete": "Done, {count} entities found",
    "startGenerating": "Starting generation...",
    "analyzingRequirements": "Analyzing simulation requirements...",
    "generatingOutline": "Generating report outline...",
    "parsingOutline": "Parsing outline structure...",
    "outlinePlanComplete": "Outline planning complete",
    "deepSearchAndWrite": "Deep search & writing ({current}/{max})",
    "initReport": "Initializing report...",
    "startPlanningOutline": "Planning report outline...",
    "outlineDone": "Outline complete, {count} sections",
    "generatingSection": "Generating section: {title} ({current}/{total})",
    "sectionDone": "Section {title} complete",
    "assemblingReport": "Assembling full report...",
    "reportComplete": "Report generation complete",
    "reportFailed": "Report generation failed: {error}",
    "savingProfiles": "Saving profile files...",
    "profilesComplete": "Done, {count} profiles generated",
    "callingLLMConfig": "Calling LLM to generate config...",
    "savingConfigFiles": "Saving config files...",
    "configComplete": "Config generation complete",
    "generatingTimeConfig": "Generating time config...",
    "generatingEventConfig": "Generating event config and hot topics...",
    "generatingAgentConfig": "Generating agent config ({start}-{end}/{total})...",
    "generatingPlatformConfig": "Generating platform config...",
    "zepSearchQuery": "All information, activities, events, relationships and background about {name}",
    "timeConfigLabel": "Time Config",
    "eventConfigLabel": "Event Config",
    "agentConfigResult": "Agent Config: {count} generated",
    "postAssignResult": "Post Assignment: {count} posts assigned",
    "profileGenerated": "[Generated] {name} ({type})",
    "readingGraphEntities": "Reading Graph Entities",
    "generatingProfiles": "Generating Agent Profiles",
    "generatingSimConfig": "Generating Simulation Config",
    "preparingScripts": "Preparing Scripts"
  },
  "log": {
    "preparingGoBack": "Preparing to return to Step 2, closing simulation...",
    "closingSimEnv": "Closing simulation environment...",
    "simEnvClosed": "✓ Simulation environment closed",
    "closeSimEnvFailed": "Failed to close simulation environment, attempting force stop...",
    "simForceStopSuccess": "✓ Simulation force stopped",
    "forceStopFailed": "Force stop failed: {error}",
    "stoppingSimProcess": "Stopping simulation process...",
    "simStopped": "✓ Simulation stopped",
    "stopSimFailed": "Failed to stop simulation: {error}",
    "checkStatusFailed": "Failed to check simulation status: {error}",
    "enterStep4": "Entering Step 4: Report Generation",
    "loadingSimData": "Loading simulation data: {id}",
    "timeConfig": "Time config: {minutes} minutes per round",
    "timeConfigFetchFailed": "Failed to fetch time config, using default: {minutes} min/round",
    "projectLoadSuccess": "Project loaded: {id}",
    "loadSimDataFailed": "Failed to load simulation data: {error}",
    "loadException": "Load error: {error}",
    "graphDataLoadSuccess": "Graph data loaded successfully",
    "graphLoadFailed": "Graph load failed: {error}",
    "graphRealtimeRefreshStart": "Graph real-time refresh enabled (30s)",
    "graphRealtimeRefreshStop": "Graph real-time refresh stopped",
    "simRunViewInit": "SimulationRunView initialized",
    "customRounds": "Custom simulation rounds: {rounds}",
    "enterStep3": "Entering Step 3: Run Simulation",
    "customRoundsConfig": "Custom simulation rounds: {rounds} rounds",
    "useAutoRounds": "Using auto-configured simulation rounds",
    "detectedSimEnvRunning": "Detected running simulation environment, closing...",
    "closeSimEnvFailedWithError": "Failed to close simulation environment: {error}",
    "closeSimEnvException": "Simulation environment close error: {error}",
    "detectedSimRunning": "Detected simulation is running, stopping...",
    "forceStopSimFailed": "Force stop simulation failed: {error}",
    "forceStopSimException": "Force stop simulation error: {error}",
    "simViewInit": "SimulationView initialized",
    "errorMissingSimId": "Error: missing simulationId",
    "simInstanceCreated": "Simulation instance created: {id}",
    "preparingSimEnv": "Preparing simulation environment...",
    "detectedExistingPrep": "Detected existing preparation, using it directly",
    "prepareTaskStarted": "Preparation task started",
    "prepareTaskId": "  └─ Task ID: {taskId}",
    "zepEntitiesFound": "Found {count} entities from Zep graph",
    "entityTypes": "  └─ Entity types: {types}",
    "startPollingProgress": "Polling preparation progress...",
    "prepareFailed": "Preparation failed: {error}",
    "prepareException": "Preparation error: {error}",
    "prepareComplete": "✓ Preparation complete",
    "prepareFailedWithError": "✗ Preparation failed: {error}",
    "startGeneratingConfig": "Generating dual-platform simulation config...",
    "generatingAgentProfileConfig": "Generating agent persona config...",
    "generatingLLMConfig": "Calling LLM to generate simulation config parameters...",
    "configComplete": "✓ Simulation config generated",
    "configSummaryAgents": "  ├─ Agents: {count}",
    "configSummaryHours": "  ├─ Duration: {hours} hours",
    "configSummaryPosts": "  ├─ Initial posts: {count}",
    "configSummaryTopics": "  ├─ Hot topics: {count}",
    "configSummaryPlatforms": "  └─ Platforms: Twitter {twitter}, Reddit {reddit}",
    "timeConfigDetail": "Time config: {minutes} min/round, {rounds} rounds total",
    "narrativeDirection": "Narrative direction: {direction}",
    "envSetupComplete": "✓ Environment setup complete, ready to simulate",
    "startSimCustomRounds": "Starting simulation, custom rounds: {rounds}",
    "startSimAutoRounds": "Starting simulation, auto-configured rounds: {rounds}",
    "startGeneratingAgentProfiles": "Generating agent personas...",
    "agentProfile": "→ Agent persona {current}/{total}: {name} ({profession})",
    "allProfilesComplete": "✓ All {count} agent personas generated",
    "loadingExistingConfig": "Loading existing config data...",
    "loadedAgentProfiles": "Loaded {count} agent personas",
    "configLoadSuccess": "✓ Simulation config loaded",
    "configSummaryPostsAlt": "  └─ Initial posts: {count}",
    "configGenerating": "Config generating, polling...",
    "loadConfigFailed": "Failed to load config: {error}",
    "step2Init": "Step 2 environment setup initialized",
    "step3Init": "Step 3 simulation run initialized",
    "startingDualSim": "Starting dual-platform parallel simulation...",
    "setMaxRounds": "Max simulation rounds set to: {rounds}",
    "graphMemoryUpdateEnabled": "Dynamic graph memory update enabled",
    "oldSimCleared": "✓ Old simulation logs cleared, restarting simulation",
    "engineStarted": "✓ Simulation engine started successfully",
    "startFailed": "✗ Start failed: {error}",
    "startException": "✗ Start error: {error}",
    "stoppingSim": "Stopping simulation...",
    "simStoppedSuccess": "✓ Simulation stopped",
    "stopFailed": "Stop failed: {error}",
    "stopException": "Stop error: {error}",
    "allPlatformsCompleted": "✓ All platform simulations have ended",
    "simCompleted": "✓ Simulation completed",
    "reportRequestSent": "Report generation request sent, please wait...",
    "startingReportGen": "Starting report generation...",
    "reportGenTaskStarted": "✓ Report generation task started: {reportId}",
    "reportGenFailed": "✗ Failed to start report generation: {error}",
    "reportGenException": "✗ Report generation error: {error}",
    "step5Init": "Step 5 deep interaction initialized",
    "selectChatTarget": "Selected chat target: {name}",
    "sendFailed": "Send failed: {error}",
    "sendToReportAgent": "Sent to Report Agent: {message}...",
    "reportAgentReplied": "Report Agent replied",
    "sendToAgent": "Sent to {name}: {message}...",
    "agentReplied": "{name} replied",
    "sendSurvey": "Sending survey to {count} targets...",
    "receivedReplies": "Received {count} replies",
    "surveySendFailed": "Survey send failed: {error}",
    "loadReportData": "Loading report data: {id}",
    "loadReportFailed": "Failed to load report: {error}",
    "reportDataLoaded": "Report data loaded",
    "loadReportLogFailed": "Failed to load report logs: {error}",
    "loadedProfiles": "Loaded {count} simulated individuals",
    "loadProfilesFailed": "Failed to load simulated individuals: {error}",
    "interactionViewInit": "InteractionView initialized",
    "reportViewInit": "ReportView initialized",
    "getReportInfoFailed": "Failed to get report info: {error}",
    "enterStep": "Entering Step {step}: {name}",
    "returnToStep": "Returning to Step {step}: {name}",
    "customSimRounds": "Custom simulation rounds: {rounds} rounds"
  },
  "report": {
    "taskStarted": "Report generation task started",
    "planningStart": "Starting report outline planning",
    "fetchSimContext": "Fetching simulation context",
    "planningComplete": "Outline planning complete",
    "sectionStart": "Starting section generation: {title}",
    "reactThought": "ReACT round {iteration} thinking",
    "toolCall": "Calling tool: {toolName}",
    "toolResult": "Tool {toolName} returned result",
    "llmResponse": "LLM response (tool calls: {hasToolCalls}, final answer: {hasFinalAnswer})",
    "sectionContentDone": "Section {title} content generation complete",
    "sectionComplete": "Section {title} generation complete",
    "reportComplete": "Report generation complete",
    "errorOccurred": "Error occurred: {error}",
    "agentInitDone": "ReportAgent initialized: graph_id={graphId}, simulation_id={simulationId}",
    "executingTool": "Executing tool: {toolName}, params: {params}",
    "toolExecFailed": "Tool execution failed: {toolName}, error: {error}",
    "startPlanningOutline": "Starting report outline planning...",
    "outlinePlanDone": "Outline planning complete: {count} sections",
    "outlinePlanFailed": "Outline planning failed: {error}",
    "reactGenerateSection": "ReACT generating section: {title}",
    "sectionIterNone": "Section {title} iteration {iteration}: LLM returned None",
    "sectionConflict": "Section {title} round {iteration}: LLM output both tool call and Final Answer (conflict #{conflictCount})",
    "sectionConflictDowngrade": "Section {title}: {conflictCount} consecutive conflicts, downgrading to truncate and execute first tool call",
    "sectionGenDone": "Section {title} generation complete (tool calls: {count})",
    "multiToolOnlyFirst": "LLM attempted {total} tool calls, executing only the first: {toolName}",
    "sectionNoPrefix": "Section {title} missing 'Final Answer:' prefix, adopting LLM output as final content (tool calls: {count})",
    "sectionMaxIter": "Section {title} reached max iterations, forcing generation",
    "sectionForceFailed": "Section {title} force-finish LLM returned None, using default error message",
    "sectionGenFailedContent": "(This section failed to generate: LLM returned empty response, please retry later)",
    "outlineSavedToFile": "Outline saved to file: {reportId}/outline.json",
    "sectionSaved": "Section saved: {reportId}/section_{sectionNum}.md",
    "reportGenDone": "Report generation complete: {reportId}",
    "reportGenFailed": "Report generation failed: {error}",
    "agentChat": "Report Agent chat: {message}...",
    "fetchReportFailed": "Failed to fetch report content: {error}",
    "outlineSaved": "Outline saved: {reportId}",
    "sectionFileSaved": "Section saved: {reportId}/{fileSuffix}",
    "fullReportAssembled": "Full report assembled: {reportId}",
    "reportSaved": "Report saved: {reportId}",
    "reportFolderDeleted": "Report folder deleted: {reportId}",
    "redirectToQuickSearch": "search_graph redirected to quick_search",
    "redirectToInsightForge": "get_simulation_context redirected to insight_forge"
  },
  "console": {
    "zepToolsInitialized": "ZepToolsService initialized",
    "zepRetryAttempt": "Zep {operation} attempt {attempt} failed: {error}, retrying in {delay}s...",
    "zepAllRetriesFailed": "Zep {operation} failed after {retries} attempts: {error}",
    "graphSearch": "Graph search: graph_id={graphId}, query={query}...",
    "graphSearchOp": "Graph search (graph={graphId})",
    "searchComplete": "Search complete: found {count} relevant facts",
    "zepSearchApiFallback": "Zep Search API failed, falling back to local search: {error}",
    "usingLocalSearch": "Using local search: query={query}...",
    "localSearchComplete": "Local search complete: found {count} relevant facts",
    "localSearchFailed": "Local search failed: {error}",
    "fetchingAllNodes": "Fetching all nodes for graph {graphId}...",
    "fetchedNodes": "Fetched {count} nodes",
    "fetchingAllEdges": "Fetching all edges for graph {graphId}...",
    "fetchedEdges": "Fetched {count} edges",
    "fetchingNodeDetail": "Fetching node detail: {uuid}...",
    "fetchNodeDetailOp": "Fetch node detail (uuid={uuid}...)",
    "fetchNodeDetailFailed": "Failed to fetch node detail: {error}",
    "fetchingNodeEdges": "Fetching edges for node {uuid}...",
    "foundNodeEdges": "Found {count} edges related to node",
    "fetchNodeEdgesFailed": "Failed to fetch node edges: {error}",
    "fetchingEntitiesByType": "Fetching entities of type {type}...",
    "foundEntitiesByType": "Found {count} entities of type {type}",
    "fetchingEntitySummary": "Fetching relationship summary for entity {name}...",
    "fetchingGraphStats": "Fetching statistics for graph {graphId}...",
    "fetchingSimContext": "Fetching simulation context: {requirement}...",
    "insightForgeStart": "InsightForge deep insight retrieval: {query}...",
    "generatedSubQueries": "Generated {count} sub-queries",
    "insightForgeComplete": "InsightForge complete: {facts} facts, {entities} entities, {relationships} relationships",
    "generateSubQueriesFailed": "Failed to generate sub-queries: {error}, using defaults",
    "panoramaSearchStart": "PanoramaSearch broad search: {query}...",
    "panoramaSearchComplete": "PanoramaSearch complete: {active} active, {historical} historical",
    "quickSearchStart": "QuickSearch simple search: {query}...",
    "quickSearchComplete": "QuickSearch complete: {count} results",
    "interviewAgentsStart": "InterviewAgents deep interview (real API): {requirement}...",
    "profilesNotFound": "Profiles not found for simulation {simId}",
    "loadedProfiles": "Loaded {count} agent profiles",
    "selectedAgentsForInterview": "Selected {count} agents for interview: {indices}",
    "generatedInterviewQuestions": "Generated {count} interview questions",
    "callingBatchInterviewApi": "Calling batch interview API (dual platform): {count} agents",
    "interviewApiReturned": "Interview API returned: {count} results, success={success}",
    "interviewApiReturnedFailure": "Interview API returned failure: {error}",
    "interviewApiCallFailed": "Interview API call failed (env not running?): {error}",
    "interviewApiCallException": "Interview API call exception: {error}",
    "interviewAgentsComplete": "InterviewAgents complete: interviewed {count} agents (dual platform)",
    "loadedRedditProfiles": "Loaded {count} profiles from reddit_profiles.json",
    "readRedditProfilesFailed": "Failed to read reddit_profiles.json: {error}",
    "loadedTwitterProfiles": "Loaded {count} profiles from twitter_profiles.csv",
    "readTwitterProfilesFailed": "Failed to read twitter_profiles.csv: {error}",
    "llmSelectAgentFailed": "LLM agent selection failed, using default selection: {error}",
    "generateInterviewQuestionsFailed": "Failed to generate interview questions: {error}",
    "generateInterviewSummaryFailed": "Failed to generate interview summary: {error}"
  }
}
