Upgrade Alias-Agent to 0.2.0 (#51)
Upgrade Alias-Agent to 0.2.0 --------- Co-authored-by: ZiTao-Li <zitao.l@alibaba-inc.com> Co-authored-by: xieyxclack <yuexiang.xyx@alibaba-inc.com> Co-authored-by: Zexi Li <tomleeze@qq.com> Co-authored-by: SSSuperDan <dlaura2218@gmail.com> Co-authored-by: lalaliat <78087788+lalaliat@users.noreply.github.com> Co-authored-by: jinli.yl <jinli.yl@alibaba-inc.com> Co-authored-by: Dengjiaji <dengjiaji.djj@alibaba-inc.com> Co-authored-by: 于南 <zengtianjing.ztj@alibaba-inc.com> Co-authored-by: JustinDing <166603159+sleepy-bird-world@users.noreply.github.com> Co-authored-by: y1y5 <269557841@qq.com> Co-authored-by: 柳佚 <yly287738@alibaba-inc.com> Co-authored-by: LiangguiWeng <347185100@qq.com> Co-authored-by: 潜星 <zhijian.mzj@alibaba-inc.com> Co-authored-by: StCarmen <1106135234@qq.com> Co-authored-by: LuYi <yilu_2000@outlook.com> Co-authored-by: 刺葳 <ciwei.cy@alibaba-inc.com>
124
alias/.env.example
Normal file
@@ -0,0 +1,124 @@
|
||||
# =============================================================================
|
||||
# alias Configuration File
|
||||
# =============================================================================
|
||||
# This file contains all configuration options for the alias application.
|
||||
# Copy this file to .env and modify the values according to your environment.
|
||||
#
|
||||
# Configuration is organized by importance:
|
||||
# 1. Core System Configuration (Critical - Must be configured)
|
||||
# 2. Core Features Configuration (Essential - Required for main functionality)
|
||||
# 3. Feature-Specific Configuration (Important - Required for specific features)
|
||||
# 4. Advanced Configuration (Optional - Performance tuning and monitoring)
|
||||
# =============================================================================
|
||||
|
||||
# =============================================================================
|
||||
# 1. CORE SYSTEM CONFIGURATION (Critical - Must be configured)
|
||||
# =============================================================================
|
||||
|
||||
# Application Identity
|
||||
PROJECT_NAME="Alias"
|
||||
VERSION=0.0.1
|
||||
ENVIRONMENT=local
|
||||
|
||||
# Security Configuration (Critical for authentication and API security)
|
||||
SECRET_KEY=alias
|
||||
API_V1_STR=/api/v1
|
||||
INNER_API_KEY=
|
||||
ALGORITHM=HS256
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES=11520
|
||||
|
||||
# Server Configuration (Core server settings)
|
||||
FRONTEND_URL=http://localhost:3000
|
||||
BACKEND_URL=http://localhost:8000
|
||||
USER_PROFILING_BASE_URL=
|
||||
|
||||
# Database Configuration (Essential for data persistence)
|
||||
USE_POSTGRESQL=false
|
||||
DB_HOST="localhost"
|
||||
DB_PORT=5432
|
||||
DB_USER="alias"
|
||||
DB_PASSWORD="alias"
|
||||
DB_NAME="alias"
|
||||
|
||||
# User Configuration (Initial superuser setup)
|
||||
FIRST_SUPERUSER_EMAIL=alias@agentscope.com
|
||||
FIRST_SUPERUSER_USERNAME=alias
|
||||
FIRST_SUPERUSER_PASSWORD=alias
|
||||
|
||||
# Storage Configuration (File storage settings)
|
||||
STORAGE_TYPE=local
|
||||
LOCAL_STORAGE_DIR=
|
||||
|
||||
# =============================================================================
|
||||
# 2. CORE FEATURES CONFIGURATION (Essential - Required for main functionality)
|
||||
# =============================================================================
|
||||
|
||||
# Redis Configuration (Essential for caching and session management)
|
||||
REDIS_ENABLED=true
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_DB=0
|
||||
REDIS_USERNAME=
|
||||
REDIS_PASSWORD=
|
||||
|
||||
# Sandbox Configuration (Core sandbox functionality)
|
||||
SANDBOX_PUBLIC_HOST=localhost
|
||||
SANDBOX_PORT=8001
|
||||
SANDBOX_TYPE=alias
|
||||
SANDBOX_BEARER_TOKEN=
|
||||
SANDBOX_URL=
|
||||
|
||||
# Sandbox Environment Variables
|
||||
HOST=localhost
|
||||
PORT=${SANDBOX_PORT}
|
||||
DEFAULT_SANDBOX_TYPE=${SANDBOX_TYPE}
|
||||
WORKDIR=/workspace
|
||||
POOL_SIZE=5
|
||||
AUTO_CLEANUP=false
|
||||
CONTAINER_PREFIX_KEY=alias_container_
|
||||
CONTAINER_DEPLOYMENT=docker
|
||||
DEFAULT_MOUNT_DIR=
|
||||
PORT_RANGE=[49152,59152]
|
||||
BEARER_TOKEN=${SANDBOX_BEARER_TOKEN}
|
||||
FILE_SYSTEM=local
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# 3. FEATURE-SPECIFIC CONFIGURATION (Important - Required for specific features)
|
||||
# =============================================================================
|
||||
|
||||
# Logging Configuration (Application logging)
|
||||
LOG_FILE=./logs/app.log
|
||||
LOG_FORMAT=
|
||||
LOG_LEVEL=INFO
|
||||
LOG_ROTATION=500 MB
|
||||
LOG_RETENTION=10
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# 4. ADVANCED CONFIGURATION (Optional - Performance tuning and monitoring)
|
||||
# =============================================================================
|
||||
|
||||
# Database Pool Configuration (Performance tuning)
|
||||
DB_POOL_SIZE=30
|
||||
DB_MAX_OVERFLOW=30
|
||||
DB_POOL_TIMEOUT=30
|
||||
DB_POOL_RECYCLE=3600
|
||||
DB_POOL_PRE_PING=true
|
||||
DB_ECHO=false
|
||||
|
||||
# Alibaba Cloud OSS Configuration (Cloud storage)
|
||||
OSS_ACCESS_KEY_ID=
|
||||
OSS_ACCESS_KEY_SECRET=
|
||||
OSS_ENDPOINT=
|
||||
OSS_BUCKET_NAME=
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# AGENT CONFIGURATION (Agent-specific settings)
|
||||
# =============================================================================
|
||||
|
||||
# Agent Execution Settings
|
||||
HEARTBEAT_INTERVAL=10
|
||||
MAX_CHAT_EXECUTION_TIME=3600 # 1 hour
|
||||
ENABLE_BACKGROUND_CHAT=true
|
||||
62
alias/.gitignore
vendored
@@ -1,15 +1,63 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
# dependencies
|
||||
frontend/node_modules
|
||||
frontend/package-lock.json
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
__pycache__/
|
||||
*.db
|
||||
*.rdb
|
||||
|
||||
# IDEs and editors
|
||||
.idea/
|
||||
.vscode/
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
# Logs
|
||||
logs/
|
||||
src/alias/agent/agents/log/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
openapi-ts*.log
|
||||
|
||||
# MacOS
|
||||
.DS_Store
|
||||
|
||||
# Windows
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
|
||||
# Linux
|
||||
*~
|
||||
|
||||
# Python
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
uv.lock
|
||||
|
||||
# Package
|
||||
alias.egg-info/
|
||||
|
||||
# Logs
|
||||
logs/
|
||||
*.log
|
||||
dr_execution_trac/
|
||||
sessions_mount_dir/
|
||||
|
||||
# Performance test
|
||||
tests/performance_test/tmp_runtime_config/runtime_example.json
|
||||
386
alias/README.md
@@ -1,118 +1,354 @@
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/alias.png"
|
||||
alt="Alias-Agent Logo"
|
||||
width="500"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
<h2 align="center">Alias-Agent: Start It Now, Extend It Your Way, Deploy All with Ease</h2>
|
||||
|
||||
<div align="center">
|
||||
|
||||
<img src="assets/alias.png" alt="Alias-Agent Logo" width="500" height="250" style="vertical-align: middle; margin-right: 20px;">
|
||||
<h1 style="text-decoration: none; border-bottom: none; display: inline; vertical-align: middle; margin: 0;">Alias-Agent: Start It Now, Extend It Your Way, Deploy All with Ease</h1>
|
||||
[](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE)
|
||||
[](https://www.python.org/)
|
||||
[](https://doc.agentscope.io/)
|
||||
[](https://runtime.agentscope.io/)
|
||||
[](https://github.com/agentscope-ai/agentscope-samples)
|
||||
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://pypi.org/project/alias-agent/">
|
||||
<img
|
||||
src="https://img.shields.io/badge/python-3.10+-blue?logo=python"
|
||||
alt="python"
|
||||
/>
|
||||
</a>
|
||||
<a href="./LICENSE">
|
||||
<img
|
||||
src="https://img.shields.io/badge/license-Apache--2.0-black"
|
||||
alt="license"
|
||||
/>
|
||||
</a>
|
||||
<a href="https://github.com/agentscope-ai/agentscope">
|
||||
<img
|
||||
src="https://img.shields.io/badge/built--on-AgentScope-blue?logo=github"
|
||||
alt="agentscope"
|
||||
/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
*Alias-Agent* (short for *Alias*) is an LLM-empowered agent built on [AgentScope](https://github.com/agentscope-ai/agentscope) and [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/), designed to serve as a general-purpose intelligent assistant for responding to user queries. Alias excels at decomposing complicated problems, constructing roadmaps, and applying appropriate strategies to tackle diverse real-world tasks.
|
||||
|
||||
|
||||
Alias employs a multi-mode operational mechanism for flexible task execution, including `General`, `Browser Use`, `Deep Research`, `Financial Analysis`, and `Data Science`. When switching between different operational modes, Alias is equipped with tailored instructions, specialized tool sets, and the capability to orchestrate various expert agents. This allows Alias to better adapt to the specific requirements of diverse downstream tasks. For example, when handling financial analysis, Alias employs traceable reasoning chains and generates explainable results to increase user trust in its decision-making, along with optimized report visualizations; When resolving data science tasks, Alias can access user-associated databases and is designed to facilitate efficient data analysis, processing, and prediction.
|
||||
|
||||
We aim for Alias to serve as an out-of-the-box solution that users can readily deploy for various tasks, supported by a comprehensive pipeline for agent development, testing, and deployment based on the AgentScope ecosystem. Beyond being a ready-to-use agent, we also envision Alias as a foundational template that can be adapted for diverse scenarios. Developers are encouraged to extend and customize Alias at the tool, prompt, and agent levels to meet specific requirements.
|
||||
|
||||
We welcome more developers to join the community and contribute to ongoing innovation.
|
||||
|
||||
## Installation
|
||||
## 📢 News
|
||||
- **[2025-12]** Five operational modes available: General, Browser Use, Deep Research, Financial Analysis, and Data Science modes.
|
||||
|
||||
Install the Alias package in development mode:
|
||||
- **[2025-12]** Memory system upgrades: Tool Memory service for persistent tool invocation traces and User Profiling service for personalized user experiences.
|
||||
|
||||
- **[2025-12]** Frontend UI is designed with [Spark Design](https://sparkdesign.agentscope.io/) implementation, featuring interrupt controls and artifact editing capabilities.
|
||||
|
||||
- **[2025-12]** Backend refactoring on [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/): lightweight single-node deployment, simplified user management, and mode-specific bootstrapping.
|
||||
|
||||
|
||||
## ✨ Features
|
||||
|
||||
### 🤖 Various Operational Modes for Diverse Scenarios
|
||||
|
||||
It provides five operational modes for diverse real-world tasks:
|
||||
|
||||
- **General**: Meta Planner capable of auto-switching among easy-task, planning-execution, browser use, deep research, and data science modes based on task context.
|
||||
- **Browser Use**: Enhanced browser-use agent with multimodal capabilities.
|
||||
- **Deep Research**: Deep Research agent with tree-structure question/hypothesis exploration and user-centric features.
|
||||
- **Financial Analysis**: Hypothesis-driven financial analysis agent.
|
||||
- **Data Science**: Specialized agent for data science workflows, such as machine learning, numerical computation, and exploratory data analysis.
|
||||
|
||||
#### General Mode
|
||||
|
||||
The General mode features the Meta Planner, which orchestrates task execution with automatic mode switching and comprehensive interrupt support. The Meta Planner intelligently routes tasks to appropriate specialized agents based on context, while maintaining robust state preservation throughout the execution lifecycle. This enables seamless transitions between different operational modes (such as deep research and data science) and ensures continuity even when tasks are interrupted or redirected.
|
||||
|
||||
The general mode also provides an out-of-the-box AgentScope-specific QA Agent ([more details](docs/qa_agent.md)), pre-configured with high-frequency AgentScope-related Q&A pairs. By integrating RAG and GitHub MCP tools, the QA agent can dynamically retrieve the latest source code structure, official tutorial, and community discussions, and combine them with relevant information flexibly matched from a private knowledge base to deliver accurate answers.
|
||||
|
||||
#### Browser Use Mode
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/browser_agent.png"
|
||||
alt="Browser Use Mode"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
The Browser Use mode extends the browser-use agent with comprehensive multimodal capabilities, enabling fine-grained understanding of visual content and intelligent interaction with web elements. The agent features advanced image understanding that can extract semantic meaning from charts, graphs, and visual content, including axis labels, trends, and outliers. Video comprehension capabilities allow the agent to extract and reason over video content, while automated table filling and intelligent file download tools streamline form interactions and document management.
|
||||
|
||||
To handle the dynamic nature of web browsing, the Browser Use mode implements sophisticated dynamic subtask management. The system automatically updates subtasks as web pages change, adapting to new content, pop-ups, or navigation events. This ensures the agent can maintain context and continue task execution even when the browsing environment evolves, making it particularly effective for complex multi-step web interactions that require sustained attention and adaptation.
|
||||
|
||||
#### Deep Research Mode
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/deep_research.png"
|
||||
alt="Deep Research Mode"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
The Deep Research mode introduces user-centric enhancements that transform research tasks into collaborative, transparent processes. For research-type questions, the agent employs a pre-search module that gathers professional, detailed information before generating follow-up questions, ensuring that inquiries are more valuable and well-informed. This approach significantly improves the quality of research interactions by grounding questions in comprehensive background knowledge.
|
||||
|
||||
This mode also features a tree-structure research process that is driven by diving deeper and deeper by information gathering. Users can also dynamically interrupt the deep research process and steer the research direction. The consolidated execution path provides a unified codebase with configurable prompts, SOPs, and toolkits, allowing the Deep Research agent to adapt to different domains while maintaining a consistent, extensible architecture.
|
||||
|
||||
#### Financial Analysis Mode ([Detailed Docs](docs/financial_analysis.md))
|
||||
|
||||
<p align="center">
|
||||
<img
|
||||
src="docs/figures/finance_overview.png"
|
||||
alt="Financial Analysis Mode"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
In financial analysis scenarios, complex reasoning and traceable logic chains are crucial for building user trust in model conclusions. To achieve *explainability*, *traceability*, and *intervenability*, Alias-Agent adopts a hypothesis-driven agent architecture that explicitly transforms task execution into a “propose hypothesis → collect evidence → verify hypothesis → update state” loop, as a variant of the general deep research process. This architecture enables analysis logic to be recorded, examined, and iterated upon, systematically addressing the financial domain's need for transparent evidence chains and clear, controllable logic.
|
||||
|
||||
The Financial Analysis mode supports tree-structured search, decomposing complex financial research questions into verifiable sub-hypotheses through deep hierarchical exploration. This mode integrates with financial MCP tools (API keys can be configured for easy use) and optimizes report visualization. In addition to generating comprehensive final reports, the system supports visualization of the entire tree search process and produces interactive HTML files optimized for presentation, making complex financial analyses more accessible and interpretable.
|
||||
|
||||
|
||||
#### Data Science Mode ([Detailed Docs](docs/data_science.md))
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="docs/figures/alias-ds-overall.png" width="80%" style="max-width: 800px; height: auto;">
|
||||
</div>
|
||||
|
||||
|
||||
In Data Science mode, Alias-Agent serves as an autonomous, end-to-end assistant that transforms high-level analytical questions into executable data science workflows. It seamlessly handles the full pipeline from data acquisition and cleaning to modeling, visualization, and narrative reporting with minimal human intervention, enabling users to move efficiently from intent to insight in real-world scenarios.
|
||||
|
||||
At startup, the Data Science mode uses an intelligent router to assign the user's task to one of three core scenarios: Exploratory Data Analysis (EDA), Predictive Modeling, or Exact Data Computation. Each scenario is driven by a dedicated prompt template tailored to its analytical intent. Built on this foundation, it features a scalable file filtering pipeline to quickly locate relevant files in massive data lakes. It robustly parses irregular spreadsheets, including merged cells, multi-level headers, and embedded notes, into structured tables or semantic JSON. It also supports multimodal understanding, enabling summarization and natural-language question answering about visual content. For EDA tasks, it automatically generates interactive HTML reports that combine insights, visualizations, and executable code to ensure transparency and reproducibility.
|
||||
|
||||
### 🧠 Enhanced Memory System
|
||||
|
||||
- **Tool Memory (Long-term)**: Persistent storage for tool invocation traces via ReMe, enabling automated summarization and usage guidance.
|
||||
- **User Profiling (Long-term)**: Captures and refines user behavior through dynamic candidate scoring and promotion to stable profiles via mem0, seamlessly integrated with frontend interactions.
|
||||
|
||||
### 🖥️ CLI & Full-Stack Deployment Available
|
||||
|
||||
#### CLI Deployment
|
||||
- **Command-Line Interface**: Direct execution via `alias_agent run` command with mode selection and configuration options.
|
||||
|
||||
#### Full-Stack Deployment
|
||||
- **Frontend**: [Spark Design](https://sparkdesign.agentscope.io/)-based React application with runtime interrupt controls, artifact inspectors, and editable outputs.
|
||||
- **Backend**: Lightweight single-node deployment on [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) with simplified user management and mode-specific bootstrapping.
|
||||
|
||||
|
||||
## 🚀 Quickstart
|
||||
|
||||
### 💻 Installation
|
||||
|
||||
> Alias requires **Python 3.10** or higher.
|
||||
|
||||
First, install the package in development mode
|
||||
```bash
|
||||
# From the project root directory
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
This installs the `alias_agent` command-line tool.
|
||||
|
||||
### 🐳 Sandbox Setup (Optional)
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
# If using colima
|
||||
export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
|
||||
|
||||
# SETUP SANDBOX
|
||||
# If you are using colima, then you need to run the following
|
||||
# export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
|
||||
# More details can refer to https://runtime.agentscope.io/en/sandbox.html
|
||||
|
||||
# Option 1: Pull from registry
|
||||
# Option 1: Pull from enterprise registry
|
||||
export RUNTIME_SANDBOX_REGISTRY=agentscope-registry.ap-southeast-1.cr.aliyuncs.com
|
||||
docker pull agentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-alias:latest
|
||||
|
||||
# Option 2: pull from docker hub
|
||||
# Option 2: Pull from Docker Hub
|
||||
docker pull agentscope/runtime-sandbox-alias:latest
|
||||
```
|
||||
|
||||
This will install the `alias` command-line tool.
|
||||
More details can refer to [AgentScope Runtime documentation](https://runtime.agentscope.io/en/sandbox.html).
|
||||
|
||||
## Basic Usage
|
||||
### 🔑 API Keys Configuration
|
||||
|
||||
The `alias` CLI provides a terminal interface to run AI agents for various tasks.
|
||||
|
||||
### Run Command
|
||||
|
||||
First of all, set up API keys
|
||||
```bash
|
||||
# Model API keys
|
||||
# Required: Model API key (default: DashScope)
|
||||
export DASHSCOPE_API_KEY=your_dashscope_api_key_here
|
||||
|
||||
# Using other models: go to src/alias/agent/run.py and add your model to MODEL_FORMATTER_MAPPING, then run the bash to set your model and api key. For example:
|
||||
#export MODEL=gpt-5
|
||||
#export OPENAI_API_KEY=your_openai_api_key_here
|
||||
|
||||
# Search api key (required for deep research)
|
||||
# Required: Search API key (for Deep Research mode)
|
||||
export TAVILY_API_KEY=your_tavily_api_key_here
|
||||
|
||||
# Optional: Finance MCP Tools API key (for Financial Analysis mode). Activate MCP tools at:
|
||||
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/Qieman
|
||||
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/tendency-software
|
||||
export DASHSCOPE_MCP_API_KEY=your_dashscope_api_key_here
|
||||
|
||||
|
||||
# Optional: GitHub token (for QA Agent to access GitHub repositories)
|
||||
# export GITHUB_TOKEN=your_github_token
|
||||
|
||||
# Optional: Using other models (e.g., OpenAI)
|
||||
# First, add your model to MODEL_FORMATTER_MAPPING in alias/agent/run.py
|
||||
# export MODEL=gpt-4
|
||||
# export OPENAI_API_KEY=your_openai_api_key_here
|
||||
```
|
||||
|
||||
Execute an agent task:
|
||||
### 📝 Basic Usage -- CLI Deployment
|
||||
|
||||
Execute an agent task with different modes:
|
||||
|
||||
```bash
|
||||
alias_agent run --task "Your task description here"
|
||||
```
|
||||
# General mode
|
||||
alias_agent run --mode general --task "Analyze Meta stock performance in Q1 2025"
|
||||
|
||||
### Examples
|
||||
|
||||
#### Run with all agents (Meta Planner with workers):
|
||||
```bash
|
||||
alias_agent run --task "Analyze Meta stock performance in Q1 2025"
|
||||
```
|
||||
|
||||
#### Run with only browser agent:
|
||||
|
||||
```bash
|
||||
# Browser Use mode
|
||||
alias_agent run --mode browser --task "Search five latest research papers about browser-use agent"
|
||||
|
||||
# Deep Research mode
|
||||
alias_agent run --mode dr --task "Research the impact of AI on healthcare"
|
||||
|
||||
# Financial Analysis mode
|
||||
alias_agent run --mode finance --task "Analyze Tesla's Q4 2024 financial performance"
|
||||
|
||||
# Data Science mode
|
||||
alias_agent run --mode ds \
|
||||
--task "Analyze the distribution of incidents across categories in 'incident_records.csv' to identify imbalances, inconsistencies, or anomalies, and determine their root cause." \
|
||||
--files ./docs/data/incident_records.csv
|
||||
```
|
||||
|
||||
#### Upload files to sandbox workspace:
|
||||
**Note**: Files uploaded with `--files` are automatically copied to `/workspace` in the sandbox. Generated files are available in `sessions_mount_dir` subdirectories.
|
||||
|
||||
|
||||
### Basic Usage -- Full-Stack Deployment
|
||||
|
||||
To run Alias-Agent with the full-stack deployment (frontend + backend), follow these steps:
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
1. **Install Frontend Dependencies**:
|
||||
```bash
|
||||
# Upload a single file
|
||||
alias_agent run --task "Analyze this data" --files data.csv
|
||||
|
||||
# Upload multiple files
|
||||
alias_agent run --task "Process these files and create a summary report" --files report.txt data.csv notes.md
|
||||
|
||||
# Using short form (-f)
|
||||
alias_agent run --task "Review the documents" -f document1.pdf document2.txt
|
||||
|
||||
# Combine with other options
|
||||
alias_agent run --mode all --task "Analyze the data and generate insights" --files dataset.csv --verbose
|
||||
# From the project root directory
|
||||
cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
**Note**: Files uploaded with `--files` are automatically copied to the `/workspace` directory in the sandbox with their original filenames, making them immediately accessible to the agent.
|
||||
2. **Configure Environment Variables**:
|
||||
```bash
|
||||
# From the project root directory, copy the example environment file
|
||||
cp .env.example .env
|
||||
|
||||
### Obtain agent-generated files
|
||||
In the directory where you ran `alias_agent`, you should find a `sessions_mount_dir` directory with subdirectories, each containing the content from `/workspace` of the sandboxes' mounted file systems. All generated files should be located there.
|
||||
# Edit .env and configure the following key variables:
|
||||
# - USER_PROFILING_BASE_URL: Memory Service URL (e.g., http://localhost:6380/alias_memory_service)
|
||||
# - REDIS_HOST: Redis host (default: localhost)
|
||||
# - REDIS_PORT: Redis port (default: 6379)
|
||||
# - BACKEND_PORT: Backend server port (default: 8000)
|
||||
# - FIRST_SUPERUSER_EMAIL: Initial admin email (default: alias@agentscope.com)
|
||||
# - FIRST_SUPERUSER_USERNAME: Initial admin username (default: alias)
|
||||
# - FIRST_SUPERUSER_PASSWORD: Initial admin password (default: alias)
|
||||
```
|
||||
|
||||
3. **Start Redis** (required for caching and session management):
|
||||
```bash
|
||||
# Using Docker (recommended)
|
||||
docker run -d -p 6379:6379 --name alias-redis redis:7-alpine
|
||||
|
||||
# Or using local Redis installation
|
||||
redis-server
|
||||
```
|
||||
|
||||
#### Start the Sandbox Server (Optional but Recommended)
|
||||
|
||||
For full functionality including code execution and file operations, start the sandbox server in another terminal:
|
||||
|
||||
```bash
|
||||
# From the project root directory
|
||||
runtime-sandbox-server --extension src/alias/runtime/alias_sandbox/alias_sandbox.py
|
||||
```
|
||||
|
||||
The sandbox server enables secure code execution in isolated containers, which is essential for Data Science mode and other features that require code execution.
|
||||
|
||||
#### Start the Backend Server
|
||||
|
||||
In a terminal, first export all required API Keys (see [API Keys Configuration](#-api-keys-configuration) section above) and then start the backend API server:
|
||||
|
||||
|
||||
```bash
|
||||
python -m uvicorn alias.server.main:app --host 0.0.0.0 --port 8000 --reload
|
||||
```
|
||||
|
||||
The backend server will:
|
||||
- Automatically initialize the database (SQLite by default, or PostgreSQL if configured)
|
||||
- Create the initial superuser account (if not exists)
|
||||
- Start on `http://localhost:8000` (or the port specified in `.env`)
|
||||
|
||||
Verify the server is running by visiting `http://localhost:8000/api/v1/monitor/health`.
|
||||
|
||||
#### Start the Frontend
|
||||
|
||||
In a separate terminal, start the frontend development server:
|
||||
|
||||
```bash
|
||||
# From the project root directory
|
||||
cd frontend
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The frontend will start on `http://localhost:5173` (or the port specified in `vite.config.ts`). The frontend is configured to proxy API requests to the backend server at `http://localhost:8000`.
|
||||
|
||||
|
||||
#### Start the Memory Service Server
|
||||
|
||||
First install the Memory Service package in development mode
|
||||
|
||||
```bash
|
||||
# From the project root directory
|
||||
cd src/alias/memory_service
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
To use the Memory Service, you have two deployment options:
|
||||
|
||||
**Option 1: Command Line Startup**
|
||||
|
||||
1. First, add the following environment variables to your `.env` file:
|
||||
|
||||
```bash
|
||||
# Redis Configuration
|
||||
USER_PROFILING_REDIS_SERVER=localhost
|
||||
USER_PROFILING_REDIS_PORT=6379
|
||||
|
||||
# Qdrant Configuration
|
||||
QDRANT_HOST=localhost
|
||||
QDRANT_PORT=6333
|
||||
QDRANT_EMBEDDING_MODEL_DIMS=1536
|
||||
|
||||
# DashScope Configuration
|
||||
DASHSCOPE_EMBEDDER=text-embedding-v4
|
||||
DASHSCOPE_MODEL_4_MEMORY=qwen3-max
|
||||
DASHSCOPE_API_KEY=your_dashscope_api_key_here
|
||||
DASHSCOPE_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
||||
|
||||
# User Profiling Configuration
|
||||
USER_PROFILING_BASE_URL=http://localhost:6382
|
||||
USER_PROFILING_SERVICE_PORT=6382
|
||||
```
|
||||
|
||||
2. Then run the startup script:
|
||||
|
||||
```bash
|
||||
# From the project root directory
|
||||
bash script/start_memory_service.sh
|
||||
```
|
||||
|
||||
The script will automatically check and start Redis and Qdrant services (via Docker if available) before starting the memory service.
|
||||
|
||||
**Option 2: Docker Deployment**
|
||||
|
||||
For Docker-based deployment, please refer to the detailed documentation at [alias/memory_service/docker/README.md](memory_service/docker/README.md).
|
||||
|
||||
#### Access the Application
|
||||
|
||||
Once both servers are running:
|
||||
- **Frontend UI**: Open `http://localhost:5173` in your browser
|
||||
- **Backend API**: Available at `http://localhost:8000`
|
||||
- **API Documentation**: Available at `http://localhost:8000/docs` (Swagger UI) or `http://localhost:8000/api/v1/openapi.json` (OpenAPI JSON)
|
||||
- **Health Check**: `http://localhost:8000/api/v1/monitor/health`
|
||||
|
||||
#### Default Login Credentials
|
||||
|
||||
After the first startup, you can log in with the superuser credentials configured in `.env`:
|
||||
- **Email**: As specified in `FIRST_SUPERUSER_EMAIL` (default: `alias@agentscope.com`)
|
||||
- **Username**: As specified in `FIRST_SUPERUSER_USERNAME` (default: `alias`)
|
||||
- **Password**: As specified in `FIRST_SUPERUSER_PASSWORD`
|
||||
|
||||
|
||||
## ⚖️ License
|
||||
|
||||
Alias-Agent is released under the **Apache 2.0 License** – see the [LICENSE](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE) file for details.
|
||||
|
||||
@@ -1,109 +1,354 @@
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/alias.png"
|
||||
alt="Alias-Agent 徽标"
|
||||
width="500"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
<h2 align="center">Alias-Agent:即刻启动,随需定制,轻松部署</h2>
|
||||
|
||||
<div align="center">
|
||||
|
||||
<img src="assets/alias.png" alt="Alias-Agent Logo" width="500" height="250" style="vertical-align: middle; margin-right: 20px;">
|
||||
<h1 style="text-decoration: none; border-bottom: none; display: inline; vertical-align: middle; margin: 0;">Alias-Agent: 即开即用,自由扩展,轻松部署</h1>
|
||||
[](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE)
|
||||
[](https://www.python.org/)
|
||||
[](https://doc.agentscope.io/)
|
||||
[](https://runtime.agentscope.io/)
|
||||
[](https://github.com/agentscope-ai/agentscope-samples)
|
||||
|
||||
</div>
|
||||
|
||||
## 项目介绍
|
||||
*Alias-Agent*(简称 *Alias*)是一个基于 [AgentScope](https://github.com/agentscope-ai/agentscope) 和 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 构建的LLM驱动的智能体,旨在作为响应用户查询的智能助手。Alias擅长分解复杂问题、构建路线图,并应用适当的策略来处理各种现实世界的任务。
|
||||
|
||||
具体而言,Alias提供了三种操作模式,以实现灵活的任务执行:
|
||||
- **Simple React(简单React模式)**:采用经典的推理-行动循环来迭代解决问题和执行工具调用。
|
||||
- **Planner-Worker(规划者-工作者模式)**:使用智能规划将复杂任务分解为可管理的子任务,由专门的工作者智能体独立处理每个子任务。
|
||||
- **Built-in Agents(内置智能体)**:利用针对特定领域定制的专业智能体,包括用于全面分析的*深度研究智能体*和用于基于网络交互的*浏览器使用智能体*。更多详细信息可参考下面的"基本使用"部分。
|
||||
*Alias-Agent*(简称 *Alias*)是一个基于 [AgentScope](https://github.com/agentscope-ai/agentscope) 和 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 构建的、由大语言模型驱动的智能体,旨在作为通用智能助手响应用户查询。Alias 擅长分解复杂问题、构建解决路径,并应用合适的策略来处理多样化的现实世界任务。
|
||||
|
||||
我们的目标是让Alias成为一个开箱即用的解决方案,用户可以随时部署以处理各种任务。
|
||||
Alias 采用多模式运行机制,实现灵活的任务执行,包括 `通用(General)模式`、`浏览器使用(Browser Use)模式`、`深度研究(Deep Research)模式`、`金融分析(Financial Analysis)模式` 和 `数据科学(Data Science)模式`。在不同运行模式间切换时,Alias 配备了定制化的指令、专业工具集以及协调各类专家智能体的能力。这使得 Alias 能够更好地适应不同下游任务的具体需求。例如,在处理金融分析时,Alias 采用可追溯的推理链并生成可解释的结果,以增强用户对其决策的信任,同时优化报告可视化效果;在解决数据科学任务时,Alias 可以访问用户关联的数据库,并旨在促进高效的数据分析、处理和预测。
|
||||
|
||||
## 即将推出
|
||||
我们的目标是让 Alias 成为一个开箱即用的解决方案,用户可以轻松部署以应对各种任务,并得到基于 AgentScope 生态系统的完整智能体开发、测试和部署流程的支持。除了作为一个即用型智能体,我们还希望 Alias 成为一个基础模板,能够适应多样化场景。我们鼓励开发者在工具、提示词和智能体层面扩展和定制 Alias,以满足特定需求。
|
||||
|
||||
除了作为现成的智能体,我们还设想Alias作为一个基础模板,可以迁移适配到不同的场景。开发者可以在工具、提示词和智能体级别扩展和自定义Alias,以满足他们的特定需求。
|
||||
我们欢迎更多开发者加入社区,共同推动持续创新。
|
||||
|
||||
我们正在积极开发以下领域的专业增强和适配:
|
||||
- **商业智能(BI)** 场景
|
||||
- **金融**分析应用
|
||||
- **问答(QA)** 系统
|
||||
## 📢 最新动态
|
||||
- **[2025-12]** 提供五种运行模式:通用(General)模式、浏览器使用(Browser Use)模式、深度研究(Deep Research)模式、金融分析(Financial Analysis)模式和数据科学(Data Science)模式。
|
||||
|
||||
敬请期待即将发布的版本!
|
||||
- **[2025-12]** 记忆系统升级:提供用于持久化工具调用追踪的 Tool Memory 服务,以及用于个性化用户体验的 User Profiling 服务。
|
||||
|
||||
- **[2025-12]** 前端 UI 使用 [Spark Design](https://sparkdesign.agentscope.io/) 进行设计,具备中断控制和工件编辑功能。
|
||||
|
||||
- **[2025-12]** 后端基于 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 重构:轻量级单节点部署、简化的用户管理以及特定模式的启动引导。
|
||||
|
||||
|
||||
## 安装
|
||||
## ✨ 特性
|
||||
|
||||
以开发模式安装Alias包:
|
||||
### 🤖 适用于多样化场景的多运行模式
|
||||
|
||||
提供五种运行模式以应对多样化的现实世界任务:
|
||||
|
||||
- **通用(General)模式**:元规划器(Meta Planner),能够根据任务上下文在简单任务、规划执行、浏览器使用、深度研究和数据科学模式之间自动切换。
|
||||
- **浏览器使用(Browser Use)模式**:具备多模态能力的增强型Browser Use智能体。
|
||||
- **深度研究(Deep Research)模式**:采用树状结构问题/假设探索并具备以用户为中心特性的深度研究智能体。
|
||||
- **金融分析(Financial Analysis)模式**: 基于假设驱动的金融分析智能体。
|
||||
- **数据科学(Data Science)模式**:专用于数据科学工作流(如机器学习、数值计算和探索性数据分析)的智能体。
|
||||
|
||||
#### 通用(General)模式
|
||||
|
||||
通用模式以元规划器(Meta Planner)为特色,通过自动模式切换和全面的中断支持来编排任务执行。Meta Planner根据上下文智能地将任务路由到合适的专业智能体,同时在整个执行生命周期中保持稳健的状态保存。这使得在不同运行模式(如深度研究和数据科学)之间能够实现无缝切换,并确保即使在任务被中断或重定向时也能保持连续性。
|
||||
|
||||
通用模式还提供了一个开箱即用的、特定于 AgentScope 的问答智能体([更多详情](docs/qa_agent.md)),预先配置了高频的 AgentScope 相关问答对。通过集成 RAG 和 GitHub MCP 工具,问答智能体可以动态检索最新的源代码结构、官方教程和社区讨论,并结合从私有知识库中灵活匹配的相关信息,以提供准确的答案。
|
||||
|
||||
#### 浏览器使用(Browser Use)模式
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/browser_agent.png"
|
||||
alt="浏览器使用模式"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
浏览器使用(Browser Use)模式扩展了原Browser Use智能体,使其具备全面的多模态能力,能够对视觉内容进行细粒度理解并与网页元素进行智能交互。该智能体具备高级的图像理解能力,可以从图表、图形和视觉内容中提取语义信息,包括坐标轴标签、趋势和异常值。视频理解能力使得智能体能够提取视频内容并进行推理,而自动表格填写和智能文件下载工具则简化了表单交互和文档管理。
|
||||
|
||||
为了处理网页浏览的动态特性,Browser Use模式实现了复杂的动态子任务管理。系统会在网页发生变化时自动更新子任务,以适应新的内容、弹窗或导航事件。这确保了即使浏览环境发生变化,智能体也能保持上下文并继续执行任务,使其对于需要持续关注和适应的复杂多步骤网页交互特别有效。
|
||||
|
||||
#### 深度研究(Deep Research)模式
|
||||
<p align="center">
|
||||
<img
|
||||
src="assets/deep_research.png"
|
||||
alt="深度研究模式"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
深度研究(Deep Research)模式引入了以用户为中心(user-centric)的增强功能,将研究任务转变为协作、透明的过程。对于研究型问题,该智能体采用预搜索模块,在生成后续问题之前收集专业、详细的信息,确保提出的问题更有价值且信息充分。这种方法通过将问题建立在全面的背景知识之上,显著提高了研究交互的质量。
|
||||
|
||||
该模式还采用了树状结构的研究流程,通过不断深入的信息收集来驱动研究。用户还可以动态中断深度研究过程并引导研究方向。统一的执行路径提供了一个具有可配置提示词、标准操作程序和工具集的统一代码库,使得深度研究智能体能够适应不同领域,同时保持一致的、可扩展的架构。
|
||||
|
||||
#### 金融分析(Financial Analysis)模式 ([详细文档](docs/financial_analysis.md))
|
||||
|
||||
<p align="center">
|
||||
<img
|
||||
src="docs/figures/finance_overview.png"
|
||||
alt="金融分析模式"
|
||||
width="600"
|
||||
height="auto"
|
||||
/>
|
||||
</p>
|
||||
|
||||
在金融分析场景中,复杂的推理和可追溯的逻辑链对于建立用户对模型结论的信任至关重要。为了实现 *可解释性*、*可追溯性* 和 *可干预性*,Alias-Agent 采用了假设驱动的智能体架构,明确地将任务执行转化为“提出假设 → 收集证据 → 验证假设 → 更新状态”的循环,作为通用深度研究流程的一种变体。这种架构使得分析逻辑能够被记录、检查和迭代,系统地解决了金融领域对透明证据链和清晰、可控逻辑的需求。
|
||||
|
||||
金融分析模式支持树状结构搜索,通过深度层次探索将复杂的金融研究问题分解为可验证的子假设。该模式集成了金融 MCP 工具(可配置 API 密钥以便使用)并优化了报告可视化。除了生成全面的最终报告外,系统还支持可视化整个树状搜索过程,并生成优化的、用于演示的交互式 HTML 文件,使复杂的金融分析更易于理解和解释。
|
||||
|
||||
|
||||
#### 数据科学(Data Science)模式 ([详细文档](docs/data_science.md))
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="docs/figures/alias-ds-overall.png" width="80%" style="max-width: 800px; height: auto;">
|
||||
</div>
|
||||
|
||||
|
||||
在数据科学(Data Science)模式下,Alias-Agent 作为一个自主的、端到端的助手,将高层次的分析问题转化为可执行的数据科学工作流。它无缝处理从数据获取、清洗到建模、可视化和叙述性报告的全流程,只需最少的人工干预,使用户能够在现实场景中高效地从意图转向洞察。
|
||||
|
||||
启动时,数据科学模式使用智能路由器将用户任务分配给三个核心场景之一:探索性数据分析、预测建模或精确数据计算。每个场景都由专门定制的、符合其分析意图的提示词模板驱动。在此基础上,它具备可扩展的文件过滤流水线,以快速在海量数据湖中定位相关文件。它能够稳健地将不规则的电子表格(包括合并单元格、多级标题和嵌入式注释)解析为结构化表格或语义化 JSON。它还支持多模态理解,能够对视觉内容进行总结和自然语言问答。对于探索性数据分析任务,它会自动生成交互式 HTML 报告,结合了洞察、可视化和可执行代码,以确保透明度和可复现性。
|
||||
|
||||
### 🧠 增强的记忆系统
|
||||
|
||||
- **工具记忆(长期)**:通过 ReMe 持久化存储工具调用痕迹,实现自动化的总结和使用指导。
|
||||
- **用户画像(长期)**: 通过动态候选评分捕获并精炼用户行为,并通过 mem0 提升为稳定画像,与前端交互无缝集成。
|
||||
|
||||
### 🖥️ 提供 CLI 和全栈部署方案
|
||||
|
||||
#### CLI 部署
|
||||
- **命令行界面**:通过 `alias_agent run` 命令直接执行,支持模式选择和配置选项。
|
||||
|
||||
#### 全栈部署
|
||||
- **前端**:基于 [Spark Design](https://sparkdesign.agentscope.io/) 的 React 应用程序,具备运行时中断控制、工件检查器和可编辑输出。
|
||||
- **后端**:基于 [AgentScope-runtime](https://github.com/agentscope-ai/agentscope-runtime/) 的轻量级单节点部署,具有简化的用户管理和特定模式的启动引导。
|
||||
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 💻 安装
|
||||
|
||||
> Alias 需要 **Python 3.10** 或更高版本。
|
||||
|
||||
首先,以开发模式安装包
|
||||
```bash
|
||||
# From the project root directory
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
这将安装 `alias_agent` 命令行工具。
|
||||
|
||||
### 🐳 沙盒设置(可选)
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
# 如果使用 colima
|
||||
export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
|
||||
|
||||
# 设置沙箱环境
|
||||
# 如果您使用的是colima,则需要运行以下命令
|
||||
# export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock
|
||||
# 更多详细信息可参考 https://runtime.agentscope.io/en/sandbox.html
|
||||
|
||||
# 方式1:从registry拉取
|
||||
# 选项 1:从企业镜像仓库拉取
|
||||
export RUNTIME_SANDBOX_REGISTRY=agentscope-registry.ap-southeast-1.cr.aliyuncs.com
|
||||
docker pull agentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-alias:latest
|
||||
|
||||
# 方式2:从docker hub拉取
|
||||
# 选项 2:从 Docker Hub 拉取
|
||||
docker pull agentscope/runtime-sandbox-alias:latest
|
||||
```
|
||||
|
||||
这将安装 `alias` 命令行工具。
|
||||
更多详情请参考 [AgentScope Runtime 文档](https://runtime.agentscope.io/en/sandbox.html)。
|
||||
|
||||
## 基本使用
|
||||
### 🔑 API 密钥配置
|
||||
|
||||
`alias` CLI提供了一个终端界面来运行AI智能体以处理各种任务。
|
||||
|
||||
### 运行命令
|
||||
|
||||
首先,设置API密钥:
|
||||
```bash
|
||||
# 模型API密钥
|
||||
# 必需:模型 API 密钥(默认:DashScope)
|
||||
export DASHSCOPE_API_KEY=your_dashscope_api_key_here
|
||||
|
||||
# 使用其他模型:前往 src/alias/agent/run.py,将您的模型添加到 MODEL_FORMATTER_MAPPING,然后运行bash来设置您的模型和API密钥。例如:
|
||||
#export MODEL=gpt-5
|
||||
#export OPENAI_API_KEY=your_openai_api_key_here
|
||||
|
||||
# 搜索API密钥(深度研究所需)
|
||||
# 必需:搜索 API 密钥(用于深度研究模式)
|
||||
export TAVILY_API_KEY=your_tavily_api_key_here
|
||||
|
||||
# 可选:金融 MCP 工具 API 密钥(用于金融分析模式)。在以下地址激活 MCP 工具:
|
||||
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/Qieman
|
||||
# https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/tendency-software
|
||||
export DASHSCOPE_MCP_API_KEY=your_dashscope_api_key_here
|
||||
|
||||
|
||||
# 可选:GitHub token(用于问答智能体访问 GitHub 仓库)
|
||||
# export GITHUB_TOKEN=your_github_token
|
||||
|
||||
# 可选:使用其他模型(例如 OpenAI)
|
||||
# 首先,在 alias/agent/run.py 的 MODEL_FORMATTER_MAPPING 中添加你的模型
|
||||
# export MODEL=gpt-4
|
||||
# export OPENAI_API_KEY=your_openai_api_key_here
|
||||
```
|
||||
|
||||
执行智能体任务:
|
||||
### 📝 基础用法 -- CLI 部署
|
||||
|
||||
使用不同模式执行智能体任务:
|
||||
|
||||
```bash
|
||||
alias_agent run --task "Your task description here"
|
||||
```
|
||||
# 通用(General)模式
|
||||
alias_agent run --mode general --task "Analyze Meta stock performance in Q1 2025"
|
||||
|
||||
### 示例
|
||||
|
||||
#### 使用所有智能体运行(元规划者与工作者):
|
||||
```bash
|
||||
alias_agent run --task "Analyze Meta stock performance in Q1 2025"
|
||||
```
|
||||
|
||||
#### 仅使用Browser-use Agent运行:
|
||||
|
||||
```bash
|
||||
# 浏览器使用(Browser Use)模式
|
||||
alias_agent run --mode browser --task "Search five latest research papers about browser-use agent"
|
||||
|
||||
# 深度研究(Deep Research)模式
|
||||
alias_agent run --mode dr --task "Research the impact of AI on healthcare"
|
||||
|
||||
# 金融分析(Financial Analysis)模式
|
||||
alias_agent run --mode finance --task "Analyze Tesla's Q4 2024 financial performance"
|
||||
|
||||
# 数据科学(Data Science)模式
|
||||
alias_agent run --mode ds \
|
||||
--task "Analyze the distribution of incidents across categories in 'incident_records.csv' to identify imbalances, inconsistencies, or anomalies, and determine their root cause." \
|
||||
--files ./docs/data/incident_records.csv
|
||||
```
|
||||
|
||||
#### 上传文件到沙箱工作区:
|
||||
**注意**:使用 `--files` 上传的文件会自动复制到沙盒中的 `/workspace`。生成的文件可在 `sessions_mount_dir` 的子目录中找到。
|
||||
|
||||
|
||||
### 基础用法 -- 全栈部署
|
||||
|
||||
要运行具有全栈部署(前端 + 后端)的 Alias-Agent,请按照以下步骤操作:
|
||||
|
||||
#### 前提条件
|
||||
|
||||
1. **安装前端依赖**:
|
||||
```bash
|
||||
# 上传单个文件
|
||||
alias_agent run --task "Analyze this data" --files data.csv
|
||||
|
||||
# 上传多个文件
|
||||
alias_agent run --task "Process these files and create a summary report" --files report.txt data.csv notes.md
|
||||
|
||||
# 使用简短形式 (-f)
|
||||
alias_agent run --task "Review the documents" -f document1.pdf document2.txt
|
||||
|
||||
# 与其他选项结合使用
|
||||
alias_agent run --mode all --task "Analyze the data and generate insights" --files dataset.csv --verbose
|
||||
# 从项目根目录
|
||||
cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
**注意**:使用 `--files` 上传的文件会自动复制到沙箱中的 `/workspace` 目录,并保留其原始文件名,使其立即可供智能体访问。
|
||||
2. **配置环境变量**:
|
||||
```bash
|
||||
# 从项目根目录,复制示例环境文件
|
||||
cp .env.example .env
|
||||
|
||||
### 获取智能体生成的文件
|
||||
在您运行 `alias_agent` 的目录中,您应该会找到一个 `sessions_mount_dir` 目录,其中包含子目录,每个子目录都包含来自沙箱挂载文件系统的 `/workspace` 的内容。所有生成的文件都应位于该处。
|
||||
# 编辑 .env 并配置以下关键变量:
|
||||
# - USER_PROFILING_BASE_URL: 记忆服务 URL (例如, http://localhost:6380/alias_memory_service)
|
||||
# - REDIS_HOST: Redis 主机 (默认: localhost)
|
||||
# - REDIS_PORT: Redis 端口 (默认: 6379)
|
||||
# - BACKEND_PORT: 后端服务器端口 (默认: 8000)
|
||||
# - FIRST_SUPERUSER_EMAIL: 初始管理员邮箱 (默认: alias@agentscope.com)
|
||||
# - FIRST_SUPERUSER_USERNAME: 初始管理员用户名 (默认: alias)
|
||||
# - FIRST_SUPERUSER_PASSWORD: 初始管理员密码 (默认: alias)
|
||||
```
|
||||
|
||||
3. **启动 Redis**(缓存和会话管理所需):
|
||||
```bash
|
||||
# 使用 Docker (推荐)
|
||||
docker run -d -p 6379:6379 --name alias-redis redis:7-alpine
|
||||
|
||||
# 或使用本地 Redis 安装
|
||||
redis-server
|
||||
```
|
||||
|
||||
#### 启动沙盒服务器(可选但推荐)
|
||||
|
||||
为了获得包括代码执行和文件操作在内的完整功能,请在另一个终端中启动沙盒服务器:
|
||||
|
||||
```bash
|
||||
# 从项目根目录
|
||||
runtime-sandbox-server --extension src/alias/runtime/alias_sandbox/alias_sandbox.py
|
||||
```
|
||||
|
||||
沙盒服务器能够在隔离的容器中安全地执行代码,这对于数据科学模式和其他需要代码执行的功能至关重要。
|
||||
|
||||
#### 启动后端服务器
|
||||
|
||||
在一个终端中,首先导出所有必需的 API 密钥(请参阅上面的 [API 密钥配置](#-api-密钥配置) 部分),然后启动后端 API 服务器:
|
||||
|
||||
|
||||
```bash
|
||||
python -m uvicorn alias.server.main:app --host 0.0.0.0 --port 8000 --reload
|
||||
```
|
||||
|
||||
后端服务器将:
|
||||
- 自动初始化数据库(默认 SQLite,或如果配置了则使用 PostgreSQL)
|
||||
- 创建初始超级用户账户(如果不存在)
|
||||
- 在 `http://localhost:8000` 启动(或 `.env` 中指定的端口)
|
||||
|
||||
通过访问 `http://localhost:8000/api/v1/monitor/health` 来验证服务器是否正在运行。
|
||||
|
||||
#### 启动前端
|
||||
|
||||
在另一个单独的终端中,启动前端开发服务器:
|
||||
|
||||
```bash
|
||||
# 从项目根目录
|
||||
cd frontend
|
||||
npm run dev
|
||||
```
|
||||
|
||||
前端将在 `http://localhost:5173` 启动(或在 `vite.config.ts` 中指定的端口)。前端配置为将 API 请求代理到 `http://localhost:8000` 的后端服务器。
|
||||
|
||||
|
||||
#### 启动记忆服务服务器
|
||||
|
||||
首先,以开发模式安装 Memory Service 包
|
||||
|
||||
```bash
|
||||
# 从项目根目录
|
||||
cd src/alias/memory_service
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
要使用记忆服务,您有两种部署选项:
|
||||
|
||||
**选项 1:命令行启动**
|
||||
|
||||
1. 首先,将以下环境变量添加到您的 `.env` 文件中:
|
||||
|
||||
```bash
|
||||
# Redis 配置
|
||||
USER_PROFILING_REDIS_SERVER=localhost
|
||||
USER_PROFILING_REDIS_PORT=6379
|
||||
|
||||
# Qdrant 配置
|
||||
QDRANT_HOST=localhost
|
||||
QDRANT_PORT=6333
|
||||
QDRANT_EMBEDDING_MODEL_DIMS=1536
|
||||
|
||||
# DashScope 配置
|
||||
DASHSCOPE_EMBEDDER=text-embedding-v4
|
||||
DASHSCOPE_MODEL_4_MEMORY=qwen3-max
|
||||
DASHSCOPE_API_KEY=your_dashscope_api_key_here
|
||||
DASHSCOPE_API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
|
||||
|
||||
# User Profiling 配置
|
||||
USER_PROFILING_BASE_URL=http://localhost:6382
|
||||
USER_PROFILING_SERVICE_PORT=6382
|
||||
```
|
||||
|
||||
2. 然后运行启动脚本:
|
||||
|
||||
```bash
|
||||
# 从项目根目录
|
||||
bash script/start_memory_service.sh
|
||||
```
|
||||
|
||||
该脚本将在启动记忆服务之前自动检查并启动 Redis 和 Qdrant 服务(如果 Docker 可用则通过 Docker 启动)。
|
||||
|
||||
**选项 2:Docker 部署**
|
||||
|
||||
有关基于 Docker 的部署,请参阅 [alias/memory_service/docker/README.md](memory_service/docker/README.md) 中的详细文档。
|
||||
|
||||
#### 访问应用程序
|
||||
|
||||
一旦两个服务器都运行起来:
|
||||
- **前端 UI**:在浏览器中打开 `http://localhost:5173`
|
||||
- **后端 API**:可在 `http://localhost:8000` 访问
|
||||
- **API 文档**:可在 `http://localhost:8000/docs` (Swagger UI) 或 `http://localhost:8000/api/v1/openapi.json` (OpenAPI JSON) 访问
|
||||
- **健康检查**:`http://localhost:8000/api/v1/monitor/health`
|
||||
|
||||
#### 默认登录凭据
|
||||
|
||||
首次启动后,您可以使用在 `.env` 中配置的超级用户凭据登录:
|
||||
- **邮箱**:如 `FIRST_SUPERUSER_EMAIL` 所指定 (默认: `alias@agentscope.com`)
|
||||
- **用户名**:如 `FIRST_SUPERUSER_USERNAME` 所指定 (默认: `alias`)
|
||||
- **密码**:如 `FIRST_SUPERUSER_PASSWORD` 所指定
|
||||
|
||||
|
||||
## ⚖️ 许可证
|
||||
|
||||
Alias-Agent 根据 **Apache 2.0 许可证**发布 - 详情请参阅 [LICENSE](https://github.com/agentscope-ai/agentscope-samples/blob/main/LICENSE) 文件。
|
||||
|
||||
BIN
alias/assets/browser_agent.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
alias/assets/deep_research.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
501
alias/docs/data/incident_records.csv
Executable file
@@ -0,0 +1,501 @@
|
||||
category,state,closed_at,opened_at,closed_by,number,sys_updated_by,location,assigned_to,caller_id,sys_updated_on,short_description,assignment_group,priority
|
||||
Software,Closed,2023-01-03 11:04:00.000000000,2023-01-02 11:04:00,Charlie Whitherspoon,INC0000000000,admin,UK,Beth Anglin,David Loo,2023-01-03 11:04:00.000000000,Application error on office software,Software,2 - High
|
||||
Hardware,Closed,2023-01-11 01:17:39.128189467,2023-01-03 10:19:00,Beth Anglin,INC0000000001,employee,Australia,Luke Wilson,Don Goodliffe,2023-01-11 01:17:39.128189467,Printer error at Printer-id: Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-21 03:18:58.590910419,2023-01-04 06:37:00,Luke Wilson,INC0000000002,system,Australia,Fred Luddy,Don Goodliffe,2023-01-21 03:18:58.590910419,Printer745 is not working in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-05 17:54:36.886511927,2023-01-04 06:53:00,Luke Wilson,INC0000000003,employee,Australia,Fred Luddy,ITIL User,2023-01-05 17:54:36.886511927,Printer issue reported on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-01-06 16:52:00.000000000,2023-01-05 16:52:00,Fred Luddy,INC0000000004,employee,Australia,Fred Luddy,David Loo,2023-01-06 16:52:00.000000000,Printer123 failure in Australia,Hardware,1 - Critical
|
||||
Network,Closed,2023-01-12 10:23:00.628645777,2023-01-06 01:22:00,Fred Luddy,INC0000000005,employee,India,Luke Wilson,ITIL User,2023-01-12 10:23:00.628645777,Unable to connect to the VPN from India,Network,1 - Critical
|
||||
Software,Resolved,2023-01-14 09:42:31.239968317,2023-01-06 06:14:00,Fred Luddy,INC0000000006,system,Canada,Luke Wilson,Bud Richman,2023-01-14 09:42:31.239968317,Software crash on startup does not allow to work properly,Software,1 - Critical
|
||||
Hardware,Closed,2023-01-13 03:44:31.383066130,2023-01-06 15:27:00,Luke Wilson,INC0000000007,admin,Australia,Charlie Whitherspoon,ITIL User,2023-01-13 03:44:31.383066130,Printer456 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-08 15:20:00.000000000,2023-01-07 15:20:00,Luke Wilson,INC0000000008,system,United States,Charlie Whitherspoon,David Loo,2023-01-08 15:20:00.000000000,Fault in server hardware S09-US,Hardware,2 - High
|
||||
Network,Resolved,2023-01-09 08:53:00.000000000,2023-01-08 08:53:00,Luke Wilson,INC0000000009,admin,UK,Beth Anglin,Bud Richman,2023-01-09 08:53:00.000000000,Can't connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-01-18 10:47:18.859313409,2023-01-09 09:58:00,Charlie Whitherspoon,INC0000000010,system,Australia,Fred Luddy,Bud Richman,2023-01-18 10:47:18.859313409,Printer546 not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-19 02:40:53.945578841,2023-01-09 16:07:00,Fred Luddy,INC0000000011,system,Australia,Fred Luddy,Bud Richman,2023-01-19 02:40:53.945578841,Printer354 is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-01-13 22:01:58.804819178,2023-01-10 10:06:00,Luke Wilson,INC0000000012,admin,Australia,Luke Wilson,ITIL User,2023-01-13 22:01:58.804819178,Printer876 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-12 00:34:00.000000000,2023-01-11 00:34:00,Luke Wilson,INC0000000013,employee,UK,Charlie Whitherspoon,Don Goodliffe,2023-01-12 00:34:00.000000000,The monitor is not working properly,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-01-23 16:07:55.271807823,2023-01-11 09:26:00,Luke Wilson,INC0000000014,system,India,Howard Johnson,ITIL User,2023-01-23 16:07:55.271807823,Need help with Database query optimization,Database,3 - Moderate
|
||||
Hardware,Resolved,2023-01-20 14:37:18.361510788,2023-01-11 16:40:00,Howard Johnson,INC0000000015,system,Australia,Luke Wilson,Bud Richman,2023-01-20 14:37:18.361510788,Printer487 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-23 02:21:48.999352525,2023-01-11 18:29:00,Beth Anglin,INC0000000016,admin,United States,Fred Luddy,Don Goodliffe,2023-01-23 02:21:48.999352525,The system monitor of station 334 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-01-18 08:42:15.759148193,2023-01-13 00:44:00,Fred Luddy,INC0000000017,admin,Australia,Luke Wilson,David Loo,2023-01-18 08:42:15.759148193,Issue with Printer429 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-22 04:15:55.294347270,2023-01-15 14:01:00,Luke Wilson,INC0000000018,system,India,Luke Wilson,Don Goodliffe,2023-01-22 04:15:55.294347270,Device malfunction in CPU,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-01-17 04:28:00.000000000,2023-01-16 04:28:00,Luke Wilson,INC0000000019,employee,United States,Fred Luddy,David Loo,2023-01-17 04:28:00.000000000,Need help with a software inquiry,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-01-26 02:18:22.920898595,2023-01-16 06:28:00,Beth Anglin,INC0000000020,employee,Australia,Howard Johnson,ITIL User,2023-01-26 02:18:22.920898595,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-25 07:44:05.814552632,2023-01-17 06:29:00,Fred Luddy,INC0000000021,admin,United States,Charlie Whitherspoon,ITIL User,2023-01-25 07:44:05.814552632,CPU fan failure on desktop unit,Hardware,2 - High
|
||||
Software,Resolved,2023-01-18 12:15:00.000000000,2023-01-17 12:15:00,Beth Anglin,INC0000000022,employee,Australia,Fred Luddy,Don Goodliffe,2023-01-18 12:15:00.000000000,Microsoft Office Application crash,Software,2 - High
|
||||
Hardware,Closed,2023-02-05 14:01:58.932181130,2023-01-17 13:34:00,Luke Wilson,INC0000000023,system,Australia,Fred Luddy,Bud Richman,2023-02-05 14:01:58.932181130,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-24 18:39:21.848415555,2023-01-17 17:47:00,Luke Wilson,INC0000000024,employee,Australia,Fred Luddy,David Loo,2023-01-24 18:39:21.848415555,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-23 14:49:23.734002375,2023-01-18 23:27:00,Fred Luddy,INC0000000025,admin,Australia,Fred Luddy,Bud Richman,2023-01-23 14:49:23.734002375,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-24 10:21:12.713928509,2023-01-19 05:28:00,Howard Johnson,INC0000000026,admin,Australia,Beth Anglin,David Loo,2023-01-24 10:21:12.713928509,Printer546 is not functioning properly,Hardware,1 - Critical
|
||||
Software,Closed,2023-01-25 20:46:13.679914432,2023-01-19 17:29:00,Fred Luddy,INC0000000027,employee,Canada,Luke Wilson,Bud Richman,2023-01-25 20:46:13.679914432,Software update error on desktop,Software,2 - High
|
||||
Hardware,Closed,2023-02-04 02:43:53.446979933,2023-01-20 05:48:00,Fred Luddy,INC0000000028,system,Australia,Beth Anglin,ITIL User,2023-02-04 02:43:53.446979933,Printer546 is not responding,Hardware,2 - High
|
||||
Network,Resolved,2023-01-26 12:30:48.397896971,2023-01-21 12:13:00,Luke Wilson,INC0000000029,system,UK,Luke Wilson,David Loo,2023-01-26 12:30:48.397896971,Unable to connect to WiFi in UK office,Network,2 - High
|
||||
Hardware,Closed,2023-01-29 22:45:30.072558587,2023-01-22 03:34:00,Charlie Whitherspoon,INC0000000030,employee,Canada,Fred Luddy,Bud Richman,2023-01-29 22:45:30.072558587,PC overheating issue reported,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-05 00:09:42.176650334,2023-01-23 23:18:00,Howard Johnson,INC0000000031,admin,Australia,Howard Johnson,Bud Richman,2023-02-05 00:09:42.176650334,Printer546 is not printing documents in Australia,Hardware,2 - High
|
||||
Software,Closed,2023-01-28 01:28:09.743197803,2023-01-24 15:02:00,Luke Wilson,INC0000000032,system,Canada,Howard Johnson,ITIL User,2023-01-28 01:28:09.743197803,Software update failed on workstation,Software,2 - High
|
||||
Hardware,Resolved,2023-01-28 04:52:51.519667192,2023-01-25 02:38:00,Fred Luddy,INC0000000033,admin,Australia,Fred Luddy,Bud Richman,2023-01-28 04:52:51.519667192,Printer546 in Australia is offline,Hardware,1 - Critical
|
||||
Network,Resolved,2023-02-03 19:14:44.970166482,2023-01-25 20:52:00,Luke Wilson,INC0000000034,employee,United States,Beth Anglin,David Loo,2023-02-03 19:14:44.970166482,Can't connect to VPN,Network,2 - High
|
||||
Network,Resolved,2023-02-03 08:09:45.834493992,2023-01-27 02:22:00,Beth Anglin,INC0000000035,admin,UK,Charlie Whitherspoon,Don Goodliffe,2023-02-03 08:09:45.834493992,Network outage in the UK,Network,1 - Critical
|
||||
Hardware,Resolved,2023-02-11 09:07:59.479099672,2023-01-27 03:28:00,Howard Johnson,INC0000000036,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-02-11 09:07:59.479099672,Printer874 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-01-30 01:44:17.443653956,2023-01-27 07:48:00,Luke Wilson,INC0000000037,system,Australia,Beth Anglin,ITIL User,2023-01-30 01:44:17.443653956,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-03 19:29:33.426983106,2023-01-27 16:44:00,Howard Johnson,INC0000000038,system,Australia,Beth Anglin,Bud Richman,2023-02-03 19:29:33.426983106,Printer547 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-02-04 20:06:34.055632819,2023-01-30 17:07:00,Beth Anglin,INC0000000039,admin,India,Charlie Whitherspoon,ITIL User,2023-02-04 20:06:34.055632819,RAM issue in desktop PC,Hardware,2 - High
|
||||
Software,Closed,2023-02-07 09:37:36.868992308,2023-01-31 00:30:00,Luke Wilson,INC0000000040,employee,India,Howard Johnson,ITIL User,2023-02-07 09:37:36.868992308,Application crash on startup,Software,2 - High
|
||||
Hardware,Closed,2023-02-09 20:37:54.209291607,2023-02-01 19:46:00,Howard Johnson,INC0000000041,system,Australia,Luke Wilson,Bud Richman,2023-02-09 20:37:54.209291607,Printer789 is not printing in Australia location,Hardware,2 - High
|
||||
Network,Closed,2023-02-16 16:49:49.770102240,2023-02-02 08:10:00,Beth Anglin,INC0000000042,system,UK,Beth Anglin,ITIL User,2023-02-16 16:49:49.770102240,Unable to connect to WiFi,Network,2 - High
|
||||
Network,Closed,2023-02-13 00:16:27.398179564,2023-02-03 02:01:00,Charlie Whitherspoon,INC0000000043,system,United States,Charlie Whitherspoon,ITIL User,2023-02-13 00:16:27.398179564,Slow network connectivity issue across multiple devices,Network,2 - High
|
||||
Hardware,Closed,2023-02-14 04:41:35.236486606,2023-02-05 10:25:00,Luke Wilson,INC0000000044,employee,UK,Beth Anglin,Don Goodliffe,2023-02-14 04:41:35.236486606,Issue with Laptop Lp123,Hardware,2 - High
|
||||
Software,Closed,2023-02-18 11:04:04.387140839,2023-02-05 15:05:00,Luke Wilson,INC0000000045,admin,United States,Fred Luddy,Bud Richman,2023-02-18 11:04:04.387140839,Unable to update antivirus software,Software,2 - High
|
||||
Hardware,Resolved,2023-02-08 15:38:00.000000000,2023-02-07 15:38:00,Fred Luddy,INC0000000046,admin,Australia,Charlie Whitherspoon,David Loo,2023-02-08 15:38:00.000000000,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Database,Resolved,2023-02-13 08:10:20.378839709,2023-02-08 05:33:00,Howard Johnson,INC0000000047,system,India,Luke Wilson,Bud Richman,2023-02-13 08:10:20.378839709,Database server disruption detected,Database,1 - Critical
|
||||
Inquiry / Help,Closed,2023-02-17 00:34:25.927389861,2023-02-08 14:07:00,Beth Anglin,INC0000000048,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-02-17 00:34:25.927389861,Printer787 is causing problems,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-02-16 22:50:20.255626998,2023-02-11 04:10:00,Fred Luddy,INC0000000049,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-02-16 22:50:20.255626998,Printer546 is not responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-13 00:56:00.000000000,2023-02-12 00:56:00,Howard Johnson,INC0000000050,system,UK,Fred Luddy,Bud Richman,2023-02-13 00:56:00.000000000,UK Server67 has stopped responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-13 09:00:00.000000000,2023-02-12 09:00:00,Howard Johnson,INC0000000051,admin,Australia,Fred Luddy,Bud Richman,2023-02-13 09:00:00.000000000,Printer546 is not responding,Hardware,1 - Critical
|
||||
Database,Resolved,2023-02-18 18:49:23.647006730,2023-02-12 10:41:00,Charlie Whitherspoon,INC0000000052,system,United States,Beth Anglin,David Loo,2023-02-18 18:49:23.647006730,SQL database connection issue,Database,3 - Moderate
|
||||
Inquiry / Help,Closed,2023-02-19 05:46:55.363664679,2023-02-14 16:34:00,Fred Luddy,INC0000000053,employee,Canada,Fred Luddy,ITIL User,2023-02-19 05:46:55.363664679,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-02-19 06:21:12.452625610,2023-02-15 01:47:00,Fred Luddy,INC0000000054,employee,United States,Fred Luddy,David Loo,2023-02-19 06:21:12.452625610,Laptop issue reported,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-19 11:12:41.587556967,2023-02-16 10:34:00,Luke Wilson,INC0000000055,employee,Australia,Howard Johnson,David Loo,2023-02-19 11:12:41.587556967,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-02-18 06:02:38.010888088,2023-02-16 17:07:00,Luke Wilson,INC0000000056,system,Australia,Beth Anglin,Don Goodliffe,2023-02-18 06:02:38.010888088,Printer546 is not working,Hardware,2 - High
|
||||
Network,Closed,2023-02-25 02:41:07.264125204,2023-02-16 18:29:00,Howard Johnson,INC0000000057,employee,India,Charlie Whitherspoon,Don Goodliffe,2023-02-25 02:41:07.264125204,Unable to connect to the VPN,Network,2 - High
|
||||
Hardware,Resolved,2023-02-26 07:36:08.762766728,2023-02-16 19:04:00,Fred Luddy,INC0000000058,system,Australia,Charlie Whitherspoon,David Loo,2023-02-26 07:36:08.762766728,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-19 01:46:00.000000000,2023-02-18 01:46:00,Luke Wilson,INC0000000059,employee,Australia,Fred Luddy,ITIL User,2023-02-19 01:46:00.000000000,Printer543 is not printing in Australia,Hardware,1 - Critical
|
||||
Database,Closed,2023-02-24 12:26:03.066179768,2023-02-18 16:04:00,Beth Anglin,INC0000000060,admin,Australia,Howard Johnson,David Loo,2023-02-24 12:26:03.066179768,Issue with database response time,Database,2 - High
|
||||
Inquiry / Help,Resolved,2023-03-05 11:31:06.569025031,2023-02-22 12:21:00,Beth Anglin,INC0000000061,admin,United States,Luke Wilson,ITIL User,2023-03-05 11:31:06.569025031,Request assistance for application updating issues,Software,3 - Moderate
|
||||
Hardware,Closed,2023-02-23 22:00:23.401697490,2023-02-22 13:49:00,Charlie Whitherspoon,INC0000000062,employee,Australia,Howard Johnson,ITIL User,2023-02-23 22:00:23.401697490,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Network,Resolved,2023-02-26 16:29:16.807931635,2023-02-22 19:23:00,Luke Wilson,INC0000000063,employee,India,Beth Anglin,Bud Richman,2023-02-26 16:29:16.807931635,Network connectivity issue in India,Network,2 - High
|
||||
Hardware,Resolved,2023-02-25 14:32:02.076278529,2023-02-23 02:37:00,Beth Anglin,INC0000000064,system,Australia,Charlie Whitherspoon,David Loo,2023-02-25 14:32:02.076278529,Printer error in Printer368,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-01 04:41:50.658060449,2023-02-23 05:40:00,Beth Anglin,INC0000000065,system,Canada,Beth Anglin,David Loo,2023-03-01 04:41:50.658060449,"Issue with desktop PC, unexpected shutdown",Hardware,2 - High
|
||||
Database,Closed,2023-03-02 18:17:24.556975522,2023-02-25 17:52:00,Fred Luddy,INC0000000066,system,India,Luke Wilson,David Loo,2023-03-02 18:17:24.556975522,Unable to connect to server database,Database,2 - High
|
||||
Hardware,Resolved,2023-03-03 22:24:21.666904166,2023-02-25 19:47:00,Charlie Whitherspoon,INC0000000067,employee,Australia,Howard Johnson,Don Goodliffe,2023-03-03 22:24:21.666904166,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-11 20:13:52.693225203,2023-02-25 21:22:00,Fred Luddy,INC0000000068,employee,Australia,Luke Wilson,Don Goodliffe,2023-03-11 20:13:52.693225203,Printer problem with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-28 16:37:00.000000000,2023-02-27 16:37:00,Charlie Whitherspoon,INC0000000069,employee,Australia,Beth Anglin,Don Goodliffe,2023-02-28 16:37:00.000000000,Printer546 is not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-05 04:00:53.829740603,2023-02-27 21:40:00,Fred Luddy,INC0000000070,admin,Australia,Luke Wilson,Bud Richman,2023-03-05 04:00:53.829740603,Printer453 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-17 12:55:54.993590364,2023-02-28 17:42:00,Charlie Whitherspoon,INC0000000071,admin,Australia,Fred Luddy,ITIL User,2023-03-17 12:55:54.993590364,Printer567 is not functioning properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-13 16:49:10.116400647,2023-03-02 01:29:00,Beth Anglin,INC0000000072,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-03-13 16:49:10.116400647,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-03-08 05:56:31.551604697,2023-03-02 10:56:00,Beth Anglin,INC0000000073,admin,Canada,Fred Luddy,Don Goodliffe,2023-03-08 05:56:31.551604697,Inquiry about the service in Canada,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-03-11 13:42:59.511508874,2023-03-04 03:00:00,Fred Luddy,INC0000000074,system,Australia,Charlie Whitherspoon,Bud Richman,2023-03-11 13:42:59.511508874,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-03-19 18:35:49.186969810,2023-03-07 06:18:00,Howard Johnson,INC0000000075,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-03-19 18:35:49.186969810,Printer546 is not printing in Australia location. Please assist.,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-17 15:33:56.380678280,2023-03-08 16:23:00,Howard Johnson,INC0000000076,system,India,Beth Anglin,David Loo,2023-03-17 15:33:56.380678280,Server rack 34B malfunctioning in Chennai data center,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-14 06:30:47.245274154,2023-03-09 02:01:00,Luke Wilson,INC0000000077,employee,Australia,Fred Luddy,ITIL User,2023-03-14 06:30:47.245274154,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-03-10 09:09:00.000000000,2023-03-09 09:09:00,Luke Wilson,INC0000000078,employee,Australia,Fred Luddy,ITIL User,2023-03-10 09:09:00.000000000,Printer546 in Australia is causing an issue,Hardware,1 - Critical
|
||||
Network,Resolved,2023-03-11 09:09:00.000000000,2023-03-10 09:09:00,Charlie Whitherspoon,INC0000000079,employee,UK,Charlie Whitherspoon,Bud Richman,2023-03-11 09:09:00.000000000,Network connection lost in UK,Network,1 - Critical
|
||||
Network,Closed,2023-03-13 09:38:15.903837660,2023-03-10 14:49:00,Fred Luddy,INC0000000080,employee,India,Fred Luddy,ITIL User,2023-03-13 09:38:15.903837660,Unable to establish a connection to the local server,Network,2 - High
|
||||
Database,Closed,2023-03-17 12:37:48.453885624,2023-03-11 06:39:00,Luke Wilson,INC0000000081,system,United States,Beth Anglin,Bud Richman,2023-03-17 12:37:48.453885624,Unable to connect to Database567,Database,2 - High
|
||||
Hardware,Closed,2023-03-16 11:23:45.848878332,2023-03-13 02:53:00,Beth Anglin,INC0000000082,admin,United States,Howard Johnson,David Loo,2023-03-16 11:23:45.848878332,Hard drive failure in laptop HL349,Hardware,2 - High
|
||||
Database,Closed,2023-03-26 23:30:22.193990107,2023-03-13 07:44:00,Fred Luddy,INC0000000083,system,Canada,Charlie Whitherspoon,Bud Richman,2023-03-26 23:30:22.193990107,Unable to connect to SQL Database 219,Database,2 - High
|
||||
Hardware,Closed,2023-03-14 22:49:22.720352152,2023-03-13 10:05:00,Fred Luddy,INC0000000084,system,Australia,Luke Wilson,David Loo,2023-03-14 22:49:22.720352152,Issue with Printer210,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-18 09:32:55.751173465,2023-03-13 11:36:00,Charlie Whitherspoon,INC0000000085,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-03-18 09:32:55.751173465,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-23 14:56:55.026865443,2023-03-14 00:04:00,Charlie Whitherspoon,INC0000000086,admin,Australia,Luke Wilson,David Loo,2023-03-23 14:56:55.026865443,Issue with Printer546 in Australia office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-26 11:10:50.949076210,2023-03-17 00:19:00,Charlie Whitherspoon,INC0000000087,admin,Australia,Howard Johnson,David Loo,2023-03-26 11:10:50.949076210,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-03-18 07:40:00.000000000,2023-03-17 07:40:00,Charlie Whitherspoon,INC0000000088,employee,Australia,Fred Luddy,David Loo,2023-03-18 07:40:00.000000000,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-22 15:24:16.646216503,2023-03-18 01:04:00,Charlie Whitherspoon,INC0000000089,employee,Australia,Fred Luddy,David Loo,2023-03-22 15:24:16.646216503,Printer546 is malfunctioning in Australia,Hardware,1 - Critical
|
||||
Software,Resolved,2023-03-26 17:14:15.209900642,2023-03-19 09:40:00,Charlie Whitherspoon,INC0000000090,system,United States,Fred Luddy,Don Goodliffe,2023-03-26 17:14:15.209900642,Software update failure on work PC,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-03-21 01:02:44.587646914,2023-03-19 12:57:00,Fred Luddy,INC0000000091,admin,Australia,Beth Anglin,David Loo,2023-03-21 01:02:44.587646914,Printer546 is not working,Hardware,1 - Critical
|
||||
Network,Resolved,2023-03-31 07:59:26.909209525,2023-03-19 14:53:00,Howard Johnson,INC0000000092,employee,Australia,Fred Luddy,Bud Richman,2023-03-31 07:59:26.909209525,Network downtime issue in Australia,Network,1 - Critical
|
||||
Inquiry / Help,Closed,2023-04-04 19:04:22.181856865,2023-03-22 13:51:00,Fred Luddy,INC0000000093,admin,United States,Charlie Whitherspoon,ITIL User,2023-04-04 19:04:22.181856865,Need help with software installation,Service Desk,2 - High
|
||||
Hardware,Resolved,2023-03-29 18:40:47.611595618,2023-03-22 14:07:00,Howard Johnson,INC0000000094,system,Australia,Howard Johnson,David Loo,2023-03-29 18:40:47.611595618,Printer546 is having a paper jam issue,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-13 00:44:40.599581505,2023-03-22 20:33:00,Luke Wilson,INC0000000095,admin,India,Beth Anglin,ITIL User,2023-04-13 00:44:40.599581505,Server error on HDD2385,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-31 08:03:25.091057805,2023-03-23 07:51:00,Charlie Whitherspoon,INC0000000096,admin,Australia,Luke Wilson,David Loo,2023-03-31 08:03:25.091057805,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-30 05:18:20.748165094,2023-03-23 16:57:00,Luke Wilson,INC0000000097,employee,UK,Charlie Whitherspoon,David Loo,2023-03-30 05:18:20.748165094,Issue with workstation PC238,Hardware,3 - Moderate
|
||||
Software,Closed,2023-04-08 08:46:45.358954276,2023-03-23 22:07:00,Beth Anglin,INC0000000098,system,India,Howard Johnson,Bud Richman,2023-04-08 08:46:45.358954276,Bug detected in accounting software,Software,2 - High
|
||||
Hardware,Closed,2023-03-29 09:27:22.091188363,2023-03-26 03:15:00,Luke Wilson,INC0000000099,employee,Australia,Charlie Whitherspoon,David Loo,2023-03-29 09:27:22.091188363,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-08 15:04:33.153395278,2023-03-26 20:37:00,Fred Luddy,INC0000000100,system,Australia,Beth Anglin,ITIL User,2023-04-08 15:04:33.153395278,Printer546 in Australia is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-08 07:50:02.291054808,2023-03-27 23:22:00,Fred Luddy,INC0000000101,system,Canada,Charlie Whitherspoon,Bud Richman,2023-04-08 07:50:02.291054808,Laptop973 malfunction in Canada location,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-04 09:15:27.409492338,2023-03-29 01:49:00,Fred Luddy,INC0000000102,employee,Australia,Fred Luddy,Don Goodliffe,2023-04-04 09:15:27.409492338,Printer546 is down,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-05 05:58:43.770711476,2023-03-29 05:22:00,Luke Wilson,INC0000000103,admin,India,Fred Luddy,Don Goodliffe,2023-04-05 05:58:43.770711476,Server076 overheating issue,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-31 22:32:42.024027147,2023-03-30 00:58:00,Charlie Whitherspoon,INC0000000104,system,Australia,Charlie Whitherspoon,David Loo,2023-03-31 22:32:42.024027147,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-16 00:36:30.146701781,2023-04-01 09:01:00,Luke Wilson,INC0000000105,employee,Australia,Beth Anglin,David Loo,2023-04-16 00:36:30.146701781,Printer issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Network,Resolved,2023-04-08 23:37:33.628402771,2023-04-02 15:37:00,Howard Johnson,INC0000000106,system,Australia,Fred Luddy,Bud Richman,2023-04-08 23:37:33.628402771,Internet connectivity issue with Australian network,Network,2 - High
|
||||
Hardware,Closed,2023-04-13 19:24:58.346273013,2023-04-03 23:10:00,Howard Johnson,INC0000000107,employee,United States,Fred Luddy,ITIL User,2023-04-13 19:24:58.346273013,US Server Unresponsive,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-09 09:12:14.485573467,2023-04-04 04:43:00,Charlie Whitherspoon,INC0000000108,admin,Australia,Luke Wilson,Don Goodliffe,2023-04-09 09:12:14.485573467,Issue with Printer276 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-17 20:17:35.569877984,2023-04-05 00:45:00,Fred Luddy,INC0000000109,admin,Australia,Fred Luddy,Bud Richman,2023-04-17 20:17:35.569877984,Printer546 is not working in Australia location,Hardware,2 - High
|
||||
Network,Resolved,2023-04-13 15:50:15.123078287,2023-04-08 12:59:00,Charlie Whitherspoon,INC0000000110,employee,Australia,Howard Johnson,Don Goodliffe,2023-04-13 15:50:15.123078287,Network outage reported,Network,1 - Critical
|
||||
Hardware,Resolved,2023-04-13 02:17:59.600859991,2023-04-08 22:13:00,Charlie Whitherspoon,INC0000000111,employee,Australia,Luke Wilson,Bud Richman,2023-04-13 02:17:59.600859991,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-04-15 04:23:54.073331834,2023-04-09 10:28:00,Beth Anglin,INC0000000112,employee,India,Fred Luddy,David Loo,2023-04-15 04:23:54.073331834,Unable to connect to SQL Database,Database,3 - Moderate
|
||||
Hardware,Resolved,2023-04-17 11:40:20.915287122,2023-04-09 15:33:00,Beth Anglin,INC0000000113,admin,Australia,Fred Luddy,Don Goodliffe,2023-04-17 11:40:20.915287122,Printer error on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-24 09:36:05.775625483,2023-04-10 12:12:00,Beth Anglin,INC0000000114,employee,Australia,Fred Luddy,Bud Richman,2023-04-24 09:36:05.775625483,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-13 12:12:50.918205479,2023-04-11 08:43:00,Charlie Whitherspoon,INC0000000115,employee,Australia,Beth Anglin,Don Goodliffe,2023-04-13 12:12:50.918205479,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-22 08:16:59.883429480,2023-04-11 11:50:00,Beth Anglin,INC0000000116,admin,UK,Luke Wilson,ITIL User,2023-04-22 08:16:59.883429480,UK Printer546 malfunctioning,Hardware,2 - High
|
||||
Network,Resolved,2023-04-13 09:52:00.000000000,2023-04-12 09:52:00,Charlie Whitherspoon,INC0000000117,employee,Canada,Beth Anglin,Bud Richman,2023-04-13 09:52:00.000000000,Network outage at Canada site,Network,1 - Critical
|
||||
Network,Resolved,2023-04-13 12:13:00.000000000,2023-04-12 12:13:00,Charlie Whitherspoon,INC0000000118,employee,UK,Fred Luddy,ITIL User,2023-04-13 12:13:00.000000000,Network failure in region UK,Network,1 - Critical
|
||||
Hardware,Closed,2023-04-14 10:00:00.000000000,2023-04-13 10:00:00,Howard Johnson,INC0000000119,employee,Australia,Luke Wilson,Don Goodliffe,2023-04-14 10:00:00.000000000,Printer639 is not working properly,Hardware,1 - Critical
|
||||
Database,Closed,2023-04-25 00:40:17.584686390,2023-04-14 23:54:00,Luke Wilson,INC0000000120,system,India,Charlie Whitherspoon,Bud Richman,2023-04-25 00:40:17.584686390,Database query optimization issue at India location,Database,3 - Moderate
|
||||
Hardware,Closed,2023-04-25 04:21:38.122505056,2023-04-15 11:57:00,Howard Johnson,INC0000000121,employee,Australia,Fred Luddy,ITIL User,2023-04-25 04:21:38.122505056,Printer789 is not responding,Hardware,2 - High
|
||||
Network,Resolved,2023-04-19 16:48:00.000000000,2023-04-18 16:48:00,Charlie Whitherspoon,INC0000000122,system,UK,Fred Luddy,Don Goodliffe,2023-04-19 16:48:00.000000000,Network connection issue in UK,Network,2 - High
|
||||
Hardware,Closed,2023-05-03 23:18:07.556497402,2023-04-18 19:22:00,Howard Johnson,INC0000000123,employee,Australia,Beth Anglin,Don Goodliffe,2023-05-03 23:18:07.556497402,Printer788 is not working properly,Hardware,1 - Critical
|
||||
Network,Closed,2023-04-24 02:25:13.899200115,2023-04-18 22:20:00,Fred Luddy,INC0000000124,system,India,Howard Johnson,Bud Richman,2023-04-24 02:25:13.899200115,Network outage in India location,Network,1 - Critical
|
||||
Database,Resolved,2023-04-26 00:28:50.913657583,2023-04-19 07:07:00,Fred Luddy,INC0000000125,employee,India,Luke Wilson,ITIL User,2023-04-26 00:28:50.913657583,Database Server Outage,Database,2 - High
|
||||
Hardware,Resolved,2023-04-30 20:00:34.805177671,2023-04-19 14:41:00,Fred Luddy,INC0000000126,employee,Australia,Charlie Whitherspoon,ITIL User,2023-04-30 20:00:34.805177671,Printer556 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-26 13:43:55.256743773,2023-04-20 22:34:00,Beth Anglin,INC0000000127,admin,Australia,Howard Johnson,Don Goodliffe,2023-04-26 13:43:55.256743773,Printer454 failed in office,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-05 00:21:12.204265630,2023-04-21 03:46:00,Beth Anglin,INC0000000128,system,United States,Luke Wilson,Don Goodliffe,2023-05-05 00:21:12.204265630,Desktop PC not turning on,Hardware,2 - High
|
||||
Software,Closed,2023-05-06 00:19:06.845921162,2023-04-21 08:13:00,Charlie Whitherspoon,INC0000000129,employee,Australia,Luke Wilson,David Loo,2023-05-06 00:19:06.845921162,Software license renewal required,Software,4 - Low
|
||||
Hardware,Closed,2023-04-29 07:22:13.691497066,2023-04-21 17:22:00,Luke Wilson,INC0000000130,system,UK,Charlie Whitherspoon,David Loo,2023-04-29 07:22:13.691497066,Issue with UK server hardware,Hardware,2 - High
|
||||
Hardware,Closed,2023-04-26 07:15:31.647958414,2023-04-22 10:55:00,Howard Johnson,INC0000000131,system,Australia,Luke Wilson,David Loo,2023-04-26 07:15:31.647958414,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-10 03:20:31.007719853,2023-04-23 21:20:00,Howard Johnson,INC0000000132,system,Australia,Fred Luddy,David Loo,2023-05-10 03:20:31.007719853,Printer827 is not working properly in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-10 23:55:09.253391223,2023-04-27 03:25:00,Howard Johnson,INC0000000133,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-05-10 23:55:09.253391223,Faulty keyboard on workstation,Hardware,2 - High
|
||||
Network,Closed,2023-05-05 01:59:48.858836394,2023-04-27 10:45:00,Luke Wilson,INC0000000134,admin,UK,Charlie Whitherspoon,ITIL User,2023-05-05 01:59:48.858836394,Network outage in UK site,Network,1 - Critical
|
||||
Hardware,Resolved,2023-05-06 08:53:56.696181202,2023-04-28 01:24:00,Luke Wilson,INC0000000135,system,Australia,Howard Johnson,David Loo,2023-05-06 08:53:56.696181202,Printer547 isn't responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-14 08:03:47.192602517,2023-04-30 00:53:00,Charlie Whitherspoon,INC0000000136,admin,India,Howard Johnson,Don Goodliffe,2023-05-14 08:03:47.192602517,Issue with the server hardware,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-05 19:25:33.306689559,2023-05-02 14:34:00,Beth Anglin,INC0000000137,employee,Australia,Luke Wilson,David Loo,2023-05-05 19:25:33.306689559,Printer546 is broken in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-08 00:19:49.950083121,2023-05-02 15:01:00,Luke Wilson,INC0000000138,admin,Australia,Howard Johnson,Don Goodliffe,2023-05-08 00:19:49.950083121,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-15 10:38:15.815796741,2023-05-03 04:24:00,Charlie Whitherspoon,INC0000000139,admin,Australia,Beth Anglin,Don Goodliffe,2023-05-15 10:38:15.815796741,Printer472 in Australia is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-04 21:57:00.000000000,2023-05-03 21:57:00,Beth Anglin,INC0000000140,admin,UK,Howard Johnson,David Loo,2023-05-04 21:57:00.000000000,UK Desktop PC with ID: Desktop123 has stopped working,Hardware,2 - High
|
||||
Software,Closed,2023-05-14 06:26:59.910015516,2023-05-04 13:17:00,Luke Wilson,INC0000000141,system,India,Charlie Whitherspoon,Bud Richman,2023-05-14 06:26:59.910015516,Unable to install new software,Software,2 - High
|
||||
Hardware,Resolved,2023-05-12 02:21:34.844909705,2023-05-05 07:09:00,Beth Anglin,INC0000000142,employee,Australia,Beth Anglin,David Loo,2023-05-12 02:21:34.844909705,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-19 09:53:34.982040620,2023-05-05 20:05:00,Charlie Whitherspoon,INC0000000143,admin,India,Beth Anglin,David Loo,2023-05-19 09:53:34.982040620,Server failure - server123,Hardware,1 - Critical
|
||||
Database,Closed,2023-05-10 22:35:58.881919516,2023-05-05 20:26:00,Fred Luddy,INC0000000144,admin,United States,Charlie Whitherspoon,David Loo,2023-05-10 22:35:58.881919516,Unable to access the database,Database,2 - High
|
||||
Inquiry / Help,Closed,2023-05-06 22:24:00.000000000,2023-05-05 22:24:00,Charlie Whitherspoon,INC0000000145,system,Canada,Charlie Whitherspoon,Don Goodliffe,2023-05-06 22:24:00.000000000,Inquiry about help on local systems,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-05-13 14:49:23.379483573,2023-05-07 09:01:00,Fred Luddy,INC0000000146,employee,Australia,Luke Wilson,ITIL User,2023-05-13 14:49:23.379483573,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-13 13:14:46.388208661,2023-05-07 11:12:00,Howard Johnson,INC0000000147,system,Australia,Luke Wilson,Bud Richman,2023-05-13 13:14:46.388208661,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-14 12:40:40.813937606,2023-05-07 12:05:00,Beth Anglin,INC0000000148,system,Canada,Howard Johnson,ITIL User,2023-05-14 12:40:40.813937606,Issue with Dell521 Desktop PC malfunctioning,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-24 17:45:04.375124775,2023-05-12 06:51:00,Charlie Whitherspoon,INC0000000149,system,Australia,Luke Wilson,ITIL User,2023-05-24 17:45:04.375124775,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-19 04:22:50.443252112,2023-05-12 11:38:00,Beth Anglin,INC0000000150,admin,Australia,Beth Anglin,David Loo,2023-05-19 04:22:50.443252112,Printer546 is not printing,Hardware,1 - Critical
|
||||
Software,Resolved,2023-05-19 01:48:03.565852983,2023-05-13 02:54:00,Luke Wilson,INC0000000151,employee,India,Howard Johnson,Don Goodliffe,2023-05-19 01:48:03.565852983,Software update failed on the server,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-05-24 09:29:18.509870284,2023-05-13 10:11:00,Fred Luddy,INC0000000152,admin,Australia,Howard Johnson,Don Goodliffe,2023-05-24 09:29:18.509870284,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-05-19 07:25:36.115649042,2023-05-14 11:45:00,Fred Luddy,INC0000000153,admin,Australia,Luke Wilson,Don Goodliffe,2023-05-19 07:25:36.115649042,Printer546 has stopped working in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-18 20:30:00.000000000,2023-05-17 20:30:00,Fred Luddy,INC0000000154,employee,Australia,Howard Johnson,David Loo,2023-05-18 20:30:00.000000000,Printer876 is not printing,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-27 00:02:45.297437201,2023-05-18 07:29:00,Luke Wilson,INC0000000155,employee,Australia,Fred Luddy,Bud Richman,2023-05-27 00:02:45.297437201,Printer546 malfunction in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-29 16:00:46.480174225,2023-05-18 17:29:00,Fred Luddy,INC0000000156,system,India,Fred Luddy,Don Goodliffe,2023-05-29 16:00:46.480174225,Issue with Dell Inspiron 15,Hardware,2 - High
|
||||
Database,Closed,2023-06-05 23:47:52.328722644,2023-05-18 22:32:00,Howard Johnson,INC0000000157,employee,India,Fred Luddy,ITIL User,2023-06-05 23:47:52.328722644,SQL error on Production Server,Database,2 - High
|
||||
Hardware,Resolved,2023-06-03 13:13:53.896117331,2023-05-19 04:05:00,Charlie Whitherspoon,INC0000000158,admin,Australia,Howard Johnson,Bud Richman,2023-06-03 13:13:53.896117331,Printer546 encountered an issue,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-24 07:52:48.690310999,2023-05-20 06:12:00,Beth Anglin,INC0000000159,system,Australia,Charlie Whitherspoon,David Loo,2023-05-24 07:52:48.690310999,Printer issue with Printer546 in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-05-31 03:23:19.484544434,2023-05-21 05:49:00,Howard Johnson,INC0000000160,employee,India,Charlie Whitherspoon,ITIL User,2023-05-31 03:23:19.484544434,Network outage in India region,Network,2 - High
|
||||
Hardware,Closed,2023-05-22 23:24:00.000000000,2023-05-21 23:24:00,Howard Johnson,INC0000000161,system,India,Beth Anglin,ITIL User,2023-05-22 23:24:00.000000000,Server failure - static issue,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-31 14:07:51.086048950,2023-05-22 01:22:00,Beth Anglin,INC0000000162,system,Australia,Fred Luddy,Bud Richman,2023-05-31 14:07:51.086048950,Printer546 malfunction in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-07 16:18:08.061177566,2023-05-24 02:06:00,Fred Luddy,INC0000000163,admin,United States,Howard Johnson,Bud Richman,2023-06-07 16:18:08.061177566,Issue with processing unit in desktop PC,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-05-27 02:04:45.048501853,2023-05-24 03:55:00,Luke Wilson,INC0000000164,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-05-27 02:04:45.048501853,Issue with Printer457 in Australia office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-30 02:59:49.369927031,2023-05-26 08:08:00,Fred Luddy,INC0000000165,employee,Australia,Luke Wilson,David Loo,2023-05-30 02:59:49.369927031,Printer241 issue in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-30 11:21:04.259433606,2023-05-26 13:20:00,Fred Luddy,INC0000000166,system,Australia,Charlie Whitherspoon,David Loo,2023-05-30 11:21:04.259433606,Printer546 failure in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-28 08:38:00.000000000,2023-05-27 08:38:00,Charlie Whitherspoon,INC0000000167,admin,India,Luke Wilson,David Loo,2023-05-28 08:38:00.000000000,Router problem with RTR546 in India,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-01 13:53:33.745863862,2023-05-27 21:00:00,Fred Luddy,INC0000000168,system,Australia,Charlie Whitherspoon,ITIL User,2023-06-01 13:53:33.745863862,Printer error on Printer643,Hardware,2 - High
|
||||
Network,Resolved,2023-05-29 13:25:00.000000000,2023-05-28 13:25:00,Luke Wilson,INC0000000169,system,India,Howard Johnson,Don Goodliffe,2023-05-29 13:25:00.000000000,Network outage in Mumbai region,Network,1 - Critical
|
||||
Software,Resolved,2023-06-07 06:19:03.182476115,2023-05-29 04:20:00,Beth Anglin,INC0000000170,admin,Canada,Beth Anglin,ITIL User,2023-06-07 06:19:03.182476115,Unable to install new software update,Software,2 - High
|
||||
Software,Resolved,2023-06-07 15:04:30.359478777,2023-05-30 09:43:00,Luke Wilson,INC0000000171,system,Australia,Fred Luddy,David Loo,2023-06-07 15:04:30.359478777,Software update required,Software,2 - High
|
||||
Database,Resolved,2023-06-04 09:17:41.184530679,2023-05-30 09:56:00,Luke Wilson,INC0000000172,admin,Canada,Howard Johnson,Don Goodliffe,2023-06-04 09:17:41.184530679,Issue with performance of database DB202,Database,2 - High
|
||||
Hardware,Closed,2023-06-02 00:47:00.000000000,2023-06-01 00:47:00,Charlie Whitherspoon,INC0000000173,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-06-02 00:47:00.000000000,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-13 22:57:17.038108358,2023-06-01 13:13:00,Luke Wilson,INC0000000174,system,Canada,Charlie Whitherspoon,ITIL User,2023-06-13 22:57:17.038108358,Failed Hard Disk on Workstation122,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-11 09:48:35.368342810,2023-06-02 12:28:00,Luke Wilson,INC0000000175,admin,Australia,Beth Anglin,Bud Richman,2023-06-11 09:48:35.368342810,Printer fail at printer547,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-11 20:25:35.094482408,2023-06-02 22:47:00,Howard Johnson,INC0000000176,admin,UK,Charlie Whitherspoon,ITIL User,2023-06-11 20:25:35.094482408,"Laptop malfunctioning, requires immediate attention",Hardware,2 - High
|
||||
Hardware,Closed,2023-06-17 06:06:14.854314828,2023-06-03 10:45:00,Luke Wilson,INC0000000177,system,Canada,Beth Anglin,Bud Richman,2023-06-17 06:06:14.854314828,Hardware malfunction for laptop - Canada location,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-06 12:59:19.008350345,2023-06-03 12:39:00,Luke Wilson,INC0000000178,employee,Canada,Fred Luddy,ITIL User,2023-06-06 12:59:19.008350345,Issue with the server hardware,Hardware,2 - High
|
||||
Software,Closed,2023-06-05 15:09:00.000000000,2023-06-04 15:09:00,Howard Johnson,INC0000000179,system,Canada,Howard Johnson,Don Goodliffe,2023-06-05 15:09:00.000000000,An application is consistently crashing,Software,2 - High
|
||||
Hardware,Resolved,2023-06-09 23:10:07.618999909,2023-06-04 21:23:00,Howard Johnson,INC0000000180,employee,Australia,Charlie Whitherspoon,David Loo,2023-06-09 23:10:07.618999909,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-06 08:20:00.000000000,2023-06-05 08:20:00,Luke Wilson,INC0000000181,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-06-06 08:20:00.000000000,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-19 06:59:02.120925069,2023-06-06 09:03:00,Howard Johnson,INC0000000182,employee,India,Fred Luddy,David Loo,2023-06-19 06:59:02.120925069,Server malfunction,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-07 21:23:00.000000000,2023-06-06 21:23:00,Luke Wilson,INC0000000183,employee,Australia,Beth Anglin,Don Goodliffe,2023-06-07 21:23:00.000000000,Printer567 is not working in Brisbane office,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 13:34:11.629362629,2023-06-07 02:47:00,Howard Johnson,INC0000000184,system,Australia,Fred Luddy,David Loo,2023-06-30 13:34:11.629362629,Printer546 is not working in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-14 11:45:24.784548040,2023-06-07 15:24:00,Charlie Whitherspoon,INC0000000185,employee,United States,Howard Johnson,David Loo,2023-06-14 11:45:24.784548040,Monitor display not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-08 17:00:00.000000000,2023-06-07 17:00:00,Beth Anglin,INC0000000186,system,Australia,Charlie Whitherspoon,David Loo,2023-06-08 17:00:00.000000000,Printer546 - Printer not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-06-20 19:52:27.802682144,2023-06-08 18:44:00,Charlie Whitherspoon,INC0000000187,employee,Australia,Beth Anglin,David Loo,2023-06-20 19:52:27.802682144,Printer123 is not working properly in Australia location,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-06-13 20:13:50.263024628,2023-06-08 22:05:00,Howard Johnson,INC0000000188,employee,Australia,Luke Wilson,Don Goodliffe,2023-06-13 20:13:50.263024628,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-24 09:17:21.801903137,2023-06-09 08:53:00,Luke Wilson,INC0000000189,system,Australia,Luke Wilson,ITIL User,2023-06-24 09:17:21.801903137,Printer error in Printer546,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-15 22:13:18.416949743,2023-06-10 17:52:00,Beth Anglin,INC0000000190,admin,Australia,Luke Wilson,ITIL User,2023-06-15 22:13:18.416949743,Printer error: Paper jam on Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-12 02:12:20.844915289,2023-06-10 20:44:00,Beth Anglin,INC0000000191,system,Australia,Luke Wilson,Bud Richman,2023-06-12 02:12:20.844915289,Printer546 is not printing in the Melbourne office,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-06-18 08:09:47.068608027,2023-06-11 07:00:00,Luke Wilson,INC0000000192,admin,Australia,Luke Wilson,Don Goodliffe,2023-06-18 08:09:47.068608027,Issue with Printer738 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-25 12:04:04.032337887,2023-06-14 04:06:00,Luke Wilson,INC0000000193,system,Australia,Charlie Whitherspoon,Bud Richman,2023-06-25 12:04:04.032337887,Printer546 is malfunctioning,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-06-29 12:44:20.753397452,2023-06-15 07:56:00,Luke Wilson,INC0000000194,employee,United States,Beth Anglin,David Loo,2023-06-29 12:44:20.753397452,Need help with application usage,Service Desk,3 - Moderate
|
||||
Network,Closed,2023-06-29 19:11:43.933822843,2023-06-19 10:41:00,Howard Johnson,INC0000000195,admin,Australia,Howard Johnson,David Loo,2023-06-29 19:11:43.933822843,Connection issues with network in Australia,Network,2 - High
|
||||
Software,Closed,2023-06-28 14:05:28.538482547,2023-06-19 11:21:00,Charlie Whitherspoon,INC0000000196,admin,United States,Fred Luddy,ITIL User,2023-06-28 14:05:28.538482547,Software update failure,Software,2 - High
|
||||
Hardware,Closed,2023-06-25 09:59:55.161658018,2023-06-19 12:22:00,Howard Johnson,INC0000000197,admin,Canada,Beth Anglin,David Loo,2023-06-25 09:59:55.161658018,Server hardware malfunction on SCSI Canada1024,Hardware,2 - High
|
||||
Network,Closed,2023-06-22 02:33:39.410009617,2023-06-19 13:59:00,Fred Luddy,INC0000000198,employee,Canada,Luke Wilson,Don Goodliffe,2023-06-22 02:33:39.410009617,Slow network connection in office,Network,2 - High
|
||||
Hardware,Closed,2023-07-01 10:42:22.374438866,2023-06-21 19:04:00,Beth Anglin,INC0000000199,employee,India,Beth Anglin,David Loo,2023-07-01 10:42:22.374438866,Issues detected with server123,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-07-06 13:13:24.843387226,2023-06-22 17:34:00,Beth Anglin,INC0000000200,employee,UK,Fred Luddy,Bud Richman,2023-07-06 13:13:24.843387226,Issue with the sound driver on workstation PC8,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-06 13:08:33.074641515,2023-06-23 12:47:00,Luke Wilson,INC0000000201,system,India,Beth Anglin,Bud Richman,2023-07-06 13:08:33.074641515,Problem with Cooling Fan,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-29 22:17:23.746230748,2023-06-23 20:11:00,Howard Johnson,INC0000000202,system,Canada,Fred Luddy,ITIL User,2023-06-29 22:17:23.746230748,Hard drive failure on office desktop,Hardware,2 - High
|
||||
Database,Resolved,2023-07-06 00:00:59.012006127,2023-06-25 04:50:00,Charlie Whitherspoon,INC0000000203,employee,UK,Charlie Whitherspoon,David Loo,2023-07-06 00:00:59.012006127,Unable to connect to SQL Database,Database,2 - High
|
||||
Database,Closed,2023-07-01 09:46:55.866723604,2023-06-25 10:31:00,Howard Johnson,INC0000000204,admin,Australia,Luke Wilson,David Loo,2023-07-01 09:46:55.866723604,Database server error 550,Database,2 - High
|
||||
Hardware,Resolved,2023-07-06 12:23:47.840976362,2023-06-25 22:45:00,Howard Johnson,INC0000000205,system,Australia,Howard Johnson,Don Goodliffe,2023-07-06 12:23:47.840976362,Printer348 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 06:01:54.007909417,2023-06-26 06:56:00,Fred Luddy,INC0000000206,employee,Australia,Charlie Whitherspoon,David Loo,2023-06-30 06:01:54.007909417,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-09 14:14:29.904659016,2023-06-26 08:23:00,Charlie Whitherspoon,INC0000000207,admin,United States,Fred Luddy,ITIL User,2023-07-09 14:14:29.904659016,PC1023 is not starting,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-07-06 07:29:00.832219981,2023-06-26 17:38:00,Howard Johnson,INC0000000208,admin,Australia,Fred Luddy,Bud Richman,2023-07-06 07:29:00.832219981,Printer error at Printer848,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-07-09 20:00:30.308403141,2023-06-27 10:20:00,Howard Johnson,INC0000000209,system,Australia,Luke Wilson,David Loo,2023-07-09 20:00:30.308403141,Printer546 in Sydney office is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-06 03:31:13.838619495,2023-06-27 21:41:00,Fred Luddy,INC0000000210,admin,UK,Howard Johnson,Don Goodliffe,2023-07-06 03:31:13.838619495,Issue with server SR654,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-12 18:45:07.705046349,2023-06-28 11:02:00,Fred Luddy,INC0000000211,admin,Australia,Fred Luddy,David Loo,2023-07-12 18:45:07.705046349,Printer546 issue in Sydney office,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-06 00:45:36.251942561,2023-06-28 14:35:00,Beth Anglin,INC0000000212,system,India,Howard Johnson,David Loo,2023-07-06 00:45:36.251942561,Terminal343 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 23:29:55.851304419,2023-06-29 19:01:00,Charlie Whitherspoon,INC0000000213,system,Australia,Luke Wilson,David Loo,2023-06-30 23:29:55.851304419,Printer error at Printer679,Hardware,3 - Moderate
|
||||
Network,Closed,2023-07-10 23:00:15.709745176,2023-07-02 07:35:00,Beth Anglin,INC0000000214,system,India,Luke Wilson,Bud Richman,2023-07-10 23:00:15.709745176,Unable to establish VPN connection,Network,2 - High
|
||||
Hardware,Closed,2023-07-14 08:23:51.080019979,2023-07-03 06:45:00,Charlie Whitherspoon,INC0000000215,system,Australia,Charlie Whitherspoon,ITIL User,2023-07-14 08:23:51.080019979,Printer546 is not working!,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-07-15 22:29:05.785588895,2023-07-04 04:13:00,Luke Wilson,INC0000000216,system,UK,Charlie Whitherspoon,David Loo,2023-07-15 22:29:05.785588895,Inquiry regarding help with account access,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-07-14 06:35:05.209399792,2023-07-04 13:46:00,Fred Luddy,INC0000000217,admin,Australia,Luke Wilson,ITIL User,2023-07-14 06:35:05.209399792,Printer fail - PrinterID::Printer546,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-07-21 18:09:17.803746956,2023-07-07 04:36:00,Charlie Whitherspoon,INC0000000218,employee,India,Beth Anglin,Bud Richman,2023-07-21 18:09:17.803746956,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Inquiry / Help,Resolved,2023-07-08 04:48:00.000000000,2023-07-07 04:48:00,Beth Anglin,INC0000000219,system,UK,Howard Johnson,David Loo,2023-07-08 04:48:00.000000000,Assistance needed with UK enquiry system,Service Desk,3 - Moderate
|
||||
Network,Closed,2023-07-11 23:34:29.390060680,2023-07-07 05:58:00,Howard Johnson,INC0000000220,employee,UK,Howard Johnson,David Loo,2023-07-11 23:34:29.390060680,Internet connectivity issue in UK office,Network,2 - High
|
||||
Hardware,Resolved,2023-07-13 16:19:33.649785697,2023-07-07 20:52:00,Charlie Whitherspoon,INC0000000221,employee,Canada,Beth Anglin,Bud Richman,2023-07-13 16:19:33.649785697,Server malfunction in Canada,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-07-23 19:05:17.533035942,2023-07-08 00:31:00,Luke Wilson,INC0000000222,employee,Australia,Charlie Whitherspoon,ITIL User,2023-07-23 19:05:17.533035942,Printer malfunction detected on Printer546,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-25 03:32:18.462401146,2023-07-09 03:39:00,Beth Anglin,INC0000000223,system,India,Howard Johnson,Bud Richman,2023-07-25 03:32:18.462401146,Computer not starting,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-26 17:51:52.767336231,2023-07-11 16:02:00,Luke Wilson,INC0000000224,admin,India,Beth Anglin,David Loo,2023-07-26 17:51:52.767336231,Laptop malfunction with ID233,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-20 02:37:10.813279462,2023-07-11 18:42:00,Howard Johnson,INC0000000225,employee,UK,Howard Johnson,Bud Richman,2023-07-20 02:37:10.813279462,Phone681 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-27 12:30:15.368139102,2023-07-12 00:27:00,Charlie Whitherspoon,INC0000000226,admin,Australia,Howard Johnson,Bud Richman,2023-07-27 12:30:15.368139102,Printer422 is malfunctioning in Australia,Hardware,2 - High
|
||||
Software,Closed,2023-07-19 14:54:49.403388921,2023-07-12 03:22:00,Luke Wilson,INC0000000227,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-19 14:54:49.403388921,Error message on Software ABC,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-07-14 21:15:31.584390518,2023-07-12 05:50:00,Fred Luddy,INC0000000228,system,Australia,Fred Luddy,Don Goodliffe,2023-07-14 21:15:31.584390518,Printer546 is not working,Hardware,1 - Critical
|
||||
Software,Resolved,2023-07-28 21:34:00.908307924,2023-07-14 21:27:00,Howard Johnson,INC0000000229,system,UK,Beth Anglin,ITIL User,2023-07-28 21:34:00.908307924,Slowness in running application XYZ,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-07-20 09:47:52.908236069,2023-07-15 12:17:00,Fred Luddy,INC0000000230,admin,Australia,Beth Anglin,ITIL User,2023-07-20 09:47:52.908236069,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-07-25 03:53:49.978687958,2023-07-15 14:09:00,Fred Luddy,INC0000000231,admin,Australia,Howard Johnson,Bud Richman,2023-07-25 03:53:49.978687958,Printer546 is not working properly.,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-22 05:03:13.822074451,2023-07-16 10:58:00,Beth Anglin,INC0000000232,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-22 05:03:13.822074451,Printer783 is not printing,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-26 01:50:52.068385147,2023-07-19 12:03:00,Luke Wilson,INC0000000233,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-07-26 01:50:52.068385147,Printer786 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-01 00:45:22.754376187,2023-07-20 12:12:00,Fred Luddy,INC0000000234,system,United States,Luke Wilson,Bud Richman,2023-08-01 00:45:22.754376187,Inquiry about missing functionalities,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-07-23 16:38:46.547163481,2023-07-21 07:12:00,Howard Johnson,INC0000000235,admin,UK,Charlie Whitherspoon,Bud Richman,2023-07-23 16:38:46.547163481,Problem with office PC,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-07-25 23:13:55.734880101,2023-07-22 04:13:00,Charlie Whitherspoon,INC0000000236,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-25 23:13:55.734880101,Printer546 - Not Printing is causing issues,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-07-30 12:07:08.997531852,2023-07-22 16:29:00,Fred Luddy,INC0000000237,admin,United States,Charlie Whitherspoon,Bud Richman,2023-07-30 12:07:08.997531852,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Inquiry / Help,Closed,2023-08-09 03:19:49.048508681,2023-07-22 22:39:00,Howard Johnson,INC0000000238,employee,United States,Beth Anglin,Bud Richman,2023-08-09 03:19:49.048508681,Need help with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-04 04:46:10.581661057,2023-07-22 23:48:00,Howard Johnson,INC0000000239,admin,Australia,Beth Anglin,Bud Richman,2023-08-04 04:46:10.581661057,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-07-31 00:33:13.437296119,2023-07-23 08:50:00,Beth Anglin,INC0000000240,admin,Australia,Howard Johnson,Don Goodliffe,2023-07-31 00:33:13.437296119,Network router behaving erratically,Network,3 - Moderate
|
||||
Network,Resolved,2023-07-25 09:09:00.000000000,2023-07-24 09:09:00,Howard Johnson,INC0000000241,admin,India,Luke Wilson,Don Goodliffe,2023-07-25 09:09:00.000000000,Slow internet connectivity issues,Network,3 - Moderate
|
||||
Network,Resolved,2023-07-31 04:33:45.303280610,2023-07-24 09:13:00,Beth Anglin,INC0000000242,admin,UK,Charlie Whitherspoon,Don Goodliffe,2023-07-31 04:33:45.303280610,Unable to connect to VPN,Network,2 - High
|
||||
Hardware,Resolved,2023-08-11 14:17:08.329647264,2023-07-25 08:08:00,Beth Anglin,INC0000000243,system,Canada,Fred Luddy,David Loo,2023-08-11 14:17:08.329647264,Motherboard failure on company desktop,Hardware,2 - High
|
||||
Software,Closed,2023-08-02 12:16:09.558065832,2023-07-25 20:00:00,Howard Johnson,INC0000000244,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-02 12:16:09.558065832,Error 404 on Software789,Software,2 - High
|
||||
Inquiry / Help,Closed,2023-08-12 18:27:47.789421821,2023-07-26 06:53:00,Charlie Whitherspoon,INC0000000245,admin,Canada,Charlie Whitherspoon,Bud Richman,2023-08-12 18:27:47.789421821,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-02 04:32:04.560171158,2023-07-26 17:09:00,Beth Anglin,INC0000000246,system,Australia,Howard Johnson,David Loo,2023-08-02 04:32:04.560171158,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 06:13:36.125124469,2023-07-27 04:40:00,Howard Johnson,INC0000000247,system,Australia,Luke Wilson,Don Goodliffe,2023-08-07 06:13:36.125124469,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-08 02:22:19.738512734,2023-07-27 08:18:00,Charlie Whitherspoon,INC0000000248,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-08-08 02:22:19.738512734,UK laptop malfunctioning,Hardware,2 - High
|
||||
Network,Closed,2023-08-08 20:25:25.735379947,2023-07-27 19:21:00,Fred Luddy,INC0000000249,system,United States,Beth Anglin,Bud Richman,2023-08-08 20:25:25.735379947,Network outage in United States office,Network,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-04 22:43:36.252615961,2023-07-28 19:29:00,Charlie Whitherspoon,INC0000000250,admin,Canada,Luke Wilson,ITIL User,2023-08-04 22:43:36.252615961,Need assistance with VPN setup,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-07 18:20:23.668968040,2023-07-29 10:15:00,Luke Wilson,INC0000000251,employee,Australia,Luke Wilson,Don Goodliffe,2023-08-07 18:20:23.668968040,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-02 05:21:25.991706511,2023-07-29 11:39:00,Charlie Whitherspoon,INC0000000252,employee,Australia,Howard Johnson,ITIL User,2023-08-02 05:21:25.991706511,Printer error on Printer546,Hardware,2 - High
|
||||
Software,Closed,2023-08-03 13:35:26.483807424,2023-07-30 09:49:00,Beth Anglin,INC0000000253,admin,Australia,Beth Anglin,David Loo,2023-08-03 13:35:26.483807424,MySQL database connection error on server AU120,Software,2 - High
|
||||
Software,Closed,2023-08-11 16:02:37.684405305,2023-07-30 09:52:00,Fred Luddy,INC0000000254,employee,Australia,Charlie Whitherspoon,ITIL User,2023-08-11 16:02:37.684405305,Unable to update software on local machine,Software,2 - High
|
||||
Hardware,Closed,2023-08-13 06:44:24.424288482,2023-07-30 17:08:00,Charlie Whitherspoon,INC0000000255,employee,UK,Beth Anglin,ITIL User,2023-08-13 06:44:24.424288482,Broken server needs replacement,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-02 05:44:00.000000000,2023-08-01 05:44:00,Fred Luddy,INC0000000256,employee,Australia,Beth Anglin,ITIL User,2023-08-02 05:44:00.000000000,Printer546 is not functioning correctly,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 18:21:44.544015394,2023-08-01 11:34:00,Beth Anglin,INC0000000257,employee,Australia,Luke Wilson,David Loo,2023-08-07 18:21:44.544015394,Printer322 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-10 22:01:38.300764703,2023-08-01 13:22:00,Beth Anglin,INC0000000258,employee,Australia,Luke Wilson,David Loo,2023-08-10 22:01:38.300764703,Printer420 is not responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-08-09 07:59:01.326042131,2023-08-02 07:41:00,Luke Wilson,INC0000000259,admin,Australia,Howard Johnson,Bud Richman,2023-08-09 07:59:01.326042131,Printer327 has stopped working in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-05 08:06:09.262346306,2023-08-02 14:46:00,Luke Wilson,INC0000000260,employee,India,Charlie Whitherspoon,Don Goodliffe,2023-08-05 08:06:09.262346306,Monitor display intermittent failure,Hardware,2 - High
|
||||
Network,Closed,2023-08-04 08:39:00.000000000,2023-08-03 08:39:00,Fred Luddy,INC0000000261,employee,India,Howard Johnson,Don Goodliffe,2023-08-04 08:39:00.000000000,Unable to connect to server,Network,2 - High
|
||||
Hardware,Resolved,2023-08-17 04:45:43.185739101,2023-08-03 16:41:00,Beth Anglin,INC0000000262,employee,Australia,Beth Anglin,Don Goodliffe,2023-08-17 04:45:43.185739101,Printer546 is not printing in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-04 18:56:00.000000000,2023-08-03 18:56:00,Fred Luddy,INC0000000263,employee,Australia,Luke Wilson,Don Goodliffe,2023-08-04 18:56:00.000000000,Printer789 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-14 09:36:00.295254938,2023-08-05 07:39:00,Howard Johnson,INC0000000264,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-14 09:36:00.295254938,Printer error at Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 09:44:00.000000000,2023-08-06 09:44:00,Beth Anglin,INC0000000265,employee,Australia,Howard Johnson,Bud Richman,2023-08-07 09:44:00.000000000,Printer546 in Australia location has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-15 14:03:57.099952165,2023-08-07 02:37:00,Howard Johnson,INC0000000266,employee,Australia,Charlie Whitherspoon,ITIL User,2023-08-15 14:03:57.099952165,Printer467 is out of service!,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-15 21:18:27.557222760,2023-08-08 09:29:00,Charlie Whitherspoon,INC0000000267,admin,Australia,Howard Johnson,Don Goodliffe,2023-08-15 21:18:27.557222760,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-08-28 16:17:39.682367202,2023-08-09 04:10:00,Charlie Whitherspoon,INC0000000268,admin,Australia,Howard Johnson,Don Goodliffe,2023-08-28 16:17:39.682367202,Printer678 issue in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-08-10 06:30:11.927271898,2023-08-09 04:13:00,Charlie Whitherspoon,INC0000000269,admin,United States,Howard Johnson,ITIL User,2023-08-10 06:30:11.927271898,Unable to connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-08-19 00:17:36.874122878,2023-08-09 17:08:00,Luke Wilson,INC0000000270,system,Australia,Fred Luddy,Bud Richman,2023-08-19 00:17:36.874122878,Printer789 is not responding,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-20 02:50:00.481014067,2023-08-10 08:09:00,Fred Luddy,INC0000000271,employee,UK,Fred Luddy,ITIL User,2023-08-20 02:50:00.481014067,Need assistance with IT inquiry,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-24 03:39:08.172397201,2023-08-11 04:15:00,Luke Wilson,INC0000000272,employee,Australia,Fred Luddy,ITIL User,2023-08-24 03:39:08.172397201,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Software,Closed,2023-08-13 06:41:18.526534971,2023-08-11 09:04:00,Charlie Whitherspoon,INC0000000273,admin,UK,Beth Anglin,David Loo,2023-08-13 06:41:18.526534971,Software Issue: Error while loading application on VM,Software,3 - Moderate
|
||||
Hardware,Closed,2023-08-18 23:36:22.191419882,2023-08-12 03:28:00,Luke Wilson,INC0000000274,system,Australia,Charlie Whitherspoon,David Loo,2023-08-18 23:36:22.191419882,Printer546 is not working,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-08-13 15:36:00.000000000,2023-08-12 15:36:00,Howard Johnson,INC0000000275,admin,Australia,Fred Luddy,Bud Richman,2023-08-13 15:36:00.000000000,Printer546 is not functioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-19 05:22:39.220366354,2023-08-13 08:04:00,Luke Wilson,INC0000000276,system,Australia,Beth Anglin,Don Goodliffe,2023-08-19 05:22:39.220366354,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-08-17 17:26:24.730681330,2023-08-14 09:58:00,Howard Johnson,INC0000000277,system,Australia,Beth Anglin,ITIL User,2023-08-17 17:26:24.730681330,Printer546 Error in Australia,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-08-21 08:48:34.847604103,2023-08-15 20:03:00,Beth Anglin,INC0000000278,employee,Australia,Fred Luddy,ITIL User,2023-08-21 08:48:34.847604103,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-22 04:24:28.410211673,2023-08-16 19:14:00,Fred Luddy,INC0000000279,system,Australia,Beth Anglin,Don Goodliffe,2023-08-22 04:24:28.410211673,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-25 09:49:36.214757254,2023-08-17 11:38:00,Luke Wilson,INC0000000280,admin,Australia,Charlie Whitherspoon,David Loo,2023-08-25 09:49:36.214757254,Printer issue with Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-19 10:57:00.000000000,2023-08-18 10:57:00,Fred Luddy,INC0000000281,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-19 10:57:00.000000000,Issue with Printer546,Hardware,1 - Critical
|
||||
Database,Closed,2023-08-23 19:40:27.266944172,2023-08-19 12:57:00,Howard Johnson,INC0000000282,system,UK,Howard Johnson,Bud Richman,2023-08-23 19:40:27.266944172,Connection issue with UK_DB47 Database,Database,2 - High
|
||||
Hardware,Closed,2023-08-24 00:59:37.177124394,2023-08-20 08:09:00,Charlie Whitherspoon,INC0000000283,employee,Australia,Howard Johnson,David Loo,2023-08-24 00:59:37.177124394,Printer678 malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-26 09:29:01.912064757,2023-08-20 08:38:00,Fred Luddy,INC0000000284,employee,Australia,Beth Anglin,ITIL User,2023-08-26 09:29:01.912064757,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-24 03:28:09.603360173,2023-08-20 18:16:00,Luke Wilson,INC0000000285,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-08-24 03:28:09.603360173,Printer546 is failing,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-26 15:36:56.981753690,2023-08-21 07:17:00,Howard Johnson,INC0000000286,admin,India,Fred Luddy,Bud Richman,2023-08-26 15:36:56.981753690,Need help with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-09-05 02:07:43.113682721,2023-08-21 07:38:00,Howard Johnson,INC0000000287,admin,United States,Howard Johnson,David Loo,2023-09-05 02:07:43.113682721,Hardware issue with the CPU overheating,Hardware,1 - Critical
|
||||
Database,Resolved,2023-08-22 19:11:00.000000000,2023-08-21 19:11:00,Charlie Whitherspoon,INC0000000288,employee,UK,Beth Anglin,David Loo,2023-08-22 19:11:00.000000000,Error detected in Database system,Database,1 - Critical
|
||||
Network,Closed,2023-08-26 16:09:36.942939516,2023-08-22 03:19:00,Fred Luddy,INC0000000289,admin,Australia,Beth Anglin,Bud Richman,2023-08-26 16:09:36.942939516,"Network connection issue, Australia",Network,2 - High
|
||||
Hardware,Closed,2023-08-25 07:22:00.000000000,2023-08-24 07:22:00,Luke Wilson,INC0000000290,admin,Australia,Charlie Whitherspoon,David Loo,2023-08-25 07:22:00.000000000,Printer546 is offline,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-03 18:58:33.803118210,2023-08-25 12:10:00,Fred Luddy,INC0000000291,admin,Australia,Howard Johnson,David Loo,2023-09-03 18:58:33.803118210,Printer489 has a paper jam,Hardware,2 - High
|
||||
Network,Closed,2023-08-30 14:14:08.283969923,2023-08-25 22:41:00,Charlie Whitherspoon,INC0000000292,employee,UK,Luke Wilson,Bud Richman,2023-08-30 14:14:08.283969923,Losing connectivity frequently,Network,2 - High
|
||||
Database,Resolved,2023-08-27 03:03:00.000000000,2023-08-26 03:03:00,Beth Anglin,INC0000000293,admin,UK,Luke Wilson,ITIL User,2023-08-27 03:03:00.000000000,Issue with SQL Server783,Database,2 - High
|
||||
Database,Closed,2023-08-30 13:49:54.648995923,2023-08-27 21:14:00,Fred Luddy,INC0000000294,system,Canada,Fred Luddy,Don Goodliffe,2023-08-30 13:49:54.648995923,Unable to connect to Database DB4434,Database,2 - High
|
||||
Database,Closed,2023-09-01 14:19:29.165134519,2023-08-28 16:06:00,Fred Luddy,INC0000000295,employee,Australia,Luke Wilson,ITIL User,2023-09-01 14:19:29.165134519,Database error on SQL server,Database,2 - High
|
||||
Hardware,Closed,2023-08-31 15:44:00.000000000,2023-08-30 15:44:00,Fred Luddy,INC0000000296,system,Australia,Howard Johnson,ITIL User,2023-08-31 15:44:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-07 23:02:26.238518168,2023-08-31 14:06:00,Luke Wilson,INC0000000297,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-07 23:02:26.238518168,Printer392 is constantly jamming,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-07 09:17:08.466232846,2023-09-02 01:15:00,Beth Anglin,INC0000000298,employee,Australia,Fred Luddy,ITIL User,2023-09-07 09:17:08.466232846,Printer786 malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-03 02:19:00.000000000,2023-09-02 02:19:00,Howard Johnson,INC0000000299,employee,India,Luke Wilson,David Loo,2023-09-03 02:19:00.000000000,Issue with motherboard in workstation DSK789,Hardware,2 - High
|
||||
Software,Resolved,2023-09-11 18:47:05.423433239,2023-09-02 03:20:00,Luke Wilson,INC0000000300,system,UK,Fred Luddy,Bud Richman,2023-09-11 18:47:05.423433239,Error with billing software,Software,2 - High
|
||||
Hardware,Closed,2023-09-14 16:03:56.241021820,2023-09-03 07:56:00,Charlie Whitherspoon,INC0000000301,system,Australia,Howard Johnson,ITIL User,2023-09-14 16:03:56.241021820,Printer567 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 05:14:51.293532720,2023-09-03 12:21:00,Charlie Whitherspoon,INC0000000302,employee,Australia,Fred Luddy,Bud Richman,2023-09-13 05:14:51.293532720,Printer546 - printing issue in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 13:44:32.848563603,2023-09-03 15:48:00,Fred Luddy,INC0000000303,system,India,Howard Johnson,David Loo,2023-09-13 13:44:32.848563603,Bad sector on Hard Disk in desktop model ID E0395,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-09-16 03:46:06.609216047,2023-09-04 16:00:00,Fred Luddy,INC0000000304,admin,Australia,Luke Wilson,Bud Richman,2023-09-16 03:46:06.609216047,Printer failure on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-15 01:07:41.823641770,2023-09-04 18:36:00,Luke Wilson,INC0000000305,system,UK,Charlie Whitherspoon,ITIL User,2023-09-15 01:07:41.823641770,Issue with desktop workstation 3F45,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 23:47:44.874072603,2023-09-06 12:24:00,Luke Wilson,INC0000000306,admin,United States,Charlie Whitherspoon,Don Goodliffe,2023-09-13 23:47:44.874072603,Server123 has crashed,Hardware,1 - Critical
|
||||
Network,Resolved,2023-09-13 04:40:34.280556892,2023-09-07 03:40:00,Howard Johnson,INC0000000307,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-13 04:40:34.280556892,Network outage in Australia,Network,1 - Critical
|
||||
Database,Resolved,2023-09-20 04:57:50.969058643,2023-09-07 17:44:00,Luke Wilson,INC0000000308,employee,United States,Charlie Whitherspoon,ITIL User,2023-09-20 04:57:50.969058643,Unable to access client database on Oracle,Database,2 - High
|
||||
Hardware,Resolved,2023-09-13 00:09:56.020598186,2023-09-08 07:01:00,Luke Wilson,INC0000000309,system,Australia,Howard Johnson,Bud Richman,2023-09-13 00:09:56.020598186,Printer546 in Australia is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-13 01:47:32.680016461,2023-09-08 17:14:00,Howard Johnson,INC0000000310,admin,Canada,Beth Anglin,Bud Richman,2023-09-13 01:47:32.680016461,Workstation CPU Overheating,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-17 17:36:33.312203552,2023-09-11 18:57:00,Beth Anglin,INC0000000311,admin,Australia,Beth Anglin,Don Goodliffe,2023-09-17 17:36:33.312203552,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-09-22 23:55:17.560026848,2023-09-12 15:43:00,Luke Wilson,INC0000000312,system,United States,Howard Johnson,Don Goodliffe,2023-09-22 23:55:17.560026848,Database Error ID382 - System Slowdown,Database,2 - High
|
||||
Database,Closed,2023-09-18 08:09:07.717459166,2023-09-13 03:14:00,Howard Johnson,INC0000000313,system,UK,Charlie Whitherspoon,ITIL User,2023-09-18 08:09:07.717459166,Error loading Database267 in the UK office,Database,2 - High
|
||||
Hardware,Resolved,2023-09-18 19:43:08.637023310,2023-09-13 23:38:00,Luke Wilson,INC0000000314,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-09-18 19:43:08.637023310,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-28 01:25:23.074702845,2023-09-14 10:29:00,Charlie Whitherspoon,INC0000000315,admin,Canada,Luke Wilson,Bud Richman,2023-09-28 01:25:23.074702845,Server Crash on machine233,Hardware,1 - Critical
|
||||
Database,Closed,2023-09-16 11:23:21.172473709,2023-09-14 10:58:00,Fred Luddy,INC0000000316,admin,Australia,Howard Johnson,Bud Richman,2023-09-16 11:23:21.172473709,Error in Database connectivity,Database,2 - High
|
||||
Hardware,Closed,2023-09-21 01:28:06.686513687,2023-09-14 13:00:00,Luke Wilson,INC0000000317,admin,Australia,Charlie Whitherspoon,ITIL User,2023-09-21 01:28:06.686513687,Printer546 issue in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-09-15 15:54:00.000000000,2023-09-14 15:54:00,Beth Anglin,INC0000000318,employee,Australia,Luke Wilson,David Loo,2023-09-15 15:54:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-09-23 18:17:16.716938240,2023-09-15 05:28:00,Charlie Whitherspoon,INC0000000319,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-23 18:17:16.716938240,Printer546 in Australia experiencing issues,Hardware,1 - Critical
|
||||
Software,Closed,2023-09-20 20:58:46.751153395,2023-09-16 09:18:00,Fred Luddy,INC0000000320,system,Canada,Fred Luddy,David Loo,2023-09-20 20:58:46.751153395,Performance issues with Software123,Software,3 - Moderate
|
||||
Hardware,Closed,2023-09-22 13:11:16.460337579,2023-09-16 09:20:00,Fred Luddy,INC0000000321,admin,Australia,Howard Johnson,ITIL User,2023-09-22 13:11:16.460337579,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-30 16:57:13.076218110,2023-09-18 03:29:00,Charlie Whitherspoon,INC0000000322,employee,United States,Beth Anglin,Don Goodliffe,2023-09-30 16:57:13.076218110,Server failure for US node,Hardware,1 - Critical
|
||||
Network,Closed,2023-09-22 15:44:42.056556368,2023-09-19 03:45:00,Beth Anglin,INC0000000323,employee,United States,Luke Wilson,Bud Richman,2023-09-22 15:44:42.056556368,Internet connection problem in the United States,Network,2 - High
|
||||
Hardware,Closed,2023-10-05 10:37:47.028545047,2023-09-19 08:44:00,Fred Luddy,INC0000000324,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-05 10:37:47.028545047,Printer546 is having issues,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-03 08:14:22.675801438,2023-09-20 06:22:00,Luke Wilson,INC0000000325,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-03 08:14:22.675801438,The Printer546 in Australia is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-22 07:03:43.180128742,2023-09-20 20:36:00,Luke Wilson,INC0000000326,system,United States,Charlie Whitherspoon,David Loo,2023-09-22 07:03:43.180128742,Server832 failure at the data center,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-05 14:06:46.265722782,2023-09-21 05:32:00,Beth Anglin,INC0000000327,admin,United States,Charlie Whitherspoon,Don Goodliffe,2023-10-05 14:06:46.265722782,Monitor345 not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-28 10:20:40.858388369,2023-09-21 14:49:00,Howard Johnson,INC0000000328,employee,UK,Luke Wilson,Don Goodliffe,2023-09-28 10:20:40.858388369,Issue with loading up laptop model L-914,Hardware,2 - High
|
||||
Network,Closed,2023-09-22 21:14:00.000000000,2023-09-21 21:14:00,Beth Anglin,INC0000000329,system,India,Howard Johnson,Don Goodliffe,2023-09-22 21:14:00.000000000,Network connectivity issue,Network,3 - Moderate
|
||||
Hardware,Closed,2023-10-06 07:39:16.761597562,2023-09-21 23:53:00,Fred Luddy,INC0000000330,system,UK,Charlie Whitherspoon,David Loo,2023-10-06 07:39:16.761597562,Failed Hard Disk Drive on WorkstationUK786,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-05 14:59:20.783399866,2023-09-24 10:56:00,Fred Luddy,INC0000000331,system,Canada,Charlie Whitherspoon,David Loo,2023-10-05 14:59:20.783399866,Desktop PC not starting up,Hardware,2 - High
|
||||
Database,Closed,2023-10-03 08:53:36.796709606,2023-09-24 13:55:00,Howard Johnson,INC0000000332,employee,UK,Fred Luddy,David Loo,2023-10-03 08:53:36.796709606,Error detected in Database6543,Database,2 - High
|
||||
Hardware,Closed,2023-09-26 02:31:00.000000000,2023-09-25 02:31:00,Beth Anglin,INC0000000333,admin,Australia,Beth Anglin,David Loo,2023-09-26 02:31:00.000000000,Printer768 in Australia is malfunctioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-02 19:11:48.163774968,2023-09-25 19:21:00,Luke Wilson,INC0000000334,employee,Australia,Charlie Whitherspoon,David Loo,2023-10-02 19:11:48.163774968,Printer988 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-09-26 20:40:00.000000000,2023-09-25 20:40:00,Howard Johnson,INC0000000335,employee,Australia,Luke Wilson,ITIL User,2023-09-26 20:40:00.000000000,Printer001 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-28 19:04:36.066288946,2023-09-25 20:56:00,Luke Wilson,INC0000000336,admin,Australia,Howard Johnson,Don Goodliffe,2023-09-28 19:04:36.066288946,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Database,Resolved,2023-10-01 22:54:51.030860190,2023-09-26 00:01:00,Luke Wilson,INC0000000337,admin,India,Howard Johnson,David Loo,2023-10-01 22:54:51.030860190,Database Server Instance Performance Issue,Database,2 - High
|
||||
Hardware,Closed,2023-09-27 06:11:00.000000000,2023-09-26 06:11:00,Charlie Whitherspoon,INC0000000338,system,United States,Charlie Whitherspoon,David Loo,2023-09-27 06:11:00.000000000,Desktop PC524 sudden shutdown,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-02 04:18:49.766694358,2023-09-27 00:04:00,Charlie Whitherspoon,INC0000000339,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-02 04:18:49.766694358,Printer855 is not functioning properly,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-10 20:23:44.798714886,2023-09-27 23:08:00,Howard Johnson,INC0000000340,system,India,Charlie Whitherspoon,Don Goodliffe,2023-10-10 20:23:44.798714886,Inquiry about software installation,Service Desk,2 - High
|
||||
Network,Closed,2023-10-02 20:53:30.682718416,2023-09-28 01:57:00,Charlie Whitherspoon,INC0000000341,admin,India,Luke Wilson,Don Goodliffe,2023-10-02 20:53:30.682718416,Network connectivity issue in India,Network,2 - High
|
||||
Hardware,Resolved,2023-10-12 20:28:38.706928972,2023-09-28 13:16:00,Beth Anglin,INC0000000342,system,UK,Luke Wilson,David Loo,2023-10-12 20:28:38.706928972,Hard drive failure on Desktop577,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-30 03:37:15.453671612,2023-09-29 02:59:00,Fred Luddy,INC0000000343,admin,Australia,Luke Wilson,Don Goodliffe,2023-09-30 03:37:15.453671612,Printer issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-08 04:30:10.854895991,2023-09-30 07:14:00,Howard Johnson,INC0000000344,employee,Australia,Beth Anglin,ITIL User,2023-10-08 04:30:10.854895991,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-01 17:15:12.850603255,2023-09-30 14:37:00,Luke Wilson,INC0000000345,admin,Australia,Fred Luddy,David Loo,2023-10-01 17:15:12.850603255,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-10-10 07:28:02.225169681,2023-10-01 18:20:00,Luke Wilson,INC0000000346,system,India,Beth Anglin,ITIL User,2023-10-10 07:28:02.225169681,Inquiry on Software Installation Guide,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-11 11:31:18.203048562,2023-10-01 20:05:00,Luke Wilson,INC0000000347,admin,Australia,Charlie Whitherspoon,ITIL User,2023-10-11 11:31:18.203048562,Printer324 in Australia is not functioning properly,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-10-03 01:05:00.000000000,2023-10-02 01:05:00,Howard Johnson,INC0000000348,admin,Australia,Beth Anglin,David Loo,2023-10-03 01:05:00.000000000,Issue with Printer874 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-16 11:37:53.443608066,2023-10-02 20:23:00,Luke Wilson,INC0000000349,employee,United States,Luke Wilson,Don Goodliffe,2023-10-16 11:37:53.443608066,Hard drive failure on workstation,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-08 05:16:54.012585598,2023-10-03 07:12:00,Fred Luddy,INC0000000350,employee,Australia,Howard Johnson,Bud Richman,2023-10-08 05:16:54.012585598,Printer546 has a paper jam,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-10-07 15:02:09.446606967,2023-10-03 08:47:00,Beth Anglin,INC0000000351,admin,Australia,Fred Luddy,Bud Richman,2023-10-07 15:02:09.446606967,Printer error with Printer7 (Australia),Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-10 07:54:06.270667738,2023-10-03 11:29:00,Beth Anglin,INC0000000352,admin,Australia,Charlie Whitherspoon,David Loo,2023-10-10 07:54:06.270667738,Printer436 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-07 04:57:07.243553547,2023-10-03 14:29:00,Howard Johnson,INC0000000353,system,Australia,Howard Johnson,David Loo,2023-10-07 04:57:07.243553547,Printer899 is not functioning properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-11 14:36:28.517445744,2023-10-04 21:50:00,Howard Johnson,INC0000000354,admin,Australia,Fred Luddy,ITIL User,2023-10-11 14:36:28.517445744,Printer damage issue with Printer7,Hardware,2 - High
|
||||
Database,Closed,2023-10-08 21:29:55.684306333,2023-10-05 06:17:00,Beth Anglin,INC0000000355,employee,UK,Luke Wilson,ITIL User,2023-10-08 21:29:55.684306333,Unable to establish connection to Database354,Database,2 - High
|
||||
Database,Resolved,2023-10-11 12:19:52.993926660,2023-10-05 12:36:00,Luke Wilson,INC0000000356,employee,India,Charlie Whitherspoon,Bud Richman,2023-10-11 12:19:52.993926660,Unable to connect to Database Server DB204,Database,1 - Critical
|
||||
Hardware,Closed,2023-10-09 10:00:05.170032833,2023-10-06 14:02:00,Beth Anglin,INC0000000357,admin,UK,Fred Luddy,David Loo,2023-10-09 10:00:05.170032833,Mouse malfunction in UK,Hardware,3 - Moderate
|
||||
Software,Resolved,2023-10-10 08:31:35.983826188,2023-10-07 19:05:00,Luke Wilson,INC0000000358,employee,UK,Howard Johnson,Bud Richman,2023-10-10 08:31:35.983826188,Software crash on workstation UK567,Software,2 - High
|
||||
Software,Resolved,2023-10-09 09:10:00.000000000,2023-10-08 09:10:00,Fred Luddy,INC0000000359,employee,Canada,Charlie Whitherspoon,ITIL User,2023-10-09 09:10:00.000000000,Cannot install the latest software update,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-18 20:50:35.137819655,2023-10-08 10:24:00,Beth Anglin,INC0000000360,admin,Canada,Fred Luddy,Bud Richman,2023-10-18 20:50:35.137819655,Unable to update the database in Accounting Software,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-24 10:20:11.744461099,2023-10-09 03:23:00,Beth Anglin,INC0000000361,system,Australia,Howard Johnson,Don Goodliffe,2023-10-24 10:20:11.744461099,An issue with Software56 in Australia,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-16 08:15:55.096916626,2023-10-09 19:05:00,Charlie Whitherspoon,INC0000000362,employee,India,Fred Luddy,David Loo,2023-10-16 08:15:55.096916626,Software update failed on station456,Software,2 - High
|
||||
Hardware,Closed,2023-10-18 13:41:25.546404143,2023-10-10 09:43:00,Luke Wilson,INC0000000363,system,India,Fred Luddy,Bud Richman,2023-10-18 13:41:25.546404143,Monitor123 is not displaying correctly,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-14 07:51:41.450443462,2023-10-11 11:15:00,Beth Anglin,INC0000000364,admin,UK,Beth Anglin,Bud Richman,2023-10-14 07:51:41.450443462,Keyboard malfunction for desktop system D255X,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-16 08:25:44.792483730,2023-10-11 14:14:00,Luke Wilson,INC0000000365,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-16 08:25:44.792483730,The printer Printer546 in Australia has a paper jam,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-12 19:50:00.000000000,2023-10-11 19:50:00,Charlie Whitherspoon,INC0000000366,admin,Canada,Luke Wilson,Don Goodliffe,2023-10-12 19:50:00.000000000,Unresolved inquiry regarding software assistance,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-14 14:32:43.560111853,2023-10-12 01:24:00,Charlie Whitherspoon,INC0000000367,admin,United States,Luke Wilson,Don Goodliffe,2023-10-14 14:32:43.560111853,Mouse not functioning,Hardware,2 - High
|
||||
Software,Closed,2023-10-14 10:07:06.909703281,2023-10-12 03:06:00,Charlie Whitherspoon,INC0000000368,system,UK,Fred Luddy,David Loo,2023-10-14 10:07:06.909703281,Software update failed on workstation,Software,2 - High
|
||||
Hardware,Closed,2023-10-16 04:30:10.679168966,2023-10-12 20:39:00,Charlie Whitherspoon,INC0000000369,admin,India,Luke Wilson,Bud Richman,2023-10-16 04:30:10.679168966,Critical server issue with hardware,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-27 12:35:42.247430186,2023-10-13 09:01:00,Luke Wilson,INC0000000370,system,Australia,Luke Wilson,ITIL User,2023-10-27 12:35:42.247430186,Printer error on Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-18 21:50:20.165772966,2023-10-14 19:37:00,Fred Luddy,INC0000000371,admin,Australia,Fred Luddy,Bud Richman,2023-10-18 21:50:20.165772966,Printer error on Printer546,Hardware,2 - High
|
||||
Software,Resolved,2023-10-28 17:01:26.639036991,2023-10-15 00:02:00,Charlie Whitherspoon,INC0000000372,admin,Canada,Howard Johnson,Bud Richman,2023-10-28 17:01:26.639036991,Application XYZ failed to update,Software,2 - High
|
||||
Hardware,Resolved,2023-10-21 05:30:42.585855096,2023-10-15 00:53:00,Howard Johnson,INC0000000373,admin,Australia,Beth Anglin,Bud Richman,2023-10-21 05:30:42.585855096,Printer549 is not working in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-20 04:35:01.141400836,2023-10-15 17:23:00,Luke Wilson,INC0000000374,employee,United States,Howard Johnson,Bud Richman,2023-10-20 04:35:01.141400836,US Server failure,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-19 02:19:42.091067289,2023-10-16 14:21:00,Charlie Whitherspoon,INC0000000375,admin,Australia,Beth Anglin,ITIL User,2023-10-19 02:19:42.091067289,Printer795 malfunctioning in Sydney office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-21 17:05:49.162145411,2023-10-16 16:55:00,Beth Anglin,INC0000000376,admin,Australia,Beth Anglin,Bud Richman,2023-10-21 17:05:49.162145411,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-18 00:52:00.000000000,2023-10-17 00:52:00,Charlie Whitherspoon,INC0000000377,employee,Australia,Beth Anglin,ITIL User,2023-10-18 00:52:00.000000000,Printer failure - Printer546,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-25 19:50:20.337280678,2023-10-20 02:34:00,Luke Wilson,INC0000000378,admin,India,Luke Wilson,Don Goodliffe,2023-10-25 19:50:20.337280678,Unable to access application from my end,Service Desk,2 - High
|
||||
Software,Closed,2023-10-29 06:16:49.729720000,2023-10-21 03:48:00,Beth Anglin,INC0000000379,admin,India,Luke Wilson,David Loo,2023-10-29 06:16:49.729720000,Adobe Photoshop application is not responding,Software,2 - High
|
||||
Network,Closed,2023-10-30 03:46:43.553522312,2023-10-22 17:17:00,Charlie Whitherspoon,INC0000000380,system,Canada,Beth Anglin,ITIL User,2023-10-30 03:46:43.553522312,Unable to connect to network,Network,2 - High
|
||||
Database,Closed,2023-10-27 01:49:16.402277796,2023-10-23 01:08:00,Fred Luddy,INC0000000381,system,UK,Charlie Whitherspoon,Bud Richman,2023-10-27 01:49:16.402277796,Unable to connect to Database from UK location,Database,1 - Critical
|
||||
Software,Closed,2023-10-30 13:55:51.015143360,2023-10-23 14:06:00,Beth Anglin,INC0000000382,admin,India,Luke Wilson,Don Goodliffe,2023-10-30 13:55:51.015143360,Error while installing new software,Software,3 - Moderate
|
||||
Database,Resolved,2023-10-31 00:43:50.133149704,2023-10-24 02:28:00,Beth Anglin,INC0000000383,employee,United States,Beth Anglin,David Loo,2023-10-31 00:43:50.133149704,Error in SQL server update,Database,2 - High
|
||||
Hardware,Closed,2023-11-06 00:05:08.518186417,2023-10-24 20:18:00,Beth Anglin,INC0000000384,employee,Australia,Howard Johnson,ITIL User,2023-11-06 00:05:08.518186417,Printer 546 is not functioning properly in Australia,Hardware,1 - Critical
|
||||
Network,Closed,2023-11-02 19:10:09.135343415,2023-10-25 03:39:00,Luke Wilson,INC0000000385,admin,UK,Howard Johnson,ITIL User,2023-11-02 19:10:09.135343415,Cannot connect to UK server,Network,2 - High
|
||||
Hardware,Closed,2023-10-31 10:15:16.995034613,2023-10-25 05:06:00,Charlie Whitherspoon,INC0000000386,admin,Australia,Beth Anglin,Don Goodliffe,2023-10-31 10:15:16.995034613,Printer473 is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-09 09:27:41.299495824,2023-10-26 10:39:00,Howard Johnson,INC0000000387,admin,Australia,Howard Johnson,David Loo,2023-11-09 09:27:41.299495824,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-02 21:31:23.289304071,2023-10-26 19:39:00,Beth Anglin,INC0000000388,admin,Australia,Howard Johnson,ITIL User,2023-11-02 21:31:23.289304071,Printer356 in Australia is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-09 01:36:23.094504250,2023-10-26 20:51:00,Beth Anglin,INC0000000389,admin,Australia,Fred Luddy,Bud Richman,2023-11-09 01:36:23.094504250,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-04 10:27:01.152081419,2023-10-27 23:13:00,Charlie Whitherspoon,INC0000000390,employee,Australia,Beth Anglin,David Loo,2023-11-04 10:27:01.152081419,Printer546 is not working properly,Hardware,2 - High
|
||||
Network,Resolved,2023-11-07 22:41:41.858766805,2023-10-28 04:24:00,Fred Luddy,INC0000000391,system,United States,Howard Johnson,David Loo,2023-11-07 22:41:41.858766805,Network outage in server room,Network,2 - High
|
||||
Hardware,Resolved,2023-11-04 00:17:56.334785377,2023-10-29 03:27:00,Howard Johnson,INC0000000392,employee,Australia,Howard Johnson,David Loo,2023-11-04 00:17:56.334785377,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-14 14:50:37.041296707,2023-10-29 03:41:00,Howard Johnson,INC0000000393,employee,Canada,Howard Johnson,Bud Richman,2023-11-14 14:50:37.041296707,PC453 failure,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-11-11 05:32:19.072152631,2023-10-29 14:02:00,Beth Anglin,INC0000000394,employee,Australia,Luke Wilson,ITIL User,2023-11-11 05:32:19.072152631,Printer546 is not working properly in Australia,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-11-01 13:29:20.811811166,2023-10-29 17:52:00,Beth Anglin,INC0000000395,employee,UK,Beth Anglin,David Loo,2023-11-01 13:29:20.811811166,Need help with navigating the software,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-30 18:57:00.000000000,2023-10-29 18:57:00,Howard Johnson,INC0000000396,employee,United States,Fred Luddy,ITIL User,2023-10-30 18:57:00.000000000,The Desktop PC7302 doesn't power on,Hardware,1 - Critical
|
||||
Database,Resolved,2023-11-12 08:10:38.248010764,2023-10-31 23:16:00,Luke Wilson,INC0000000397,system,United States,Beth Anglin,Don Goodliffe,2023-11-12 08:10:38.248010764,SQL Error on Server DB4,Database,2 - High
|
||||
Hardware,Resolved,2023-11-03 11:52:00.000000000,2023-11-02 11:52:00,Howard Johnson,INC0000000398,employee,Australia,Beth Anglin,David Loo,2023-11-03 11:52:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-11-22 14:54:17.505991208,2023-11-02 12:42:00,Luke Wilson,INC0000000399,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-11-22 14:54:17.505991208,Need assistance with account settings,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-11-19 08:35:26.721892000,2023-11-03 09:56:00,Fred Luddy,INC0000000400,system,Australia,Beth Anglin,ITIL User,2023-11-19 08:35:26.721892000,Printer542 in Australia is malfunctioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-07 04:08:46.640926620,2023-11-03 13:49:00,Charlie Whitherspoon,INC0000000401,system,Australia,Fred Luddy,Don Goodliffe,2023-11-07 04:08:46.640926620,Printer issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-11-06 18:24:09.637921817,2023-11-04 10:59:00,Charlie Whitherspoon,INC0000000402,employee,Australia,Beth Anglin,Don Goodliffe,2023-11-06 18:24:09.637921817,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-20 14:15:29.239228781,2023-11-05 06:44:00,Charlie Whitherspoon,INC0000000403,employee,India,Howard Johnson,ITIL User,2023-11-20 14:15:29.239228781,Server crash in Bangalore,Hardware,1 - Critical
|
||||
Database,Resolved,2023-11-15 23:12:53.763111504,2023-11-05 11:29:00,Charlie Whitherspoon,INC0000000404,employee,Australia,Howard Johnson,Don Goodliffe,2023-11-15 23:12:53.763111504,Unexpected shutdown of Database439 in Australia,Database,2 - High
|
||||
Hardware,Closed,2023-11-08 06:15:25.825398065,2023-11-05 19:34:00,Charlie Whitherspoon,INC0000000405,employee,Australia,Fred Luddy,Bud Richman,2023-11-08 06:15:25.825398065,Printer167 has a paper jam,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-11-12 08:41:55.212270110,2023-11-06 04:39:00,Charlie Whitherspoon,INC0000000406,employee,Australia,Beth Anglin,ITIL User,2023-11-12 08:41:55.212270110,Printer546 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-11-07 11:30:00.000000000,2023-11-06 11:30:00,Fred Luddy,INC0000000407,admin,UK,Howard Johnson,ITIL User,2023-11-07 11:30:00.000000000,Need help with software installation,Service Desk,3 - Moderate
|
||||
Database,Closed,2023-11-11 22:19:34.292012026,2023-11-07 02:57:00,Beth Anglin,INC0000000408,admin,Canada,Beth Anglin,Bud Richman,2023-11-11 22:19:34.292012026,Database error on DB546 server,Database,2 - High
|
||||
Software,Resolved,2023-11-13 13:05:35.772593402,2023-11-07 19:50:00,Beth Anglin,INC0000000409,employee,UK,Charlie Whitherspoon,Bud Richman,2023-11-13 13:05:35.772593402,Software crash on startup,Software,2 - High
|
||||
Hardware,Closed,2023-11-18 17:10:46.429479768,2023-11-08 05:51:00,Howard Johnson,INC0000000410,employee,UK,Charlie Whitherspoon,ITIL User,2023-11-18 17:10:46.429479768,Faulty keyboard on desktop model XJ56,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-24 06:22:46.772217434,2023-11-08 19:58:00,Beth Anglin,INC0000000411,employee,United States,Luke Wilson,Don Goodliffe,2023-11-24 06:22:46.772217434,Faulty motherboard on desktop PC,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-14 12:04:58.180425139,2023-11-09 00:45:00,Howard Johnson,INC0000000412,employee,Australia,Howard Johnson,ITIL User,2023-11-14 12:04:58.180425139,Printer320 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-19 06:43:16.486790150,2023-11-09 12:54:00,Fred Luddy,INC0000000413,system,Australia,Charlie Whitherspoon,Bud Richman,2023-11-19 06:43:16.486790150,Printer456 in Australia is not printing,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-20 13:58:24.005162219,2023-11-10 16:18:00,Fred Luddy,INC0000000414,employee,Australia,Fred Luddy,Bud Richman,2023-11-20 13:58:24.005162219,Printer789 is not functioning properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-25 13:45:38.979607981,2023-11-11 21:57:00,Charlie Whitherspoon,INC0000000415,admin,India,Howard Johnson,Don Goodliffe,2023-11-25 13:45:38.979607981,Problem with desktop system - overloaded memory,Hardware,2 - High
|
||||
Database,Closed,2023-11-23 08:35:34.467772083,2023-11-12 04:33:00,Charlie Whitherspoon,INC0000000416,admin,United States,Howard Johnson,Bud Richman,2023-11-23 08:35:34.467772083,Database error in production environment,Database,2 - High
|
||||
Database,Resolved,2023-11-15 18:59:00.000000000,2023-11-14 18:59:00,Charlie Whitherspoon,INC0000000417,system,India,Beth Anglin,David Loo,2023-11-15 18:59:00.000000000,Oracle Database error reported,Database,2 - High
|
||||
Hardware,Resolved,2023-11-27 06:06:19.635851412,2023-11-14 19:32:00,Fred Luddy,INC0000000418,employee,UK,Beth Anglin,Bud Richman,2023-11-27 06:06:19.635851412,Replacing faulty components in the system,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-23 15:56:17.027339265,2023-11-15 07:35:00,Charlie Whitherspoon,INC0000000419,employee,Australia,Beth Anglin,ITIL User,2023-11-23 15:56:17.027339265,Printer546 is not functioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-28 08:39:37.872085078,2023-11-15 19:05:00,Howard Johnson,INC0000000420,employee,Australia,Howard Johnson,Bud Richman,2023-11-28 08:39:37.872085078,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-21 01:30:21.296528133,2023-11-17 07:33:00,Charlie Whitherspoon,INC0000000421,system,United States,Charlie Whitherspoon,Don Goodliffe,2023-11-21 01:30:21.296528133,Hard drive failure on desktop PRCS4526,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-23 05:26:06.568026419,2023-11-17 11:41:00,Luke Wilson,INC0000000422,system,UK,Beth Anglin,Bud Richman,2023-11-23 05:26:06.568026419,Failure in Screen Resolution - System ID: 7843,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-19 13:31:44.558204717,2023-11-18 02:05:00,Howard Johnson,INC0000000423,admin,Canada,Luke Wilson,ITIL User,2023-11-19 13:31:44.558204717,Failure reported at desktop232,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-11-25 18:11:25.410173561,2023-11-19 02:52:00,Luke Wilson,INC0000000424,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-11-25 18:11:25.410173561,Printer123 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-24 19:39:37.248766516,2023-11-19 11:06:00,Charlie Whitherspoon,INC0000000425,admin,Australia,Beth Anglin,Don Goodliffe,2023-11-24 19:39:37.248766516,Printer463 is not working,Hardware,2 - High
|
||||
Software,Resolved,2023-11-27 12:48:59.344411018,2023-11-21 04:00:00,Luke Wilson,INC0000000426,admin,UK,Charlie Whitherspoon,Bud Richman,2023-11-27 12:48:59.344411018,"Software malfunctioning, system crash",Software,3 - Moderate
|
||||
Hardware,Resolved,2023-11-29 21:52:24.416389196,2023-11-22 08:43:00,Beth Anglin,INC0000000427,admin,Australia,Luke Wilson,ITIL User,2023-11-29 21:52:24.416389196,Printer786 is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-29 19:40:37.040547419,2023-11-23 08:47:00,Luke Wilson,INC0000000428,admin,Australia,Howard Johnson,ITIL User,2023-11-29 19:40:37.040547419,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-12-01 23:08:08.172813661,2023-11-23 15:24:00,Beth Anglin,INC0000000429,employee,Australia,Luke Wilson,David Loo,2023-12-01 23:08:08.172813661,Facing issues with MySQL database connectivity,Database,2 - High
|
||||
Hardware,Resolved,2023-12-09 22:53:40.047263709,2023-11-24 19:27:00,Luke Wilson,INC0000000430,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-12-09 22:53:40.047263709,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-12-06 22:33:01.700205220,2023-11-27 20:26:00,Beth Anglin,INC0000000431,employee,Australia,Fred Luddy,David Loo,2023-12-06 22:33:01.700205220,Printer 546 is malfunctioning,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-12-13 03:48:19.521259680,2023-11-28 06:30:00,Fred Luddy,INC0000000432,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-12-13 03:48:19.521259680,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-06 06:18:20.231641812,2023-11-29 01:39:00,Luke Wilson,INC0000000433,employee,Australia,Beth Anglin,Bud Richman,2023-12-06 06:18:20.231641812,Printer422 is continuously jamming,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-05 17:32:49.113615094,2023-11-29 07:33:00,Beth Anglin,INC0000000434,system,Australia,Charlie Whitherspoon,Bud Richman,2023-12-05 17:32:49.113615094,Printer546 malfunction in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-12-01 04:31:00.000000000,2023-11-30 04:31:00,Charlie Whitherspoon,INC0000000435,system,Australia,Fred Luddy,Bud Richman,2023-12-01 04:31:00.000000000,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Network,Resolved,2023-12-05 02:10:03.357753705,2023-12-01 04:34:00,Charlie Whitherspoon,INC0000000436,system,Canada,Luke Wilson,Bud Richman,2023-12-05 02:10:03.357753705,Router not working properly,Network,2 - High
|
||||
Network,Closed,2023-12-10 05:44:39.457781801,2023-12-02 09:51:00,Howard Johnson,INC0000000437,system,United States,Charlie Whitherspoon,Bud Richman,2023-12-10 05:44:39.457781801,Can't connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-12-09 17:15:01.861232926,2023-12-03 07:21:00,Howard Johnson,INC0000000438,admin,Australia,Luke Wilson,David Loo,2023-12-09 17:15:01.861232926,Printer issue with Printer546,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-07 19:08:00.907490315,2023-12-04 13:22:00,Charlie Whitherspoon,INC0000000439,admin,Australia,Beth Anglin,David Loo,2023-12-07 19:08:00.907490315,Printer547 has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-06 21:57:38.764148014,2023-12-04 20:14:00,Luke Wilson,INC0000000440,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-12-06 21:57:38.764148014,Printer678 not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-15 17:24:42.185263024,2023-12-04 20:19:00,Fred Luddy,INC0000000441,employee,Australia,Charlie Whitherspoon,David Loo,2023-12-15 17:24:42.185263024,Printer542 is not printing,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-09 12:22:44.658032345,2023-12-05 11:43:00,Charlie Whitherspoon,INC0000000442,system,Australia,Beth Anglin,Don Goodliffe,2023-12-09 12:22:44.658032345,Printer546 is not working,Hardware,1 - Critical
|
||||
Network,Resolved,2023-12-14 06:24:13.933877695,2023-12-05 15:02:00,Fred Luddy,INC0000000443,admin,UK,Beth Anglin,ITIL User,2023-12-14 06:24:13.933877695,Unable to connect to VPN Server,Network,2 - High
|
||||
Inquiry / Help,Resolved,2023-12-07 16:11:16.045197690,2023-12-06 00:31:00,Fred Luddy,INC0000000444,system,United States,Howard Johnson,ITIL User,2023-12-07 16:11:16.045197690,Need assistance with Service Desk application,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-12-17 00:37:06.937192986,2023-12-07 00:44:00,Howard Johnson,INC0000000445,employee,Australia,Howard Johnson,Bud Richman,2023-12-17 00:37:06.937192986,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-12-19 02:53:45.256687900,2023-12-08 00:32:00,Howard Johnson,INC0000000446,system,Australia,Howard Johnson,ITIL User,2023-12-19 02:53:45.256687900,Printer error on Printer546,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-15 13:12:56.653826436,2023-12-09 03:58:00,Luke Wilson,INC0000000447,system,Australia,Charlie Whitherspoon,Bud Richman,2023-12-15 13:12:56.653826436,Printer546 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-12-11 12:52:00.000000000,2023-12-10 12:52:00,Howard Johnson,INC0000000448,employee,United States,Howard Johnson,David Loo,2023-12-11 12:52:00.000000000,Server HW897 malfunction,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-14 20:37:19.388113353,2023-12-11 17:57:00,Charlie Whitherspoon,INC0000000449,employee,Canada,Luke Wilson,Bud Richman,2023-12-14 20:37:19.388113353,Issue with workstation PC554 in Canada,Hardware,3 - Moderate
|
||||
Database,Closed,2023-12-12 19:10:00.000000000,2023-12-11 19:10:00,Beth Anglin,INC0000000450,system,UK,Luke Wilson,Bud Richman,2023-12-12 19:10:00.000000000,UK Database server 307 outage,Database,1 - Critical
|
||||
Software,Resolved,2023-12-14 13:02:12.152455924,2023-12-12 08:51:00,Howard Johnson,INC0000000451,system,UK,Beth Anglin,ITIL User,2023-12-14 13:02:12.152455924,Unable to install updates,Software,2 - High
|
||||
Hardware,Resolved,2023-12-17 23:44:55.013288975,2023-12-12 15:28:00,Beth Anglin,INC0000000452,employee,Australia,Fred Luddy,ITIL User,2023-12-17 23:44:55.013288975,Printer error with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-15 03:54:00.000000000,2023-12-14 03:54:00,Beth Anglin,INC0000000453,admin,Australia,Fred Luddy,David Loo,2023-12-15 03:54:00.000000000,Printer356 is not functioning properly,Hardware,1 - Critical
|
||||
Network,Closed,2023-12-22 14:45:04.366600219,2023-12-17 08:06:00,Fred Luddy,INC0000000454,system,India,Howard Johnson,Bud Richman,2023-12-22 14:45:04.366600219,Network connectivity issue in India,Network,2 - High
|
||||
Database,Closed,2024-01-04 00:08:18.653166818,2023-12-18 04:38:00,Fred Luddy,INC0000000455,system,Australia,Fred Luddy,Bud Richman,2024-01-04 00:08:18.653166818,Database error in patient records system,Database,2 - High
|
||||
Hardware,Closed,2023-12-26 08:26:25.509637696,2023-12-18 11:13:00,Luke Wilson,INC0000000456,system,Australia,Howard Johnson,ITIL User,2023-12-26 08:26:25.509637696,Printer546 is not working properly in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-28 23:19:22.500984917,2023-12-19 05:43:00,Howard Johnson,INC0000000457,admin,Australia,Charlie Whitherspoon,David Loo,2023-12-28 23:19:22.500984917,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-01 04:47:56.741681309,2023-12-19 07:32:00,Luke Wilson,INC0000000458,admin,Australia,Luke Wilson,David Loo,2024-01-01 04:47:56.741681309,Issue with Printer487 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-27 23:15:06.590296403,2023-12-23 18:43:00,Luke Wilson,INC0000000459,admin,Canada,Beth Anglin,ITIL User,2023-12-27 23:15:06.590296403,Laptop not functioning properly in Canada,Hardware,3 - Moderate
|
||||
Database,Resolved,2024-01-03 16:58:25.664592126,2023-12-26 00:19:00,Luke Wilson,INC0000000460,admin,India,Howard Johnson,ITIL User,2024-01-03 16:58:25.664592126,SQL server issue detected,Database,2 - High
|
||||
Network,Resolved,2024-01-09 12:37:13.292569926,2023-12-26 00:25:00,Beth Anglin,INC0000000461,employee,UK,Howard Johnson,David Loo,2024-01-09 12:37:13.292569926,UK Network server is down,Network,1 - Critical
|
||||
Hardware,Closed,2024-01-04 10:16:12.278901784,2023-12-26 16:08:00,Fred Luddy,INC0000000462,employee,Australia,Fred Luddy,David Loo,2024-01-04 10:16:12.278901784,Printer malfunction for Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2024-01-06 13:12:25.109624389,2023-12-28 06:15:00,Fred Luddy,INC0000000463,system,United States,Luke Wilson,Don Goodliffe,2024-01-06 13:12:25.109624389,Server789 crashed unexpectedly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-03 16:45:19.710278908,2023-12-28 22:22:00,Fred Luddy,INC0000000464,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-03 16:45:19.710278908,Printer957 is malfunctioning in Australia.,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-06 22:55:13.977268119,2023-12-31 00:23:00,Luke Wilson,INC0000000465,employee,India,Fred Luddy,Don Goodliffe,2024-01-06 22:55:13.977268119,Desktop123 does not start,Hardware,2 - High
|
||||
Network,Resolved,2024-01-08 21:09:04.022142416,2024-01-02 05:33:00,Charlie Whitherspoon,INC0000000466,admin,Canada,Luke Wilson,David Loo,2024-01-08 21:09:04.022142416,Network connectivity issue,Network,3 - Moderate
|
||||
Hardware,Resolved,2024-01-08 09:17:43.178873486,2024-01-02 23:29:00,Howard Johnson,INC0000000467,employee,Australia,Fred Luddy,Bud Richman,2024-01-08 09:17:43.178873486,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2024-01-16 19:13:13.303553162,2024-01-04 15:03:00,Howard Johnson,INC0000000468,admin,United States,Beth Anglin,Don Goodliffe,2024-01-16 19:13:13.303553162,Computer station 420 is not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-10 15:38:48.582320090,2024-01-05 03:27:00,Beth Anglin,INC0000000469,admin,India,Fred Luddy,Don Goodliffe,2024-01-10 15:38:48.582320090,Failed motherboard on HP PC,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-07 03:03:46.511421975,2024-01-05 10:47:00,Beth Anglin,INC0000000470,admin,Australia,Howard Johnson,Bud Richman,2024-01-07 03:03:46.511421975,Printer787 in Australia location is not working,Hardware,2 - High
|
||||
Network,Closed,2024-01-14 00:18:47.213476730,2024-01-05 16:43:00,Howard Johnson,INC0000000471,employee,India,Luke Wilson,Bud Richman,2024-01-14 00:18:47.213476730,Slow network connection in Office 5,Network,3 - Moderate
|
||||
Hardware,Closed,2024-01-20 12:12:40.568716377,2024-01-07 21:25:00,Charlie Whitherspoon,INC0000000472,employee,Canada,Charlie Whitherspoon,David Loo,2024-01-20 12:12:40.568716377,Desktop PC not starting up,Hardware,3 - Moderate
|
||||
Hardware,Closed,2024-01-13 07:11:07.585466982,2024-01-09 07:10:00,Luke Wilson,INC0000000473,system,UK,Charlie Whitherspoon,Bud Richman,2024-01-13 07:11:07.585466982,The laptop hard drive is failing,Hardware,2 - High
|
||||
Software,Closed,2024-01-19 07:24:42.210493722,2024-01-10 15:21:00,Beth Anglin,INC0000000474,system,Australia,Howard Johnson,Bud Richman,2024-01-19 07:24:42.210493722,Application error in windows 10,Software,2 - High
|
||||
Hardware,Closed,2024-01-14 19:07:03.245823840,2024-01-11 05:07:00,Luke Wilson,INC0000000475,employee,Canada,Charlie Whitherspoon,David Loo,2024-01-14 19:07:03.245823840,Issue with motherboard on desktop PC,Hardware,2 - High
|
||||
Hardware,Closed,2024-01-21 14:31:46.018925216,2024-01-13 06:18:00,Charlie Whitherspoon,INC0000000476,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-21 14:31:46.018925216,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-19 04:34:40.251168087,2024-01-15 02:05:00,Fred Luddy,INC0000000477,system,Australia,Howard Johnson,Bud Richman,2024-01-19 04:34:40.251168087,Printer546 is malfunctioning in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-21 17:52:21.410495977,2024-01-15 14:42:00,Luke Wilson,INC0000000478,admin,Australia,Beth Anglin,ITIL User,2024-01-21 17:52:21.410495977,Printer128 is not working properly in Australia,Hardware,3 - Moderate
|
||||
Software,Resolved,2024-01-23 07:05:32.181816124,2024-01-15 16:26:00,Beth Anglin,INC0000000479,system,United States,Beth Anglin,Don Goodliffe,2024-01-23 07:05:32.181816124,Unable to install an update on Office365,Software,2 - High
|
||||
Database,Resolved,2024-01-26 14:08:14.089327678,2024-01-16 10:00:00,Howard Johnson,INC0000000480,employee,Australia,Beth Anglin,Bud Richman,2024-01-26 14:08:14.089327678,Oracle Database 11g - Error Ora-02000,Database,2 - High
|
||||
Software,Closed,2024-01-19 09:54:00.000000000,2024-01-18 09:54:00,Howard Johnson,INC0000000481,admin,United States,Fred Luddy,David Loo,2024-01-19 09:54:00.000000000,Software update required,Software,2 - High
|
||||
Database,Resolved,2024-01-24 20:11:01.690566157,2024-01-19 21:43:00,Howard Johnson,INC0000000482,system,Australia,Beth Anglin,David Loo,2024-01-24 20:11:01.690566157,Issue with Database543,Database,3 - Moderate
|
||||
Hardware,Resolved,2024-01-21 13:40:00.000000000,2024-01-20 13:40:00,Luke Wilson,INC0000000483,system,Australia,Luke Wilson,Don Goodliffe,2024-01-21 13:40:00.000000000,Printer542 is jammed in Australia location,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-22 06:01:00.000000000,2024-01-21 06:01:00,Luke Wilson,INC0000000484,system,Australia,Beth Anglin,ITIL User,2024-01-22 06:01:00.000000000,Printer546 is not working properly in Australia location,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-02-01 06:07:10.554650244,2024-01-21 09:04:00,Howard Johnson,INC0000000485,system,Australia,Luke Wilson,Don Goodliffe,2024-02-01 06:07:10.554650244,Printer546 is not working properly,Hardware,3 - Moderate
|
||||
Software,Closed,2024-01-27 16:50:43.924769422,2024-01-21 19:11:00,Luke Wilson,INC0000000486,employee,Australia,Beth Anglin,David Loo,2024-01-27 16:50:43.924769422,Application update failure,Software,2 - High
|
||||
Hardware,Closed,2024-01-24 00:12:58.375121721,2024-01-22 14:06:00,Fred Luddy,INC0000000487,employee,Australia,Luke Wilson,Don Goodliffe,2024-01-24 00:12:58.375121721,Printer436 is broken,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-29 03:16:08.014433635,2024-01-23 03:20:00,Beth Anglin,INC0000000488,system,Australia,Howard Johnson,Bud Richman,2024-01-29 03:16:08.014433635,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-25 11:01:00.578026325,2024-01-24 06:55:00,Charlie Whitherspoon,INC0000000489,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-25 11:01:00.578026325,Printer627 is not responding,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2024-02-09 04:30:29.586553971,2024-01-24 16:35:00,Luke Wilson,INC0000000490,admin,India,Luke Wilson,David Loo,2024-02-09 04:30:29.586553971,Need help with inquiry,Service Desk,3 - Moderate
|
||||
Software,Closed,2024-02-01 02:14:30.096751951,2024-01-25 11:19:00,Beth Anglin,INC0000000491,system,UK,Howard Johnson,Don Goodliffe,2024-02-01 02:14:30.096751951,Application error on Accounting software,Software,2 - High
|
||||
Inquiry / Help,Resolved,2024-01-31 02:23:56.445975993,2024-01-25 18:57:00,Beth Anglin,INC0000000492,admin,Australia,Charlie Whitherspoon,David Loo,2024-01-31 02:23:56.445975993,Printer546 issue in Sydney office.,Hardware,2 - High
|
||||
Network,Closed,2024-02-01 12:40:26.195788814,2024-01-26 08:59:00,Fred Luddy,INC0000000493,admin,UK,Charlie Whitherspoon,ITIL User,2024-02-01 12:40:26.195788814,Unable to connect to the Wi-Fi,Network,2 - High
|
||||
Hardware,Resolved,2024-02-08 06:58:35.863529275,2024-01-27 11:50:00,Luke Wilson,INC0000000494,system,Australia,Howard Johnson,Bud Richman,2024-02-08 06:58:35.863529275,Printer489 is not functioning properly,Hardware,2 - High
|
||||
Network,Closed,2024-02-07 21:56:58.515415708,2024-01-28 15:54:00,Beth Anglin,INC0000000495,employee,India,Fred Luddy,David Loo,2024-02-07 21:56:58.515415708,Unable to connect to the internet,Network,2 - High
|
||||
Hardware,Resolved,2024-02-03 17:41:53.299049427,2024-01-29 10:48:00,Luke Wilson,INC0000000496,admin,Australia,Beth Anglin,David Loo,2024-02-03 17:41:53.299049427,Printer546 has a paper jam,Hardware,2 - High
|
||||
Network,Resolved,2024-02-12 22:31:48.126196708,2024-01-31 05:51:00,Howard Johnson,INC0000000497,admin,Canada,Charlie Whitherspoon,David Loo,2024-02-12 22:31:48.126196708,Internet connection frequently dropping,Network,2 - High
|
||||
Network,Resolved,2024-02-07 23:14:21.894263712,2024-01-31 18:48:00,Charlie Whitherspoon,INC0000000498,employee,Australia,Howard Johnson,David Loo,2024-02-07 23:14:21.894263712,Network outage in Australia,Network,2 - High
|
||||
Hardware,Closed,2024-02-11 16:34:09.159779461,2024-01-31 21:20:00,Beth Anglin,INC0000000499,employee,Australia,Fred Luddy,ITIL User,2024-02-11 16:34:09.159779461,Printer235 is not printing in Australia location,Hardware,1 - Critical
|
||||
|
204
alias/docs/data_science.md
Normal file
@@ -0,0 +1,204 @@
|
||||
<h2 align="center">Alias for Data Science</h2>
|
||||
An autonomous agent that runs your entire data science workflow.
|
||||
|
||||
## Overview
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="./figures/alias-ds-overall.png" width="80%" style="max-width: 800px; height: auto;">
|
||||
</div>
|
||||
|
||||
**Alias-DataScience** is an **autonomous**, **ready-to-use**, intelligent assistant for real-world **data science workflows**. It transforms high-level analytical questions into executable plans, which can seamlessly handle data acquisition, cleaning, modeling, visualization, and narrative reporting, with minimal human intervention.
|
||||
|
||||
|
||||
## ✨ Key Features
|
||||
|
||||
### 🔍 Scalable File Filtering
|
||||
To handle massive data files commonly found in enterprise data lakes, Alias-DataScience combines parallelized grep operations with Retrieval-Augmented Generation (RAG) to build a low-latency, high-throughput file filtering pipeline. This preprocessing step enables accurate identification of relevant files, significantly expanding our scope and applicability.
|
||||
|
||||
### 🧠 Context-Aware Prompt Engineering
|
||||
Rather than relying on generic instructions, Alias-DataScience employs three specialized prompt templates, each fine-tuned for a dominant data science workflow:
|
||||
|
||||
- **Exploratory Data Analysis (EDA)**: Surfaces trends, anomalies, and relationships to answer "what's happening?" and "why?"
|
||||
- **Predictive Modeling**: Automates feature engineering, model selection, and optimization.
|
||||
- **Exact Data Computation**: Delivers precise, auditable answers to quantitative queries (e.g., "What was the YoY revenue growth in Q3?").
|
||||
|
||||
An intelligent **prompt selector** routes tasks to the best template based on user intent.
|
||||
|
||||
### 📊 Handling of Messy Tabular Data
|
||||
Alias-DataScience parses irregular spreadsheets (merged cells, embedded notes, multi-level headers) and converts them into structured tables. For large files, it outputs a semantic-preserving JSON representation, enabling reliable analysis of human-crafted inputs.
|
||||
|
||||
### 👁️ Multimodal Understanding of Visual Content
|
||||
- **Image Understanding**: Interprets charts, diagrams, and general images to extract numerical data, trends, and domain-specific entities
|
||||
- **Visual QA**: Answers natural-language questions about visual elements (e.g., "What was the peak value in Q3?").
|
||||
|
||||
### 📑 Automated Reporting
|
||||
For EDA tasks, Alias-DataScience generates an interactive HTML report featuring:
|
||||
- Actionable insights backed by statistics and visuals,
|
||||
- Executable code snippets for transparency and reuse.
|
||||
|
||||
This bridges the gap between data scientists and stakeholders like business users or auditors.
|
||||
|
||||
## 📈 Benchmark Performance
|
||||
|
||||
Alias-DataScience achieves **state-of-the-art (SOTA)** across major data science agent benchmarks.
|
||||
|
||||
### [DSBench](https://github.com/LiqiangJing/DSBench)
|
||||
*Realistic tasks from ModelOff & Kaggle; includes multimodal inputs, multi-source data, and large-scale modeling.*
|
||||
|
||||
<table style="border-collapse: collapse; width: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; margin: 16px 0;">
|
||||
<thead>
|
||||
<tr style="background-color: #4CAF50; color: white;">
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Task Category</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Framework</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Model</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">Score</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td rowspan="5" style="border: 1px solid #ddd; padding: 8px 10px; vertical-align: top; font-weight: bold;">Data Analysis</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><strong>Alias-DataScience</strong></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Qwen3-max-Preview</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center; background-color: #fff3cd; font-weight: bold;">55.58% 🏆</td>
|
||||
</tr>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://github.com/microsoft/autogen" target="_blank" rel="noopener">AutoGen</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">30.69%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">AutoGen</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4o</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">34.12%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://platform.openai.com/docs/assistants/tools/code-interpreter" target="_blank" rel="noopener">CodeInterpreter</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">26.39%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">CodeInterpreter</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4o</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">23.82%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td rowspan="5" style="border: 1px solid #ddd; padding: 8px 10px; vertical-align: top; font-weight: bold;">Data Modeling</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><strong>Alias-DataScience</strong></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Qwen3-max-Preview</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center; background-color: #fff3cd; font-weight: bold;">49.70% 🏆</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://github.com/microsoft/autogen" target="_blank" rel="noopener">AutoGen</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">45.52%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">AutoGen</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4o</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">34.74%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://platform.openai.com/docs/assistants/tools/code-interpreter" target="_blank" rel="noopener">CodeInterpreter</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">26.14%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">CodeInterpreter</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4o</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">16.90%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
### [InsightBench](https://insightbench.github.io/)
|
||||
*Open-ended comprehensive analytical tasks.*
|
||||
|
||||
<table style="border-collapse: collapse; width: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; margin: 16px 0;">
|
||||
<thead>
|
||||
<tr style="background-color: #4CAF50; color: white;">
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Framework</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Model</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">Score</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; font-weight: bold;">Alias-DataScience</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Qwen3-max-Preview</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center; background-color: #fff3cd; font-weight: bold;">43.29% 🏆</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://insightbench.github.io/" target="_blank" rel="noopener">AgentPoirot</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Qwen3-max-Preview</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">39.30%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
||||
### [DABench](https://github.com/InfiAgent/InfiAgent)
|
||||
*End-to-end data analysis from real-world CSVs.*
|
||||
|
||||
<table style="border-collapse: collapse; width: 100%; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; margin: 16px 0;">
|
||||
<thead>
|
||||
<tr style="background-color: #4CAF50; color: white;">
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Framework</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: left;">Model</th>
|
||||
<th style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">Score</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; font-weight: bold;">Alias-DataScience</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Qwen3-max-Preview</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center; background-color: #fff3cd; font-weight: bold;">95.20% 🏆</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;"><a href="https://github.com/microsoft/autogen" target="_blank" rel="noopener">AutoGen</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">71.49%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #f9f9f9;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">
|
||||
<a href="https://github.com/FoundationAgents/MetaGPT" target="_blank" rel="noopener">Data Interpreter</a></td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">73.55%</td>
|
||||
</tr>
|
||||
<tr style="background-color: #ffffff;">
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">Data Interpreter</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px;">GPT-4o</td>
|
||||
<td style="border: 1px solid #ddd; padding: 8px 10px; text-align: center;">94.93%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p style="color: #888; font-size: 0.85em; font-style: italic; margin-top: 1em;">
|
||||
Some tables include data from published sources, used with gratitude to the original authors and cited in good faith. For accuracy, please refer to the original publications.
|
||||
</p>
|
||||
|
||||
|
||||
## 🎯 Use Cases
|
||||
|
||||
### 1. Machine Learning
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="./figures/alias-ds-case1.png" width="80%" height: auto;">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
### 2. Exact Data Computation
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="./figures/alias-ds-case2.png" width="80%" height: auto;">
|
||||
</div>
|
||||
|
||||
|
||||
### 3. Exploratory Data Analysis
|
||||
|
||||
<div align="center" style="margin: 20px 0;">
|
||||
<img src="./figures/alias-ds-case3.png" width="80%" height: auto;">
|
||||
</div>
|
||||
BIN
alias/docs/figures/alias-ds-case1.png
Normal file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
alias/docs/figures/alias-ds-case2.png
Normal file
|
After Width: | Height: | Size: 8.2 MiB |
BIN
alias/docs/figures/alias-ds-case3.png
Normal file
|
After Width: | Height: | Size: 13 MiB |
BIN
alias/docs/figures/alias-ds-overall.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
alias/docs/figures/alias-ds-report-long-1.png
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
alias/docs/figures/alias-ds-report-long-2.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
alias/docs/figures/alias-ds-report-long-3.png
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
BIN
alias/docs/figures/alias-ds-report-short-new.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
alias/docs/figures/finance_casestudy.png
Normal file
|
After Width: | Height: | Size: 657 KiB |
BIN
alias/docs/figures/finance_overview.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
alias/docs/figures/finance_workflow.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
123
alias/docs/financial_analysis.md
Normal file
@@ -0,0 +1,123 @@
|
||||
<h2 align="center">Alias for Finance Analysis</h2>
|
||||
An autonomous, hypothesis-driven deep research agent for complex financial and investment analysis.
|
||||
|
||||
## Overview
|
||||
<div align="center">
|
||||
<img src="./figures/finance_overview.png" alt="finance_overview" width="75%" />
|
||||
</div>
|
||||
|
||||
**Alias-Finance Analysis** is a specialized enhancement/adaptation of the Alias, purpose-built to address the unique challenges of financial analysis: the need for complex reasoning and rigorous evidence chains.
|
||||
|
||||
Unlike traditional autonomous agents that simply decompose tasks into steps, Alias-Finance Analysis adopts a **Hypothesis-Driven** architecture. It transforms open-ended financial inquiries into a rigorous scientific loop: **"Propose Hypothesis → Evidence Analysis->Verify Hypothesis → Update State."** Built on the **AgentScope** framework, Alias-Finance Analysis ensures that every analytical conclusion is backed by a transparent, traceable logical path, bridging the gap between AI autonomy and the strict explainability requirements of the financial sector.
|
||||
|
||||
|
||||
## Key Features
|
||||
### Hypothesis-Driven Reasoning
|
||||
In high-stakes financial scenarios, simple task execution is insufficient. Alias-Finance Analysis introduces a state-aware reasoning mechanism designed for prediction and verification.
|
||||
|
||||
+ **Dynamic State Maintenance:** Instead of a linear to-do list, the agent maintains a "Hypothesis Task."
|
||||
+ **The Loop:** It actively proposes a market assumption, gathers specific data to test it, verifies the validity, and updates its belief state accordingly.
|
||||
|
||||
### Tree-Structured Deep Search
|
||||
Financial problems are rarely one-dimensional. To handle complexity, Alias-Finance Analysis utilizes a **Tree Search** strategy similar to deep research algorithms but adapted for financial logic.
|
||||
|
||||
+ **Decomposition:** A complex query (e.g., "Is Company X a buy?") is broken down into a tree of sub-hypotheses (e.g., "Revenue Growth," "Market Risk," "Competitive Moat").
|
||||
+ **Tree Exploration:** The agent systematically explores these branches to ensure no critical factor is overlooked before aggregating the results into a final conclusion.
|
||||
|
||||
|
||||
### Enhanced Financial Tool Integration
|
||||
Alias-Finance Analysis is ready to deploy with professional-grade data capabilities.
|
||||
|
||||
+ **MCP Integration:** We use Tavily Search as the general tool. What's more, we have integrated existing Financial **Model Context Protocol (MCP)** tools (available via Bailian/Alibaba Cloud).
|
||||
|
||||
Users simply need to configure their API KEY to unlock access to real-time financial data. Follow this [guide](https://bailian.console.aliyun.com/?tab=doc#/doc/?type=app&url=2974821) to activate the MCP service.
|
||||
|
||||
| **Tool Name** | **Description** |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
|
||||
| **Stock/Market Data API**<br/>**(**[tdx-mcp](https://bailian.console.aliyun.com/tab=app#/mcp-market/detail/tendency-software)**)** | Provides real-time quotes, historical prices, technical indicators and fundamentals. |
|
||||
| **Investment Research & Advisory API**<br/>**(**[Qieman-mcp](https://bailian.console.aliyun.com/?tab=mcp#/mcp-market/detail/Qieman)**)** | Provides research content, investment analysis and advisory tools |
|
||||
|
||||
|
||||
|
||||
|
||||
### Visualization & Reporting
|
||||
Transform complex financial analysis into clear, traceable, and presentation-ready outputs.
|
||||
|
||||

|
||||
|
||||
| **Output Element** | **Description** | **Purpose** |
|
||||
| --- | --- | --- |
|
||||
| **Final Research Report** | **Narrative Text & Insights** | The complete written analysis, conclusions, statistical evidence, and recommendations. |
|
||||
| **Process Visualization** | **Traceable Tree Search Map** | An interactive graphical view showing the full execution path: **which hypotheses were tested, which evidence was collected, and the specific decision points (Verified/Abandoned).** |
|
||||
| **Presentation-Friendly HTML Report** | **Executive Summary & Visuals** | A condensed, visually rich format optimized for review, featuring key charts and summary bullets. |
|
||||
|
||||
|
||||
|
||||
|
||||
## Workflow
|
||||
|
||||
<p align="center">
|
||||
<img src="./figures/finance_workflow.png" width="70%">
|
||||
</p>
|
||||
|
||||
**This diagram illustrates the hypothesis-driven workflow used to forecast Nvidia's 2026 financial performance, including evidence gathering, validation steps, and final report generation.**
|
||||
|
||||
+ Converts open-ended financial questions into testable hypotheses.
|
||||
+ Runs a continuous loop of “propose → gather evidence → verify → update.”
|
||||
+ Maintains a dynamic state rather than a static task list.
|
||||
+ Ensures every conclusion is backed by transparent, traceable reasoning steps.
|
||||
+ Produces a final forecast grounded in validated assumptions.
|
||||
|
||||
## 📊 Benchmark Performance
|
||||
This section presents a comprehensive evaluation of Alias-Finance Analysis across two specialized benchmarks: FinDeepResearch and LiveDeepResearch (Internal Benchmark).
|
||||
|
||||
### [FinDeepResearch](https://www.arxiv.org/pdf/2510.13936)
|
||||
**FinDeepResearch is a performance evaluation benchmark designed for Large Language Model-driven Deep Research (DR) Agents.** Utilizing the **HisRubric** framework, it systematically assesses the agents' capability to complete critical analysis steps in **corporate financial analysis**, ranging from data recognition and metric calculation to strategic summarization and interpretation. The benchmark includes data from 64 listed companies across 8 financial markets and 4 languages.
|
||||
|
||||
| **Method** | **US** | **UK** | **CN** | **HK** | **AU** | **SG** | **MY** | **ID** |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| **LLM (Thinking)** | | | | | | | | |
|
||||
| Gemini 2.5 Pro (T) | 19.9 | 21.0 | 17.6 | 20.8 | 24.4 | 24.2 | 25.1 | 16.5 |
|
||||
| Deepseek-v3.2 (T) | 19.7 | 17.7 | 17.3 | 18.4 | 20.9 | 21.0 | 23.8 | 15.0 |
|
||||
| Claude-Sonnet-4.5 (T) | 22.2 | 19.9 | 19.1 | 21.7 | 23.0 | 22.7 | 24.7 | 17.0 |
|
||||
| Grok 4 (T) | 23.2 | **24.0** | 16.9 | 18.4 | **25.8** | 24.3 | 25.0 | 17.4 |
|
||||
| OpenAI GPT-5 (T) | 18.1 | 18.7 | 16.6 | 17.6 | 22.6 | 23.6 | 23.3 | 16.3 |
|
||||
| **LLM (Thinking + Search)** | | | | | | | | |
|
||||
| Gemini 2.5 Pro (T+S) | 22.9 | 20.7 | 20.4 | $\underline{\text{24.7}}$ | 26.4 | 27.6 | 27.5 | 20.9 |
|
||||
| Deepseek-v3.2 (T+S) | 10.9 | 14.9 | 16.8 | 16.5 | 20.4 | 17.7 | 21.0 | 10.0 |
|
||||
| Claude-Sonnet-4.5 (T+S) | 27.8 | 23.0 | $\underline{\text{25.7}}$ | 20.3 | 27.4 | 28.5 | $\underline{\text{30.4}}$ | 23.4 |
|
||||
| Grok 4 (T+S) | 23.7 | 22.4 | 17.8 | 19.4 | 27.2 | 24.6 | 25.0 | 16.4 |
|
||||
| OpenAI GPT-5 (T+S) | 37.4 | 36.9 | 20.8 | 29.3 | 35.6 | $\underline{\text{42.5}}$ | 32.3 | 29.1 |
|
||||
| **Deep Research** | | | | | | | | |
|
||||
| Perplexity Sonar Deep Research | 21.0 | 23.7 | 22.4 | 25.0 | 28.8 | 26.9 | 26.9 | 23.0 |
|
||||
| Mistral Deep Research | 13.5 | 16.1 | 14.0 | 13.6 | 22.2 | 21.1 | 23.7 | 17.1 |
|
||||
| Tongyi Deep Research | 32.1 | 27.8 | 27.8 | 29.5 | 36.1 | 35.6 | 37.3 | 30.3 |
|
||||
| Gemini 2.5 Pro Deep Research | $\underline{\text{37.6}}$ | 34.1 | 30.8 | **36.0** | 36.0 | 38.9 | 39.8 | **36.6** |
|
||||
| Grok 4 DeepSearch | 34.5 | **39.0** | **33.4** | $\underline{\text{36.4}}$ | $\underline{\text{39.3}}$ | **46.7** | 37.9 | 31.3 |
|
||||
| OpenAI o3-deep-research | **42.5** | $\underline{\text{43.0}}$ | **34.7** | 30.2 | **41.7** | 33.6 | **38.3** | $\underline{\text{38.9}}$ |
|
||||
| **Alias-Finance Analysis** | TBD | TBD | TBD | TBD | TBD | TBD | TBD | TBD |
|
||||
|
||||
### LiveDeepResearch(Internal benchmark)
|
||||
The LiveDeepResearch Benchmark features a four-dimensional analysis—covering macro, industry, event, and stock-specific analysis—and dynamically constructs queries and rubrics based on real-time market information, ensuring the evaluation is highly practical.
|
||||
|
||||
| **Method** | Industry Analysis | Event Analysis | Individual Stock Analysis | Macroeconomic Analysis | Overall |
|
||||
| --- | --- | --- | --- | --- |---------|
|
||||
| **LLM(Thinking)** | | | | | |
|
||||
| TBD | TBD | TBD | TBD | TBD | TBD |
|
||||
| **Deep Research** | | | | | |
|
||||
| OpenAI DeepResearch | 0.558 | 0.354 | 0.389 | 0.406 | 0.427 |
|
||||
| Kimi DeepResearch | 0.270 | 0.273 | 0.339 | 0.319 | 0.300 |
|
||||
| Doubao DeepResearch | 0.519 | 0.611 | 0.647 | 0.611 | 0.597 |
|
||||
| **Alias-Finance Analysis** | TBD | TBD | TBD | TBD | TBD |
|
||||
|
||||
---
|
||||
|
||||
### Getting Started
|
||||
To get started with Alias-Finance Analysis, you can access the financial analysis features via automatic system routing in the default General mode.
|
||||
|
||||
If you wish to explicitly specify this mode, simply run the following command:
|
||||
```bash
|
||||
alias_agent run --mode finance --task "Analyze Tesla's Q4 2024 financial performance"
|
||||
```
|
||||
|
||||
|
||||
87
alias/docs/qa_agent.md
Normal file
@@ -0,0 +1,87 @@
|
||||
<h2 align="center">Alias for Question Answering</h2>
|
||||
|
||||
Alias-QA is a question-answering agent that integrates RAG (Retrieval-Augmented Generation) and GitHub MCP tools, capable of answering user questions based on both a private knowledge base and GitHub code repositories.
|
||||
|
||||
## Environment Setup
|
||||
|
||||
Before using Alias-QA, you need to set the following environment variables:
|
||||
|
||||
```bash
|
||||
export DASHSCOPE_API_KEY=your_dashscope_api_key
|
||||
export GITHUB_TOKEN=your_github_token
|
||||
```
|
||||
|
||||
**GITHUB_TOKEN**: Used to access GitHub MCP tools (search repositories, code, etc.). For how to obtain it, please refer to the [GitHub documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).
|
||||
|
||||
## Using Custom Knowledge Base
|
||||
|
||||
If you want to use your own documents to build a knowledge base, refer to the following steps.
|
||||
|
||||
|
||||
### Usage Steps
|
||||
|
||||
1. **Prepare Your Document File**
|
||||
|
||||
Place your document file in the text format supported in the `alias/agent/agents/qa_agent_utils` directory, or specify a file path.
|
||||
2. **Modify Script Parameters**
|
||||
|
||||
Edit the `main()` function in `create_rag_file.py` and change `faq_file_path` to your file path:
|
||||
|
||||
```python
|
||||
async def main() -> None:
|
||||
"""Main function for standalone execution."""
|
||||
# Read the FAQ samples file
|
||||
|
||||
faq_file_path = SCRIPT_DIR / "as_faq_samples.txt"
|
||||
collection_name = "as_faq"
|
||||
await initialize_rag(
|
||||
faq_file_path=faq_file_path,
|
||||
collection_name=collection_name,
|
||||
)
|
||||
```
|
||||
3. **Run the Script**
|
||||
|
||||
```bash
|
||||
python alias/agent/agents/qa_agent_utils/create_rag_file.py
|
||||
```
|
||||
|
||||
The script will automatically:
|
||||
|
||||
- Start the Qdrant vector database (if not running)
|
||||
- Read and process your document file
|
||||
- Chunk the documents and generate embedding vectors
|
||||
- Store them in the Qdrant database
|
||||
|
||||
### Important Notes
|
||||
|
||||
#### Default Behavior
|
||||
|
||||
If no file path is specified, the script will default to processing the `as_faq_samples.txt` file and store the processed data at the following path: `/alias/agent/agents/qa_agent_utils/qdrant_storage/collections/as_faq`
|
||||
|
||||
- In this path, `as_faq` is the value of `collection_name`
|
||||
- Running this script repeatedly will **continually append** processed file content to `collections/as_faq`
|
||||
|
||||
#### Creating and Using Different Collections
|
||||
|
||||
1. **Create a New Collection**
|
||||
|
||||
You can create a new collection by editing the `main()` function in `create_rag_file.py` and modifying the `collection_name` parameter:
|
||||
|
||||
```python
|
||||
collection_name = "your_own_collection_name"
|
||||
```
|
||||
2. **Switch to a Different Collection**
|
||||
|
||||
In `/alias/agent/tools/add_qa_tools.py`, when referring to the knowledge base through `knowledge = SimpleKnowledge(...)`, you can switch to a different collection by modifying the `collection_name` parameter:
|
||||
|
||||
```python
|
||||
collection_name = "collection_name_you_want_to_use"
|
||||
```
|
||||
|
||||
### More Information
|
||||
|
||||
`create_rag_file.py` is a demo implementation of RAG functionality in AgentScope. For more advanced operations and customization options regarding RAG, please refer to the [AgentScope RAG Official Documentation](https://doc.agentscope.io/zh_CN/tutorial/task_rag.html), including:
|
||||
|
||||
- Multimodal RAG
|
||||
- Custom Reader, Knowledge, and Store components
|
||||
- Agentic vs. Generic RAG
|
||||
7
alias/frontend/.env.example
Normal file
@@ -0,0 +1,7 @@
|
||||
# API Configuration
|
||||
VITE_API_URL=http://localhost:8000
|
||||
VITE_USER_PROFILING_API_URL=http://localhost:6380
|
||||
|
||||
# Request Retry Configuration
|
||||
VITE_MAX_RETRIES=3
|
||||
VITE_RETRY_DELAY=1000
|
||||
70
alias/frontend/README.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Getting Started with Create React App
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
## Available Scripts
|
||||
|
||||
In the project directory, you can run:
|
||||
|
||||
### `npm start`
|
||||
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
||||
|
||||
The page will reload when you make changes.\
|
||||
You may also see any lint errors in the console.
|
||||
|
||||
### `npm test`
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
|
||||
### `npm run build`
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
|
||||
### `npm run eject`
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
|
||||
|
||||
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
|
||||
|
||||
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
|
||||
### Code Splitting
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
|
||||
|
||||
### Analyzing the Bundle Size
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
|
||||
|
||||
### Making a Progressive Web App
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
|
||||
|
||||
### Advanced Configuration
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
|
||||
|
||||
### Deployment
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
|
||||
|
||||
### `npm run build` fails to minify
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
|
||||
4
alias/frontend/images.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
declare module "*.svg" {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
13
alias/frontend/index.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AgentScope</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.tsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
88
alias/frontend/package.json
Normal file
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"name": "alias_frontend",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --config vite.config.ts",
|
||||
"build": "tsc --project tsconfig.json && vite build --config vite.config.ts",
|
||||
"preview": "vite preview --config vite.config.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@agentscope-ai/chat": "1.1.17",
|
||||
"@agentscope-ai/design": "1.0.11",
|
||||
"@ahooksjs/use-url-state": "^3.5.1",
|
||||
"@ant-design/pro-components": "^2.8.7",
|
||||
"@codemirror/lang-css": "^6.3.1",
|
||||
"@codemirror/lang-html": "^6.4.9",
|
||||
"@codemirror/lang-java": "^6.0.1",
|
||||
"@codemirror/lang-javascript": "^6.2.3",
|
||||
"@codemirror/lang-markdown": "^6.3.2",
|
||||
"@codemirror/lang-python": "^6.1.7",
|
||||
"@copilotkit/shared": "^1.10.6",
|
||||
"@lezer/highlight": "^1.2.3",
|
||||
"@radix-ui/react-context-menu": "^2.2.12",
|
||||
"@radix-ui/react-dialog": "^1.0.5",
|
||||
"@radix-ui/react-icons": "^1.3.0",
|
||||
"@radix-ui/react-tooltip": "^1.0.7",
|
||||
"@react-icons/all-files": "^4.1.0",
|
||||
"@uiw/codemirror-theme-material": "^4.23.10",
|
||||
"@uiw/react-codemirror": "^4.23.10",
|
||||
"@vscode/codicons": "^0.0.36",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"antd": "^5.24.8",
|
||||
"axios": "^1.8.4",
|
||||
"classnames": "^2.5.1",
|
||||
"copy-to-clipboard": "^3.3.3",
|
||||
"dayjs": "^1.11.13",
|
||||
"deep-diff": "^1.0.2",
|
||||
"diff": "^8.0.2",
|
||||
"framer-motion": "^11.18.2",
|
||||
"github-markdown-css": "^5.8.1",
|
||||
"highlight.js": "^11.11.1",
|
||||
"katex": "^0.16.22",
|
||||
"lodash": "^4.17.21",
|
||||
"react": "^18.2.0",
|
||||
"react-arborist": "^3.4.3",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-error-boundary": "^6.0.0",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-resizable-panels": "^2.1.8",
|
||||
"react-router-dom": "^6.22.3",
|
||||
"react-syntax-highlighter": "^15.6.1",
|
||||
"rehype-highlight": "^7.0.2",
|
||||
"rehype-katex": "^7.0.1",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"remark-math": "^6.0.0",
|
||||
"socket.io-client": "^4.8.1",
|
||||
"xterm": "^5.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.7",
|
||||
"@tailwindcss/postcss": "^4.1.4",
|
||||
"@types/classnames": "^2.3.4",
|
||||
"@types/deep-diff": "^1.0.5",
|
||||
"@types/lodash": "^4.17.20",
|
||||
"@types/node": "^22.14.1",
|
||||
"@types/react": "^18.2.55",
|
||||
"@types/react-dom": "^18.2.19",
|
||||
"@types/react-syntax-highlighter": "^15.5.13",
|
||||
"@vitejs/plugin-react": "^4.2.1",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"less": "^4.4.2",
|
||||
"postcss": "^8.4.35",
|
||||
"postcss-import": "^16.1.0",
|
||||
"postcss-nested": "^7.0.2",
|
||||
"postcss-nesting": "^13.0.1",
|
||||
"postcss-scss": "^4.0.9",
|
||||
"sass": "^1.70.0",
|
||||
"tailwind-scrollbar": "^3.0.0",
|
||||
"tailwind-scrollbar-hide": "^2.0.0",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"tailwindcss-scrollbar": "^0.1.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.1.3"
|
||||
}
|
||||
}
|
||||
13
alias/frontend/postcss.config.cjs
Normal file
@@ -0,0 +1,13 @@
|
||||
const tailwindcss = require('tailwindcss');
|
||||
const autoprefixer = require('autoprefixer');
|
||||
const postcssImport = require('postcss-import');
|
||||
const postcssNesting = require('postcss-nesting');
|
||||
|
||||
module.exports = {
|
||||
plugins: [
|
||||
postcssImport,
|
||||
postcssNesting,
|
||||
tailwindcss,
|
||||
autoprefixer,
|
||||
]
|
||||
}
|
||||
BIN
alias/frontend/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
43
alias/frontend/public/index.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Web site created using create-react-app"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<title>React App</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
BIN
alias/frontend/public/logo192.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
alias/frontend/public/logo512.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
25
alias/frontend/public/manifest.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"short_name": "React App",
|
||||
"name": "Create React App Sample",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "logo192.png",
|
||||
"type": "image/png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "logo512.png",
|
||||
"type": "image/png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
||||
3
alias/frontend/public/robots.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||
0
alias/frontend/runtime
Normal file
45
alias/frontend/src/App.tsx
Normal file
@@ -0,0 +1,45 @@
|
||||
import React from "react";
|
||||
import { RouterProvider } from "react-router-dom";
|
||||
import {
|
||||
ConfigProvider,
|
||||
carbonTheme,
|
||||
carbonDarkTheme,
|
||||
} from "@agentscope-ai/design";
|
||||
import { router } from "./routes";
|
||||
import { WorkspaceProvider } from "@/context/WorkspaceContext.tsx";
|
||||
import { ThemeProvider, useTheme } from "@/context/ThemeContext.tsx";
|
||||
import { MessageProvider } from "@/context/MessageContext";
|
||||
|
||||
const AppContent: React.FC = () => {
|
||||
const { theme: currentTheme } = useTheme();
|
||||
const theme = currentTheme === "dark" ? carbonDarkTheme : carbonTheme;
|
||||
const prefix = "sps";
|
||||
return (
|
||||
<ConfigProvider
|
||||
{...theme}
|
||||
prefix={prefix}
|
||||
prefixCls={prefix}
|
||||
iconfont="//at.alicdn.com/t/a/font_4807885_ugexdeaoq7.js"
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
}}
|
||||
>
|
||||
<WorkspaceProvider>
|
||||
<MessageProvider>
|
||||
<RouterProvider router={router} />
|
||||
</MessageProvider>
|
||||
</WorkspaceProvider>
|
||||
</ConfigProvider>
|
||||
);
|
||||
};
|
||||
|
||||
const App: React.FC = () => {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<AppContent />
|
||||
</ThemeProvider>
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||
501
alias/frontend/src/assets/file/incident_records.csv
Normal file
@@ -0,0 +1,501 @@
|
||||
category,state,closed_at,opened_at,closed_by,number,sys_updated_by,location,assigned_to,caller_id,sys_updated_on,short_description,assignment_group,priority
|
||||
Software,Closed,2023-01-03 11:04:00.000000000,2023-01-02 11:04:00,Charlie Whitherspoon,INC0000000000,admin,UK,Beth Anglin,David Loo,2023-01-03 11:04:00.000000000,Application error on office software,Software,2 - High
|
||||
Hardware,Closed,2023-01-11 01:17:39.128189467,2023-01-03 10:19:00,Beth Anglin,INC0000000001,employee,Australia,Luke Wilson,Don Goodliffe,2023-01-11 01:17:39.128189467,Printer error at Printer-id: Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-21 03:18:58.590910419,2023-01-04 06:37:00,Luke Wilson,INC0000000002,system,Australia,Fred Luddy,Don Goodliffe,2023-01-21 03:18:58.590910419,Printer745 is not working in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-05 17:54:36.886511927,2023-01-04 06:53:00,Luke Wilson,INC0000000003,employee,Australia,Fred Luddy,ITIL User,2023-01-05 17:54:36.886511927,Printer issue reported on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-01-06 16:52:00.000000000,2023-01-05 16:52:00,Fred Luddy,INC0000000004,employee,Australia,Fred Luddy,David Loo,2023-01-06 16:52:00.000000000,Printer123 failure in Australia,Hardware,1 - Critical
|
||||
Network,Closed,2023-01-12 10:23:00.628645777,2023-01-06 01:22:00,Fred Luddy,INC0000000005,employee,India,Luke Wilson,ITIL User,2023-01-12 10:23:00.628645777,Unable to connect to the VPN from India,Network,1 - Critical
|
||||
Software,Resolved,2023-01-14 09:42:31.239968317,2023-01-06 06:14:00,Fred Luddy,INC0000000006,system,Canada,Luke Wilson,Bud Richman,2023-01-14 09:42:31.239968317,Software crash on startup does not allow to work properly,Software,1 - Critical
|
||||
Hardware,Closed,2023-01-13 03:44:31.383066130,2023-01-06 15:27:00,Luke Wilson,INC0000000007,admin,Australia,Charlie Whitherspoon,ITIL User,2023-01-13 03:44:31.383066130,Printer456 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-08 15:20:00.000000000,2023-01-07 15:20:00,Luke Wilson,INC0000000008,system,United States,Charlie Whitherspoon,David Loo,2023-01-08 15:20:00.000000000,Fault in server hardware S09-US,Hardware,2 - High
|
||||
Network,Resolved,2023-01-09 08:53:00.000000000,2023-01-08 08:53:00,Luke Wilson,INC0000000009,admin,UK,Beth Anglin,Bud Richman,2023-01-09 08:53:00.000000000,Can't connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-01-18 10:47:18.859313409,2023-01-09 09:58:00,Charlie Whitherspoon,INC0000000010,system,Australia,Fred Luddy,Bud Richman,2023-01-18 10:47:18.859313409,Printer546 not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-19 02:40:53.945578841,2023-01-09 16:07:00,Fred Luddy,INC0000000011,system,Australia,Fred Luddy,Bud Richman,2023-01-19 02:40:53.945578841,Printer354 is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-01-13 22:01:58.804819178,2023-01-10 10:06:00,Luke Wilson,INC0000000012,admin,Australia,Luke Wilson,ITIL User,2023-01-13 22:01:58.804819178,Printer876 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-01-12 00:34:00.000000000,2023-01-11 00:34:00,Luke Wilson,INC0000000013,employee,UK,Charlie Whitherspoon,Don Goodliffe,2023-01-12 00:34:00.000000000,The monitor is not working properly,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-01-23 16:07:55.271807823,2023-01-11 09:26:00,Luke Wilson,INC0000000014,system,India,Howard Johnson,ITIL User,2023-01-23 16:07:55.271807823,Need help with Database query optimization,Database,3 - Moderate
|
||||
Hardware,Resolved,2023-01-20 14:37:18.361510788,2023-01-11 16:40:00,Howard Johnson,INC0000000015,system,Australia,Luke Wilson,Bud Richman,2023-01-20 14:37:18.361510788,Printer487 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-23 02:21:48.999352525,2023-01-11 18:29:00,Beth Anglin,INC0000000016,admin,United States,Fred Luddy,Don Goodliffe,2023-01-23 02:21:48.999352525,The system monitor of station 334 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-01-18 08:42:15.759148193,2023-01-13 00:44:00,Fred Luddy,INC0000000017,admin,Australia,Luke Wilson,David Loo,2023-01-18 08:42:15.759148193,Issue with Printer429 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-22 04:15:55.294347270,2023-01-15 14:01:00,Luke Wilson,INC0000000018,system,India,Luke Wilson,Don Goodliffe,2023-01-22 04:15:55.294347270,Device malfunction in CPU,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-01-17 04:28:00.000000000,2023-01-16 04:28:00,Luke Wilson,INC0000000019,employee,United States,Fred Luddy,David Loo,2023-01-17 04:28:00.000000000,Need help with a software inquiry,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-01-26 02:18:22.920898595,2023-01-16 06:28:00,Beth Anglin,INC0000000020,employee,Australia,Howard Johnson,ITIL User,2023-01-26 02:18:22.920898595,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-25 07:44:05.814552632,2023-01-17 06:29:00,Fred Luddy,INC0000000021,admin,United States,Charlie Whitherspoon,ITIL User,2023-01-25 07:44:05.814552632,CPU fan failure on desktop unit,Hardware,2 - High
|
||||
Software,Resolved,2023-01-18 12:15:00.000000000,2023-01-17 12:15:00,Beth Anglin,INC0000000022,employee,Australia,Fred Luddy,Don Goodliffe,2023-01-18 12:15:00.000000000,Microsoft Office Application crash,Software,2 - High
|
||||
Hardware,Closed,2023-02-05 14:01:58.932181130,2023-01-17 13:34:00,Luke Wilson,INC0000000023,system,Australia,Fred Luddy,Bud Richman,2023-02-05 14:01:58.932181130,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-24 18:39:21.848415555,2023-01-17 17:47:00,Luke Wilson,INC0000000024,employee,Australia,Fred Luddy,David Loo,2023-01-24 18:39:21.848415555,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-01-23 14:49:23.734002375,2023-01-18 23:27:00,Fred Luddy,INC0000000025,admin,Australia,Fred Luddy,Bud Richman,2023-01-23 14:49:23.734002375,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-01-24 10:21:12.713928509,2023-01-19 05:28:00,Howard Johnson,INC0000000026,admin,Australia,Beth Anglin,David Loo,2023-01-24 10:21:12.713928509,Printer546 is not functioning properly,Hardware,1 - Critical
|
||||
Software,Closed,2023-01-25 20:46:13.679914432,2023-01-19 17:29:00,Fred Luddy,INC0000000027,employee,Canada,Luke Wilson,Bud Richman,2023-01-25 20:46:13.679914432,Software update error on desktop,Software,2 - High
|
||||
Hardware,Closed,2023-02-04 02:43:53.446979933,2023-01-20 05:48:00,Fred Luddy,INC0000000028,system,Australia,Beth Anglin,ITIL User,2023-02-04 02:43:53.446979933,Printer546 is not responding,Hardware,2 - High
|
||||
Network,Resolved,2023-01-26 12:30:48.397896971,2023-01-21 12:13:00,Luke Wilson,INC0000000029,system,UK,Luke Wilson,David Loo,2023-01-26 12:30:48.397896971,Unable to connect to WiFi in UK office,Network,2 - High
|
||||
Hardware,Closed,2023-01-29 22:45:30.072558587,2023-01-22 03:34:00,Charlie Whitherspoon,INC0000000030,employee,Canada,Fred Luddy,Bud Richman,2023-01-29 22:45:30.072558587,PC overheating issue reported,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-05 00:09:42.176650334,2023-01-23 23:18:00,Howard Johnson,INC0000000031,admin,Australia,Howard Johnson,Bud Richman,2023-02-05 00:09:42.176650334,Printer546 is not printing documents in Australia,Hardware,2 - High
|
||||
Software,Closed,2023-01-28 01:28:09.743197803,2023-01-24 15:02:00,Luke Wilson,INC0000000032,system,Canada,Howard Johnson,ITIL User,2023-01-28 01:28:09.743197803,Software update failed on workstation,Software,2 - High
|
||||
Hardware,Resolved,2023-01-28 04:52:51.519667192,2023-01-25 02:38:00,Fred Luddy,INC0000000033,admin,Australia,Fred Luddy,Bud Richman,2023-01-28 04:52:51.519667192,Printer546 in Australia is offline,Hardware,1 - Critical
|
||||
Network,Resolved,2023-02-03 19:14:44.970166482,2023-01-25 20:52:00,Luke Wilson,INC0000000034,employee,United States,Beth Anglin,David Loo,2023-02-03 19:14:44.970166482,Can't connect to VPN,Network,2 - High
|
||||
Network,Resolved,2023-02-03 08:09:45.834493992,2023-01-27 02:22:00,Beth Anglin,INC0000000035,admin,UK,Charlie Whitherspoon,Don Goodliffe,2023-02-03 08:09:45.834493992,Network outage in the UK,Network,1 - Critical
|
||||
Hardware,Resolved,2023-02-11 09:07:59.479099672,2023-01-27 03:28:00,Howard Johnson,INC0000000036,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-02-11 09:07:59.479099672,Printer874 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-01-30 01:44:17.443653956,2023-01-27 07:48:00,Luke Wilson,INC0000000037,system,Australia,Beth Anglin,ITIL User,2023-01-30 01:44:17.443653956,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-03 19:29:33.426983106,2023-01-27 16:44:00,Howard Johnson,INC0000000038,system,Australia,Beth Anglin,Bud Richman,2023-02-03 19:29:33.426983106,Printer547 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-02-04 20:06:34.055632819,2023-01-30 17:07:00,Beth Anglin,INC0000000039,admin,India,Charlie Whitherspoon,ITIL User,2023-02-04 20:06:34.055632819,RAM issue in desktop PC,Hardware,2 - High
|
||||
Software,Closed,2023-02-07 09:37:36.868992308,2023-01-31 00:30:00,Luke Wilson,INC0000000040,employee,India,Howard Johnson,ITIL User,2023-02-07 09:37:36.868992308,Application crash on startup,Software,2 - High
|
||||
Hardware,Closed,2023-02-09 20:37:54.209291607,2023-02-01 19:46:00,Howard Johnson,INC0000000041,system,Australia,Luke Wilson,Bud Richman,2023-02-09 20:37:54.209291607,Printer789 is not printing in Australia location,Hardware,2 - High
|
||||
Network,Closed,2023-02-16 16:49:49.770102240,2023-02-02 08:10:00,Beth Anglin,INC0000000042,system,UK,Beth Anglin,ITIL User,2023-02-16 16:49:49.770102240,Unable to connect to WiFi,Network,2 - High
|
||||
Network,Closed,2023-02-13 00:16:27.398179564,2023-02-03 02:01:00,Charlie Whitherspoon,INC0000000043,system,United States,Charlie Whitherspoon,ITIL User,2023-02-13 00:16:27.398179564,Slow network connectivity issue across multiple devices,Network,2 - High
|
||||
Hardware,Closed,2023-02-14 04:41:35.236486606,2023-02-05 10:25:00,Luke Wilson,INC0000000044,employee,UK,Beth Anglin,Don Goodliffe,2023-02-14 04:41:35.236486606,Issue with Laptop Lp123,Hardware,2 - High
|
||||
Software,Closed,2023-02-18 11:04:04.387140839,2023-02-05 15:05:00,Luke Wilson,INC0000000045,admin,United States,Fred Luddy,Bud Richman,2023-02-18 11:04:04.387140839,Unable to update antivirus software,Software,2 - High
|
||||
Hardware,Resolved,2023-02-08 15:38:00.000000000,2023-02-07 15:38:00,Fred Luddy,INC0000000046,admin,Australia,Charlie Whitherspoon,David Loo,2023-02-08 15:38:00.000000000,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Database,Resolved,2023-02-13 08:10:20.378839709,2023-02-08 05:33:00,Howard Johnson,INC0000000047,system,India,Luke Wilson,Bud Richman,2023-02-13 08:10:20.378839709,Database server disruption detected,Database,1 - Critical
|
||||
Inquiry / Help,Closed,2023-02-17 00:34:25.927389861,2023-02-08 14:07:00,Beth Anglin,INC0000000048,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-02-17 00:34:25.927389861,Printer787 is causing problems,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-02-16 22:50:20.255626998,2023-02-11 04:10:00,Fred Luddy,INC0000000049,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-02-16 22:50:20.255626998,Printer546 is not responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-13 00:56:00.000000000,2023-02-12 00:56:00,Howard Johnson,INC0000000050,system,UK,Fred Luddy,Bud Richman,2023-02-13 00:56:00.000000000,UK Server67 has stopped responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-13 09:00:00.000000000,2023-02-12 09:00:00,Howard Johnson,INC0000000051,admin,Australia,Fred Luddy,Bud Richman,2023-02-13 09:00:00.000000000,Printer546 is not responding,Hardware,1 - Critical
|
||||
Database,Resolved,2023-02-18 18:49:23.647006730,2023-02-12 10:41:00,Charlie Whitherspoon,INC0000000052,system,United States,Beth Anglin,David Loo,2023-02-18 18:49:23.647006730,SQL database connection issue,Database,3 - Moderate
|
||||
Inquiry / Help,Closed,2023-02-19 05:46:55.363664679,2023-02-14 16:34:00,Fred Luddy,INC0000000053,employee,Canada,Fred Luddy,ITIL User,2023-02-19 05:46:55.363664679,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-02-19 06:21:12.452625610,2023-02-15 01:47:00,Fred Luddy,INC0000000054,employee,United States,Fred Luddy,David Loo,2023-02-19 06:21:12.452625610,Laptop issue reported,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-19 11:12:41.587556967,2023-02-16 10:34:00,Luke Wilson,INC0000000055,employee,Australia,Howard Johnson,David Loo,2023-02-19 11:12:41.587556967,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-02-18 06:02:38.010888088,2023-02-16 17:07:00,Luke Wilson,INC0000000056,system,Australia,Beth Anglin,Don Goodliffe,2023-02-18 06:02:38.010888088,Printer546 is not working,Hardware,2 - High
|
||||
Network,Closed,2023-02-25 02:41:07.264125204,2023-02-16 18:29:00,Howard Johnson,INC0000000057,employee,India,Charlie Whitherspoon,Don Goodliffe,2023-02-25 02:41:07.264125204,Unable to connect to the VPN,Network,2 - High
|
||||
Hardware,Resolved,2023-02-26 07:36:08.762766728,2023-02-16 19:04:00,Fred Luddy,INC0000000058,system,Australia,Charlie Whitherspoon,David Loo,2023-02-26 07:36:08.762766728,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-02-19 01:46:00.000000000,2023-02-18 01:46:00,Luke Wilson,INC0000000059,employee,Australia,Fred Luddy,ITIL User,2023-02-19 01:46:00.000000000,Printer543 is not printing in Australia,Hardware,1 - Critical
|
||||
Database,Closed,2023-02-24 12:26:03.066179768,2023-02-18 16:04:00,Beth Anglin,INC0000000060,admin,Australia,Howard Johnson,David Loo,2023-02-24 12:26:03.066179768,Issue with database response time,Database,2 - High
|
||||
Inquiry / Help,Resolved,2023-03-05 11:31:06.569025031,2023-02-22 12:21:00,Beth Anglin,INC0000000061,admin,United States,Luke Wilson,ITIL User,2023-03-05 11:31:06.569025031,Request assistance for application updating issues,Software,3 - Moderate
|
||||
Hardware,Closed,2023-02-23 22:00:23.401697490,2023-02-22 13:49:00,Charlie Whitherspoon,INC0000000062,employee,Australia,Howard Johnson,ITIL User,2023-02-23 22:00:23.401697490,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Network,Resolved,2023-02-26 16:29:16.807931635,2023-02-22 19:23:00,Luke Wilson,INC0000000063,employee,India,Beth Anglin,Bud Richman,2023-02-26 16:29:16.807931635,Network connectivity issue in India,Network,2 - High
|
||||
Hardware,Resolved,2023-02-25 14:32:02.076278529,2023-02-23 02:37:00,Beth Anglin,INC0000000064,system,Australia,Charlie Whitherspoon,David Loo,2023-02-25 14:32:02.076278529,Printer error in Printer368,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-01 04:41:50.658060449,2023-02-23 05:40:00,Beth Anglin,INC0000000065,system,Canada,Beth Anglin,David Loo,2023-03-01 04:41:50.658060449,"Issue with desktop PC, unexpected shutdown",Hardware,2 - High
|
||||
Database,Closed,2023-03-02 18:17:24.556975522,2023-02-25 17:52:00,Fred Luddy,INC0000000066,system,India,Luke Wilson,David Loo,2023-03-02 18:17:24.556975522,Unable to connect to server database,Database,2 - High
|
||||
Hardware,Resolved,2023-03-03 22:24:21.666904166,2023-02-25 19:47:00,Charlie Whitherspoon,INC0000000067,employee,Australia,Howard Johnson,Don Goodliffe,2023-03-03 22:24:21.666904166,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-11 20:13:52.693225203,2023-02-25 21:22:00,Fred Luddy,INC0000000068,employee,Australia,Luke Wilson,Don Goodliffe,2023-03-11 20:13:52.693225203,Printer problem with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-02-28 16:37:00.000000000,2023-02-27 16:37:00,Charlie Whitherspoon,INC0000000069,employee,Australia,Beth Anglin,Don Goodliffe,2023-02-28 16:37:00.000000000,Printer546 is not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-05 04:00:53.829740603,2023-02-27 21:40:00,Fred Luddy,INC0000000070,admin,Australia,Luke Wilson,Bud Richman,2023-03-05 04:00:53.829740603,Printer453 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-17 12:55:54.993590364,2023-02-28 17:42:00,Charlie Whitherspoon,INC0000000071,admin,Australia,Fred Luddy,ITIL User,2023-03-17 12:55:54.993590364,Printer567 is not functioning properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-13 16:49:10.116400647,2023-03-02 01:29:00,Beth Anglin,INC0000000072,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-03-13 16:49:10.116400647,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-03-08 05:56:31.551604697,2023-03-02 10:56:00,Beth Anglin,INC0000000073,admin,Canada,Fred Luddy,Don Goodliffe,2023-03-08 05:56:31.551604697,Inquiry about the service in Canada,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-03-11 13:42:59.511508874,2023-03-04 03:00:00,Fred Luddy,INC0000000074,system,Australia,Charlie Whitherspoon,Bud Richman,2023-03-11 13:42:59.511508874,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-03-19 18:35:49.186969810,2023-03-07 06:18:00,Howard Johnson,INC0000000075,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-03-19 18:35:49.186969810,Printer546 is not printing in Australia location. Please assist.,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-17 15:33:56.380678280,2023-03-08 16:23:00,Howard Johnson,INC0000000076,system,India,Beth Anglin,David Loo,2023-03-17 15:33:56.380678280,Server rack 34B malfunctioning in Chennai data center,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-14 06:30:47.245274154,2023-03-09 02:01:00,Luke Wilson,INC0000000077,employee,Australia,Fred Luddy,ITIL User,2023-03-14 06:30:47.245274154,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-03-10 09:09:00.000000000,2023-03-09 09:09:00,Luke Wilson,INC0000000078,employee,Australia,Fred Luddy,ITIL User,2023-03-10 09:09:00.000000000,Printer546 in Australia is causing an issue,Hardware,1 - Critical
|
||||
Network,Resolved,2023-03-11 09:09:00.000000000,2023-03-10 09:09:00,Charlie Whitherspoon,INC0000000079,employee,UK,Charlie Whitherspoon,Bud Richman,2023-03-11 09:09:00.000000000,Network connection lost in UK,Network,1 - Critical
|
||||
Network,Closed,2023-03-13 09:38:15.903837660,2023-03-10 14:49:00,Fred Luddy,INC0000000080,employee,India,Fred Luddy,ITIL User,2023-03-13 09:38:15.903837660,Unable to establish a connection to the local server,Network,2 - High
|
||||
Database,Closed,2023-03-17 12:37:48.453885624,2023-03-11 06:39:00,Luke Wilson,INC0000000081,system,United States,Beth Anglin,Bud Richman,2023-03-17 12:37:48.453885624,Unable to connect to Database567,Database,2 - High
|
||||
Hardware,Closed,2023-03-16 11:23:45.848878332,2023-03-13 02:53:00,Beth Anglin,INC0000000082,admin,United States,Howard Johnson,David Loo,2023-03-16 11:23:45.848878332,Hard drive failure in laptop HL349,Hardware,2 - High
|
||||
Database,Closed,2023-03-26 23:30:22.193990107,2023-03-13 07:44:00,Fred Luddy,INC0000000083,system,Canada,Charlie Whitherspoon,Bud Richman,2023-03-26 23:30:22.193990107,Unable to connect to SQL Database 219,Database,2 - High
|
||||
Hardware,Closed,2023-03-14 22:49:22.720352152,2023-03-13 10:05:00,Fred Luddy,INC0000000084,system,Australia,Luke Wilson,David Loo,2023-03-14 22:49:22.720352152,Issue with Printer210,Hardware,2 - High
|
||||
Hardware,Closed,2023-03-18 09:32:55.751173465,2023-03-13 11:36:00,Charlie Whitherspoon,INC0000000085,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-03-18 09:32:55.751173465,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-23 14:56:55.026865443,2023-03-14 00:04:00,Charlie Whitherspoon,INC0000000086,admin,Australia,Luke Wilson,David Loo,2023-03-23 14:56:55.026865443,Issue with Printer546 in Australia office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-26 11:10:50.949076210,2023-03-17 00:19:00,Charlie Whitherspoon,INC0000000087,admin,Australia,Howard Johnson,David Loo,2023-03-26 11:10:50.949076210,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-03-18 07:40:00.000000000,2023-03-17 07:40:00,Charlie Whitherspoon,INC0000000088,employee,Australia,Fred Luddy,David Loo,2023-03-18 07:40:00.000000000,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-22 15:24:16.646216503,2023-03-18 01:04:00,Charlie Whitherspoon,INC0000000089,employee,Australia,Fred Luddy,David Loo,2023-03-22 15:24:16.646216503,Printer546 is malfunctioning in Australia,Hardware,1 - Critical
|
||||
Software,Resolved,2023-03-26 17:14:15.209900642,2023-03-19 09:40:00,Charlie Whitherspoon,INC0000000090,system,United States,Fred Luddy,Don Goodliffe,2023-03-26 17:14:15.209900642,Software update failure on work PC,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-03-21 01:02:44.587646914,2023-03-19 12:57:00,Fred Luddy,INC0000000091,admin,Australia,Beth Anglin,David Loo,2023-03-21 01:02:44.587646914,Printer546 is not working,Hardware,1 - Critical
|
||||
Network,Resolved,2023-03-31 07:59:26.909209525,2023-03-19 14:53:00,Howard Johnson,INC0000000092,employee,Australia,Fred Luddy,Bud Richman,2023-03-31 07:59:26.909209525,Network downtime issue in Australia,Network,1 - Critical
|
||||
Inquiry / Help,Closed,2023-04-04 19:04:22.181856865,2023-03-22 13:51:00,Fred Luddy,INC0000000093,admin,United States,Charlie Whitherspoon,ITIL User,2023-04-04 19:04:22.181856865,Need help with software installation,Service Desk,2 - High
|
||||
Hardware,Resolved,2023-03-29 18:40:47.611595618,2023-03-22 14:07:00,Howard Johnson,INC0000000094,system,Australia,Howard Johnson,David Loo,2023-03-29 18:40:47.611595618,Printer546 is having a paper jam issue,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-13 00:44:40.599581505,2023-03-22 20:33:00,Luke Wilson,INC0000000095,admin,India,Beth Anglin,ITIL User,2023-04-13 00:44:40.599581505,Server error on HDD2385,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-31 08:03:25.091057805,2023-03-23 07:51:00,Charlie Whitherspoon,INC0000000096,admin,Australia,Luke Wilson,David Loo,2023-03-31 08:03:25.091057805,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-30 05:18:20.748165094,2023-03-23 16:57:00,Luke Wilson,INC0000000097,employee,UK,Charlie Whitherspoon,David Loo,2023-03-30 05:18:20.748165094,Issue with workstation PC238,Hardware,3 - Moderate
|
||||
Software,Closed,2023-04-08 08:46:45.358954276,2023-03-23 22:07:00,Beth Anglin,INC0000000098,system,India,Howard Johnson,Bud Richman,2023-04-08 08:46:45.358954276,Bug detected in accounting software,Software,2 - High
|
||||
Hardware,Closed,2023-03-29 09:27:22.091188363,2023-03-26 03:15:00,Luke Wilson,INC0000000099,employee,Australia,Charlie Whitherspoon,David Loo,2023-03-29 09:27:22.091188363,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-08 15:04:33.153395278,2023-03-26 20:37:00,Fred Luddy,INC0000000100,system,Australia,Beth Anglin,ITIL User,2023-04-08 15:04:33.153395278,Printer546 in Australia is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-08 07:50:02.291054808,2023-03-27 23:22:00,Fred Luddy,INC0000000101,system,Canada,Charlie Whitherspoon,Bud Richman,2023-04-08 07:50:02.291054808,Laptop973 malfunction in Canada location,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-04 09:15:27.409492338,2023-03-29 01:49:00,Fred Luddy,INC0000000102,employee,Australia,Fred Luddy,Don Goodliffe,2023-04-04 09:15:27.409492338,Printer546 is down,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-05 05:58:43.770711476,2023-03-29 05:22:00,Luke Wilson,INC0000000103,admin,India,Fred Luddy,Don Goodliffe,2023-04-05 05:58:43.770711476,Server076 overheating issue,Hardware,2 - High
|
||||
Hardware,Resolved,2023-03-31 22:32:42.024027147,2023-03-30 00:58:00,Charlie Whitherspoon,INC0000000104,system,Australia,Charlie Whitherspoon,David Loo,2023-03-31 22:32:42.024027147,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-16 00:36:30.146701781,2023-04-01 09:01:00,Luke Wilson,INC0000000105,employee,Australia,Beth Anglin,David Loo,2023-04-16 00:36:30.146701781,Printer issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Network,Resolved,2023-04-08 23:37:33.628402771,2023-04-02 15:37:00,Howard Johnson,INC0000000106,system,Australia,Fred Luddy,Bud Richman,2023-04-08 23:37:33.628402771,Internet connectivity issue with Australian network,Network,2 - High
|
||||
Hardware,Closed,2023-04-13 19:24:58.346273013,2023-04-03 23:10:00,Howard Johnson,INC0000000107,employee,United States,Fred Luddy,ITIL User,2023-04-13 19:24:58.346273013,US Server Unresponsive,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-09 09:12:14.485573467,2023-04-04 04:43:00,Charlie Whitherspoon,INC0000000108,admin,Australia,Luke Wilson,Don Goodliffe,2023-04-09 09:12:14.485573467,Issue with Printer276 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-17 20:17:35.569877984,2023-04-05 00:45:00,Fred Luddy,INC0000000109,admin,Australia,Fred Luddy,Bud Richman,2023-04-17 20:17:35.569877984,Printer546 is not working in Australia location,Hardware,2 - High
|
||||
Network,Resolved,2023-04-13 15:50:15.123078287,2023-04-08 12:59:00,Charlie Whitherspoon,INC0000000110,employee,Australia,Howard Johnson,Don Goodliffe,2023-04-13 15:50:15.123078287,Network outage reported,Network,1 - Critical
|
||||
Hardware,Resolved,2023-04-13 02:17:59.600859991,2023-04-08 22:13:00,Charlie Whitherspoon,INC0000000111,employee,Australia,Luke Wilson,Bud Richman,2023-04-13 02:17:59.600859991,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-04-15 04:23:54.073331834,2023-04-09 10:28:00,Beth Anglin,INC0000000112,employee,India,Fred Luddy,David Loo,2023-04-15 04:23:54.073331834,Unable to connect to SQL Database,Database,3 - Moderate
|
||||
Hardware,Resolved,2023-04-17 11:40:20.915287122,2023-04-09 15:33:00,Beth Anglin,INC0000000113,admin,Australia,Fred Luddy,Don Goodliffe,2023-04-17 11:40:20.915287122,Printer error on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-04-24 09:36:05.775625483,2023-04-10 12:12:00,Beth Anglin,INC0000000114,employee,Australia,Fred Luddy,Bud Richman,2023-04-24 09:36:05.775625483,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-13 12:12:50.918205479,2023-04-11 08:43:00,Charlie Whitherspoon,INC0000000115,employee,Australia,Beth Anglin,Don Goodliffe,2023-04-13 12:12:50.918205479,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-04-22 08:16:59.883429480,2023-04-11 11:50:00,Beth Anglin,INC0000000116,admin,UK,Luke Wilson,ITIL User,2023-04-22 08:16:59.883429480,UK Printer546 malfunctioning,Hardware,2 - High
|
||||
Network,Resolved,2023-04-13 09:52:00.000000000,2023-04-12 09:52:00,Charlie Whitherspoon,INC0000000117,employee,Canada,Beth Anglin,Bud Richman,2023-04-13 09:52:00.000000000,Network outage at Canada site,Network,1 - Critical
|
||||
Network,Resolved,2023-04-13 12:13:00.000000000,2023-04-12 12:13:00,Charlie Whitherspoon,INC0000000118,employee,UK,Fred Luddy,ITIL User,2023-04-13 12:13:00.000000000,Network failure in region UK,Network,1 - Critical
|
||||
Hardware,Closed,2023-04-14 10:00:00.000000000,2023-04-13 10:00:00,Howard Johnson,INC0000000119,employee,Australia,Luke Wilson,Don Goodliffe,2023-04-14 10:00:00.000000000,Printer639 is not working properly,Hardware,1 - Critical
|
||||
Database,Closed,2023-04-25 00:40:17.584686390,2023-04-14 23:54:00,Luke Wilson,INC0000000120,system,India,Charlie Whitherspoon,Bud Richman,2023-04-25 00:40:17.584686390,Database query optimization issue at India location,Database,3 - Moderate
|
||||
Hardware,Closed,2023-04-25 04:21:38.122505056,2023-04-15 11:57:00,Howard Johnson,INC0000000121,employee,Australia,Fred Luddy,ITIL User,2023-04-25 04:21:38.122505056,Printer789 is not responding,Hardware,2 - High
|
||||
Network,Resolved,2023-04-19 16:48:00.000000000,2023-04-18 16:48:00,Charlie Whitherspoon,INC0000000122,system,UK,Fred Luddy,Don Goodliffe,2023-04-19 16:48:00.000000000,Network connection issue in UK,Network,2 - High
|
||||
Hardware,Closed,2023-05-03 23:18:07.556497402,2023-04-18 19:22:00,Howard Johnson,INC0000000123,employee,Australia,Beth Anglin,Don Goodliffe,2023-05-03 23:18:07.556497402,Printer788 is not working properly,Hardware,1 - Critical
|
||||
Network,Closed,2023-04-24 02:25:13.899200115,2023-04-18 22:20:00,Fred Luddy,INC0000000124,system,India,Howard Johnson,Bud Richman,2023-04-24 02:25:13.899200115,Network outage in India location,Network,1 - Critical
|
||||
Database,Resolved,2023-04-26 00:28:50.913657583,2023-04-19 07:07:00,Fred Luddy,INC0000000125,employee,India,Luke Wilson,ITIL User,2023-04-26 00:28:50.913657583,Database Server Outage,Database,2 - High
|
||||
Hardware,Resolved,2023-04-30 20:00:34.805177671,2023-04-19 14:41:00,Fred Luddy,INC0000000126,employee,Australia,Charlie Whitherspoon,ITIL User,2023-04-30 20:00:34.805177671,Printer556 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-04-26 13:43:55.256743773,2023-04-20 22:34:00,Beth Anglin,INC0000000127,admin,Australia,Howard Johnson,Don Goodliffe,2023-04-26 13:43:55.256743773,Printer454 failed in office,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-05 00:21:12.204265630,2023-04-21 03:46:00,Beth Anglin,INC0000000128,system,United States,Luke Wilson,Don Goodliffe,2023-05-05 00:21:12.204265630,Desktop PC not turning on,Hardware,2 - High
|
||||
Software,Closed,2023-05-06 00:19:06.845921162,2023-04-21 08:13:00,Charlie Whitherspoon,INC0000000129,employee,Australia,Luke Wilson,David Loo,2023-05-06 00:19:06.845921162,Software license renewal required,Software,4 - Low
|
||||
Hardware,Closed,2023-04-29 07:22:13.691497066,2023-04-21 17:22:00,Luke Wilson,INC0000000130,system,UK,Charlie Whitherspoon,David Loo,2023-04-29 07:22:13.691497066,Issue with UK server hardware,Hardware,2 - High
|
||||
Hardware,Closed,2023-04-26 07:15:31.647958414,2023-04-22 10:55:00,Howard Johnson,INC0000000131,system,Australia,Luke Wilson,David Loo,2023-04-26 07:15:31.647958414,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-10 03:20:31.007719853,2023-04-23 21:20:00,Howard Johnson,INC0000000132,system,Australia,Fred Luddy,David Loo,2023-05-10 03:20:31.007719853,Printer827 is not working properly in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-10 23:55:09.253391223,2023-04-27 03:25:00,Howard Johnson,INC0000000133,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-05-10 23:55:09.253391223,Faulty keyboard on workstation,Hardware,2 - High
|
||||
Network,Closed,2023-05-05 01:59:48.858836394,2023-04-27 10:45:00,Luke Wilson,INC0000000134,admin,UK,Charlie Whitherspoon,ITIL User,2023-05-05 01:59:48.858836394,Network outage in UK site,Network,1 - Critical
|
||||
Hardware,Resolved,2023-05-06 08:53:56.696181202,2023-04-28 01:24:00,Luke Wilson,INC0000000135,system,Australia,Howard Johnson,David Loo,2023-05-06 08:53:56.696181202,Printer547 isn't responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-14 08:03:47.192602517,2023-04-30 00:53:00,Charlie Whitherspoon,INC0000000136,admin,India,Howard Johnson,Don Goodliffe,2023-05-14 08:03:47.192602517,Issue with the server hardware,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-05 19:25:33.306689559,2023-05-02 14:34:00,Beth Anglin,INC0000000137,employee,Australia,Luke Wilson,David Loo,2023-05-05 19:25:33.306689559,Printer546 is broken in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-08 00:19:49.950083121,2023-05-02 15:01:00,Luke Wilson,INC0000000138,admin,Australia,Howard Johnson,Don Goodliffe,2023-05-08 00:19:49.950083121,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-15 10:38:15.815796741,2023-05-03 04:24:00,Charlie Whitherspoon,INC0000000139,admin,Australia,Beth Anglin,Don Goodliffe,2023-05-15 10:38:15.815796741,Printer472 in Australia is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-04 21:57:00.000000000,2023-05-03 21:57:00,Beth Anglin,INC0000000140,admin,UK,Howard Johnson,David Loo,2023-05-04 21:57:00.000000000,UK Desktop PC with ID: Desktop123 has stopped working,Hardware,2 - High
|
||||
Software,Closed,2023-05-14 06:26:59.910015516,2023-05-04 13:17:00,Luke Wilson,INC0000000141,system,India,Charlie Whitherspoon,Bud Richman,2023-05-14 06:26:59.910015516,Unable to install new software,Software,2 - High
|
||||
Hardware,Resolved,2023-05-12 02:21:34.844909705,2023-05-05 07:09:00,Beth Anglin,INC0000000142,employee,Australia,Beth Anglin,David Loo,2023-05-12 02:21:34.844909705,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-19 09:53:34.982040620,2023-05-05 20:05:00,Charlie Whitherspoon,INC0000000143,admin,India,Beth Anglin,David Loo,2023-05-19 09:53:34.982040620,Server failure - server123,Hardware,1 - Critical
|
||||
Database,Closed,2023-05-10 22:35:58.881919516,2023-05-05 20:26:00,Fred Luddy,INC0000000144,admin,United States,Charlie Whitherspoon,David Loo,2023-05-10 22:35:58.881919516,Unable to access the database,Database,2 - High
|
||||
Inquiry / Help,Closed,2023-05-06 22:24:00.000000000,2023-05-05 22:24:00,Charlie Whitherspoon,INC0000000145,system,Canada,Charlie Whitherspoon,Don Goodliffe,2023-05-06 22:24:00.000000000,Inquiry about help on local systems,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-05-13 14:49:23.379483573,2023-05-07 09:01:00,Fred Luddy,INC0000000146,employee,Australia,Luke Wilson,ITIL User,2023-05-13 14:49:23.379483573,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-13 13:14:46.388208661,2023-05-07 11:12:00,Howard Johnson,INC0000000147,system,Australia,Luke Wilson,Bud Richman,2023-05-13 13:14:46.388208661,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-14 12:40:40.813937606,2023-05-07 12:05:00,Beth Anglin,INC0000000148,system,Canada,Howard Johnson,ITIL User,2023-05-14 12:40:40.813937606,Issue with Dell521 Desktop PC malfunctioning,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-24 17:45:04.375124775,2023-05-12 06:51:00,Charlie Whitherspoon,INC0000000149,system,Australia,Luke Wilson,ITIL User,2023-05-24 17:45:04.375124775,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-05-19 04:22:50.443252112,2023-05-12 11:38:00,Beth Anglin,INC0000000150,admin,Australia,Beth Anglin,David Loo,2023-05-19 04:22:50.443252112,Printer546 is not printing,Hardware,1 - Critical
|
||||
Software,Resolved,2023-05-19 01:48:03.565852983,2023-05-13 02:54:00,Luke Wilson,INC0000000151,employee,India,Howard Johnson,Don Goodliffe,2023-05-19 01:48:03.565852983,Software update failed on the server,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-05-24 09:29:18.509870284,2023-05-13 10:11:00,Fred Luddy,INC0000000152,admin,Australia,Howard Johnson,Don Goodliffe,2023-05-24 09:29:18.509870284,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-05-19 07:25:36.115649042,2023-05-14 11:45:00,Fred Luddy,INC0000000153,admin,Australia,Luke Wilson,Don Goodliffe,2023-05-19 07:25:36.115649042,Printer546 has stopped working in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-05-18 20:30:00.000000000,2023-05-17 20:30:00,Fred Luddy,INC0000000154,employee,Australia,Howard Johnson,David Loo,2023-05-18 20:30:00.000000000,Printer876 is not printing,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-27 00:02:45.297437201,2023-05-18 07:29:00,Luke Wilson,INC0000000155,employee,Australia,Fred Luddy,Bud Richman,2023-05-27 00:02:45.297437201,Printer546 malfunction in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-29 16:00:46.480174225,2023-05-18 17:29:00,Fred Luddy,INC0000000156,system,India,Fred Luddy,Don Goodliffe,2023-05-29 16:00:46.480174225,Issue with Dell Inspiron 15,Hardware,2 - High
|
||||
Database,Closed,2023-06-05 23:47:52.328722644,2023-05-18 22:32:00,Howard Johnson,INC0000000157,employee,India,Fred Luddy,ITIL User,2023-06-05 23:47:52.328722644,SQL error on Production Server,Database,2 - High
|
||||
Hardware,Resolved,2023-06-03 13:13:53.896117331,2023-05-19 04:05:00,Charlie Whitherspoon,INC0000000158,admin,Australia,Howard Johnson,Bud Richman,2023-06-03 13:13:53.896117331,Printer546 encountered an issue,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-24 07:52:48.690310999,2023-05-20 06:12:00,Beth Anglin,INC0000000159,system,Australia,Charlie Whitherspoon,David Loo,2023-05-24 07:52:48.690310999,Printer issue with Printer546 in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-05-31 03:23:19.484544434,2023-05-21 05:49:00,Howard Johnson,INC0000000160,employee,India,Charlie Whitherspoon,ITIL User,2023-05-31 03:23:19.484544434,Network outage in India region,Network,2 - High
|
||||
Hardware,Closed,2023-05-22 23:24:00.000000000,2023-05-21 23:24:00,Howard Johnson,INC0000000161,system,India,Beth Anglin,ITIL User,2023-05-22 23:24:00.000000000,Server failure - static issue,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-31 14:07:51.086048950,2023-05-22 01:22:00,Beth Anglin,INC0000000162,system,Australia,Fred Luddy,Bud Richman,2023-05-31 14:07:51.086048950,Printer546 malfunction in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-07 16:18:08.061177566,2023-05-24 02:06:00,Fred Luddy,INC0000000163,admin,United States,Howard Johnson,Bud Richman,2023-06-07 16:18:08.061177566,Issue with processing unit in desktop PC,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-05-27 02:04:45.048501853,2023-05-24 03:55:00,Luke Wilson,INC0000000164,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-05-27 02:04:45.048501853,Issue with Printer457 in Australia office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-05-30 02:59:49.369927031,2023-05-26 08:08:00,Fred Luddy,INC0000000165,employee,Australia,Luke Wilson,David Loo,2023-05-30 02:59:49.369927031,Printer241 issue in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-30 11:21:04.259433606,2023-05-26 13:20:00,Fred Luddy,INC0000000166,system,Australia,Charlie Whitherspoon,David Loo,2023-05-30 11:21:04.259433606,Printer546 failure in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-05-28 08:38:00.000000000,2023-05-27 08:38:00,Charlie Whitherspoon,INC0000000167,admin,India,Luke Wilson,David Loo,2023-05-28 08:38:00.000000000,Router problem with RTR546 in India,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-01 13:53:33.745863862,2023-05-27 21:00:00,Fred Luddy,INC0000000168,system,Australia,Charlie Whitherspoon,ITIL User,2023-06-01 13:53:33.745863862,Printer error on Printer643,Hardware,2 - High
|
||||
Network,Resolved,2023-05-29 13:25:00.000000000,2023-05-28 13:25:00,Luke Wilson,INC0000000169,system,India,Howard Johnson,Don Goodliffe,2023-05-29 13:25:00.000000000,Network outage in Mumbai region,Network,1 - Critical
|
||||
Software,Resolved,2023-06-07 06:19:03.182476115,2023-05-29 04:20:00,Beth Anglin,INC0000000170,admin,Canada,Beth Anglin,ITIL User,2023-06-07 06:19:03.182476115,Unable to install new software update,Software,2 - High
|
||||
Software,Resolved,2023-06-07 15:04:30.359478777,2023-05-30 09:43:00,Luke Wilson,INC0000000171,system,Australia,Fred Luddy,David Loo,2023-06-07 15:04:30.359478777,Software update required,Software,2 - High
|
||||
Database,Resolved,2023-06-04 09:17:41.184530679,2023-05-30 09:56:00,Luke Wilson,INC0000000172,admin,Canada,Howard Johnson,Don Goodliffe,2023-06-04 09:17:41.184530679,Issue with performance of database DB202,Database,2 - High
|
||||
Hardware,Closed,2023-06-02 00:47:00.000000000,2023-06-01 00:47:00,Charlie Whitherspoon,INC0000000173,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-06-02 00:47:00.000000000,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-13 22:57:17.038108358,2023-06-01 13:13:00,Luke Wilson,INC0000000174,system,Canada,Charlie Whitherspoon,ITIL User,2023-06-13 22:57:17.038108358,Failed Hard Disk on Workstation122,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-11 09:48:35.368342810,2023-06-02 12:28:00,Luke Wilson,INC0000000175,admin,Australia,Beth Anglin,Bud Richman,2023-06-11 09:48:35.368342810,Printer fail at printer547,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-11 20:25:35.094482408,2023-06-02 22:47:00,Howard Johnson,INC0000000176,admin,UK,Charlie Whitherspoon,ITIL User,2023-06-11 20:25:35.094482408,"Laptop malfunctioning, requires immediate attention",Hardware,2 - High
|
||||
Hardware,Closed,2023-06-17 06:06:14.854314828,2023-06-03 10:45:00,Luke Wilson,INC0000000177,system,Canada,Beth Anglin,Bud Richman,2023-06-17 06:06:14.854314828,Hardware malfunction for laptop - Canada location,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-06 12:59:19.008350345,2023-06-03 12:39:00,Luke Wilson,INC0000000178,employee,Canada,Fred Luddy,ITIL User,2023-06-06 12:59:19.008350345,Issue with the server hardware,Hardware,2 - High
|
||||
Software,Closed,2023-06-05 15:09:00.000000000,2023-06-04 15:09:00,Howard Johnson,INC0000000179,system,Canada,Howard Johnson,Don Goodliffe,2023-06-05 15:09:00.000000000,An application is consistently crashing,Software,2 - High
|
||||
Hardware,Resolved,2023-06-09 23:10:07.618999909,2023-06-04 21:23:00,Howard Johnson,INC0000000180,employee,Australia,Charlie Whitherspoon,David Loo,2023-06-09 23:10:07.618999909,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-06 08:20:00.000000000,2023-06-05 08:20:00,Luke Wilson,INC0000000181,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-06-06 08:20:00.000000000,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-19 06:59:02.120925069,2023-06-06 09:03:00,Howard Johnson,INC0000000182,employee,India,Fred Luddy,David Loo,2023-06-19 06:59:02.120925069,Server malfunction,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-07 21:23:00.000000000,2023-06-06 21:23:00,Luke Wilson,INC0000000183,employee,Australia,Beth Anglin,Don Goodliffe,2023-06-07 21:23:00.000000000,Printer567 is not working in Brisbane office,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 13:34:11.629362629,2023-06-07 02:47:00,Howard Johnson,INC0000000184,system,Australia,Fred Luddy,David Loo,2023-06-30 13:34:11.629362629,Printer546 is not working in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-14 11:45:24.784548040,2023-06-07 15:24:00,Charlie Whitherspoon,INC0000000185,employee,United States,Howard Johnson,David Loo,2023-06-14 11:45:24.784548040,Monitor display not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-08 17:00:00.000000000,2023-06-07 17:00:00,Beth Anglin,INC0000000186,system,Australia,Charlie Whitherspoon,David Loo,2023-06-08 17:00:00.000000000,Printer546 - Printer not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-06-20 19:52:27.802682144,2023-06-08 18:44:00,Charlie Whitherspoon,INC0000000187,employee,Australia,Beth Anglin,David Loo,2023-06-20 19:52:27.802682144,Printer123 is not working properly in Australia location,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-06-13 20:13:50.263024628,2023-06-08 22:05:00,Howard Johnson,INC0000000188,employee,Australia,Luke Wilson,Don Goodliffe,2023-06-13 20:13:50.263024628,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-24 09:17:21.801903137,2023-06-09 08:53:00,Luke Wilson,INC0000000189,system,Australia,Luke Wilson,ITIL User,2023-06-24 09:17:21.801903137,Printer error in Printer546,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-15 22:13:18.416949743,2023-06-10 17:52:00,Beth Anglin,INC0000000190,admin,Australia,Luke Wilson,ITIL User,2023-06-15 22:13:18.416949743,Printer error: Paper jam on Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-12 02:12:20.844915289,2023-06-10 20:44:00,Beth Anglin,INC0000000191,system,Australia,Luke Wilson,Bud Richman,2023-06-12 02:12:20.844915289,Printer546 is not printing in the Melbourne office,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-06-18 08:09:47.068608027,2023-06-11 07:00:00,Luke Wilson,INC0000000192,admin,Australia,Luke Wilson,Don Goodliffe,2023-06-18 08:09:47.068608027,Issue with Printer738 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-25 12:04:04.032337887,2023-06-14 04:06:00,Luke Wilson,INC0000000193,system,Australia,Charlie Whitherspoon,Bud Richman,2023-06-25 12:04:04.032337887,Printer546 is malfunctioning,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-06-29 12:44:20.753397452,2023-06-15 07:56:00,Luke Wilson,INC0000000194,employee,United States,Beth Anglin,David Loo,2023-06-29 12:44:20.753397452,Need help with application usage,Service Desk,3 - Moderate
|
||||
Network,Closed,2023-06-29 19:11:43.933822843,2023-06-19 10:41:00,Howard Johnson,INC0000000195,admin,Australia,Howard Johnson,David Loo,2023-06-29 19:11:43.933822843,Connection issues with network in Australia,Network,2 - High
|
||||
Software,Closed,2023-06-28 14:05:28.538482547,2023-06-19 11:21:00,Charlie Whitherspoon,INC0000000196,admin,United States,Fred Luddy,ITIL User,2023-06-28 14:05:28.538482547,Software update failure,Software,2 - High
|
||||
Hardware,Closed,2023-06-25 09:59:55.161658018,2023-06-19 12:22:00,Howard Johnson,INC0000000197,admin,Canada,Beth Anglin,David Loo,2023-06-25 09:59:55.161658018,Server hardware malfunction on SCSI Canada1024,Hardware,2 - High
|
||||
Network,Closed,2023-06-22 02:33:39.410009617,2023-06-19 13:59:00,Fred Luddy,INC0000000198,employee,Canada,Luke Wilson,Don Goodliffe,2023-06-22 02:33:39.410009617,Slow network connection in office,Network,2 - High
|
||||
Hardware,Closed,2023-07-01 10:42:22.374438866,2023-06-21 19:04:00,Beth Anglin,INC0000000199,employee,India,Beth Anglin,David Loo,2023-07-01 10:42:22.374438866,Issues detected with server123,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-07-06 13:13:24.843387226,2023-06-22 17:34:00,Beth Anglin,INC0000000200,employee,UK,Fred Luddy,Bud Richman,2023-07-06 13:13:24.843387226,Issue with the sound driver on workstation PC8,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-06 13:08:33.074641515,2023-06-23 12:47:00,Luke Wilson,INC0000000201,system,India,Beth Anglin,Bud Richman,2023-07-06 13:08:33.074641515,Problem with Cooling Fan,Hardware,2 - High
|
||||
Hardware,Resolved,2023-06-29 22:17:23.746230748,2023-06-23 20:11:00,Howard Johnson,INC0000000202,system,Canada,Fred Luddy,ITIL User,2023-06-29 22:17:23.746230748,Hard drive failure on office desktop,Hardware,2 - High
|
||||
Database,Resolved,2023-07-06 00:00:59.012006127,2023-06-25 04:50:00,Charlie Whitherspoon,INC0000000203,employee,UK,Charlie Whitherspoon,David Loo,2023-07-06 00:00:59.012006127,Unable to connect to SQL Database,Database,2 - High
|
||||
Database,Closed,2023-07-01 09:46:55.866723604,2023-06-25 10:31:00,Howard Johnson,INC0000000204,admin,Australia,Luke Wilson,David Loo,2023-07-01 09:46:55.866723604,Database server error 550,Database,2 - High
|
||||
Hardware,Resolved,2023-07-06 12:23:47.840976362,2023-06-25 22:45:00,Howard Johnson,INC0000000205,system,Australia,Howard Johnson,Don Goodliffe,2023-07-06 12:23:47.840976362,Printer348 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 06:01:54.007909417,2023-06-26 06:56:00,Fred Luddy,INC0000000206,employee,Australia,Charlie Whitherspoon,David Loo,2023-06-30 06:01:54.007909417,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-09 14:14:29.904659016,2023-06-26 08:23:00,Charlie Whitherspoon,INC0000000207,admin,United States,Fred Luddy,ITIL User,2023-07-09 14:14:29.904659016,PC1023 is not starting,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-07-06 07:29:00.832219981,2023-06-26 17:38:00,Howard Johnson,INC0000000208,admin,Australia,Fred Luddy,Bud Richman,2023-07-06 07:29:00.832219981,Printer error at Printer848,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-07-09 20:00:30.308403141,2023-06-27 10:20:00,Howard Johnson,INC0000000209,system,Australia,Luke Wilson,David Loo,2023-07-09 20:00:30.308403141,Printer546 in Sydney office is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-06 03:31:13.838619495,2023-06-27 21:41:00,Fred Luddy,INC0000000210,admin,UK,Howard Johnson,Don Goodliffe,2023-07-06 03:31:13.838619495,Issue with server SR654,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-12 18:45:07.705046349,2023-06-28 11:02:00,Fred Luddy,INC0000000211,admin,Australia,Fred Luddy,David Loo,2023-07-12 18:45:07.705046349,Printer546 issue in Sydney office,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-06 00:45:36.251942561,2023-06-28 14:35:00,Beth Anglin,INC0000000212,system,India,Howard Johnson,David Loo,2023-07-06 00:45:36.251942561,Terminal343 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-06-30 23:29:55.851304419,2023-06-29 19:01:00,Charlie Whitherspoon,INC0000000213,system,Australia,Luke Wilson,David Loo,2023-06-30 23:29:55.851304419,Printer error at Printer679,Hardware,3 - Moderate
|
||||
Network,Closed,2023-07-10 23:00:15.709745176,2023-07-02 07:35:00,Beth Anglin,INC0000000214,system,India,Luke Wilson,Bud Richman,2023-07-10 23:00:15.709745176,Unable to establish VPN connection,Network,2 - High
|
||||
Hardware,Closed,2023-07-14 08:23:51.080019979,2023-07-03 06:45:00,Charlie Whitherspoon,INC0000000215,system,Australia,Charlie Whitherspoon,ITIL User,2023-07-14 08:23:51.080019979,Printer546 is not working!,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-07-15 22:29:05.785588895,2023-07-04 04:13:00,Luke Wilson,INC0000000216,system,UK,Charlie Whitherspoon,David Loo,2023-07-15 22:29:05.785588895,Inquiry regarding help with account access,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-07-14 06:35:05.209399792,2023-07-04 13:46:00,Fred Luddy,INC0000000217,admin,Australia,Luke Wilson,ITIL User,2023-07-14 06:35:05.209399792,Printer fail - PrinterID::Printer546,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-07-21 18:09:17.803746956,2023-07-07 04:36:00,Charlie Whitherspoon,INC0000000218,employee,India,Beth Anglin,Bud Richman,2023-07-21 18:09:17.803746956,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Inquiry / Help,Resolved,2023-07-08 04:48:00.000000000,2023-07-07 04:48:00,Beth Anglin,INC0000000219,system,UK,Howard Johnson,David Loo,2023-07-08 04:48:00.000000000,Assistance needed with UK enquiry system,Service Desk,3 - Moderate
|
||||
Network,Closed,2023-07-11 23:34:29.390060680,2023-07-07 05:58:00,Howard Johnson,INC0000000220,employee,UK,Howard Johnson,David Loo,2023-07-11 23:34:29.390060680,Internet connectivity issue in UK office,Network,2 - High
|
||||
Hardware,Resolved,2023-07-13 16:19:33.649785697,2023-07-07 20:52:00,Charlie Whitherspoon,INC0000000221,employee,Canada,Beth Anglin,Bud Richman,2023-07-13 16:19:33.649785697,Server malfunction in Canada,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-07-23 19:05:17.533035942,2023-07-08 00:31:00,Luke Wilson,INC0000000222,employee,Australia,Charlie Whitherspoon,ITIL User,2023-07-23 19:05:17.533035942,Printer malfunction detected on Printer546,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-25 03:32:18.462401146,2023-07-09 03:39:00,Beth Anglin,INC0000000223,system,India,Howard Johnson,Bud Richman,2023-07-25 03:32:18.462401146,Computer not starting,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-26 17:51:52.767336231,2023-07-11 16:02:00,Luke Wilson,INC0000000224,admin,India,Beth Anglin,David Loo,2023-07-26 17:51:52.767336231,Laptop malfunction with ID233,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-20 02:37:10.813279462,2023-07-11 18:42:00,Howard Johnson,INC0000000225,employee,UK,Howard Johnson,Bud Richman,2023-07-20 02:37:10.813279462,Phone681 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-27 12:30:15.368139102,2023-07-12 00:27:00,Charlie Whitherspoon,INC0000000226,admin,Australia,Howard Johnson,Bud Richman,2023-07-27 12:30:15.368139102,Printer422 is malfunctioning in Australia,Hardware,2 - High
|
||||
Software,Closed,2023-07-19 14:54:49.403388921,2023-07-12 03:22:00,Luke Wilson,INC0000000227,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-19 14:54:49.403388921,Error message on Software ABC,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-07-14 21:15:31.584390518,2023-07-12 05:50:00,Fred Luddy,INC0000000228,system,Australia,Fred Luddy,Don Goodliffe,2023-07-14 21:15:31.584390518,Printer546 is not working,Hardware,1 - Critical
|
||||
Software,Resolved,2023-07-28 21:34:00.908307924,2023-07-14 21:27:00,Howard Johnson,INC0000000229,system,UK,Beth Anglin,ITIL User,2023-07-28 21:34:00.908307924,Slowness in running application XYZ,Software,3 - Moderate
|
||||
Hardware,Resolved,2023-07-20 09:47:52.908236069,2023-07-15 12:17:00,Fred Luddy,INC0000000230,admin,Australia,Beth Anglin,ITIL User,2023-07-20 09:47:52.908236069,Issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-07-25 03:53:49.978687958,2023-07-15 14:09:00,Fred Luddy,INC0000000231,admin,Australia,Howard Johnson,Bud Richman,2023-07-25 03:53:49.978687958,Printer546 is not working properly.,Hardware,2 - High
|
||||
Hardware,Resolved,2023-07-22 05:03:13.822074451,2023-07-16 10:58:00,Beth Anglin,INC0000000232,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-22 05:03:13.822074451,Printer783 is not printing,Hardware,2 - High
|
||||
Hardware,Closed,2023-07-26 01:50:52.068385147,2023-07-19 12:03:00,Luke Wilson,INC0000000233,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-07-26 01:50:52.068385147,Printer786 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-01 00:45:22.754376187,2023-07-20 12:12:00,Fred Luddy,INC0000000234,system,United States,Luke Wilson,Bud Richman,2023-08-01 00:45:22.754376187,Inquiry about missing functionalities,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-07-23 16:38:46.547163481,2023-07-21 07:12:00,Howard Johnson,INC0000000235,admin,UK,Charlie Whitherspoon,Bud Richman,2023-07-23 16:38:46.547163481,Problem with office PC,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-07-25 23:13:55.734880101,2023-07-22 04:13:00,Charlie Whitherspoon,INC0000000236,employee,Australia,Beth Anglin,Don Goodliffe,2023-07-25 23:13:55.734880101,Printer546 - Not Printing is causing issues,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-07-30 12:07:08.997531852,2023-07-22 16:29:00,Fred Luddy,INC0000000237,admin,United States,Charlie Whitherspoon,Bud Richman,2023-07-30 12:07:08.997531852,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Inquiry / Help,Closed,2023-08-09 03:19:49.048508681,2023-07-22 22:39:00,Howard Johnson,INC0000000238,employee,United States,Beth Anglin,Bud Richman,2023-08-09 03:19:49.048508681,Need help with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-04 04:46:10.581661057,2023-07-22 23:48:00,Howard Johnson,INC0000000239,admin,Australia,Beth Anglin,Bud Richman,2023-08-04 04:46:10.581661057,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-07-31 00:33:13.437296119,2023-07-23 08:50:00,Beth Anglin,INC0000000240,admin,Australia,Howard Johnson,Don Goodliffe,2023-07-31 00:33:13.437296119,Network router behaving erratically,Network,3 - Moderate
|
||||
Network,Resolved,2023-07-25 09:09:00.000000000,2023-07-24 09:09:00,Howard Johnson,INC0000000241,admin,India,Luke Wilson,Don Goodliffe,2023-07-25 09:09:00.000000000,Slow internet connectivity issues,Network,3 - Moderate
|
||||
Network,Resolved,2023-07-31 04:33:45.303280610,2023-07-24 09:13:00,Beth Anglin,INC0000000242,admin,UK,Charlie Whitherspoon,Don Goodliffe,2023-07-31 04:33:45.303280610,Unable to connect to VPN,Network,2 - High
|
||||
Hardware,Resolved,2023-08-11 14:17:08.329647264,2023-07-25 08:08:00,Beth Anglin,INC0000000243,system,Canada,Fred Luddy,David Loo,2023-08-11 14:17:08.329647264,Motherboard failure on company desktop,Hardware,2 - High
|
||||
Software,Closed,2023-08-02 12:16:09.558065832,2023-07-25 20:00:00,Howard Johnson,INC0000000244,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-02 12:16:09.558065832,Error 404 on Software789,Software,2 - High
|
||||
Inquiry / Help,Closed,2023-08-12 18:27:47.789421821,2023-07-26 06:53:00,Charlie Whitherspoon,INC0000000245,admin,Canada,Charlie Whitherspoon,Bud Richman,2023-08-12 18:27:47.789421821,Need assistance with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-02 04:32:04.560171158,2023-07-26 17:09:00,Beth Anglin,INC0000000246,system,Australia,Howard Johnson,David Loo,2023-08-02 04:32:04.560171158,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 06:13:36.125124469,2023-07-27 04:40:00,Howard Johnson,INC0000000247,system,Australia,Luke Wilson,Don Goodliffe,2023-08-07 06:13:36.125124469,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-08 02:22:19.738512734,2023-07-27 08:18:00,Charlie Whitherspoon,INC0000000248,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-08-08 02:22:19.738512734,UK laptop malfunctioning,Hardware,2 - High
|
||||
Network,Closed,2023-08-08 20:25:25.735379947,2023-07-27 19:21:00,Fred Luddy,INC0000000249,system,United States,Beth Anglin,Bud Richman,2023-08-08 20:25:25.735379947,Network outage in United States office,Network,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-04 22:43:36.252615961,2023-07-28 19:29:00,Charlie Whitherspoon,INC0000000250,admin,Canada,Luke Wilson,ITIL User,2023-08-04 22:43:36.252615961,Need assistance with VPN setup,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-07 18:20:23.668968040,2023-07-29 10:15:00,Luke Wilson,INC0000000251,employee,Australia,Luke Wilson,Don Goodliffe,2023-08-07 18:20:23.668968040,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-02 05:21:25.991706511,2023-07-29 11:39:00,Charlie Whitherspoon,INC0000000252,employee,Australia,Howard Johnson,ITIL User,2023-08-02 05:21:25.991706511,Printer error on Printer546,Hardware,2 - High
|
||||
Software,Closed,2023-08-03 13:35:26.483807424,2023-07-30 09:49:00,Beth Anglin,INC0000000253,admin,Australia,Beth Anglin,David Loo,2023-08-03 13:35:26.483807424,MySQL database connection error on server AU120,Software,2 - High
|
||||
Software,Closed,2023-08-11 16:02:37.684405305,2023-07-30 09:52:00,Fred Luddy,INC0000000254,employee,Australia,Charlie Whitherspoon,ITIL User,2023-08-11 16:02:37.684405305,Unable to update software on local machine,Software,2 - High
|
||||
Hardware,Closed,2023-08-13 06:44:24.424288482,2023-07-30 17:08:00,Charlie Whitherspoon,INC0000000255,employee,UK,Beth Anglin,ITIL User,2023-08-13 06:44:24.424288482,Broken server needs replacement,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-02 05:44:00.000000000,2023-08-01 05:44:00,Fred Luddy,INC0000000256,employee,Australia,Beth Anglin,ITIL User,2023-08-02 05:44:00.000000000,Printer546 is not functioning correctly,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 18:21:44.544015394,2023-08-01 11:34:00,Beth Anglin,INC0000000257,employee,Australia,Luke Wilson,David Loo,2023-08-07 18:21:44.544015394,Printer322 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-10 22:01:38.300764703,2023-08-01 13:22:00,Beth Anglin,INC0000000258,employee,Australia,Luke Wilson,David Loo,2023-08-10 22:01:38.300764703,Printer420 is not responding,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-08-09 07:59:01.326042131,2023-08-02 07:41:00,Luke Wilson,INC0000000259,admin,Australia,Howard Johnson,Bud Richman,2023-08-09 07:59:01.326042131,Printer327 has stopped working in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-05 08:06:09.262346306,2023-08-02 14:46:00,Luke Wilson,INC0000000260,employee,India,Charlie Whitherspoon,Don Goodliffe,2023-08-05 08:06:09.262346306,Monitor display intermittent failure,Hardware,2 - High
|
||||
Network,Closed,2023-08-04 08:39:00.000000000,2023-08-03 08:39:00,Fred Luddy,INC0000000261,employee,India,Howard Johnson,Don Goodliffe,2023-08-04 08:39:00.000000000,Unable to connect to server,Network,2 - High
|
||||
Hardware,Resolved,2023-08-17 04:45:43.185739101,2023-08-03 16:41:00,Beth Anglin,INC0000000262,employee,Australia,Beth Anglin,Don Goodliffe,2023-08-17 04:45:43.185739101,Printer546 is not printing in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-04 18:56:00.000000000,2023-08-03 18:56:00,Fred Luddy,INC0000000263,employee,Australia,Luke Wilson,Don Goodliffe,2023-08-04 18:56:00.000000000,Printer789 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-14 09:36:00.295254938,2023-08-05 07:39:00,Howard Johnson,INC0000000264,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-14 09:36:00.295254938,Printer error at Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-07 09:44:00.000000000,2023-08-06 09:44:00,Beth Anglin,INC0000000265,employee,Australia,Howard Johnson,Bud Richman,2023-08-07 09:44:00.000000000,Printer546 in Australia location has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-15 14:03:57.099952165,2023-08-07 02:37:00,Howard Johnson,INC0000000266,employee,Australia,Charlie Whitherspoon,ITIL User,2023-08-15 14:03:57.099952165,Printer467 is out of service!,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-15 21:18:27.557222760,2023-08-08 09:29:00,Charlie Whitherspoon,INC0000000267,admin,Australia,Howard Johnson,Don Goodliffe,2023-08-15 21:18:27.557222760,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-08-28 16:17:39.682367202,2023-08-09 04:10:00,Charlie Whitherspoon,INC0000000268,admin,Australia,Howard Johnson,Don Goodliffe,2023-08-28 16:17:39.682367202,Printer678 issue in Australia,Hardware,2 - High
|
||||
Network,Closed,2023-08-10 06:30:11.927271898,2023-08-09 04:13:00,Charlie Whitherspoon,INC0000000269,admin,United States,Howard Johnson,ITIL User,2023-08-10 06:30:11.927271898,Unable to connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-08-19 00:17:36.874122878,2023-08-09 17:08:00,Luke Wilson,INC0000000270,system,Australia,Fred Luddy,Bud Richman,2023-08-19 00:17:36.874122878,Printer789 is not responding,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-20 02:50:00.481014067,2023-08-10 08:09:00,Fred Luddy,INC0000000271,employee,UK,Fred Luddy,ITIL User,2023-08-20 02:50:00.481014067,Need assistance with IT inquiry,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-08-24 03:39:08.172397201,2023-08-11 04:15:00,Luke Wilson,INC0000000272,employee,Australia,Fred Luddy,ITIL User,2023-08-24 03:39:08.172397201,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Software,Closed,2023-08-13 06:41:18.526534971,2023-08-11 09:04:00,Charlie Whitherspoon,INC0000000273,admin,UK,Beth Anglin,David Loo,2023-08-13 06:41:18.526534971,Software Issue: Error while loading application on VM,Software,3 - Moderate
|
||||
Hardware,Closed,2023-08-18 23:36:22.191419882,2023-08-12 03:28:00,Luke Wilson,INC0000000274,system,Australia,Charlie Whitherspoon,David Loo,2023-08-18 23:36:22.191419882,Printer546 is not working,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-08-13 15:36:00.000000000,2023-08-12 15:36:00,Howard Johnson,INC0000000275,admin,Australia,Fred Luddy,Bud Richman,2023-08-13 15:36:00.000000000,Printer546 is not functioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-19 05:22:39.220366354,2023-08-13 08:04:00,Luke Wilson,INC0000000276,system,Australia,Beth Anglin,Don Goodliffe,2023-08-19 05:22:39.220366354,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-08-17 17:26:24.730681330,2023-08-14 09:58:00,Howard Johnson,INC0000000277,system,Australia,Beth Anglin,ITIL User,2023-08-17 17:26:24.730681330,Printer546 Error in Australia,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-08-21 08:48:34.847604103,2023-08-15 20:03:00,Beth Anglin,INC0000000278,employee,Australia,Fred Luddy,ITIL User,2023-08-21 08:48:34.847604103,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-22 04:24:28.410211673,2023-08-16 19:14:00,Fred Luddy,INC0000000279,system,Australia,Beth Anglin,Don Goodliffe,2023-08-22 04:24:28.410211673,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-25 09:49:36.214757254,2023-08-17 11:38:00,Luke Wilson,INC0000000280,admin,Australia,Charlie Whitherspoon,David Loo,2023-08-25 09:49:36.214757254,Printer issue with Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-08-19 10:57:00.000000000,2023-08-18 10:57:00,Fred Luddy,INC0000000281,admin,Australia,Charlie Whitherspoon,ITIL User,2023-08-19 10:57:00.000000000,Issue with Printer546,Hardware,1 - Critical
|
||||
Database,Closed,2023-08-23 19:40:27.266944172,2023-08-19 12:57:00,Howard Johnson,INC0000000282,system,UK,Howard Johnson,Bud Richman,2023-08-23 19:40:27.266944172,Connection issue with UK_DB47 Database,Database,2 - High
|
||||
Hardware,Closed,2023-08-24 00:59:37.177124394,2023-08-20 08:09:00,Charlie Whitherspoon,INC0000000283,employee,Australia,Howard Johnson,David Loo,2023-08-24 00:59:37.177124394,Printer678 malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-08-26 09:29:01.912064757,2023-08-20 08:38:00,Fred Luddy,INC0000000284,employee,Australia,Beth Anglin,ITIL User,2023-08-26 09:29:01.912064757,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-08-24 03:28:09.603360173,2023-08-20 18:16:00,Luke Wilson,INC0000000285,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-08-24 03:28:09.603360173,Printer546 is failing,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-08-26 15:36:56.981753690,2023-08-21 07:17:00,Howard Johnson,INC0000000286,admin,India,Fred Luddy,Bud Richman,2023-08-26 15:36:56.981753690,Need help with software installation,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-09-05 02:07:43.113682721,2023-08-21 07:38:00,Howard Johnson,INC0000000287,admin,United States,Howard Johnson,David Loo,2023-09-05 02:07:43.113682721,Hardware issue with the CPU overheating,Hardware,1 - Critical
|
||||
Database,Resolved,2023-08-22 19:11:00.000000000,2023-08-21 19:11:00,Charlie Whitherspoon,INC0000000288,employee,UK,Beth Anglin,David Loo,2023-08-22 19:11:00.000000000,Error detected in Database system,Database,1 - Critical
|
||||
Network,Closed,2023-08-26 16:09:36.942939516,2023-08-22 03:19:00,Fred Luddy,INC0000000289,admin,Australia,Beth Anglin,Bud Richman,2023-08-26 16:09:36.942939516,"Network connection issue, Australia",Network,2 - High
|
||||
Hardware,Closed,2023-08-25 07:22:00.000000000,2023-08-24 07:22:00,Luke Wilson,INC0000000290,admin,Australia,Charlie Whitherspoon,David Loo,2023-08-25 07:22:00.000000000,Printer546 is offline,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-03 18:58:33.803118210,2023-08-25 12:10:00,Fred Luddy,INC0000000291,admin,Australia,Howard Johnson,David Loo,2023-09-03 18:58:33.803118210,Printer489 has a paper jam,Hardware,2 - High
|
||||
Network,Closed,2023-08-30 14:14:08.283969923,2023-08-25 22:41:00,Charlie Whitherspoon,INC0000000292,employee,UK,Luke Wilson,Bud Richman,2023-08-30 14:14:08.283969923,Losing connectivity frequently,Network,2 - High
|
||||
Database,Resolved,2023-08-27 03:03:00.000000000,2023-08-26 03:03:00,Beth Anglin,INC0000000293,admin,UK,Luke Wilson,ITIL User,2023-08-27 03:03:00.000000000,Issue with SQL Server783,Database,2 - High
|
||||
Database,Closed,2023-08-30 13:49:54.648995923,2023-08-27 21:14:00,Fred Luddy,INC0000000294,system,Canada,Fred Luddy,Don Goodliffe,2023-08-30 13:49:54.648995923,Unable to connect to Database DB4434,Database,2 - High
|
||||
Database,Closed,2023-09-01 14:19:29.165134519,2023-08-28 16:06:00,Fred Luddy,INC0000000295,employee,Australia,Luke Wilson,ITIL User,2023-09-01 14:19:29.165134519,Database error on SQL server,Database,2 - High
|
||||
Hardware,Closed,2023-08-31 15:44:00.000000000,2023-08-30 15:44:00,Fred Luddy,INC0000000296,system,Australia,Howard Johnson,ITIL User,2023-08-31 15:44:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-07 23:02:26.238518168,2023-08-31 14:06:00,Luke Wilson,INC0000000297,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-07 23:02:26.238518168,Printer392 is constantly jamming,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-07 09:17:08.466232846,2023-09-02 01:15:00,Beth Anglin,INC0000000298,employee,Australia,Fred Luddy,ITIL User,2023-09-07 09:17:08.466232846,Printer786 malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-03 02:19:00.000000000,2023-09-02 02:19:00,Howard Johnson,INC0000000299,employee,India,Luke Wilson,David Loo,2023-09-03 02:19:00.000000000,Issue with motherboard in workstation DSK789,Hardware,2 - High
|
||||
Software,Resolved,2023-09-11 18:47:05.423433239,2023-09-02 03:20:00,Luke Wilson,INC0000000300,system,UK,Fred Luddy,Bud Richman,2023-09-11 18:47:05.423433239,Error with billing software,Software,2 - High
|
||||
Hardware,Closed,2023-09-14 16:03:56.241021820,2023-09-03 07:56:00,Charlie Whitherspoon,INC0000000301,system,Australia,Howard Johnson,ITIL User,2023-09-14 16:03:56.241021820,Printer567 is not responding,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 05:14:51.293532720,2023-09-03 12:21:00,Charlie Whitherspoon,INC0000000302,employee,Australia,Fred Luddy,Bud Richman,2023-09-13 05:14:51.293532720,Printer546 - printing issue in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 13:44:32.848563603,2023-09-03 15:48:00,Fred Luddy,INC0000000303,system,India,Howard Johnson,David Loo,2023-09-13 13:44:32.848563603,Bad sector on Hard Disk in desktop model ID E0395,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-09-16 03:46:06.609216047,2023-09-04 16:00:00,Fred Luddy,INC0000000304,admin,Australia,Luke Wilson,Bud Richman,2023-09-16 03:46:06.609216047,Printer failure on Printer546,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-09-15 01:07:41.823641770,2023-09-04 18:36:00,Luke Wilson,INC0000000305,system,UK,Charlie Whitherspoon,ITIL User,2023-09-15 01:07:41.823641770,Issue with desktop workstation 3F45,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-13 23:47:44.874072603,2023-09-06 12:24:00,Luke Wilson,INC0000000306,admin,United States,Charlie Whitherspoon,Don Goodliffe,2023-09-13 23:47:44.874072603,Server123 has crashed,Hardware,1 - Critical
|
||||
Network,Resolved,2023-09-13 04:40:34.280556892,2023-09-07 03:40:00,Howard Johnson,INC0000000307,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-13 04:40:34.280556892,Network outage in Australia,Network,1 - Critical
|
||||
Database,Resolved,2023-09-20 04:57:50.969058643,2023-09-07 17:44:00,Luke Wilson,INC0000000308,employee,United States,Charlie Whitherspoon,ITIL User,2023-09-20 04:57:50.969058643,Unable to access client database on Oracle,Database,2 - High
|
||||
Hardware,Resolved,2023-09-13 00:09:56.020598186,2023-09-08 07:01:00,Luke Wilson,INC0000000309,system,Australia,Howard Johnson,Bud Richman,2023-09-13 00:09:56.020598186,Printer546 in Australia is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-13 01:47:32.680016461,2023-09-08 17:14:00,Howard Johnson,INC0000000310,admin,Canada,Beth Anglin,Bud Richman,2023-09-13 01:47:32.680016461,Workstation CPU Overheating,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-17 17:36:33.312203552,2023-09-11 18:57:00,Beth Anglin,INC0000000311,admin,Australia,Beth Anglin,Don Goodliffe,2023-09-17 17:36:33.312203552,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-09-22 23:55:17.560026848,2023-09-12 15:43:00,Luke Wilson,INC0000000312,system,United States,Howard Johnson,Don Goodliffe,2023-09-22 23:55:17.560026848,Database Error ID382 - System Slowdown,Database,2 - High
|
||||
Database,Closed,2023-09-18 08:09:07.717459166,2023-09-13 03:14:00,Howard Johnson,INC0000000313,system,UK,Charlie Whitherspoon,ITIL User,2023-09-18 08:09:07.717459166,Error loading Database267 in the UK office,Database,2 - High
|
||||
Hardware,Resolved,2023-09-18 19:43:08.637023310,2023-09-13 23:38:00,Luke Wilson,INC0000000314,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-09-18 19:43:08.637023310,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-28 01:25:23.074702845,2023-09-14 10:29:00,Charlie Whitherspoon,INC0000000315,admin,Canada,Luke Wilson,Bud Richman,2023-09-28 01:25:23.074702845,Server Crash on machine233,Hardware,1 - Critical
|
||||
Database,Closed,2023-09-16 11:23:21.172473709,2023-09-14 10:58:00,Fred Luddy,INC0000000316,admin,Australia,Howard Johnson,Bud Richman,2023-09-16 11:23:21.172473709,Error in Database connectivity,Database,2 - High
|
||||
Hardware,Closed,2023-09-21 01:28:06.686513687,2023-09-14 13:00:00,Luke Wilson,INC0000000317,admin,Australia,Charlie Whitherspoon,ITIL User,2023-09-21 01:28:06.686513687,Printer546 issue in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-09-15 15:54:00.000000000,2023-09-14 15:54:00,Beth Anglin,INC0000000318,employee,Australia,Luke Wilson,David Loo,2023-09-15 15:54:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-09-23 18:17:16.716938240,2023-09-15 05:28:00,Charlie Whitherspoon,INC0000000319,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-09-23 18:17:16.716938240,Printer546 in Australia experiencing issues,Hardware,1 - Critical
|
||||
Software,Closed,2023-09-20 20:58:46.751153395,2023-09-16 09:18:00,Fred Luddy,INC0000000320,system,Canada,Fred Luddy,David Loo,2023-09-20 20:58:46.751153395,Performance issues with Software123,Software,3 - Moderate
|
||||
Hardware,Closed,2023-09-22 13:11:16.460337579,2023-09-16 09:20:00,Fred Luddy,INC0000000321,admin,Australia,Howard Johnson,ITIL User,2023-09-22 13:11:16.460337579,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-30 16:57:13.076218110,2023-09-18 03:29:00,Charlie Whitherspoon,INC0000000322,employee,United States,Beth Anglin,Don Goodliffe,2023-09-30 16:57:13.076218110,Server failure for US node,Hardware,1 - Critical
|
||||
Network,Closed,2023-09-22 15:44:42.056556368,2023-09-19 03:45:00,Beth Anglin,INC0000000323,employee,United States,Luke Wilson,Bud Richman,2023-09-22 15:44:42.056556368,Internet connection problem in the United States,Network,2 - High
|
||||
Hardware,Closed,2023-10-05 10:37:47.028545047,2023-09-19 08:44:00,Fred Luddy,INC0000000324,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-05 10:37:47.028545047,Printer546 is having issues,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-03 08:14:22.675801438,2023-09-20 06:22:00,Luke Wilson,INC0000000325,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-03 08:14:22.675801438,The Printer546 in Australia is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-22 07:03:43.180128742,2023-09-20 20:36:00,Luke Wilson,INC0000000326,system,United States,Charlie Whitherspoon,David Loo,2023-09-22 07:03:43.180128742,Server832 failure at the data center,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-05 14:06:46.265722782,2023-09-21 05:32:00,Beth Anglin,INC0000000327,admin,United States,Charlie Whitherspoon,Don Goodliffe,2023-10-05 14:06:46.265722782,Monitor345 not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-28 10:20:40.858388369,2023-09-21 14:49:00,Howard Johnson,INC0000000328,employee,UK,Luke Wilson,Don Goodliffe,2023-09-28 10:20:40.858388369,Issue with loading up laptop model L-914,Hardware,2 - High
|
||||
Network,Closed,2023-09-22 21:14:00.000000000,2023-09-21 21:14:00,Beth Anglin,INC0000000329,system,India,Howard Johnson,Don Goodliffe,2023-09-22 21:14:00.000000000,Network connectivity issue,Network,3 - Moderate
|
||||
Hardware,Closed,2023-10-06 07:39:16.761597562,2023-09-21 23:53:00,Fred Luddy,INC0000000330,system,UK,Charlie Whitherspoon,David Loo,2023-10-06 07:39:16.761597562,Failed Hard Disk Drive on WorkstationUK786,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-05 14:59:20.783399866,2023-09-24 10:56:00,Fred Luddy,INC0000000331,system,Canada,Charlie Whitherspoon,David Loo,2023-10-05 14:59:20.783399866,Desktop PC not starting up,Hardware,2 - High
|
||||
Database,Closed,2023-10-03 08:53:36.796709606,2023-09-24 13:55:00,Howard Johnson,INC0000000332,employee,UK,Fred Luddy,David Loo,2023-10-03 08:53:36.796709606,Error detected in Database6543,Database,2 - High
|
||||
Hardware,Closed,2023-09-26 02:31:00.000000000,2023-09-25 02:31:00,Beth Anglin,INC0000000333,admin,Australia,Beth Anglin,David Loo,2023-09-26 02:31:00.000000000,Printer768 in Australia is malfunctioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-02 19:11:48.163774968,2023-09-25 19:21:00,Luke Wilson,INC0000000334,employee,Australia,Charlie Whitherspoon,David Loo,2023-10-02 19:11:48.163774968,Printer988 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-09-26 20:40:00.000000000,2023-09-25 20:40:00,Howard Johnson,INC0000000335,employee,Australia,Luke Wilson,ITIL User,2023-09-26 20:40:00.000000000,Printer001 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-09-28 19:04:36.066288946,2023-09-25 20:56:00,Luke Wilson,INC0000000336,admin,Australia,Howard Johnson,Don Goodliffe,2023-09-28 19:04:36.066288946,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Database,Resolved,2023-10-01 22:54:51.030860190,2023-09-26 00:01:00,Luke Wilson,INC0000000337,admin,India,Howard Johnson,David Loo,2023-10-01 22:54:51.030860190,Database Server Instance Performance Issue,Database,2 - High
|
||||
Hardware,Closed,2023-09-27 06:11:00.000000000,2023-09-26 06:11:00,Charlie Whitherspoon,INC0000000338,system,United States,Charlie Whitherspoon,David Loo,2023-09-27 06:11:00.000000000,Desktop PC524 sudden shutdown,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-02 04:18:49.766694358,2023-09-27 00:04:00,Charlie Whitherspoon,INC0000000339,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-02 04:18:49.766694358,Printer855 is not functioning properly,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-10 20:23:44.798714886,2023-09-27 23:08:00,Howard Johnson,INC0000000340,system,India,Charlie Whitherspoon,Don Goodliffe,2023-10-10 20:23:44.798714886,Inquiry about software installation,Service Desk,2 - High
|
||||
Network,Closed,2023-10-02 20:53:30.682718416,2023-09-28 01:57:00,Charlie Whitherspoon,INC0000000341,admin,India,Luke Wilson,Don Goodliffe,2023-10-02 20:53:30.682718416,Network connectivity issue in India,Network,2 - High
|
||||
Hardware,Resolved,2023-10-12 20:28:38.706928972,2023-09-28 13:16:00,Beth Anglin,INC0000000342,system,UK,Luke Wilson,David Loo,2023-10-12 20:28:38.706928972,Hard drive failure on Desktop577,Hardware,2 - High
|
||||
Hardware,Resolved,2023-09-30 03:37:15.453671612,2023-09-29 02:59:00,Fred Luddy,INC0000000343,admin,Australia,Luke Wilson,Don Goodliffe,2023-09-30 03:37:15.453671612,Printer issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-08 04:30:10.854895991,2023-09-30 07:14:00,Howard Johnson,INC0000000344,employee,Australia,Beth Anglin,ITIL User,2023-10-08 04:30:10.854895991,Printer546 is not working properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-01 17:15:12.850603255,2023-09-30 14:37:00,Luke Wilson,INC0000000345,admin,Australia,Fred Luddy,David Loo,2023-10-01 17:15:12.850603255,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Closed,2023-10-10 07:28:02.225169681,2023-10-01 18:20:00,Luke Wilson,INC0000000346,system,India,Beth Anglin,ITIL User,2023-10-10 07:28:02.225169681,Inquiry on Software Installation Guide,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-11 11:31:18.203048562,2023-10-01 20:05:00,Luke Wilson,INC0000000347,admin,Australia,Charlie Whitherspoon,ITIL User,2023-10-11 11:31:18.203048562,Printer324 in Australia is not functioning properly,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-10-03 01:05:00.000000000,2023-10-02 01:05:00,Howard Johnson,INC0000000348,admin,Australia,Beth Anglin,David Loo,2023-10-03 01:05:00.000000000,Issue with Printer874 in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-16 11:37:53.443608066,2023-10-02 20:23:00,Luke Wilson,INC0000000349,employee,United States,Luke Wilson,Don Goodliffe,2023-10-16 11:37:53.443608066,Hard drive failure on workstation,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-08 05:16:54.012585598,2023-10-03 07:12:00,Fred Luddy,INC0000000350,employee,Australia,Howard Johnson,Bud Richman,2023-10-08 05:16:54.012585598,Printer546 has a paper jam,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-10-07 15:02:09.446606967,2023-10-03 08:47:00,Beth Anglin,INC0000000351,admin,Australia,Fred Luddy,Bud Richman,2023-10-07 15:02:09.446606967,Printer error with Printer7 (Australia),Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-10 07:54:06.270667738,2023-10-03 11:29:00,Beth Anglin,INC0000000352,admin,Australia,Charlie Whitherspoon,David Loo,2023-10-10 07:54:06.270667738,Printer436 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-07 04:57:07.243553547,2023-10-03 14:29:00,Howard Johnson,INC0000000353,system,Australia,Howard Johnson,David Loo,2023-10-07 04:57:07.243553547,Printer899 is not functioning properly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-10-11 14:36:28.517445744,2023-10-04 21:50:00,Howard Johnson,INC0000000354,admin,Australia,Fred Luddy,ITIL User,2023-10-11 14:36:28.517445744,Printer damage issue with Printer7,Hardware,2 - High
|
||||
Database,Closed,2023-10-08 21:29:55.684306333,2023-10-05 06:17:00,Beth Anglin,INC0000000355,employee,UK,Luke Wilson,ITIL User,2023-10-08 21:29:55.684306333,Unable to establish connection to Database354,Database,2 - High
|
||||
Database,Resolved,2023-10-11 12:19:52.993926660,2023-10-05 12:36:00,Luke Wilson,INC0000000356,employee,India,Charlie Whitherspoon,Bud Richman,2023-10-11 12:19:52.993926660,Unable to connect to Database Server DB204,Database,1 - Critical
|
||||
Hardware,Closed,2023-10-09 10:00:05.170032833,2023-10-06 14:02:00,Beth Anglin,INC0000000357,admin,UK,Fred Luddy,David Loo,2023-10-09 10:00:05.170032833,Mouse malfunction in UK,Hardware,3 - Moderate
|
||||
Software,Resolved,2023-10-10 08:31:35.983826188,2023-10-07 19:05:00,Luke Wilson,INC0000000358,employee,UK,Howard Johnson,Bud Richman,2023-10-10 08:31:35.983826188,Software crash on workstation UK567,Software,2 - High
|
||||
Software,Resolved,2023-10-09 09:10:00.000000000,2023-10-08 09:10:00,Fred Luddy,INC0000000359,employee,Canada,Charlie Whitherspoon,ITIL User,2023-10-09 09:10:00.000000000,Cannot install the latest software update,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-18 20:50:35.137819655,2023-10-08 10:24:00,Beth Anglin,INC0000000360,admin,Canada,Fred Luddy,Bud Richman,2023-10-18 20:50:35.137819655,Unable to update the database in Accounting Software,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-24 10:20:11.744461099,2023-10-09 03:23:00,Beth Anglin,INC0000000361,system,Australia,Howard Johnson,Don Goodliffe,2023-10-24 10:20:11.744461099,An issue with Software56 in Australia,Software,3 - Moderate
|
||||
Software,Resolved,2023-10-16 08:15:55.096916626,2023-10-09 19:05:00,Charlie Whitherspoon,INC0000000362,employee,India,Fred Luddy,David Loo,2023-10-16 08:15:55.096916626,Software update failed on station456,Software,2 - High
|
||||
Hardware,Closed,2023-10-18 13:41:25.546404143,2023-10-10 09:43:00,Luke Wilson,INC0000000363,system,India,Fred Luddy,Bud Richman,2023-10-18 13:41:25.546404143,Monitor123 is not displaying correctly,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-14 07:51:41.450443462,2023-10-11 11:15:00,Beth Anglin,INC0000000364,admin,UK,Beth Anglin,Bud Richman,2023-10-14 07:51:41.450443462,Keyboard malfunction for desktop system D255X,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-16 08:25:44.792483730,2023-10-11 14:14:00,Luke Wilson,INC0000000365,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-10-16 08:25:44.792483730,The printer Printer546 in Australia has a paper jam,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-12 19:50:00.000000000,2023-10-11 19:50:00,Charlie Whitherspoon,INC0000000366,admin,Canada,Luke Wilson,Don Goodliffe,2023-10-12 19:50:00.000000000,Unresolved inquiry regarding software assistance,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-14 14:32:43.560111853,2023-10-12 01:24:00,Charlie Whitherspoon,INC0000000367,admin,United States,Luke Wilson,Don Goodliffe,2023-10-14 14:32:43.560111853,Mouse not functioning,Hardware,2 - High
|
||||
Software,Closed,2023-10-14 10:07:06.909703281,2023-10-12 03:06:00,Charlie Whitherspoon,INC0000000368,system,UK,Fred Luddy,David Loo,2023-10-14 10:07:06.909703281,Software update failed on workstation,Software,2 - High
|
||||
Hardware,Closed,2023-10-16 04:30:10.679168966,2023-10-12 20:39:00,Charlie Whitherspoon,INC0000000369,admin,India,Luke Wilson,Bud Richman,2023-10-16 04:30:10.679168966,Critical server issue with hardware,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-27 12:35:42.247430186,2023-10-13 09:01:00,Luke Wilson,INC0000000370,system,Australia,Luke Wilson,ITIL User,2023-10-27 12:35:42.247430186,Printer error on Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-18 21:50:20.165772966,2023-10-14 19:37:00,Fred Luddy,INC0000000371,admin,Australia,Fred Luddy,Bud Richman,2023-10-18 21:50:20.165772966,Printer error on Printer546,Hardware,2 - High
|
||||
Software,Resolved,2023-10-28 17:01:26.639036991,2023-10-15 00:02:00,Charlie Whitherspoon,INC0000000372,admin,Canada,Howard Johnson,Bud Richman,2023-10-28 17:01:26.639036991,Application XYZ failed to update,Software,2 - High
|
||||
Hardware,Resolved,2023-10-21 05:30:42.585855096,2023-10-15 00:53:00,Howard Johnson,INC0000000373,admin,Australia,Beth Anglin,Bud Richman,2023-10-21 05:30:42.585855096,Printer549 is not working in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-10-20 04:35:01.141400836,2023-10-15 17:23:00,Luke Wilson,INC0000000374,employee,United States,Howard Johnson,Bud Richman,2023-10-20 04:35:01.141400836,US Server failure,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-10-19 02:19:42.091067289,2023-10-16 14:21:00,Charlie Whitherspoon,INC0000000375,admin,Australia,Beth Anglin,ITIL User,2023-10-19 02:19:42.091067289,Printer795 malfunctioning in Sydney office,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-21 17:05:49.162145411,2023-10-16 16:55:00,Beth Anglin,INC0000000376,admin,Australia,Beth Anglin,Bud Richman,2023-10-21 17:05:49.162145411,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-10-18 00:52:00.000000000,2023-10-17 00:52:00,Charlie Whitherspoon,INC0000000377,employee,Australia,Beth Anglin,ITIL User,2023-10-18 00:52:00.000000000,Printer failure - Printer546,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-10-25 19:50:20.337280678,2023-10-20 02:34:00,Luke Wilson,INC0000000378,admin,India,Luke Wilson,Don Goodliffe,2023-10-25 19:50:20.337280678,Unable to access application from my end,Service Desk,2 - High
|
||||
Software,Closed,2023-10-29 06:16:49.729720000,2023-10-21 03:48:00,Beth Anglin,INC0000000379,admin,India,Luke Wilson,David Loo,2023-10-29 06:16:49.729720000,Adobe Photoshop application is not responding,Software,2 - High
|
||||
Network,Closed,2023-10-30 03:46:43.553522312,2023-10-22 17:17:00,Charlie Whitherspoon,INC0000000380,system,Canada,Beth Anglin,ITIL User,2023-10-30 03:46:43.553522312,Unable to connect to network,Network,2 - High
|
||||
Database,Closed,2023-10-27 01:49:16.402277796,2023-10-23 01:08:00,Fred Luddy,INC0000000381,system,UK,Charlie Whitherspoon,Bud Richman,2023-10-27 01:49:16.402277796,Unable to connect to Database from UK location,Database,1 - Critical
|
||||
Software,Closed,2023-10-30 13:55:51.015143360,2023-10-23 14:06:00,Beth Anglin,INC0000000382,admin,India,Luke Wilson,Don Goodliffe,2023-10-30 13:55:51.015143360,Error while installing new software,Software,3 - Moderate
|
||||
Database,Resolved,2023-10-31 00:43:50.133149704,2023-10-24 02:28:00,Beth Anglin,INC0000000383,employee,United States,Beth Anglin,David Loo,2023-10-31 00:43:50.133149704,Error in SQL server update,Database,2 - High
|
||||
Hardware,Closed,2023-11-06 00:05:08.518186417,2023-10-24 20:18:00,Beth Anglin,INC0000000384,employee,Australia,Howard Johnson,ITIL User,2023-11-06 00:05:08.518186417,Printer 546 is not functioning properly in Australia,Hardware,1 - Critical
|
||||
Network,Closed,2023-11-02 19:10:09.135343415,2023-10-25 03:39:00,Luke Wilson,INC0000000385,admin,UK,Howard Johnson,ITIL User,2023-11-02 19:10:09.135343415,Cannot connect to UK server,Network,2 - High
|
||||
Hardware,Closed,2023-10-31 10:15:16.995034613,2023-10-25 05:06:00,Charlie Whitherspoon,INC0000000386,admin,Australia,Beth Anglin,Don Goodliffe,2023-10-31 10:15:16.995034613,Printer473 is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-09 09:27:41.299495824,2023-10-26 10:39:00,Howard Johnson,INC0000000387,admin,Australia,Howard Johnson,David Loo,2023-11-09 09:27:41.299495824,Printer546 is not working,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-02 21:31:23.289304071,2023-10-26 19:39:00,Beth Anglin,INC0000000388,admin,Australia,Howard Johnson,ITIL User,2023-11-02 21:31:23.289304071,Printer356 in Australia is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-09 01:36:23.094504250,2023-10-26 20:51:00,Beth Anglin,INC0000000389,admin,Australia,Fred Luddy,Bud Richman,2023-11-09 01:36:23.094504250,Printer546 has a paper jam,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-04 10:27:01.152081419,2023-10-27 23:13:00,Charlie Whitherspoon,INC0000000390,employee,Australia,Beth Anglin,David Loo,2023-11-04 10:27:01.152081419,Printer546 is not working properly,Hardware,2 - High
|
||||
Network,Resolved,2023-11-07 22:41:41.858766805,2023-10-28 04:24:00,Fred Luddy,INC0000000391,system,United States,Howard Johnson,David Loo,2023-11-07 22:41:41.858766805,Network outage in server room,Network,2 - High
|
||||
Hardware,Resolved,2023-11-04 00:17:56.334785377,2023-10-29 03:27:00,Howard Johnson,INC0000000392,employee,Australia,Howard Johnson,David Loo,2023-11-04 00:17:56.334785377,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-14 14:50:37.041296707,2023-10-29 03:41:00,Howard Johnson,INC0000000393,employee,Canada,Howard Johnson,Bud Richman,2023-11-14 14:50:37.041296707,PC453 failure,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-11-11 05:32:19.072152631,2023-10-29 14:02:00,Beth Anglin,INC0000000394,employee,Australia,Luke Wilson,ITIL User,2023-11-11 05:32:19.072152631,Printer546 is not working properly in Australia,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-11-01 13:29:20.811811166,2023-10-29 17:52:00,Beth Anglin,INC0000000395,employee,UK,Beth Anglin,David Loo,2023-11-01 13:29:20.811811166,Need help with navigating the software,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-10-30 18:57:00.000000000,2023-10-29 18:57:00,Howard Johnson,INC0000000396,employee,United States,Fred Luddy,ITIL User,2023-10-30 18:57:00.000000000,The Desktop PC7302 doesn't power on,Hardware,1 - Critical
|
||||
Database,Resolved,2023-11-12 08:10:38.248010764,2023-10-31 23:16:00,Luke Wilson,INC0000000397,system,United States,Beth Anglin,Don Goodliffe,2023-11-12 08:10:38.248010764,SQL Error on Server DB4,Database,2 - High
|
||||
Hardware,Resolved,2023-11-03 11:52:00.000000000,2023-11-02 11:52:00,Howard Johnson,INC0000000398,employee,Australia,Beth Anglin,David Loo,2023-11-03 11:52:00.000000000,Printer546 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2023-11-22 14:54:17.505991208,2023-11-02 12:42:00,Luke Wilson,INC0000000399,system,UK,Charlie Whitherspoon,Don Goodliffe,2023-11-22 14:54:17.505991208,Need assistance with account settings,Service Desk,3 - Moderate
|
||||
Hardware,Resolved,2023-11-19 08:35:26.721892000,2023-11-03 09:56:00,Fred Luddy,INC0000000400,system,Australia,Beth Anglin,ITIL User,2023-11-19 08:35:26.721892000,Printer542 in Australia is malfunctioning,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-07 04:08:46.640926620,2023-11-03 13:49:00,Charlie Whitherspoon,INC0000000401,system,Australia,Fred Luddy,Don Goodliffe,2023-11-07 04:08:46.640926620,Printer issue with Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-11-06 18:24:09.637921817,2023-11-04 10:59:00,Charlie Whitherspoon,INC0000000402,employee,Australia,Beth Anglin,Don Goodliffe,2023-11-06 18:24:09.637921817,Printer546 is not responding,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-20 14:15:29.239228781,2023-11-05 06:44:00,Charlie Whitherspoon,INC0000000403,employee,India,Howard Johnson,ITIL User,2023-11-20 14:15:29.239228781,Server crash in Bangalore,Hardware,1 - Critical
|
||||
Database,Resolved,2023-11-15 23:12:53.763111504,2023-11-05 11:29:00,Charlie Whitherspoon,INC0000000404,employee,Australia,Howard Johnson,Don Goodliffe,2023-11-15 23:12:53.763111504,Unexpected shutdown of Database439 in Australia,Database,2 - High
|
||||
Hardware,Closed,2023-11-08 06:15:25.825398065,2023-11-05 19:34:00,Charlie Whitherspoon,INC0000000405,employee,Australia,Fred Luddy,Bud Richman,2023-11-08 06:15:25.825398065,Printer167 has a paper jam,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-11-12 08:41:55.212270110,2023-11-06 04:39:00,Charlie Whitherspoon,INC0000000406,employee,Australia,Beth Anglin,ITIL User,2023-11-12 08:41:55.212270110,Printer546 is not working,Hardware,1 - Critical
|
||||
Inquiry / Help,Closed,2023-11-07 11:30:00.000000000,2023-11-06 11:30:00,Fred Luddy,INC0000000407,admin,UK,Howard Johnson,ITIL User,2023-11-07 11:30:00.000000000,Need help with software installation,Service Desk,3 - Moderate
|
||||
Database,Closed,2023-11-11 22:19:34.292012026,2023-11-07 02:57:00,Beth Anglin,INC0000000408,admin,Canada,Beth Anglin,Bud Richman,2023-11-11 22:19:34.292012026,Database error on DB546 server,Database,2 - High
|
||||
Software,Resolved,2023-11-13 13:05:35.772593402,2023-11-07 19:50:00,Beth Anglin,INC0000000409,employee,UK,Charlie Whitherspoon,Bud Richman,2023-11-13 13:05:35.772593402,Software crash on startup,Software,2 - High
|
||||
Hardware,Closed,2023-11-18 17:10:46.429479768,2023-11-08 05:51:00,Howard Johnson,INC0000000410,employee,UK,Charlie Whitherspoon,ITIL User,2023-11-18 17:10:46.429479768,Faulty keyboard on desktop model XJ56,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-24 06:22:46.772217434,2023-11-08 19:58:00,Beth Anglin,INC0000000411,employee,United States,Luke Wilson,Don Goodliffe,2023-11-24 06:22:46.772217434,Faulty motherboard on desktop PC,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-14 12:04:58.180425139,2023-11-09 00:45:00,Howard Johnson,INC0000000412,employee,Australia,Howard Johnson,ITIL User,2023-11-14 12:04:58.180425139,Printer320 is not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-19 06:43:16.486790150,2023-11-09 12:54:00,Fred Luddy,INC0000000413,system,Australia,Charlie Whitherspoon,Bud Richman,2023-11-19 06:43:16.486790150,Printer456 in Australia is not printing,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-20 13:58:24.005162219,2023-11-10 16:18:00,Fred Luddy,INC0000000414,employee,Australia,Fred Luddy,Bud Richman,2023-11-20 13:58:24.005162219,Printer789 is not functioning properly,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-25 13:45:38.979607981,2023-11-11 21:57:00,Charlie Whitherspoon,INC0000000415,admin,India,Howard Johnson,Don Goodliffe,2023-11-25 13:45:38.979607981,Problem with desktop system - overloaded memory,Hardware,2 - High
|
||||
Database,Closed,2023-11-23 08:35:34.467772083,2023-11-12 04:33:00,Charlie Whitherspoon,INC0000000416,admin,United States,Howard Johnson,Bud Richman,2023-11-23 08:35:34.467772083,Database error in production environment,Database,2 - High
|
||||
Database,Resolved,2023-11-15 18:59:00.000000000,2023-11-14 18:59:00,Charlie Whitherspoon,INC0000000417,system,India,Beth Anglin,David Loo,2023-11-15 18:59:00.000000000,Oracle Database error reported,Database,2 - High
|
||||
Hardware,Resolved,2023-11-27 06:06:19.635851412,2023-11-14 19:32:00,Fred Luddy,INC0000000418,employee,UK,Beth Anglin,Bud Richman,2023-11-27 06:06:19.635851412,Replacing faulty components in the system,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-23 15:56:17.027339265,2023-11-15 07:35:00,Charlie Whitherspoon,INC0000000419,employee,Australia,Beth Anglin,ITIL User,2023-11-23 15:56:17.027339265,Printer546 is not functioning,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-28 08:39:37.872085078,2023-11-15 19:05:00,Howard Johnson,INC0000000420,employee,Australia,Howard Johnson,Bud Richman,2023-11-28 08:39:37.872085078,Printer546 is not working properly,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-21 01:30:21.296528133,2023-11-17 07:33:00,Charlie Whitherspoon,INC0000000421,system,United States,Charlie Whitherspoon,Don Goodliffe,2023-11-21 01:30:21.296528133,Hard drive failure on desktop PRCS4526,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-23 05:26:06.568026419,2023-11-17 11:41:00,Luke Wilson,INC0000000422,system,UK,Beth Anglin,Bud Richman,2023-11-23 05:26:06.568026419,Failure in Screen Resolution - System ID: 7843,Hardware,2 - High
|
||||
Hardware,Closed,2023-11-19 13:31:44.558204717,2023-11-18 02:05:00,Howard Johnson,INC0000000423,admin,Canada,Luke Wilson,ITIL User,2023-11-19 13:31:44.558204717,Failure reported at desktop232,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-11-25 18:11:25.410173561,2023-11-19 02:52:00,Luke Wilson,INC0000000424,employee,Australia,Charlie Whitherspoon,Bud Richman,2023-11-25 18:11:25.410173561,Printer123 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-11-24 19:39:37.248766516,2023-11-19 11:06:00,Charlie Whitherspoon,INC0000000425,admin,Australia,Beth Anglin,Don Goodliffe,2023-11-24 19:39:37.248766516,Printer463 is not working,Hardware,2 - High
|
||||
Software,Resolved,2023-11-27 12:48:59.344411018,2023-11-21 04:00:00,Luke Wilson,INC0000000426,admin,UK,Charlie Whitherspoon,Bud Richman,2023-11-27 12:48:59.344411018,"Software malfunctioning, system crash",Software,3 - Moderate
|
||||
Hardware,Resolved,2023-11-29 21:52:24.416389196,2023-11-22 08:43:00,Beth Anglin,INC0000000427,admin,Australia,Luke Wilson,ITIL User,2023-11-29 21:52:24.416389196,Printer786 is not responding,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-11-29 19:40:37.040547419,2023-11-23 08:47:00,Luke Wilson,INC0000000428,admin,Australia,Howard Johnson,ITIL User,2023-11-29 19:40:37.040547419,Issue with Printer546 in Australia,Hardware,2 - High
|
||||
Database,Closed,2023-12-01 23:08:08.172813661,2023-11-23 15:24:00,Beth Anglin,INC0000000429,employee,Australia,Luke Wilson,David Loo,2023-12-01 23:08:08.172813661,Facing issues with MySQL database connectivity,Database,2 - High
|
||||
Hardware,Resolved,2023-12-09 22:53:40.047263709,2023-11-24 19:27:00,Luke Wilson,INC0000000430,admin,Australia,Charlie Whitherspoon,Bud Richman,2023-12-09 22:53:40.047263709,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Inquiry / Help,Resolved,2023-12-06 22:33:01.700205220,2023-11-27 20:26:00,Beth Anglin,INC0000000431,employee,Australia,Fred Luddy,David Loo,2023-12-06 22:33:01.700205220,Printer 546 is malfunctioning,Hardware,3 - Moderate
|
||||
Hardware,Resolved,2023-12-13 03:48:19.521259680,2023-11-28 06:30:00,Fred Luddy,INC0000000432,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2023-12-13 03:48:19.521259680,Printer546 is malfunctioning in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-06 06:18:20.231641812,2023-11-29 01:39:00,Luke Wilson,INC0000000433,employee,Australia,Beth Anglin,Bud Richman,2023-12-06 06:18:20.231641812,Printer422 is continuously jamming,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-05 17:32:49.113615094,2023-11-29 07:33:00,Beth Anglin,INC0000000434,system,Australia,Charlie Whitherspoon,Bud Richman,2023-12-05 17:32:49.113615094,Printer546 malfunction in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2023-12-01 04:31:00.000000000,2023-11-30 04:31:00,Charlie Whitherspoon,INC0000000435,system,Australia,Fred Luddy,Bud Richman,2023-12-01 04:31:00.000000000,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Network,Resolved,2023-12-05 02:10:03.357753705,2023-12-01 04:34:00,Charlie Whitherspoon,INC0000000436,system,Canada,Luke Wilson,Bud Richman,2023-12-05 02:10:03.357753705,Router not working properly,Network,2 - High
|
||||
Network,Closed,2023-12-10 05:44:39.457781801,2023-12-02 09:51:00,Howard Johnson,INC0000000437,system,United States,Charlie Whitherspoon,Bud Richman,2023-12-10 05:44:39.457781801,Can't connect to VPN,Network,2 - High
|
||||
Hardware,Closed,2023-12-09 17:15:01.861232926,2023-12-03 07:21:00,Howard Johnson,INC0000000438,admin,Australia,Luke Wilson,David Loo,2023-12-09 17:15:01.861232926,Printer issue with Printer546,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-07 19:08:00.907490315,2023-12-04 13:22:00,Charlie Whitherspoon,INC0000000439,admin,Australia,Beth Anglin,David Loo,2023-12-07 19:08:00.907490315,Printer547 has a paper jam,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-06 21:57:38.764148014,2023-12-04 20:14:00,Luke Wilson,INC0000000440,system,Australia,Charlie Whitherspoon,Don Goodliffe,2023-12-06 21:57:38.764148014,Printer678 not working,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-15 17:24:42.185263024,2023-12-04 20:19:00,Fred Luddy,INC0000000441,employee,Australia,Charlie Whitherspoon,David Loo,2023-12-15 17:24:42.185263024,Printer542 is not printing,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-09 12:22:44.658032345,2023-12-05 11:43:00,Charlie Whitherspoon,INC0000000442,system,Australia,Beth Anglin,Don Goodliffe,2023-12-09 12:22:44.658032345,Printer546 is not working,Hardware,1 - Critical
|
||||
Network,Resolved,2023-12-14 06:24:13.933877695,2023-12-05 15:02:00,Fred Luddy,INC0000000443,admin,UK,Beth Anglin,ITIL User,2023-12-14 06:24:13.933877695,Unable to connect to VPN Server,Network,2 - High
|
||||
Inquiry / Help,Resolved,2023-12-07 16:11:16.045197690,2023-12-06 00:31:00,Fred Luddy,INC0000000444,system,United States,Howard Johnson,ITIL User,2023-12-07 16:11:16.045197690,Need assistance with Service Desk application,Service Desk,3 - Moderate
|
||||
Hardware,Closed,2023-12-17 00:37:06.937192986,2023-12-07 00:44:00,Howard Johnson,INC0000000445,employee,Australia,Howard Johnson,Bud Richman,2023-12-17 00:37:06.937192986,Printer546 is not printing in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2023-12-19 02:53:45.256687900,2023-12-08 00:32:00,Howard Johnson,INC0000000446,system,Australia,Howard Johnson,ITIL User,2023-12-19 02:53:45.256687900,Printer error on Printer546,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-15 13:12:56.653826436,2023-12-09 03:58:00,Luke Wilson,INC0000000447,system,Australia,Charlie Whitherspoon,Bud Richman,2023-12-15 13:12:56.653826436,Printer546 is not working,Hardware,3 - Moderate
|
||||
Hardware,Closed,2023-12-11 12:52:00.000000000,2023-12-10 12:52:00,Howard Johnson,INC0000000448,employee,United States,Howard Johnson,David Loo,2023-12-11 12:52:00.000000000,Server HW897 malfunction,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-14 20:37:19.388113353,2023-12-11 17:57:00,Charlie Whitherspoon,INC0000000449,employee,Canada,Luke Wilson,Bud Richman,2023-12-14 20:37:19.388113353,Issue with workstation PC554 in Canada,Hardware,3 - Moderate
|
||||
Database,Closed,2023-12-12 19:10:00.000000000,2023-12-11 19:10:00,Beth Anglin,INC0000000450,system,UK,Luke Wilson,Bud Richman,2023-12-12 19:10:00.000000000,UK Database server 307 outage,Database,1 - Critical
|
||||
Software,Resolved,2023-12-14 13:02:12.152455924,2023-12-12 08:51:00,Howard Johnson,INC0000000451,system,UK,Beth Anglin,ITIL User,2023-12-14 13:02:12.152455924,Unable to install updates,Software,2 - High
|
||||
Hardware,Resolved,2023-12-17 23:44:55.013288975,2023-12-12 15:28:00,Beth Anglin,INC0000000452,employee,Australia,Fred Luddy,ITIL User,2023-12-17 23:44:55.013288975,Printer error with Printer546 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-15 03:54:00.000000000,2023-12-14 03:54:00,Beth Anglin,INC0000000453,admin,Australia,Fred Luddy,David Loo,2023-12-15 03:54:00.000000000,Printer356 is not functioning properly,Hardware,1 - Critical
|
||||
Network,Closed,2023-12-22 14:45:04.366600219,2023-12-17 08:06:00,Fred Luddy,INC0000000454,system,India,Howard Johnson,Bud Richman,2023-12-22 14:45:04.366600219,Network connectivity issue in India,Network,2 - High
|
||||
Database,Closed,2024-01-04 00:08:18.653166818,2023-12-18 04:38:00,Fred Luddy,INC0000000455,system,Australia,Fred Luddy,Bud Richman,2024-01-04 00:08:18.653166818,Database error in patient records system,Database,2 - High
|
||||
Hardware,Closed,2023-12-26 08:26:25.509637696,2023-12-18 11:13:00,Luke Wilson,INC0000000456,system,Australia,Howard Johnson,ITIL User,2023-12-26 08:26:25.509637696,Printer546 is not working properly in Australia,Hardware,2 - High
|
||||
Hardware,Closed,2023-12-28 23:19:22.500984917,2023-12-19 05:43:00,Howard Johnson,INC0000000457,admin,Australia,Charlie Whitherspoon,David Loo,2023-12-28 23:19:22.500984917,Printer546 is not working,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-01 04:47:56.741681309,2023-12-19 07:32:00,Luke Wilson,INC0000000458,admin,Australia,Luke Wilson,David Loo,2024-01-01 04:47:56.741681309,Issue with Printer487 in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2023-12-27 23:15:06.590296403,2023-12-23 18:43:00,Luke Wilson,INC0000000459,admin,Canada,Beth Anglin,ITIL User,2023-12-27 23:15:06.590296403,Laptop not functioning properly in Canada,Hardware,3 - Moderate
|
||||
Database,Resolved,2024-01-03 16:58:25.664592126,2023-12-26 00:19:00,Luke Wilson,INC0000000460,admin,India,Howard Johnson,ITIL User,2024-01-03 16:58:25.664592126,SQL server issue detected,Database,2 - High
|
||||
Network,Resolved,2024-01-09 12:37:13.292569926,2023-12-26 00:25:00,Beth Anglin,INC0000000461,employee,UK,Howard Johnson,David Loo,2024-01-09 12:37:13.292569926,UK Network server is down,Network,1 - Critical
|
||||
Hardware,Closed,2024-01-04 10:16:12.278901784,2023-12-26 16:08:00,Fred Luddy,INC0000000462,employee,Australia,Fred Luddy,David Loo,2024-01-04 10:16:12.278901784,Printer malfunction for Printer546 in Australia,Hardware,1 - Critical
|
||||
Hardware,Closed,2024-01-06 13:12:25.109624389,2023-12-28 06:15:00,Fred Luddy,INC0000000463,system,United States,Luke Wilson,Don Goodliffe,2024-01-06 13:12:25.109624389,Server789 crashed unexpectedly,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-03 16:45:19.710278908,2023-12-28 22:22:00,Fred Luddy,INC0000000464,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-03 16:45:19.710278908,Printer957 is malfunctioning in Australia.,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-06 22:55:13.977268119,2023-12-31 00:23:00,Luke Wilson,INC0000000465,employee,India,Fred Luddy,Don Goodliffe,2024-01-06 22:55:13.977268119,Desktop123 does not start,Hardware,2 - High
|
||||
Network,Resolved,2024-01-08 21:09:04.022142416,2024-01-02 05:33:00,Charlie Whitherspoon,INC0000000466,admin,Canada,Luke Wilson,David Loo,2024-01-08 21:09:04.022142416,Network connectivity issue,Network,3 - Moderate
|
||||
Hardware,Resolved,2024-01-08 09:17:43.178873486,2024-01-02 23:29:00,Howard Johnson,INC0000000467,employee,Australia,Fred Luddy,Bud Richman,2024-01-08 09:17:43.178873486,Issue with Printer546 in Australia,Hardware,3 - Moderate
|
||||
Hardware,Closed,2024-01-16 19:13:13.303553162,2024-01-04 15:03:00,Howard Johnson,INC0000000468,admin,United States,Beth Anglin,Don Goodliffe,2024-01-16 19:13:13.303553162,Computer station 420 is not functioning,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-10 15:38:48.582320090,2024-01-05 03:27:00,Beth Anglin,INC0000000469,admin,India,Fred Luddy,Don Goodliffe,2024-01-10 15:38:48.582320090,Failed motherboard on HP PC,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-07 03:03:46.511421975,2024-01-05 10:47:00,Beth Anglin,INC0000000470,admin,Australia,Howard Johnson,Bud Richman,2024-01-07 03:03:46.511421975,Printer787 in Australia location is not working,Hardware,2 - High
|
||||
Network,Closed,2024-01-14 00:18:47.213476730,2024-01-05 16:43:00,Howard Johnson,INC0000000471,employee,India,Luke Wilson,Bud Richman,2024-01-14 00:18:47.213476730,Slow network connection in Office 5,Network,3 - Moderate
|
||||
Hardware,Closed,2024-01-20 12:12:40.568716377,2024-01-07 21:25:00,Charlie Whitherspoon,INC0000000472,employee,Canada,Charlie Whitherspoon,David Loo,2024-01-20 12:12:40.568716377,Desktop PC not starting up,Hardware,3 - Moderate
|
||||
Hardware,Closed,2024-01-13 07:11:07.585466982,2024-01-09 07:10:00,Luke Wilson,INC0000000473,system,UK,Charlie Whitherspoon,Bud Richman,2024-01-13 07:11:07.585466982,The laptop hard drive is failing,Hardware,2 - High
|
||||
Software,Closed,2024-01-19 07:24:42.210493722,2024-01-10 15:21:00,Beth Anglin,INC0000000474,system,Australia,Howard Johnson,Bud Richman,2024-01-19 07:24:42.210493722,Application error in windows 10,Software,2 - High
|
||||
Hardware,Closed,2024-01-14 19:07:03.245823840,2024-01-11 05:07:00,Luke Wilson,INC0000000475,employee,Canada,Charlie Whitherspoon,David Loo,2024-01-14 19:07:03.245823840,Issue with motherboard on desktop PC,Hardware,2 - High
|
||||
Hardware,Closed,2024-01-21 14:31:46.018925216,2024-01-13 06:18:00,Charlie Whitherspoon,INC0000000476,employee,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-21 14:31:46.018925216,Printer546 is malfunctioning,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-19 04:34:40.251168087,2024-01-15 02:05:00,Fred Luddy,INC0000000477,system,Australia,Howard Johnson,Bud Richman,2024-01-19 04:34:40.251168087,Printer546 is malfunctioning in Australia,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-01-21 17:52:21.410495977,2024-01-15 14:42:00,Luke Wilson,INC0000000478,admin,Australia,Beth Anglin,ITIL User,2024-01-21 17:52:21.410495977,Printer128 is not working properly in Australia,Hardware,3 - Moderate
|
||||
Software,Resolved,2024-01-23 07:05:32.181816124,2024-01-15 16:26:00,Beth Anglin,INC0000000479,system,United States,Beth Anglin,Don Goodliffe,2024-01-23 07:05:32.181816124,Unable to install an update on Office365,Software,2 - High
|
||||
Database,Resolved,2024-01-26 14:08:14.089327678,2024-01-16 10:00:00,Howard Johnson,INC0000000480,employee,Australia,Beth Anglin,Bud Richman,2024-01-26 14:08:14.089327678,Oracle Database 11g - Error Ora-02000,Database,2 - High
|
||||
Software,Closed,2024-01-19 09:54:00.000000000,2024-01-18 09:54:00,Howard Johnson,INC0000000481,admin,United States,Fred Luddy,David Loo,2024-01-19 09:54:00.000000000,Software update required,Software,2 - High
|
||||
Database,Resolved,2024-01-24 20:11:01.690566157,2024-01-19 21:43:00,Howard Johnson,INC0000000482,system,Australia,Beth Anglin,David Loo,2024-01-24 20:11:01.690566157,Issue with Database543,Database,3 - Moderate
|
||||
Hardware,Resolved,2024-01-21 13:40:00.000000000,2024-01-20 13:40:00,Luke Wilson,INC0000000483,system,Australia,Luke Wilson,Don Goodliffe,2024-01-21 13:40:00.000000000,Printer542 is jammed in Australia location,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-22 06:01:00.000000000,2024-01-21 06:01:00,Luke Wilson,INC0000000484,system,Australia,Beth Anglin,ITIL User,2024-01-22 06:01:00.000000000,Printer546 is not working properly in Australia location,Hardware,1 - Critical
|
||||
Hardware,Resolved,2024-02-01 06:07:10.554650244,2024-01-21 09:04:00,Howard Johnson,INC0000000485,system,Australia,Luke Wilson,Don Goodliffe,2024-02-01 06:07:10.554650244,Printer546 is not working properly,Hardware,3 - Moderate
|
||||
Software,Closed,2024-01-27 16:50:43.924769422,2024-01-21 19:11:00,Luke Wilson,INC0000000486,employee,Australia,Beth Anglin,David Loo,2024-01-27 16:50:43.924769422,Application update failure,Software,2 - High
|
||||
Hardware,Closed,2024-01-24 00:12:58.375121721,2024-01-22 14:06:00,Fred Luddy,INC0000000487,employee,Australia,Luke Wilson,Don Goodliffe,2024-01-24 00:12:58.375121721,Printer436 is broken,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-29 03:16:08.014433635,2024-01-23 03:20:00,Beth Anglin,INC0000000488,system,Australia,Howard Johnson,Bud Richman,2024-01-29 03:16:08.014433635,Printer546 issue in Australia,Hardware,2 - High
|
||||
Hardware,Resolved,2024-01-25 11:01:00.578026325,2024-01-24 06:55:00,Charlie Whitherspoon,INC0000000489,admin,Australia,Charlie Whitherspoon,Don Goodliffe,2024-01-25 11:01:00.578026325,Printer627 is not responding,Hardware,1 - Critical
|
||||
Inquiry / Help,Resolved,2024-02-09 04:30:29.586553971,2024-01-24 16:35:00,Luke Wilson,INC0000000490,admin,India,Luke Wilson,David Loo,2024-02-09 04:30:29.586553971,Need help with inquiry,Service Desk,3 - Moderate
|
||||
Software,Closed,2024-02-01 02:14:30.096751951,2024-01-25 11:19:00,Beth Anglin,INC0000000491,system,UK,Howard Johnson,Don Goodliffe,2024-02-01 02:14:30.096751951,Application error on Accounting software,Software,2 - High
|
||||
Inquiry / Help,Resolved,2024-01-31 02:23:56.445975993,2024-01-25 18:57:00,Beth Anglin,INC0000000492,admin,Australia,Charlie Whitherspoon,David Loo,2024-01-31 02:23:56.445975993,Printer546 issue in Sydney office.,Hardware,2 - High
|
||||
Network,Closed,2024-02-01 12:40:26.195788814,2024-01-26 08:59:00,Fred Luddy,INC0000000493,admin,UK,Charlie Whitherspoon,ITIL User,2024-02-01 12:40:26.195788814,Unable to connect to the Wi-Fi,Network,2 - High
|
||||
Hardware,Resolved,2024-02-08 06:58:35.863529275,2024-01-27 11:50:00,Luke Wilson,INC0000000494,system,Australia,Howard Johnson,Bud Richman,2024-02-08 06:58:35.863529275,Printer489 is not functioning properly,Hardware,2 - High
|
||||
Network,Closed,2024-02-07 21:56:58.515415708,2024-01-28 15:54:00,Beth Anglin,INC0000000495,employee,India,Fred Luddy,David Loo,2024-02-07 21:56:58.515415708,Unable to connect to the internet,Network,2 - High
|
||||
Hardware,Resolved,2024-02-03 17:41:53.299049427,2024-01-29 10:48:00,Luke Wilson,INC0000000496,admin,Australia,Beth Anglin,David Loo,2024-02-03 17:41:53.299049427,Printer546 has a paper jam,Hardware,2 - High
|
||||
Network,Resolved,2024-02-12 22:31:48.126196708,2024-01-31 05:51:00,Howard Johnson,INC0000000497,admin,Canada,Charlie Whitherspoon,David Loo,2024-02-12 22:31:48.126196708,Internet connection frequently dropping,Network,2 - High
|
||||
Network,Resolved,2024-02-07 23:14:21.894263712,2024-01-31 18:48:00,Charlie Whitherspoon,INC0000000498,employee,Australia,Howard Johnson,David Loo,2024-02-07 23:14:21.894263712,Network outage in Australia,Network,2 - High
|
||||
Hardware,Closed,2024-02-11 16:34:09.159779461,2024-01-31 21:20:00,Beth Anglin,INC0000000499,employee,Australia,Fred Luddy,ITIL User,2024-02-11 16:34:09.159779461,Printer235 is not printing in Australia location,Hardware,1 - Critical
|
||||
|
BIN
alias/frontend/src/assets/icons/avatar/assistantHeader.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
1
alias/frontend/src/assets/icons/avatar/avatar.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><g><g><path d="M2,8C2,4.68629,4.68629,2,8,2C11.3137,2,14,4.68629,14,8C14,11.3137,11.3137,14,8,14C4.68629,14,2,11.3137,2,8ZM11.53555,4.46447C11.04738,3.97631,10.48235,3.60517,9.84045,3.35106C9.249279999999999,3.11702,8.6358,3,8,3C7.3642,3,6.75071,3.11702,6.15952,3.35106C5.51764,3.60517,4.95262,3.97631,4.46446,4.46447C3.97631,4.95262,3.60517,5.51764,3.35106,6.15953C3.11702,6.75071,3,7.3642,3,8C3,8.6358,3.11702,9.249279999999999,3.35106,9.84045C3.60517,10.48235,3.97631,11.04738,4.46446,11.53555C4.95262,12.0237,5.51764,12.3949,6.15952,12.649C6.75071,12.883,7.3642,13,8,13C8.6358,13,9.249279999999999,12.883,9.84045,12.649C10.48235,12.3948,11.04738,12.0237,11.53555,11.53555C12.0237,11.04738,12.3949,10.48235,12.649,9.84045C12.883,9.249279999999999,13,8.6358,13,8C13,7.3642,12.883,6.75071,12.649,6.15953C12.3948,5.51764,12.0237,4.95262,11.53555,4.46447ZM7.55356,9.95356C7.35829,10.14882,7.04171,10.14882,6.84645,9.95356L5.246449999999999,8.35356C5.15268,8.259789999999999,5.1,8.13261,5.1,8C5.1,7.72386,5.32386,7.5,5.6,7.5C5.73261,7.5,5.85979,7.55268,5.9535599999999995,7.64645L7.2,8.892900000000001L10.04645,6.04645C10.1402,5.95268,10.2674,5.9,10.4,5.9C10.67615,5.9,10.9,6.12386,10.9,6.4C10.9,6.53261,10.8473,6.65979,10.75355,6.75356L7.55356,9.95356Z" fill="#00B042" fill-opacity="1"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
4
alias/frontend/src/assets/icons/files/doc.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#4285F4"/> <!-- Blue background -->
|
||||
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="#FFFFFF" font-size="14" font-family="Arial, sans-serif">DOC</text> <!-- Display 'DOC' text in the center -->
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 338 B |
12
alias/frontend/src/assets/icons/files/file.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Define gray-white gradient -->
|
||||
<defs>
|
||||
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#B0B0B0;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#FFFFFF;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Use gradient background -->
|
||||
<rect width="40" height="40" rx="8" fill="url(#grad1)"/>
|
||||
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="#555555" font-size="14" font-family="Arial, sans-serif">FILE</text> <!-- Use lighter black -->
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 625 B |
4
alias/frontend/src/assets/icons/files/html.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#FFBB00"/> <!-- Use yellow background -->
|
||||
<text x="50%" y="50%" fill="white" font-size="12" font-family="Arial" font-weight="bold" text-anchor="middle" dominant-baseline="middle">HTML</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 308 B |
12
alias/frontend/src/assets/icons/files/image.svg
Normal file
@@ -0,0 +1,12 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Define blue-white gradient -->
|
||||
<defs>
|
||||
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#4285F4;stop-opacity:1" /> <!-- Blue start -->
|
||||
<stop offset="100%" style="stop-color:#FFFFFF;stop-opacity:1" /> <!-- White end -->
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<!-- Use blue-white gradient background -->
|
||||
<rect width="40" height="40" rx="8" fill="url(#grad1)"/>
|
||||
<text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="#FFFFFF" font-size="14" font-family="Arial, sans-serif">IMG</text> <!-- Use white text -->
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 671 B |
4
alias/frontend/src/assets/icons/files/pdf.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#EA4335"/> <!-- Use red background -->
|
||||
<text x="50%" y="50%" fill="white" font-size="14" font-family="Arial" font-weight="bold" text-anchor="middle" dominant-baseline="middle">PDF</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 304 B |
4
alias/frontend/src/assets/icons/files/xml.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#34A853"/> <!-- Use green background -->
|
||||
<text x="50%" y="50%" fill="white" font-size="14" font-family="Arial" font-weight="bold" text-anchor="middle" dominant-baseline="middle">XML</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 306 B |
1
alias/frontend/src/assets/icons/sharePage/circle401.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="9" height="9" viewBox="0 0 9 9"><g><ellipse cx="4.5" cy="4.5" rx="4.5" ry="4.5" fill="#000000" fill-opacity="1"/></g></svg>
|
||||
|
After Width: | Height: | Size: 239 B |
5
alias/frontend/src/assets/icons/sharePage/pause.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="6" y="5" width="4" height="14" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<rect x="14" y="5" width="4" height="14" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 442 B |
4
alias/frontend/src/assets/icons/sharePage/play.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8 5L19 12L8 19V5Z" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 280 B |
5
alias/frontend/src/assets/icons/sharePage/step-back.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11 5L4 12L11 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 12H20" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 367 B |
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13 5L20 12L13 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4 12H20" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 368 B |
205
alias/frontend/src/assets/json/prompt.ts
Normal file
@@ -0,0 +1,205 @@
|
||||
// Match the corresponding prompt key based on chatMode
|
||||
export const promptJson = {
|
||||
// General
|
||||
general: [
|
||||
{
|
||||
title: "Alibaba Stock Price",
|
||||
describe: "What's the current stock price of Alibaba?",
|
||||
},
|
||||
{
|
||||
title: "Travel Plan to Hangzhou",
|
||||
describe:
|
||||
"Help generate a two-day travel plan to Hangzhou this weekend from Shanghai",
|
||||
},
|
||||
{
|
||||
title: "Alibaba Stock Report",
|
||||
describe:
|
||||
"Generate a detailed report about Alibaba stock price in US market",
|
||||
},
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia’s financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
],
|
||||
// Browser Use
|
||||
browser: [
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia’s financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
],
|
||||
// Deep Research
|
||||
dr: [
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia’s financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
],
|
||||
// Financial Analysis
|
||||
finance: [
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia’s financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
],
|
||||
// Data Science The file needs to be placed in /src/assets/file
|
||||
// files: The files to the file to be uploaded. The files format is "/src/assets/file/filename" or ["/src/assets/file/filename"].
|
||||
ds: [
|
||||
{
|
||||
title: "Analysis of Disparities in Incident Allocation by Category",
|
||||
describe:
|
||||
"Find the discrepancy and imbalance in distribution of incidents assigned across categories",
|
||||
files: ["/src/assets/file/incident_records.csv"],
|
||||
},
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia’s financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
// If chatMode doesn't match any above, use the following
|
||||
export const originalPromptsList = [
|
||||
{
|
||||
title: "Alibaba Stock Price",
|
||||
describe: "What's the current stock price of Alibaba?",
|
||||
},
|
||||
{
|
||||
title: "Travel Plan to Hangzhou",
|
||||
describe:
|
||||
"Help generate a two-day travel plan to Hangzhou this weekend from Shanghai",
|
||||
},
|
||||
{
|
||||
title: "Alibaba Stock Report",
|
||||
describe:
|
||||
"Generate a detailed report about Alibaba stock price in US market",
|
||||
},
|
||||
{
|
||||
title: "iPhone 17 vs 17 Pro",
|
||||
describe: "Give a detailed comparison between iPhone 17 and 17 Pro",
|
||||
},
|
||||
{
|
||||
title: "AI Agents Courses on Coursera",
|
||||
describe:
|
||||
"On Coursera, find 3 popular beginner-level courses about AI agents",
|
||||
},
|
||||
{
|
||||
title: "AI Service Investment",
|
||||
describe:
|
||||
"Evaluate the investment outlook and primary risks for AI infrastructure software and services outside the core AI chip sector over the next year, driven by large language models and edge computing",
|
||||
},
|
||||
{
|
||||
title: "Fed Rate Outlook",
|
||||
describe:
|
||||
"Conduct a deep analysis of the expected Federal Reserve (Fed) interest rate cuts in early 2026",
|
||||
},
|
||||
{
|
||||
title: "Nvidia Future Earnings",
|
||||
describe: "Forecast Nvidia's financial data for the coming year (2026)",
|
||||
},
|
||||
{
|
||||
title: "US-China Chip Impact",
|
||||
describe:
|
||||
"Perform a comprehensive analysis of the long-term impact of US-China trade tensions on the semiconductor supply chain.",
|
||||
},
|
||||
];
|
||||
20
alias/frontend/src/components/Artifacts/PanelHeader.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import { memo } from "react";
|
||||
import { classNames } from "../../utils/classNames";
|
||||
|
||||
interface PanelHeaderProps {
|
||||
className?: string;
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export const PanelHeader = memo(({ className, children }: PanelHeaderProps) => {
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
"flex items-center gap-2 bg-bolt-elements-background-depth-2 text-bolt-elements-textSecondary border-b border-bolt-elements-borderColor px-4 py-1 min-h-[34px] text-sm",
|
||||
className,
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
49
alias/frontend/src/components/Artifacts/Tree.scss
Normal file
@@ -0,0 +1,49 @@
|
||||
// Tree.scss
|
||||
$indent-base: 24px; // Base indent unit
|
||||
|
||||
.node {
|
||||
display: flex !important;
|
||||
align-items: center;
|
||||
// padding: 4px 8px;
|
||||
cursor: pointer;
|
||||
width: 100% !important;
|
||||
box-sizing: border-box;
|
||||
transition: padding 0.2s ease;
|
||||
|
||||
// Dynamically generate level styles (supports 1-8 levels)
|
||||
@for $i from 0 through 100 {
|
||||
&.level-#{$i} {
|
||||
padding-left: ($indent-base * $i) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: var(--message-option-bg-hover);
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background-color: var(--filenode-selected-bg);
|
||||
}
|
||||
|
||||
.node-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.icon {
|
||||
flex-shrink: 0;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.node-text {
|
||||
font-family: system-ui;
|
||||
font-size: 14px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
169
alias/frontend/src/components/Artifacts/Tree.tsx
Normal file
@@ -0,0 +1,169 @@
|
||||
import type { NodeRendererProps } from "react-arborist";
|
||||
import { Tree } from "react-arborist";
|
||||
import {
|
||||
BsFile,
|
||||
BsFiles,
|
||||
BsFiletypeCss,
|
||||
BsFiletypeHtml,
|
||||
BsFiletypeJava,
|
||||
BsFiletypeJs,
|
||||
BsFiletypeJsx,
|
||||
BsFiletypeMd,
|
||||
BsFiletypePy,
|
||||
BsFiletypeTsx,
|
||||
BsFolder2Open,
|
||||
BsImage,
|
||||
} from "react-icons/bs";
|
||||
import { FaFileExcel, FaFilePowerpoint, FaFileWord } from "react-icons/fa";
|
||||
import { FiArchive, FiFilm, FiFolder } from "react-icons/fi";
|
||||
import "./Tree.scss";
|
||||
// Node data type
|
||||
interface FileNode {
|
||||
name: string;
|
||||
type: "directory" | "file";
|
||||
path: string;
|
||||
children?: FileNode[];
|
||||
}
|
||||
|
||||
interface FileTreeProps {
|
||||
data: FileNode[];
|
||||
onExpand: (node: FileNode) => void;
|
||||
show: string;
|
||||
}
|
||||
|
||||
// Add sorting function
|
||||
const sortFileTree = (nodes: FileNode[]): FileNode[] => {
|
||||
return nodes
|
||||
.sort((a, b) => {
|
||||
// First sort by type (directories first)
|
||||
if (a.type !== b.type) {
|
||||
return a.type === "directory" ? -1 : 1;
|
||||
}
|
||||
// Then sort by name alphabetically
|
||||
return a.name.localeCompare(b.name);
|
||||
})
|
||||
.map((node) => ({
|
||||
...node,
|
||||
children: node.children ? sortFileTree(node.children) : undefined,
|
||||
}));
|
||||
};
|
||||
|
||||
function getFileType(name: string, isFolder: boolean, isOpen: boolean) {
|
||||
const ext = name.split(".").pop()?.toLowerCase();
|
||||
const iconStyle = { color: "#6b7280" };
|
||||
if (isFolder) {
|
||||
return isOpen ? (
|
||||
<BsFolder2Open className="icon" />
|
||||
) : (
|
||||
<FiFolder className="icon" />
|
||||
);
|
||||
}
|
||||
if (!ext) {
|
||||
return <BsFile style={iconStyle} className="icon" />;
|
||||
}
|
||||
switch (ext) {
|
||||
case "js":
|
||||
return <BsFiletypeJs style={{ color: "#f1e05a" }} className="icon" />;
|
||||
case "py":
|
||||
return <BsFiletypePy style={iconStyle} className="icon" />;
|
||||
case "md":
|
||||
return <BsFiletypeMd style={iconStyle} className="icon" />;
|
||||
case "tsx":
|
||||
return <BsFiletypeTsx style={iconStyle} className="icon" />;
|
||||
case "jsx":
|
||||
return <BsFiletypeJsx style={{ color: "#f1e05a" }} className="icon" />;
|
||||
case "java":
|
||||
return <BsFiletypeJava style={iconStyle} className="icon" />;
|
||||
case "json":
|
||||
return <BsFiles style={{ color: "#f5de19" }} className="icon" />;
|
||||
case "css":
|
||||
return <BsFiletypeCss style={iconStyle} className="icon" />;
|
||||
case "html":
|
||||
return <BsFiletypeHtml style={iconStyle} className="icon" />;
|
||||
case "png":
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
return <BsImage style={iconStyle} className="icon" />;
|
||||
case "docx":
|
||||
case "doc":
|
||||
return <FaFileWord style={{ color: "#2b579a" }} className="icon" />;
|
||||
case "zip":
|
||||
case "tar.gz":
|
||||
case "rar":
|
||||
return <FiArchive style={iconStyle} className="icon" />;
|
||||
case "xlsx":
|
||||
case "xls":
|
||||
return <FaFileExcel style={{ color: "#217346" }} className="icon" />;
|
||||
case "pptx":
|
||||
case "ppt":
|
||||
return <FaFilePowerpoint style={{ color: "#d24726" }} className="icon" />;
|
||||
case "mp4":
|
||||
case "mov":
|
||||
case "avi":
|
||||
return <FiFilm style={iconStyle} className="icon" />;
|
||||
default:
|
||||
return <BsFile style={iconStyle} className="icon" />;
|
||||
}
|
||||
}
|
||||
|
||||
export const FileTree = ({ data, onExpand, show }: FileTreeProps) => {
|
||||
// Sort data
|
||||
const sortedData = sortFileTree(data);
|
||||
|
||||
// Custom node renderer
|
||||
const CustomNode = ({
|
||||
node,
|
||||
style,
|
||||
dragHandle,
|
||||
}: NodeRendererProps<FileNode>) => {
|
||||
const isFolder = node.data.type === "directory";
|
||||
const icon = getFileType(node.data.name, isFolder, node.isOpen);
|
||||
// Correct method to get node level
|
||||
const getNodeLevel = () => {
|
||||
let level = 0;
|
||||
let parent = node.parent;
|
||||
while (parent) {
|
||||
level++;
|
||||
parent = parent.parent;
|
||||
}
|
||||
return level - 1;
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
ref={dragHandle}
|
||||
// className={`node ${node.state.isSelected ? 'selected' : ''}` }
|
||||
className={`node
|
||||
${node.state.isSelected ? "selected" : ""}
|
||||
level-${getNodeLevel()}
|
||||
`}
|
||||
onClick={() => {
|
||||
node.isInternal && node.toggle();
|
||||
if (show === "noShow") {
|
||||
onExpand(node?.data);
|
||||
}
|
||||
}}
|
||||
aria-expanded={node.isOpen}
|
||||
>
|
||||
<div className="node-content">
|
||||
{icon}
|
||||
<span className="node-text">{node.data.name}</span>
|
||||
{/* {node.isInternal && (
|
||||
<span className="arrow">{node.isOpen ? '▼' : '▶'}</span>
|
||||
)} */}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
return (
|
||||
<Tree<FileNode>
|
||||
data={sortedData}
|
||||
idAccessor={(node) => node.path}
|
||||
openByDefault={false}
|
||||
indent={20}
|
||||
width={"100%"}
|
||||
>
|
||||
{CustomNode}
|
||||
</Tree>
|
||||
);
|
||||
};
|
||||
83
alias/frontend/src/components/Artifacts/index.module.scss
Normal file
@@ -0,0 +1,83 @@
|
||||
.artifactsWrap {
|
||||
width: 100%;
|
||||
height: calc(100vh - 134px);;
|
||||
border-top: solid 1px var(--sps-color-border-secondary);
|
||||
// background-color: var(--artifacts-wrap-bg);
|
||||
// box-shadow: 0 0 rgb(0 0 0 / 0);
|
||||
// border-radius: 10px;
|
||||
}
|
||||
.codeWrap{
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
.treeWrap{
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding: 12px;
|
||||
}
|
||||
.terminalWrapper {
|
||||
height: 200px;
|
||||
min-height: 150px;
|
||||
max-height: 30vh;
|
||||
border-top: 1px solid var(--border-color);
|
||||
background-color: #ffffff;
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.terminalHeader {
|
||||
height: 30px;
|
||||
min-height: 30px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
background-color: var(--sidebar-bg);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
color: var(--text-color);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.terminalContainer {
|
||||
flex: 1;
|
||||
padding: 10px;
|
||||
overflow: auto;
|
||||
}
|
||||
.modalTitle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
flex-wrap: wrap;
|
||||
width: 90%;
|
||||
}
|
||||
.saveStatus {
|
||||
font-size: 12px;
|
||||
margin-left: 8px;
|
||||
transition: all 0.3s ease;
|
||||
opacity: 0.8;
|
||||
|
||||
&.modified {
|
||||
color: #856404;
|
||||
}
|
||||
|
||||
&.saved {
|
||||
color: #155724;
|
||||
animation: fadeOut 3s ease-in-out forwards;
|
||||
}
|
||||
}
|
||||
.modalContent {
|
||||
max-height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
0% {
|
||||
opacity: 0.8;
|
||||
}
|
||||
70% {
|
||||
opacity: 0.8;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
105
alias/frontend/src/components/Artifacts/index.scss
Normal file
@@ -0,0 +1,105 @@
|
||||
.terminal {
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border-bottom-right-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
|
||||
.terminal .xterm {
|
||||
height: 100% !important;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.markdown-body {
|
||||
// box-sizing: border-box;
|
||||
// min-width: 200px;
|
||||
// max-width: 680px;
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
padding: 45px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.markdown-body {
|
||||
padding: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.fileName {
|
||||
line-height: 32px;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.iframe-box {
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
margin: 0 auto;
|
||||
padding: 45px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
// Add dark theme support
|
||||
.markdown-body.markdown-dark {
|
||||
color: #e0e0e0;
|
||||
background-color: #1a1a1a;
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #4da6ff;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #2d2d2d;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #2d2d2d;
|
||||
border: 1px solid #444444;
|
||||
|
||||
code {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: #b0b0b0;
|
||||
border-left-color: #444444;
|
||||
}
|
||||
|
||||
table {
|
||||
th {
|
||||
background-color: #2d2d2d;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
border-color: #444444;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
background-color: #444444;
|
||||
}
|
||||
}
|
||||
567
alias/frontend/src/components/Artifacts/index.tsx
Normal file
@@ -0,0 +1,567 @@
|
||||
import { useTheme } from "@/context/ThemeContext";
|
||||
import { Button, Modal, Tooltip } from "@agentscope-ai/design";
|
||||
import { css } from "@codemirror/lang-css";
|
||||
import { html } from "@codemirror/lang-html";
|
||||
import { java } from "@codemirror/lang-java";
|
||||
import { javascript } from "@codemirror/lang-javascript";
|
||||
import { markdown } from "@codemirror/lang-markdown";
|
||||
import { python } from "@codemirror/lang-python";
|
||||
import { Prec } from "@codemirror/state";
|
||||
import { keymap } from "@codemirror/view";
|
||||
import { materialDark, materialLight } from "@uiw/codemirror-theme-material";
|
||||
import CodeMirror from "@uiw/react-codemirror";
|
||||
import { FitAddon } from "@xterm/addon-fit";
|
||||
import { Terminal as XTerm } from "@xterm/xterm";
|
||||
import { createTwoFilesPatch } from "diff";
|
||||
import "github-markdown-css/github-markdown-light.css";
|
||||
import "highlight.js/styles/github-dark.css";
|
||||
import "katex/dist/katex.min.css";
|
||||
import React, { memo, useEffect, useRef, useState } from "react";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
|
||||
import rehypeHighlight from "rehype-highlight";
|
||||
import rehypeKatex from "rehype-katex";
|
||||
import remarkGfm from "remark-gfm";
|
||||
import remarkMath from "remark-math";
|
||||
import io, { Socket } from "socket.io-client";
|
||||
import "xterm/css/xterm.css";
|
||||
import { classNames } from "../../utils/classNames";
|
||||
import styles from "./index.module.scss";
|
||||
import "./index.scss";
|
||||
import { PanelHeader } from "./PanelHeader";
|
||||
import { FileTree } from "./Tree";
|
||||
const DEFAULT_TERMINAL_SIZE = 25;
|
||||
const DEFAULT_EDITOR_SIZE = 100 - DEFAULT_TERMINAL_SIZE;
|
||||
// const { DirectoryTree } = Tree;
|
||||
let socket: Socket;
|
||||
const darkTheme = {
|
||||
background: "#131414",
|
||||
foreground: "#ffffff",
|
||||
cursor: "#dddddd",
|
||||
};
|
||||
const lightTheme = {
|
||||
background: "#ffffff",
|
||||
foreground: "#333333",
|
||||
cursor: "#333333",
|
||||
};
|
||||
|
||||
const Artifacts = (Props: {
|
||||
webSocketUrl: { artifactsSio: any };
|
||||
runtimeToken: string;
|
||||
}) => {
|
||||
const [fileTree, setFileTree] = useState([]);
|
||||
const [codeValue, setCodeValue] = useState("");
|
||||
const [extensions, setExtensions] = useState([javascript()]);
|
||||
const [fileName, setFileName] = useState("");
|
||||
const [markdownValue, setMarkdownValue] = useState("");
|
||||
const [htmlModal, setHtmlModal] = useState("");
|
||||
const [modal, setModal] = useState(false);
|
||||
const [saveStatus, setSaveStatus] = useState<"saved" | "modified" | null>(
|
||||
null,
|
||||
);
|
||||
const [originalContent, setOriginalContent] = useState("");
|
||||
const terminalElementRef = useRef<HTMLDivElement>(null);
|
||||
const artifactsSio = Props?.webSocketUrl?.artifactsSio;
|
||||
const saveTimeoutRef = useRef<NodeJS.Timeout>();
|
||||
const runtimeToken = Props?.runtimeToken;
|
||||
const fitAddonRef = useRef<FitAddon | null>(null);
|
||||
const terminalRef = useRef<XTerm | null>(null);
|
||||
|
||||
const [lastCommand, setLastCommand] = useState("");
|
||||
const [isCommandRunning, setIsCommandRunning] = useState(false);
|
||||
const [commandOutput, setCommandOutput] = useState("");
|
||||
const lastCommandRef = useRef("");
|
||||
const { theme } = useTheme();
|
||||
|
||||
// Move handleOutput function to component top
|
||||
const handleOutput = (data: string) => {
|
||||
if (terminalElementRef.current) {
|
||||
const terminal = terminalElementRef.current.querySelector(
|
||||
".xterm",
|
||||
) as any;
|
||||
if (terminal && terminal.terminal) {
|
||||
terminal.terminal.write(data);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const getMessage = () => {
|
||||
let data: never[] = [];
|
||||
try {
|
||||
socket = io(artifactsSio, {
|
||||
path: "/artifacts/socket.io",
|
||||
auth: {
|
||||
token: runtimeToken,
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Failed to connect to WebSocket:", error);
|
||||
// Handle connection failures, such as displaying an error message to the user
|
||||
}
|
||||
// socket = io("http://localhost:4500/artifacts");
|
||||
socket.on("connect", () => {
|
||||
console.log("Connection successful");
|
||||
// Reset all state
|
||||
setFileTree([]);
|
||||
setCodeValue("");
|
||||
setFileName("");
|
||||
setMarkdownValue("");
|
||||
setHtmlModal("");
|
||||
setModal(false);
|
||||
});
|
||||
socket.on("error", (event) => {
|
||||
// Error exception message
|
||||
console.log("error", event);
|
||||
});
|
||||
socket.emit("requestFileList");
|
||||
socket.on("fileTree", (fileTree) => {
|
||||
setFileTree(fileTree || []);
|
||||
data = fileTree;
|
||||
});
|
||||
return data;
|
||||
};
|
||||
useEffect(() => {
|
||||
getMessage();
|
||||
|
||||
// Add timer to refresh file tree every 3 seconds
|
||||
const timer = setInterval(() => {
|
||||
if (socket) {
|
||||
socket.emit("requestFileList");
|
||||
}
|
||||
}, 3000);
|
||||
|
||||
// Cleanup function
|
||||
return () => {
|
||||
clearInterval(timer);
|
||||
if (socket) {
|
||||
socket.off("connect");
|
||||
socket.off("error");
|
||||
socket.off("fileTree");
|
||||
socket.off("fileContent");
|
||||
socket.off("output", handleOutput);
|
||||
}
|
||||
};
|
||||
}, [artifactsSio]);
|
||||
const onExpand = (info: { type: string; path: any; name: string }) => {
|
||||
if (info?.type !== "file") {
|
||||
return;
|
||||
}
|
||||
const filePath = info?.path;
|
||||
socket.emit("loadFile", filePath);
|
||||
const handleFileContent = ({
|
||||
content,
|
||||
path,
|
||||
}: {
|
||||
content: string;
|
||||
path: string;
|
||||
}) => {
|
||||
setFileName(path);
|
||||
detectLanguage(path);
|
||||
setCodeValue(content);
|
||||
setOriginalContent(content);
|
||||
// Clear modification status when switching files
|
||||
setSaveStatus(null);
|
||||
if (path.split(".").slice(-1)[0] === "md") {
|
||||
setMarkdownValue(content);
|
||||
}
|
||||
if (path.split(".").slice(-1)[0] === "html") {
|
||||
setHtmlModal(content);
|
||||
}
|
||||
};
|
||||
socket.on("fileContent", handleFileContent);
|
||||
|
||||
return () => {
|
||||
socket.off("fileContent", handleFileContent);
|
||||
};
|
||||
};
|
||||
|
||||
const langMap = (fileExtension: string | undefined) => {
|
||||
let mode = javascript();
|
||||
switch (fileExtension) {
|
||||
case "css":
|
||||
mode = css();
|
||||
break;
|
||||
case "java":
|
||||
mode = java();
|
||||
break;
|
||||
case "ts":
|
||||
mode = javascript();
|
||||
break;
|
||||
case "js":
|
||||
mode = javascript();
|
||||
break;
|
||||
case "html":
|
||||
mode = html();
|
||||
break;
|
||||
case "py":
|
||||
mode = python();
|
||||
break;
|
||||
case "md":
|
||||
mode = markdown();
|
||||
break;
|
||||
}
|
||||
return mode;
|
||||
};
|
||||
// Language switching
|
||||
|
||||
const detectLanguage = (fileName: string) => {
|
||||
const ext = fileName.split(".").slice(-1)[0];
|
||||
const langLoader = langMap(ext);
|
||||
setExtensions([langLoader]);
|
||||
};
|
||||
|
||||
// Save file
|
||||
const saveKeymap = Prec.high(
|
||||
// Ensure shortcut key priority
|
||||
keymap.of([
|
||||
{
|
||||
key: "Ctrl-s",
|
||||
mac: "Cmd-s",
|
||||
run: (editor) => {
|
||||
saveCurrentFile(fileName);
|
||||
return true; // Prevent browser default behavior
|
||||
},
|
||||
},
|
||||
]),
|
||||
);
|
||||
const handleCodeChange = (value: string) => {
|
||||
setCodeValue(value);
|
||||
setSaveStatus("modified");
|
||||
|
||||
// Also update preview content
|
||||
const fileExt = fileName.split(".").slice(-1)[0];
|
||||
if (fileExt === "md") {
|
||||
setMarkdownValue(value);
|
||||
} else if (fileExt === "html") {
|
||||
setHtmlModal(value);
|
||||
}
|
||||
};
|
||||
|
||||
const saveCurrentFile = (fileName: string) => {
|
||||
if (fileName) {
|
||||
socket.emit("saveFile", {
|
||||
filename: fileName,
|
||||
content: codeValue,
|
||||
});
|
||||
const diffResult = createTwoFilesPatch(
|
||||
fileName,
|
||||
fileName,
|
||||
originalContent, // Original content
|
||||
codeValue, // Current content
|
||||
);
|
||||
|
||||
// TODO: push event
|
||||
console.warn("diffResult", diffResult);
|
||||
|
||||
// Update original content after successful save
|
||||
setOriginalContent(codeValue); // Add this line
|
||||
|
||||
// Clear save status after 3 seconds
|
||||
if (saveTimeoutRef.current) {
|
||||
clearTimeout(saveTimeoutRef.current);
|
||||
}
|
||||
saveTimeoutRef.current = setTimeout(() => {
|
||||
setSaveStatus(null);
|
||||
}, 3000);
|
||||
}
|
||||
};
|
||||
// Terminal
|
||||
useEffect(() => {
|
||||
const element = terminalElementRef.current!;
|
||||
const fitAddon = new FitAddon();
|
||||
fitAddonRef.current = fitAddon;
|
||||
const terminal = new XTerm({
|
||||
fontSize: 14,
|
||||
fontFamily: 'Consolas, "Courier New", monospace',
|
||||
theme: theme === "dark" ? darkTheme : lightTheme,
|
||||
});
|
||||
// Save terminal instance reference
|
||||
terminalRef.current = terminal;
|
||||
terminal.loadAddon(fitAddon);
|
||||
terminal.open(element);
|
||||
fitAddon.fit();
|
||||
|
||||
let currentCommand = "";
|
||||
|
||||
terminal.onData((data) => {
|
||||
socket.emit("input", data);
|
||||
if (data === "\r" || data === "\n") {
|
||||
if (currentCommand.trim()) {
|
||||
const command = currentCommand.trim();
|
||||
setLastCommand(command);
|
||||
lastCommandRef.current = command;
|
||||
setIsCommandRunning(true);
|
||||
setCommandOutput(""); // Clear previous output
|
||||
currentCommand = "";
|
||||
}
|
||||
} else if (data === "\u007f") {
|
||||
// Backspace key
|
||||
currentCommand = currentCommand.slice(0, -1);
|
||||
} else if (data.length === 1 && data.charCodeAt(0) >= 32) {
|
||||
// Printable character
|
||||
currentCommand += data;
|
||||
}
|
||||
});
|
||||
const handleOutput = (data: string) => {
|
||||
terminal.write(data);
|
||||
|
||||
if (isCommandRunning) {
|
||||
setCommandOutput((prev) => {
|
||||
const newOutput = prev + data;
|
||||
|
||||
const cleanedOutput = newOutput
|
||||
.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "")
|
||||
.replace(/\x1b\][0-9];[^\x07]*\x07/g, "")
|
||||
.replace(/\x1b\][0-9];[^\x1b]*\x1b\\/g, "")
|
||||
.replace(/\[?\?[0-9]+[hl]/g, ""); // More lenient prompt matching
|
||||
const promptPattern = /root@[a-f0-9]+:[^#]*#\s*$/;
|
||||
if (promptPattern.test(cleanedOutput)) {
|
||||
setIsCommandRunning(false);
|
||||
|
||||
const promptMatch = cleanedOutput.match(
|
||||
/root@[a-f0-9]+:[^#]*#\s*$/,
|
||||
);
|
||||
if (promptMatch) {
|
||||
const cleanOutput = cleanedOutput
|
||||
.substring(0, promptMatch.index)
|
||||
.trim();
|
||||
// TODO: push event
|
||||
console.warn(
|
||||
`Command: ${lastCommandRef.current}\nResults: ${cleanOutput}`,
|
||||
);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
return newOutput;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
socket.on("output", handleOutput);
|
||||
return () => {
|
||||
terminal.dispose();
|
||||
socket.off("connect");
|
||||
socket.off("error");
|
||||
socket.off("fileTree");
|
||||
socket.off("fileContent");
|
||||
socket.off("output", handleOutput);
|
||||
};
|
||||
}, [artifactsSio]);
|
||||
|
||||
useEffect(() => {
|
||||
if (terminalRef.current) {
|
||||
terminalRef.current.options.theme =
|
||||
theme === "dark" ? darkTheme : lightTheme;
|
||||
}
|
||||
}, [theme]);
|
||||
const onClose = () => {
|
||||
setModal(false);
|
||||
};
|
||||
const modalTitle = (
|
||||
<div className={styles.modalTitle}>
|
||||
<span
|
||||
style={{
|
||||
wordBreak: "break-all",
|
||||
maxWidth: "100%",
|
||||
}}
|
||||
>
|
||||
{fileName}
|
||||
</span>
|
||||
{saveStatus && (
|
||||
<span
|
||||
className={classNames(styles.saveStatus, {
|
||||
[styles.modified]: saveStatus === "modified",
|
||||
[styles.saved]: saveStatus === "saved",
|
||||
})}
|
||||
>
|
||||
{saveStatus === "modified" ? "• Modified • Ctrl + S" : "• Saved"}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
return (
|
||||
<div className={styles.artifactsWrap}>
|
||||
<Modal
|
||||
title={modalTitle}
|
||||
open={modal}
|
||||
centered={true}
|
||||
// footer={null}
|
||||
onCancel={onClose}
|
||||
onOk={onClose}
|
||||
width={960}
|
||||
>
|
||||
<div className={styles.modalContent}>
|
||||
{fileName.split(".").slice(-1)[0] === "md" ? (
|
||||
<div
|
||||
className={`markdown-body ${
|
||||
theme === "dark" ? "markdown-dark" : "markdown-light"
|
||||
}`}
|
||||
>
|
||||
<ReactMarkdown
|
||||
remarkPlugins={[remarkGfm, remarkMath]}
|
||||
rehypePlugins={[rehypeHighlight, rehypeKatex]}
|
||||
components={{
|
||||
code(props: any) {
|
||||
const { node, inline, className, children, ...rest } =
|
||||
props;
|
||||
const match = /language-(\w+)/.exec(className || "");
|
||||
return !inline && match ? (
|
||||
<pre>
|
||||
<code className={match[1]} {...rest}>
|
||||
{children}
|
||||
</code>
|
||||
</pre>
|
||||
) : (
|
||||
<code className={className} {...rest}>
|
||||
{children}
|
||||
</code>
|
||||
);
|
||||
},
|
||||
}}
|
||||
>
|
||||
{markdownValue}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
) : fileName.split(".").slice(-1)[0] === "html" ? (
|
||||
<div className="iframe-box">
|
||||
<iframe
|
||||
srcDoc={htmlModal}
|
||||
sandbox="allow-scripts"
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
border: "none",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<CodeMirror
|
||||
value={codeValue}
|
||||
height="500px"
|
||||
extensions={[...extensions, saveKeymap]}
|
||||
onChange={handleCodeChange}
|
||||
theme={theme === "dark" ? materialDark : materialLight}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</Modal>
|
||||
<PanelGroup
|
||||
direction="vertical"
|
||||
onLayout={() => {
|
||||
fitAddonRef.current?.fit();
|
||||
}}
|
||||
>
|
||||
<Panel defaultSize={50} minSize={20}>
|
||||
<PanelGroup direction="horizontal">
|
||||
<Panel defaultSize={40} minSize={10} collapsible>
|
||||
<div
|
||||
className="flex flex-col border-r border-bolt-elements-borderColor h-full"
|
||||
style={{ backgroundColor: "transparent" }}
|
||||
>
|
||||
<PanelHeader>Files</PanelHeader>
|
||||
<div className={styles.treeWrap}>
|
||||
<FileTree
|
||||
data={fileTree}
|
||||
onExpand={onExpand}
|
||||
show={"noShow"}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</Panel>
|
||||
<PanelResizeHandle />
|
||||
<Panel className="flex flex-col" defaultSize={80} minSize={20}>
|
||||
<PanelHeader className="overflow-x-auto">
|
||||
<div className="header">
|
||||
<div className="fileName">
|
||||
<Tooltip title={fileName} placement="top">
|
||||
<span
|
||||
style={{
|
||||
overflow: "hidden",
|
||||
textOverflow: "ellipsis",
|
||||
}}
|
||||
>
|
||||
{fileName}
|
||||
</span>
|
||||
</Tooltip>
|
||||
|
||||
{saveStatus && (
|
||||
<span
|
||||
className={classNames(styles.saveStatus, {
|
||||
[styles.modified]: saveStatus === "modified",
|
||||
[styles.saved]: saveStatus === "saved",
|
||||
})}
|
||||
>
|
||||
{saveStatus === "modified"
|
||||
? "• Modified • Ctrl + S"
|
||||
: "• Saved"}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{(fileName.split(".").slice(-1)[0] === "md" ||
|
||||
fileName.split(".").slice(-1)[0] === "html") && (
|
||||
<Button
|
||||
type="link"
|
||||
style={{ flexShrink: 0 }}
|
||||
onClick={() => {
|
||||
// Update preview content before opening preview
|
||||
const fileExt = fileName.split(".").slice(-1)[0];
|
||||
if (fileExt === "md") {
|
||||
setMarkdownValue(codeValue);
|
||||
} else if (fileExt === "html") {
|
||||
setHtmlModal(codeValue);
|
||||
}
|
||||
setModal(true);
|
||||
}}
|
||||
>
|
||||
Preview
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
</PanelHeader>
|
||||
<div className={styles.codeWrap}>
|
||||
<CodeMirror
|
||||
value={codeValue}
|
||||
extensions={[...extensions, saveKeymap]}
|
||||
theme={theme === "dark" ? materialDark : materialLight}
|
||||
onChange={(value) => {
|
||||
setCodeValue(value);
|
||||
setSaveStatus("modified");
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Panel>
|
||||
</PanelGroup>
|
||||
</Panel>
|
||||
<PanelResizeHandle />
|
||||
<Panel defaultSize={20} minSize={10}>
|
||||
<div className="h-full" style={{ height: "100%" }}>
|
||||
<div
|
||||
className="bg-bolt-elements-terminals-background h-full flex flex-col"
|
||||
style={{ height: "100%" }}
|
||||
>
|
||||
<div className="flex items-center bg-bolt-elements-background-depth-2 border-y border-bolt-elements-borderColor gap-1.5 min-h-[34px] p-2">
|
||||
<React.Fragment>
|
||||
<div
|
||||
className={classNames(
|
||||
"flex items-center text-sm cursor-pointer gap-1.5 px-3 py-2 h-full whitespace-nowrap rounded-full",
|
||||
{
|
||||
"bg-bolt-elements-terminals-buttonBackground text-bolt-elements-textSecondary hover:text-bolt-elements-textPrimary":
|
||||
false,
|
||||
"bg-bolt-elements-background-depth-2 text-bolt-elements-textSecondary hover:bg-bolt-elements-terminals-buttonBackground":
|
||||
!false,
|
||||
},
|
||||
)}
|
||||
>
|
||||
Terminal
|
||||
</div>
|
||||
</React.Fragment>
|
||||
</div>
|
||||
<div className="terminal" ref={terminalElementRef} />
|
||||
</div>
|
||||
</div>
|
||||
</Panel>
|
||||
</PanelGroup>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
export default memo(Artifacts);
|
||||
384
alias/frontend/src/components/Browser/index.scss
Normal file
@@ -0,0 +1,384 @@
|
||||
/* CSS Variables for themes */
|
||||
html[data-theme="dark"] {
|
||||
--bg-primary: #272725;
|
||||
--bg-secondary: #171717;
|
||||
--border-color: #383838;
|
||||
--text-color: #ffffff;
|
||||
--tab-active-bg: #272725;
|
||||
--tab-hover-bg: #333333;
|
||||
--icon-color: #8a8a8a;
|
||||
--icon-hover-color: #ffffff;
|
||||
--error-color: #e53935;
|
||||
--offline-indicator-color: #e53935;
|
||||
--loading-overlay-bg: rgba(30, 30, 30, 0.8);
|
||||
--loading-spinner-color: #ffffff;
|
||||
}
|
||||
|
||||
html[data-theme="light"] {
|
||||
--bg-primary: #ffffff;
|
||||
--bg-secondary: #f5f5f5;
|
||||
--border-color: #e0e0e0;
|
||||
--text-color: #000000;
|
||||
--tab-active-bg: #e8e8e8;
|
||||
--tab-hover-bg: #efefef;
|
||||
--icon-color: #666666;
|
||||
--icon-hover-color: #000000;
|
||||
--error-color: #e53935;
|
||||
--offline-indicator-color: #e53935;
|
||||
--loading-overlay-bg: rgba(240, 240, 240, 0.8);
|
||||
--loading-spinner-color: #333333;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: var(--bg-primary);
|
||||
border: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.browser-chrome {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab-bar {
|
||||
display: flex;
|
||||
padding: 6px;
|
||||
gap: 4px;
|
||||
height: 36px;
|
||||
background: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
overflow-x: auto;
|
||||
scrollbar-width: none;
|
||||
-ms-overflow-style: none;
|
||||
align-items: center;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 12px;
|
||||
min-width: 120px;
|
||||
max-width: 200px;
|
||||
height: 36px;
|
||||
border-radius: 8px;
|
||||
color: var(--text-color);
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
position: relative;
|
||||
gap: 8px;
|
||||
transition: background-color 0.2s;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--tab-hover-bg);
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: var(--tab-active-bg);
|
||||
}
|
||||
}
|
||||
|
||||
.tab-favicon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.tab-title {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.tab-close {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
opacity: 0.6;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
|
||||
&:hover {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.address-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 8px;
|
||||
height: 40px;
|
||||
background: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.nav-buttons {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.nav-button {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--icon-color);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
padding: 0;
|
||||
border-radius: 4px;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: var(--icon-hover-color);
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
cursor: default;
|
||||
|
||||
&:hover {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.url-bar {
|
||||
width: 100%;
|
||||
height: 28px;
|
||||
padding: 0 12px;
|
||||
background: var(--bg-primary);
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--border-color);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: var(--text-color);
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
|
||||
&:focus-within {
|
||||
outline: none;
|
||||
background: var(--tab-hover-bg);
|
||||
}
|
||||
}
|
||||
|
||||
.url-input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--text-color);
|
||||
font-family: 'Geist', sans-serif;
|
||||
font-size: 13px;
|
||||
outline: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
min-height: 0;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
background: white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.canvas-container {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: none;
|
||||
|
||||
&.active {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&.loading::before {
|
||||
content: "Loading...";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: var(--text-color);
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
font-size: 16px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
&.error::before {
|
||||
content: "Session released";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: #fff;
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
font-size: 16px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
&.tab-switching::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: var(--loading-overlay-bg);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
&.tab-switching::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border: 4px solid transparent;
|
||||
border-top-color: var(--loading-spinner-color);
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
z-index: 11;
|
||||
}
|
||||
}
|
||||
|
||||
.canvas {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
width: auto;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.connection-status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 12px;
|
||||
height: 36px;
|
||||
color: var(--text-color);
|
||||
font-family: system-ui, -apple-system, sans-serif;
|
||||
font-size: 13px;
|
||||
box-sizing: border-box;
|
||||
min-width: 140px;
|
||||
flex-shrink: 0;
|
||||
|
||||
&.offline {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
&.online {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.connecting {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.status-indicator {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
margin-right: 8px;
|
||||
display: inline-block;
|
||||
flex-shrink: 0;
|
||||
|
||||
&.offline {
|
||||
background-color: var(--offline-indicator-color);
|
||||
}
|
||||
}
|
||||
|
||||
.url-security-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
fill: var(--icon-color);
|
||||
}
|
||||
|
||||
&.secure svg {
|
||||
fill: #4CAF50;
|
||||
}
|
||||
}
|
||||
|
||||
.tab-favicon-spinner {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: none;
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
border: 2px solid var(--icon-color);
|
||||
border-top-color: transparent;
|
||||
border-radius: 50%;
|
||||
animation: spinner-rotation 0.8s linear infinite;
|
||||
}
|
||||
}
|
||||
|
||||
.tab.loading {
|
||||
.tab-favicon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-favicon-spinner {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: translate(-50%, -50%) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: translate(-50%, -50%) rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spinner-rotation {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
691
alias/frontend/src/components/Browser/index.tsx
Normal file
@@ -0,0 +1,691 @@
|
||||
import React, { memo, useCallback, useEffect, useRef, useState } from "react";
|
||||
import "./index.scss";
|
||||
|
||||
interface Tab {
|
||||
id: string;
|
||||
url: string;
|
||||
title: string;
|
||||
favicon: string | null;
|
||||
ws: WebSocket | null;
|
||||
receivedFirstFrame: boolean;
|
||||
lastImageData: string | null;
|
||||
isLoading: boolean;
|
||||
frameCount: number;
|
||||
canvasRef: React.RefObject<HTMLCanvasElement>;
|
||||
containerRef: React.RefObject<HTMLDivElement>;
|
||||
currentImageWidth: number;
|
||||
currentImageHeight: number;
|
||||
reconnecting: boolean;
|
||||
intentionalClose: boolean;
|
||||
error: boolean;
|
||||
}
|
||||
|
||||
type ConnectionStatus = "online" | "offline" | "connecting";
|
||||
|
||||
const defaultWidth = 1920;
|
||||
const defaultHeight = 1080;
|
||||
|
||||
interface BrowserProps {
|
||||
webSocketUrl: {
|
||||
browserWs: string;
|
||||
artifactsSio?: string;
|
||||
};
|
||||
activeKey?: string;
|
||||
}
|
||||
|
||||
const Browser: React.FC<BrowserProps> = ({ webSocketUrl, activeKey }) => {
|
||||
const [tabs, setTabs] = useState<Record<string, Tab>>({});
|
||||
const [activeTabId, setActiveTabId] = useState<string | null>(null);
|
||||
const [connectionStatus, setConnectionStatus] =
|
||||
useState<ConnectionStatus>("connecting");
|
||||
const [tabOrder, setTabOrder] = useState<string[]>([]);
|
||||
const [isUrlBarFocused, setIsUrlBarFocused] = useState(false);
|
||||
const urlTextRef = useRef<HTMLInputElement>(null);
|
||||
const wsDiscoveryRef = useRef<WebSocket | null>(null);
|
||||
const activeConnectionRetries = useRef<Record<string, number>>({});
|
||||
const singlePageMode = false;
|
||||
const interactive = true;
|
||||
|
||||
// Initialize tab-discovery ws
|
||||
useEffect(() => {
|
||||
if (singlePageMode) return;
|
||||
const ws = new WebSocket(webSocketUrl.browserWs + "?tabInfo=true");
|
||||
wsDiscoveryRef.current = ws;
|
||||
ws.onopen = () => setConnectionStatus("online");
|
||||
ws.onclose = () => setConnectionStatus("offline");
|
||||
ws.onerror = () => setConnectionStatus("offline");
|
||||
ws.onmessage = (event) => {
|
||||
const payload = JSON.parse(event.data);
|
||||
if (payload.type === "tabList" && payload.tabs) {
|
||||
handleTabList(payload.tabs, payload.firstTabId);
|
||||
} else if (payload.type === "tabClosed" && payload.pageId) {
|
||||
handleTabClosed(payload.pageId);
|
||||
} else if (payload.type === "activeTabChange" && payload.pageId) {
|
||||
setActiveTabId(payload.pageId);
|
||||
}
|
||||
};
|
||||
return () => ws.close();
|
||||
// eslint-disable-next-line
|
||||
}, [webSocketUrl.browserWs]);
|
||||
|
||||
// When activating tab, close previous tab's ws and create new ws
|
||||
useEffect(() => {
|
||||
if (!activeTabId) return;
|
||||
const tab = tabs[activeTabId];
|
||||
if (!tab) return;
|
||||
if (tab.ws) return; // Already has ws
|
||||
connectTabWebSocket(activeTabId);
|
||||
// eslint-disable-next-line
|
||||
}, [activeTabId, tabs]);
|
||||
|
||||
// Handle tabList, automatically create/activate tabs
|
||||
const handleTabList = useCallback((tabList: any[], firstTabId?: string) => {
|
||||
const newTabs: Record<string, Tab> = {};
|
||||
const order: string[] = [];
|
||||
tabList.forEach((tab) => {
|
||||
newTabs[tab.id] = {
|
||||
id: tab.id,
|
||||
url: tab.url,
|
||||
title: tab.title,
|
||||
favicon: tab.favicon,
|
||||
ws: null,
|
||||
receivedFirstFrame: false,
|
||||
lastImageData: null,
|
||||
isLoading: false,
|
||||
frameCount: 0,
|
||||
canvasRef: React.createRef(),
|
||||
containerRef: React.createRef(),
|
||||
currentImageWidth: defaultWidth,
|
||||
currentImageHeight: defaultHeight,
|
||||
reconnecting: false,
|
||||
intentionalClose: false,
|
||||
error: false,
|
||||
};
|
||||
order.push(tab.id);
|
||||
});
|
||||
setTabs(newTabs);
|
||||
setTabOrder(order);
|
||||
if (firstTabId && newTabs[firstTabId]) {
|
||||
setActiveTabId(firstTabId);
|
||||
} else if (tabList.length > 0) {
|
||||
setActiveTabId(tabList[0].id);
|
||||
}
|
||||
}, []);
|
||||
|
||||
// Close tab
|
||||
const handleTabClosed = useCallback(
|
||||
(pageId: string) => {
|
||||
setTabs((prev) => {
|
||||
const updated = { ...prev };
|
||||
if (updated[pageId]?.ws) updated[pageId].ws?.close();
|
||||
delete updated[pageId];
|
||||
return updated;
|
||||
});
|
||||
setTabOrder((prev) => prev.filter((id) => id !== pageId));
|
||||
if (activeTabId === pageId) {
|
||||
const tabIds = tabOrder.filter((id) => id !== pageId);
|
||||
if (tabIds.length > 0) setActiveTabId(tabIds[0]);
|
||||
else setActiveTabId(null);
|
||||
}
|
||||
},
|
||||
[activeTabId, tabOrder],
|
||||
);
|
||||
|
||||
// Update tab information
|
||||
const updateTabInfo = useCallback(
|
||||
(pageId: string, url: string, title: string, favicon: string | null) => {
|
||||
setTabs((prev) => ({
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
url,
|
||||
title,
|
||||
favicon,
|
||||
},
|
||||
}));
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
// Connect tab ws
|
||||
const connectTabWebSocket = (pageId: string) => {
|
||||
setTabs((prev) => {
|
||||
if (!prev[pageId]) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
isLoading: true,
|
||||
error: false,
|
||||
reconnecting: true,
|
||||
},
|
||||
};
|
||||
});
|
||||
const ws = new WebSocket(
|
||||
webSocketUrl.browserWs + `?pageId=${encodeURIComponent(pageId)}`,
|
||||
);
|
||||
ws.onopen = () => {
|
||||
setTabs((prev) => {
|
||||
if (!prev[pageId]) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
ws,
|
||||
isLoading: false,
|
||||
error: false,
|
||||
reconnecting: false,
|
||||
frameCount: 0,
|
||||
},
|
||||
};
|
||||
});
|
||||
setConnectionStatus("online");
|
||||
};
|
||||
ws.onclose = () => {
|
||||
setTabs((prev) => {
|
||||
if (!prev[pageId]) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
isLoading: false,
|
||||
error: true,
|
||||
reconnecting: false,
|
||||
ws: null,
|
||||
},
|
||||
};
|
||||
});
|
||||
setConnectionStatus("offline");
|
||||
};
|
||||
ws.onerror = () => {
|
||||
setTabs((prev) => {
|
||||
if (!prev[pageId]) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
isLoading: false,
|
||||
error: true,
|
||||
reconnecting: false,
|
||||
},
|
||||
};
|
||||
});
|
||||
setConnectionStatus("offline");
|
||||
};
|
||||
ws.onmessage = (event) => {
|
||||
const payload = JSON.parse(event.data);
|
||||
if (payload.type === "tabUpdate") {
|
||||
updateTabInfo(
|
||||
pageId,
|
||||
payload.url || "",
|
||||
payload.title || "",
|
||||
payload.favicon || null,
|
||||
);
|
||||
} else if (payload.type === "targetClosed") {
|
||||
handleTabClosed(pageId);
|
||||
}
|
||||
if (payload.data) {
|
||||
renderCanvasImage(
|
||||
pageId,
|
||||
payload.data,
|
||||
payload.url,
|
||||
payload.title,
|
||||
payload.favicon,
|
||||
);
|
||||
}
|
||||
};
|
||||
setTabs((prev) => {
|
||||
if (!prev[pageId]) return prev;
|
||||
return {
|
||||
...prev,
|
||||
[pageId]: {
|
||||
...prev[pageId],
|
||||
ws,
|
||||
},
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
// Render image to canvas
|
||||
const renderCanvasImage = (
|
||||
pageId: string,
|
||||
imageData: string,
|
||||
url?: string,
|
||||
title?: string,
|
||||
favicon?: string,
|
||||
) => {
|
||||
setTabs((prev) => {
|
||||
const updated = { ...prev };
|
||||
if (!updated[pageId]) return updated;
|
||||
updated[pageId].receivedFirstFrame = true;
|
||||
updated[pageId].lastImageData = imageData.startsWith(
|
||||
"data:image/jpeg;base64,",
|
||||
)
|
||||
? imageData
|
||||
: `data:image/jpeg;base64,${imageData}`;
|
||||
updated[pageId].isLoading = false;
|
||||
updated[pageId].error = false;
|
||||
if (url && !isUrlBarFocused) updated[pageId].url = url;
|
||||
if (title) updated[pageId].title = title;
|
||||
if (favicon) updated[pageId].favicon = favicon;
|
||||
updated[pageId].frameCount++;
|
||||
return updated;
|
||||
});
|
||||
setTimeout(() => {
|
||||
const tab = tabs[pageId];
|
||||
const canvas = tab?.canvasRef.current;
|
||||
if (!canvas) return;
|
||||
const ctx = canvas.getContext("2d", { alpha: false });
|
||||
if (!ctx) return;
|
||||
const img = new window.Image();
|
||||
img.src = imageData.startsWith("data:image/jpeg;base64,")
|
||||
? imageData
|
||||
: `data:image/jpeg;base64,${imageData}`;
|
||||
img.onload = () => {
|
||||
setTabs((prev) => {
|
||||
const updated = { ...prev };
|
||||
if (!updated[pageId]) return updated;
|
||||
updated[pageId].currentImageWidth = img.naturalWidth;
|
||||
updated[pageId].currentImageHeight = img.naturalHeight;
|
||||
return updated;
|
||||
});
|
||||
const dpr = window.devicePixelRatio || 1;
|
||||
const container = tab?.containerRef.current;
|
||||
const targetHeight = container?.clientHeight || defaultHeight;
|
||||
const targetWidth =
|
||||
targetHeight * (img.naturalWidth / img.naturalHeight);
|
||||
canvas.width = targetWidth * dpr;
|
||||
canvas.height = targetHeight * dpr;
|
||||
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
||||
ctx.scale(dpr, dpr);
|
||||
canvas.style.height = "100%";
|
||||
canvas.style.width = "auto";
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
ctx.drawImage(
|
||||
img,
|
||||
0,
|
||||
0,
|
||||
Math.floor(canvas.width / dpr),
|
||||
Math.floor(canvas.height / dpr),
|
||||
);
|
||||
};
|
||||
}, 0);
|
||||
};
|
||||
|
||||
// Canvas native event binding
|
||||
useEffect(() => {
|
||||
if (!activeTabId || activeKey !== "3") return;
|
||||
const tab = tabs[activeTabId];
|
||||
if (!tab) return;
|
||||
const canvas = tab.canvasRef.current;
|
||||
if (!canvas) return;
|
||||
// Mouse events
|
||||
const getScaledCoordinates = (e: MouseEvent) => {
|
||||
const rect = canvas.getBoundingClientRect();
|
||||
const scaleX = tab.currentImageWidth / rect.width;
|
||||
const scaleY = tab.currentImageHeight / rect.height;
|
||||
return {
|
||||
x: Math.max(
|
||||
0,
|
||||
Math.min(
|
||||
Math.round((e.clientX - rect.left) * scaleX),
|
||||
tab.currentImageWidth,
|
||||
),
|
||||
),
|
||||
y: Math.max(
|
||||
0,
|
||||
Math.min(
|
||||
Math.round((e.clientY - rect.top) * scaleY),
|
||||
tab.currentImageHeight,
|
||||
),
|
||||
),
|
||||
};
|
||||
};
|
||||
const handleMouse = (e: MouseEvent, type: string) => {
|
||||
if (!tab.ws || tab.ws.readyState !== WebSocket.OPEN) return;
|
||||
const coords = getScaledCoordinates(e);
|
||||
const modifiers =
|
||||
(e.ctrlKey ? 2 : 0) |
|
||||
(e.shiftKey ? 8 : 0) |
|
||||
(e.altKey ? 1 : 0) |
|
||||
(e.metaKey ? 4 : 0);
|
||||
let button = "none";
|
||||
if (type === "mousePressed" || type === "mouseReleased") {
|
||||
button = e.button === 0 ? "left" : e.button === 1 ? "middle" : "right";
|
||||
}
|
||||
|
||||
const eventData = JSON.stringify({
|
||||
type: "mouseEvent",
|
||||
pageId: activeTabId,
|
||||
event: {
|
||||
type,
|
||||
x: coords.x,
|
||||
y: coords.y,
|
||||
button,
|
||||
modifiers,
|
||||
clickCount: (e as any).detail || 1,
|
||||
},
|
||||
});
|
||||
|
||||
// console.warn("Mouse Event:", {
|
||||
// eventString: eventData,
|
||||
// currentUrl: tab.url,
|
||||
// pageTitle: tab.title,
|
||||
// currentBase64Data: tab.lastImageData,
|
||||
// });
|
||||
|
||||
tab.ws.send(eventData);
|
||||
};
|
||||
let moveTimeout: any = null;
|
||||
const handleMouseMove = (e: MouseEvent) => {
|
||||
if (moveTimeout) clearTimeout(moveTimeout);
|
||||
moveTimeout = setTimeout(() => handleMouse(e, "mouseMoved"), 20);
|
||||
};
|
||||
const handleWheel = (e: WheelEvent) => {
|
||||
if (!tab.ws || tab.ws.readyState !== WebSocket.OPEN) return;
|
||||
const coords = getScaledCoordinates(e as any);
|
||||
const modifiers =
|
||||
(e.ctrlKey ? 2 : 0) |
|
||||
(e.shiftKey ? 8 : 0) |
|
||||
(e.altKey ? 1 : 0) |
|
||||
(e.metaKey ? 4 : 0);
|
||||
|
||||
const eventData = JSON.stringify({
|
||||
type: "mouseEvent",
|
||||
pageId: activeTabId,
|
||||
event: {
|
||||
type: "mouseWheel",
|
||||
x: coords.x,
|
||||
y: coords.y,
|
||||
button: "none",
|
||||
modifiers,
|
||||
deltaX: e.deltaX,
|
||||
deltaY: e.deltaY,
|
||||
},
|
||||
});
|
||||
|
||||
// console.warn("Wheel Event:", {
|
||||
// eventString: eventData,
|
||||
// currentUrl: tab.url,
|
||||
// pageTitle: tab.title,
|
||||
// currentBase64Data: tab.lastImageData,
|
||||
// });
|
||||
|
||||
tab.ws.send(eventData);
|
||||
e.preventDefault();
|
||||
};
|
||||
canvas.addEventListener("mousedown", (e) => handleMouse(e, "mousePressed"));
|
||||
canvas.addEventListener("mouseup", (e) => handleMouse(e, "mouseReleased"));
|
||||
canvas.addEventListener("mousemove", handleMouseMove);
|
||||
canvas.addEventListener("wheel", handleWheel, { passive: false });
|
||||
// Keyboard events (global)
|
||||
const handleKey = (e: KeyboardEvent, type: "keyDown" | "keyUp") => {
|
||||
if (document.activeElement === urlTextRef.current) return;
|
||||
if (!tab.ws || tab.ws.readyState !== WebSocket.OPEN) return;
|
||||
|
||||
const eventData = JSON.stringify({
|
||||
type: "keyEvent",
|
||||
pageId: activeTabId,
|
||||
event: {
|
||||
type,
|
||||
text: e.key.length === 1 ? e.key : undefined,
|
||||
code: e.code,
|
||||
key: e.key,
|
||||
keyCode: e.keyCode,
|
||||
},
|
||||
});
|
||||
|
||||
// console.warn("Browser Keyboard Event:", {
|
||||
// eventString: eventData,
|
||||
// currentUrl: tab.url,
|
||||
// pageTitle: tab.title,
|
||||
// currentBase64Data: tab.lastImageData,
|
||||
// key: e.key,
|
||||
// code: e.code,
|
||||
// });
|
||||
|
||||
tab.ws.send(eventData);
|
||||
};
|
||||
const keydown = (e: KeyboardEvent) => handleKey(e, "keyDown");
|
||||
const keyup = (e: KeyboardEvent) => handleKey(e, "keyUp");
|
||||
document.addEventListener("keydown", keydown);
|
||||
document.addEventListener("keyup", keyup);
|
||||
return () => {
|
||||
canvas.removeEventListener("mousedown", (e) =>
|
||||
handleMouse(e, "mousePressed"),
|
||||
);
|
||||
canvas.removeEventListener("mouseup", (e) =>
|
||||
handleMouse(e, "mouseReleased"),
|
||||
);
|
||||
canvas.removeEventListener("mousemove", handleMouseMove);
|
||||
canvas.removeEventListener("wheel", handleWheel);
|
||||
document.removeEventListener("keydown", keydown);
|
||||
document.removeEventListener("keyup", keyup);
|
||||
};
|
||||
}, [activeTabId, tabs]);
|
||||
|
||||
// Address bar input
|
||||
const handleUrlSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
if (!urlTextRef.current || !activeTabId) return;
|
||||
const url = urlTextRef.current.value;
|
||||
handleNavigation("url", url);
|
||||
urlTextRef.current.blur();
|
||||
};
|
||||
|
||||
// Navigation buttons
|
||||
const handleNavigation = (
|
||||
action: "back" | "forward" | "refresh" | "url",
|
||||
url?: string,
|
||||
) => {
|
||||
if (!activeTabId || !tabs[activeTabId]?.ws) return;
|
||||
const ws = tabs[activeTabId].ws;
|
||||
if (ws.readyState !== WebSocket.OPEN) return;
|
||||
setTabs((prev) => ({
|
||||
...prev,
|
||||
[activeTabId]: {
|
||||
...prev[activeTabId],
|
||||
isLoading: true,
|
||||
frameCount: 0,
|
||||
},
|
||||
}));
|
||||
const eventData = JSON.stringify({
|
||||
type: "navigation",
|
||||
pageId: activeTabId,
|
||||
event: action === "url" ? { url } : { action },
|
||||
});
|
||||
|
||||
// TODO: push event
|
||||
console.warn("Navigation Event:", {
|
||||
eventString: eventData,
|
||||
currentUrl: tabs[activeTabId].url,
|
||||
pageTitle: tabs[activeTabId].title,
|
||||
currentBase64Data: tabs[activeTabId].lastImageData,
|
||||
action,
|
||||
targetUrl: url,
|
||||
});
|
||||
|
||||
ws.send(eventData);
|
||||
if (action === "url" && url) {
|
||||
window.parent.postMessage(
|
||||
{
|
||||
type: "navigation",
|
||||
url,
|
||||
},
|
||||
"*",
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
// Security lock icon
|
||||
const isSecure = (url: string) =>
|
||||
url &&
|
||||
(url.toLowerCase().startsWith("https://") ||
|
||||
url.toLowerCase().startsWith("https:"));
|
||||
|
||||
// UI
|
||||
return (
|
||||
<div className="container">
|
||||
<div className="browser-chrome">
|
||||
<div className="tab-bar" id="tab-bar">
|
||||
<div
|
||||
className={`connection-status ${connectionStatus}`}
|
||||
id="connection-status"
|
||||
>
|
||||
<div className={`status-indicator ${connectionStatus}`}></div>
|
||||
<span>
|
||||
{connectionStatus === "online"
|
||||
? "Session Online"
|
||||
: connectionStatus === "offline"
|
||||
? "Session Offline"
|
||||
: "Session Connecting..."}
|
||||
</span>
|
||||
</div>
|
||||
{tabOrder.map((id) => {
|
||||
const tab = tabs[id];
|
||||
return (
|
||||
<div
|
||||
key={id}
|
||||
className={`tab${activeTabId === id ? " active" : ""}${
|
||||
tab.isLoading ? " loading" : ""
|
||||
}`}
|
||||
onClick={() => setActiveTabId(id)}
|
||||
>
|
||||
<img
|
||||
className="tab-favicon"
|
||||
src={tab.favicon || ""}
|
||||
style={{ display: tab.favicon ? "block" : "none" }}
|
||||
alt=""
|
||||
/>
|
||||
<div className="tab-favicon-spinner"></div>
|
||||
<div className="tab-title">{tab.title || "New Tab"}</div>
|
||||
<div
|
||||
className="tab-close"
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
handleTabClosed(id);
|
||||
}}
|
||||
>
|
||||
×
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
<div className="address-bar">
|
||||
<div className="nav-buttons">
|
||||
<button
|
||||
className="nav-button"
|
||||
onClick={() => handleNavigation("back")}
|
||||
disabled={!activeTabId}
|
||||
>
|
||||
<svg className="icon" viewBox="0 0 24 24">
|
||||
<path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" />
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
className="nav-button"
|
||||
onClick={() => handleNavigation("forward")}
|
||||
disabled={!activeTabId}
|
||||
>
|
||||
<svg className="icon" viewBox="0 0 24 24">
|
||||
<path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z" />
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
className="nav-button"
|
||||
onClick={() => handleNavigation("refresh")}
|
||||
disabled={!activeTabId}
|
||||
>
|
||||
<svg className="icon" viewBox="0 0 24 24">
|
||||
<path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<form className="url-bar" onSubmit={handleUrlSubmit}>
|
||||
<div
|
||||
className={`url-security-icon${
|
||||
isSecure(tabs[activeTabId || ""]?.url || "") ? " secure" : ""
|
||||
}`}
|
||||
id="url-security-icon"
|
||||
>
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
id="lock-icon"
|
||||
style={{
|
||||
display: isSecure(tabs[activeTabId || ""]?.url || "")
|
||||
? "block"
|
||||
: "none",
|
||||
}}
|
||||
>
|
||||
<path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z" />
|
||||
</svg>
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
id="unlock-icon"
|
||||
style={{
|
||||
display: isSecure(tabs[activeTabId || ""]?.url || "")
|
||||
? "none"
|
||||
: "block",
|
||||
}}
|
||||
>
|
||||
<path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z" />
|
||||
</svg>
|
||||
</div>
|
||||
<input
|
||||
type="text"
|
||||
id="url-text"
|
||||
className="url-input"
|
||||
ref={urlTextRef}
|
||||
value={tabs[activeTabId || ""]?.url || ""}
|
||||
onChange={(e) => {
|
||||
if (!activeTabId || activeKey !== "3") return;
|
||||
setTabs((prev) => ({
|
||||
...prev,
|
||||
[activeTabId]: {
|
||||
...prev[activeTabId],
|
||||
url: e.target.value,
|
||||
},
|
||||
}));
|
||||
}}
|
||||
onFocus={() => setIsUrlBarFocused(true)}
|
||||
onBlur={() => setIsUrlBarFocused(false)}
|
||||
disabled={!activeTabId}
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div className="content">
|
||||
{tabOrder.map((id) => {
|
||||
const tab = tabs[id];
|
||||
return (
|
||||
<div
|
||||
key={id}
|
||||
ref={tab.containerRef}
|
||||
className={`canvas-container${
|
||||
activeTabId === id ? " active" : ""
|
||||
}${tab.isLoading ? " loading" : ""}${tab.error ? " error" : ""}`}
|
||||
style={{
|
||||
display: activeTabId === id ? "flex" : "none",
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
position: "relative",
|
||||
}}
|
||||
>
|
||||
<canvas
|
||||
ref={tab.canvasRef}
|
||||
className="canvas"
|
||||
width={defaultWidth}
|
||||
height={defaultHeight}
|
||||
style={{ height: "100%", width: "auto" }}
|
||||
tabIndex={0}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default memo(Browser);
|
||||
80
alias/frontend/src/components/Chat/BaseMessage.tsx
Normal file
@@ -0,0 +1,80 @@
|
||||
import { Message, MessageRole, MessageState } from "@/types/message";
|
||||
import React from "react";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import remarkGfm from "remark-gfm";
|
||||
import styles from "./Message.module.scss";
|
||||
|
||||
interface BaseMessageProps {
|
||||
message: Message;
|
||||
children: React.ReactNode;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const BaseMessage: React.FC<BaseMessageProps> = ({
|
||||
message,
|
||||
children,
|
||||
onFeedback,
|
||||
}) => {
|
||||
const isAssistant = message.role === MessageRole.ASSISTANT;
|
||||
const isRunning = message.status === MessageState.RUNNING;
|
||||
const isWaiting = message.status === MessageState.WAITING;
|
||||
const isError = message.status === MessageState.ERROR;
|
||||
|
||||
const renderContent = (content: React.ReactNode) => {
|
||||
if (typeof content === "string") {
|
||||
return (
|
||||
<div className={styles.markdown}>
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>{content}</ReactMarkdown>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return content;
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
className={`${styles.message} ${
|
||||
isAssistant ? styles.assistant : styles.user
|
||||
}`}
|
||||
>
|
||||
<div className={styles.content}>
|
||||
{renderContent(children)}
|
||||
{isRunning && <div className={styles.loading}>...</div>}
|
||||
{isWaiting && (
|
||||
<div className={styles.waiting}>Waiting for user selection...</div>
|
||||
)}
|
||||
{isError && <div className={styles.error}>An error occurred</div>}
|
||||
</div>
|
||||
{isAssistant && onFeedback && (
|
||||
<div className={styles.feedback}>
|
||||
<button
|
||||
className={`${styles.feedbackBtn} ${
|
||||
message.feedback === "like" ? styles.active : ""
|
||||
}`}
|
||||
onClick={() =>
|
||||
onFeedback(
|
||||
message.id,
|
||||
message.feedback === "like" ? null : "like",
|
||||
)
|
||||
}
|
||||
>
|
||||
👍
|
||||
</button>
|
||||
<button
|
||||
className={`${styles.feedbackBtn} ${
|
||||
message.feedback === "dislike" ? styles.active : ""
|
||||
}`}
|
||||
onClick={() =>
|
||||
onFeedback(
|
||||
message.id,
|
||||
message.feedback === "dislike" ? null : "dislike",
|
||||
)
|
||||
}
|
||||
>
|
||||
👎
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
79
alias/frontend/src/components/Chat/ClarificationMessage.tsx
Normal file
@@ -0,0 +1,79 @@
|
||||
import {
|
||||
ClarificationMessage as ClarificationType,
|
||||
SelectionType,
|
||||
} from "@/types/message";
|
||||
import React, { useState } from "react";
|
||||
import styles from "./Message.module.scss";
|
||||
|
||||
interface ClarificationMessageProps {
|
||||
message: ClarificationType;
|
||||
onSelect?: (options: string[]) => void;
|
||||
}
|
||||
|
||||
export const ClarificationMessage: React.FC<ClarificationMessageProps> = ({
|
||||
message,
|
||||
onSelect,
|
||||
}) => {
|
||||
const [selectedOptions, setSelectedOptions] = useState<string[]>([]);
|
||||
|
||||
const handleOptionClick = (option: string) => {
|
||||
if (message.selection_type === SelectionType.SINGLE) {
|
||||
setSelectedOptions([option]);
|
||||
onSelect?.([option]);
|
||||
} else {
|
||||
const newSelection = selectedOptions.includes(option)
|
||||
? selectedOptions.filter((item) => item !== option)
|
||||
: [...selectedOptions, option];
|
||||
setSelectedOptions(newSelection);
|
||||
}
|
||||
};
|
||||
|
||||
const handleConfirm = () => {
|
||||
if (
|
||||
message.selection_type === SelectionType.MULTIPLE &&
|
||||
selectedOptions.length > 0
|
||||
) {
|
||||
onSelect?.(selectedOptions);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
// <BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div className={styles.clarificationMessage}>
|
||||
{message.content && (
|
||||
<div className={styles.question}>{message.content}</div>
|
||||
)}
|
||||
{Array.isArray(message?.options) && message.options.length > 0 && (
|
||||
<div className={styles.options}>
|
||||
{message.options?.map((option, index) => (
|
||||
<button
|
||||
key={index}
|
||||
className={`${styles.option} ${
|
||||
selectedOptions.includes(option) ? styles.selected : ""
|
||||
}`}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
handleOptionClick(option);
|
||||
}}
|
||||
disabled={
|
||||
selectedOptions.length > 0 && !selectedOptions.includes(option)
|
||||
}
|
||||
>
|
||||
{option}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
{message.selection_type === SelectionType.MULTIPLE && (
|
||||
<button
|
||||
className={styles.confirmButton}
|
||||
onClick={handleConfirm}
|
||||
disabled={selectedOptions.length === 0}
|
||||
>
|
||||
Confirm
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
// {/* </BaseMessage> */}
|
||||
);
|
||||
};
|
||||
83
alias/frontend/src/components/Chat/CollapsibleMessage.tsx
Normal file
@@ -0,0 +1,83 @@
|
||||
import React, { useState, memo } from "react";
|
||||
import { SparkDoubleRightLine } from "@agentscope-ai/icons";
|
||||
import styles from "./Message.module.scss";
|
||||
import type { Message as MessageType } from "@/types/message";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import remarkGfm from "remark-gfm";
|
||||
import { markdownRegex, codeBlockRegex } from "@/utils/constant";
|
||||
|
||||
const CollapsibleMessage: React.FC<{ message: MessageType }> = ({
|
||||
message,
|
||||
}) => {
|
||||
const messageContent = message.content;
|
||||
|
||||
const [expandedStates, setExpandedStates] = useState<Record<string, boolean>>(
|
||||
{},
|
||||
);
|
||||
const handleExpand = (messageId: string) => {
|
||||
setExpandedStates((prev) => ({
|
||||
...prev,
|
||||
[messageId]: !prev[messageId],
|
||||
}));
|
||||
};
|
||||
if (messageContent === null || messageContent === undefined) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (typeof messageContent !== "string") {
|
||||
return JSON.stringify(messageContent, null, 2);
|
||||
}
|
||||
|
||||
let content = messageContent;
|
||||
|
||||
if (markdownRegex.test(messageContent)) {
|
||||
content = messageContent?.match(markdownRegex)?.[1] || messageContent;
|
||||
} else if (codeBlockRegex.test(messageContent)) {
|
||||
content = messageContent?.match(codeBlockRegex)?.[1] || messageContent;
|
||||
}
|
||||
|
||||
const lines = content.split("\n");
|
||||
const showLines = 10;
|
||||
const isExpanded = expandedStates[message.id];
|
||||
|
||||
// Determine if we should show full content
|
||||
const shouldShowFullContent =
|
||||
message.isGenerating || lines.length <= showLines || isExpanded;
|
||||
|
||||
// Calculate visible content
|
||||
const visibleContent = shouldShowFullContent
|
||||
? content
|
||||
: lines.slice(0, showLines).join("\n");
|
||||
|
||||
return (
|
||||
<div className={styles.collapsibleContent}>
|
||||
<div className={styles.markdown}>
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>
|
||||
{visibleContent}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
{!shouldShowFullContent && (
|
||||
<div
|
||||
className={`${styles.gradientWrapper} ${
|
||||
isExpanded ? styles.expanded : ""
|
||||
}`}
|
||||
>
|
||||
<button
|
||||
className={styles.collapseButton}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
handleExpand(message.id);
|
||||
}}
|
||||
>
|
||||
<SparkDoubleRightLine
|
||||
className={`${styles.arrow} ${
|
||||
isExpanded ? styles.up : styles.down
|
||||
}`}
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
export default memo(CollapsibleMessage);
|
||||
145
alias/frontend/src/components/Chat/FileItems.tsx
Normal file
@@ -0,0 +1,145 @@
|
||||
import iconDoc from "@/assets/icons/files/doc.svg";
|
||||
import iconFile from "@/assets/icons/files/file.svg";
|
||||
import iconHtml from "@/assets/icons/files/html.svg";
|
||||
import iconImage from "@/assets/icons/files/image.svg";
|
||||
import iconPdf from "@/assets/icons/files/pdf.svg";
|
||||
import iconXml from "@/assets/icons/files/xml.svg";
|
||||
import { FileItem } from "@/types/message";
|
||||
import { formatFileSize } from "@/utils/fileNameUtils";
|
||||
import React from "react";
|
||||
import { useLocation, useParams } from "react-router-dom";
|
||||
|
||||
import styles from "./Message.module.scss";
|
||||
|
||||
interface FileItemsProps {
|
||||
files: FileItem[];
|
||||
}
|
||||
|
||||
const getFileIcon = (filename: string) => {
|
||||
if (!filename) return iconFile;
|
||||
const ext = filename.split(".").pop()?.toLowerCase();
|
||||
switch (ext) {
|
||||
case "jpg":
|
||||
return iconImage;
|
||||
case "jpeg":
|
||||
return iconImage;
|
||||
case "png":
|
||||
return iconImage;
|
||||
case "gif":
|
||||
return iconImage;
|
||||
case "pdf":
|
||||
return iconPdf;
|
||||
case "doc":
|
||||
return iconDoc;
|
||||
case "docx":
|
||||
return iconDoc;
|
||||
case "html":
|
||||
return iconHtml;
|
||||
case "xml":
|
||||
return iconXml;
|
||||
default:
|
||||
return iconFile;
|
||||
}
|
||||
};
|
||||
|
||||
const getFileTypeText = (filename: string) => {
|
||||
if (!filename) return "FILE";
|
||||
const ext = filename.split(".").pop()?.toUpperCase();
|
||||
if (ext === "XLS" || ext === "XLSX") return "XLS";
|
||||
if (ext === "PDF") return "PDF";
|
||||
if (ext === "DOC" || ext === "DOCX") return "DOC";
|
||||
if (["JPG", "JPEG", "PNG", "GIF"].includes(ext || "")) return "IMG";
|
||||
return ext || "FILE";
|
||||
};
|
||||
|
||||
export const FileItems: React.FC<FileItemsProps> = ({ files }) => {
|
||||
const location = useLocation();
|
||||
const isSharePage = location.pathname.includes("/share/");
|
||||
const { sessionId, userId } = useParams<{
|
||||
userId: string;
|
||||
sessionId: string;
|
||||
}>();
|
||||
if (!files || !Array.isArray(files) || files.length === 0) {
|
||||
return null;
|
||||
}
|
||||
const handlePreview = (file: FileItem) => {
|
||||
if (!file.id) return;
|
||||
|
||||
const baseUrl = import.meta.env.VITE_API_URL || "http://localhost:8000";
|
||||
// const endpoint = isSharePage ? "public" : "preview";
|
||||
// const url = `${baseUrl}/api/v1/files/${file.id}/${endpoint}`;
|
||||
let url: string;
|
||||
if (isSharePage && userId && sessionId) {
|
||||
url = `${baseUrl}/api/v1/share/conversations/${userId}/${sessionId}/files/${file.id}/public`;
|
||||
} else {
|
||||
url = `${baseUrl}/api/v1/files/${file.id}/preview`;
|
||||
}
|
||||
// If not share page, need to add authentication header
|
||||
if (!isSharePage) {
|
||||
const token =
|
||||
localStorage.getItem("access_token") ||
|
||||
import.meta.env.VITE_API_ACCESS_TOKEN ||
|
||||
import.meta.env.VITE_API_TOKEN;
|
||||
if (!token) {
|
||||
console.error("No access token available");
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a request with authentication header
|
||||
fetch(url, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
})
|
||||
.then((response) => response.blob())
|
||||
.then((blob) => {
|
||||
const objectUrl = URL.createObjectURL(blob);
|
||||
window.open(objectUrl, "_blank");
|
||||
// Clean up URL
|
||||
setTimeout(() => URL.revokeObjectURL(objectUrl), 1000);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Failed to preview file:", error);
|
||||
});
|
||||
} else {
|
||||
// Share page opens link directly
|
||||
window.open(url, "_blank");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
{files.map((file, index) => (
|
||||
<div key={index} className={styles.fileItem}>
|
||||
<div className={styles.fileLeft}>
|
||||
<img
|
||||
src={getFileIcon(file?.filename || "")}
|
||||
className={styles.fileIcon}
|
||||
alt="file icon"
|
||||
/>
|
||||
</div>
|
||||
<div className={styles.fileInfoBlock}>
|
||||
<div className={styles.fileName} title={file?.filename}>
|
||||
{file?.filename || "Unknown file"}
|
||||
</div>
|
||||
<div className={styles.fileSize}>
|
||||
{getFileTypeText(file?.filename || "")}{" "}
|
||||
{formatFileSize(file?.size || 0)}
|
||||
</div>
|
||||
</div>
|
||||
{file?.id && (
|
||||
<button
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
handlePreview(file);
|
||||
}}
|
||||
className={styles.downloadBtn}
|
||||
>
|
||||
Preview
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</>
|
||||
);
|
||||
};
|
||||
25
alias/frontend/src/components/Chat/FilesMessage.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import React from "react";
|
||||
import { FilesMessage as FilesMessageType } from "@/types/message";
|
||||
import { BaseMessage } from "./BaseMessage";
|
||||
import styles from "./Message.module.scss";
|
||||
import { FileItems } from "./FileItems";
|
||||
|
||||
interface FilesMessageProps {
|
||||
message: FilesMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const FilesMessage: React.FC<FilesMessageProps> = ({
|
||||
message,
|
||||
onFeedback,
|
||||
}) => {
|
||||
return (
|
||||
<BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div className={styles.filesMessage}>
|
||||
<div className={styles.filesList}>
|
||||
<FileItems files={message.files} />
|
||||
</div>
|
||||
</div>
|
||||
</BaseMessage>
|
||||
);
|
||||
};
|
||||
888
alias/frontend/src/components/Chat/Message.module.scss
Normal file
@@ -0,0 +1,888 @@
|
||||
.messageWrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
align-items: flex-start;
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
||||
.messageContent {
|
||||
flex: 1;
|
||||
width: 100%; // Ensure container does not exceed parent width
|
||||
max-width: 100%; // Limit maximum width
|
||||
overflow-x: hidden; // Prevent content overflow
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
flex-shrink: 0;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
|
||||
.assistantTitle {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.response {
|
||||
font-family: "Alibaba PuHuiTi 2.0";
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
letter-spacing: 0.2px;
|
||||
color: var(--text-primary);
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
width: 100%; // Ensure container does not exceed parent width
|
||||
max-width: 100%; // Limit maximum width
|
||||
overflow-x: hidden; // Prevent content overflow
|
||||
}
|
||||
|
||||
.thought {
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
color: #a6a6a6;
|
||||
padding-left: 12px;
|
||||
border-left: 1px solid #a6a6a6;
|
||||
margin: 4px 0 4px 4px;
|
||||
width: calc(100% - 16px);
|
||||
}
|
||||
|
||||
// Add a container to wrap all sub_response
|
||||
.subResponsesContainer {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
width: 100%; // Ensure container does not exceed parent width
|
||||
max-width: 100%; // Limit maximum width
|
||||
overflow-x: hidden; // Prevent content overflow
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.subResponse {
|
||||
position: relative;
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
padding: 4px 0;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, 0.02); // Add hover effect
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.expandButton {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 2px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
margin-right: auto;
|
||||
order: -1;
|
||||
|
||||
img {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
transition: transform 0.2s ease;
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
&.expanded img {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
.subMessageItem {
|
||||
margin-left: 32px;
|
||||
|
||||
&.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.thought {
|
||||
padding: 8px;
|
||||
background: var(--sidebar-conversation-bg);
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.toolCallWrapper {
|
||||
// margin-left: 32px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
flex-shrink: 0;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.responseGroup {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.subMessages {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 1px;
|
||||
background-color: #e0e0e0;
|
||||
}
|
||||
}
|
||||
|
||||
.subResponseContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
margin-bottom: 8px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.messageItem {
|
||||
border: 2px solid transparent;
|
||||
border-radius: 8px;
|
||||
transition: all 0.2s ease;
|
||||
margin: 4px 0;
|
||||
|
||||
&.selectedMessage {
|
||||
background-color: var(--message-selected-bg, rgba(37, 99, 235, 0.05));
|
||||
border-color: var(--message-selected-border, #2563eb);
|
||||
}
|
||||
|
||||
// Can add mouse hover effect
|
||||
&:hover {
|
||||
background-color: var(--message-hover-bg, rgba(37, 99, 235, 0.02));
|
||||
}
|
||||
}
|
||||
|
||||
.messageContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.agentContentWrapper {
|
||||
padding: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.mainResponse {
|
||||
color: var(--text-primary);
|
||||
white-space: pre-wrap;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.toolCall {
|
||||
margin-left: 24px;
|
||||
background-color: rgba(0, 0, 0, 0.02);
|
||||
border-radius: 4px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.expandableContent {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.3s ease-out;
|
||||
opacity: 0;
|
||||
|
||||
&.expanded {
|
||||
max-height: 1000px;
|
||||
opacity: 1;
|
||||
transition: max-height 0.3s ease-in, opacity 0.2s ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
.toolSection,
|
||||
.fileSection,
|
||||
.thoughtSection,
|
||||
.clarificationSection {
|
||||
margin-top: 12px;
|
||||
padding: 12px;
|
||||
background-color: rgba(0, 0, 0, 0.02);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.thoughtSection {
|
||||
color: #666;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.fileSection {
|
||||
.fileItem {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px;
|
||||
background-color: rgba(0, 0, 0, 0.02);
|
||||
border-radius: 6px;
|
||||
margin-bottom: 8px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.clarificationSection {
|
||||
.optionsContainer {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.optionButton {
|
||||
padding: 6px 12px;
|
||||
border-radius: 6px;
|
||||
background-color: rgba(0, 0, 0, 0.02);
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
border-color: rgba(0, 0, 0, 0.2);
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
font-weight: 500;
|
||||
|
||||
&:disabled {
|
||||
opacity: 1; // Selected button remains fully opaque
|
||||
}
|
||||
}
|
||||
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
.messageFooter {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-top: 8px;
|
||||
padding-left: 16px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.timestamp {
|
||||
font-size: 12px;
|
||||
color: #9ca3af;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.status {
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
|
||||
&.running {
|
||||
background: #e6f4ff;
|
||||
color: #1677ff;
|
||||
}
|
||||
|
||||
&.error {
|
||||
background: #fff2f0;
|
||||
color: #ff4d4f;
|
||||
}
|
||||
|
||||
&.waiting {
|
||||
background: #f5f5f5;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
.feedback {
|
||||
display: flex;
|
||||
flex-direction: row; // Changed to left to right
|
||||
justify-content: flex-start; // Ensure left alignment
|
||||
margin: 0 12px;
|
||||
}
|
||||
|
||||
.textContent {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.files {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.filesMessage {
|
||||
padding: 16px 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.filesList {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.fileItem {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: var(--message-fileItem-bg);
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 1px 6px 0 rgba(99, 102, 241, 0.06);
|
||||
padding: 10px 18px;
|
||||
min-width: 200px;
|
||||
max-width: 260px;
|
||||
margin-bottom: 0;
|
||||
transition: box-shadow 0.2s, border 0.2s, background 0.2s;
|
||||
border: 1px solid var(--sps-color-border-secondary);
|
||||
|
||||
&:hover,
|
||||
&.selected {
|
||||
background: var(--message-content);
|
||||
box-shadow: 0 2px 12px 0 rgba(99, 102, 241, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.fileLeft {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.fileIcon {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.fileInfoBlock {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.fileName {
|
||||
font-weight: 600;
|
||||
color: var(--message-fileItem-text);
|
||||
font-size: 15px;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 4px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fileSize {
|
||||
color: #60a5fa;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.downloadBtn {
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
bottom: 10px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
color: #6366f1;
|
||||
font-size: 13px;
|
||||
margin-top: auto;
|
||||
transition: color 0.2s;
|
||||
&:hover {
|
||||
color: #4338ca;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.markdown {
|
||||
// Basic text styles
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
// Ensure container does not exceed parent width
|
||||
width: 100%;
|
||||
// Limit maximum width
|
||||
max-width: 100%;
|
||||
|
||||
// Heading styles
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0.3em 0 0.1em;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
// Paragraph styles
|
||||
p {
|
||||
margin: 0;
|
||||
line-height: 1.4;
|
||||
|
||||
&+p {
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
}
|
||||
|
||||
// List styles
|
||||
ul,
|
||||
ol {
|
||||
margin: 0.1em 0;
|
||||
padding-left: 1.2em;
|
||||
}
|
||||
|
||||
li {
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1.4;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&+li {
|
||||
margin-top: 0.1em;
|
||||
}
|
||||
}
|
||||
|
||||
// Code styles
|
||||
code {
|
||||
padding: 0.1em 0.2em;
|
||||
margin: 0;
|
||||
font-size: 85%;
|
||||
background-color: rgba(175, 184, 193, 0.2);
|
||||
border-radius: 4px;
|
||||
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
|
||||
Liberation Mono, monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 8px;
|
||||
margin: 0.2em 0;
|
||||
font-size: 85%;
|
||||
line-height: 1.4;
|
||||
background-color: rgba(175, 184, 193, 0.2);
|
||||
border-radius: 4px;
|
||||
|
||||
code {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
// display: block; // Make code block occupy a single line
|
||||
width: 100%;
|
||||
// Allow code to wrap
|
||||
white-space: pre-wrap;
|
||||
// Ensure long words can wrap
|
||||
word-wrap: break-word;
|
||||
}
|
||||
}
|
||||
|
||||
// Quote styles
|
||||
blockquote {
|
||||
margin: 0.2em 0;
|
||||
padding: 0 0.5em;
|
||||
color: #656d76;
|
||||
border-left: 0.2em solid #d0d7de;
|
||||
}
|
||||
|
||||
// Table styles
|
||||
table {
|
||||
margin: 0.2em 0;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #d0d7de;
|
||||
}
|
||||
|
||||
tr {
|
||||
background-color: #ffffff;
|
||||
border-top: 1px solid #d0d7de;
|
||||
|
||||
&:nth-child(2n) {
|
||||
background-color: #f6f8fa;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Image styles
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
// Divider styles
|
||||
hr {
|
||||
height: 1px;
|
||||
margin: 0.2em 0;
|
||||
background-color: #d0d7de;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// Link styles
|
||||
a {
|
||||
color: #0969da;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
// Specifically handle spaces created by line breaks
|
||||
br {
|
||||
// Changed to inline display
|
||||
display: inline;
|
||||
// Preserve line break effect
|
||||
white-space: pre;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0.3em;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
// Handle consecutive line breaks
|
||||
br+br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Handle line breaks in paragraphs
|
||||
p {
|
||||
br {
|
||||
display: inline;
|
||||
white-space: pre;
|
||||
height: 0.3em;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle line breaks in list items
|
||||
li {
|
||||
br {
|
||||
display: inline;
|
||||
white-space: pre;
|
||||
height: 0.3em;
|
||||
}
|
||||
}
|
||||
|
||||
// Task list styles
|
||||
input[type="checkbox"] {
|
||||
margin: 0 0.3em 0 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
// Task list item styles
|
||||
li:has(input[type="checkbox"]) {
|
||||
list-style: none;
|
||||
margin-left: -1.2em;
|
||||
padding-left: 1.2em;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.2em;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove extra spacing from first and last elements
|
||||
*:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
*:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.thinkingContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.thinkingDots {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
margin-left: 4px;
|
||||
|
||||
span {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background-color: #666;
|
||||
border-radius: 50%;
|
||||
animation: thinking 1.4s infinite ease-in-out;
|
||||
|
||||
&:nth-child(1) {
|
||||
animation-delay: 0s;
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
animation-delay: 0.2s;
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.thinkingText {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@keyframes thinking {
|
||||
|
||||
0%,
|
||||
80%,
|
||||
100% {
|
||||
transform: scale(0.6);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.responseGroup {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.response {
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.subMessages {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.clarificationMessage {
|
||||
border-radius: 20px;
|
||||
opacity: 1;
|
||||
background: var(--message-clarification-bg);
|
||||
padding: 11px 12px;
|
||||
margin-bottom: 12px;
|
||||
|
||||
.question {
|
||||
font-family: PingFang SC;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
line-height: 20px;
|
||||
letter-spacing: 0px;
|
||||
font-variation-settings: "opsz" auto;
|
||||
color: var(--text-secondary);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.options {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
|
||||
.option {
|
||||
width: 100%;
|
||||
border-radius: 12px;
|
||||
opacity: 1;
|
||||
background: var(--message-option-bg);
|
||||
box-sizing: border-box;
|
||||
border: 1px solid var(--message-option-border);
|
||||
padding: 10px 30px;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
color: var(--text-primary);
|
||||
|
||||
&:hover {
|
||||
background: var(--message-option-bg-hover);
|
||||
border-color: #2563eb;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background: var(--message-option-bg-hover);
|
||||
border-color: #2563eb;
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.confirmButton {
|
||||
margin-top: 12px;
|
||||
padding: 8px 16px;
|
||||
border-radius: 8px;
|
||||
background: #2563eb;
|
||||
color: var(--text-primary);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
|
||||
&:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
background: #1d4ed8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.collapsibleContent {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.gradientWrapper {
|
||||
position: relative;
|
||||
height: 30px;
|
||||
background: linear-gradient(to bottom,
|
||||
rgba(255, 255, 255, 0) 0%,
|
||||
rgba(255, 255, 255, 0.1) 50%,
|
||||
rgba(255, 255, 255, 0.3) 100%);
|
||||
}
|
||||
|
||||
.collapseButton {
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.arrow.up {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.arrow.down {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
/* Mouse hover effect */
|
||||
.collapseButton:hover .arrow {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
266
alias/frontend/src/components/Chat/Message.tsx
Normal file
@@ -0,0 +1,266 @@
|
||||
import AssistantAvatar from "@/assets/icons/avatar/assistantHeader.png";
|
||||
import correctCheckIcon from "@/assets/icons/check/correct-checkCircle-line.svg";
|
||||
import pendingCheckIcon from "@/assets/icons/check/pending-checkCircle-line.svg";
|
||||
import type {
|
||||
ClarificationMessage,
|
||||
FilesMessage,
|
||||
Message as MessageType,
|
||||
ToolCallMessage,
|
||||
} from "@/types/message";
|
||||
import {
|
||||
MessageRole,
|
||||
MessageState,
|
||||
MessageType as MsgType,
|
||||
} from "@/types/message";
|
||||
import { Flex } from "antd";
|
||||
import React, { memo, useMemo, useState } from "react";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import { ClarificationMessage as ClarificationMessageComponent } from "./ClarificationMessage";
|
||||
import CollapsibleMessage from "./CollapsibleMessage";
|
||||
import { FilesMessage as FilesMessageComponent } from "./FilesMessage";
|
||||
import styles from "./Message.module.scss";
|
||||
import { ToolCallMessage as ToolCallMessageComponent } from "./ToolCallMessage";
|
||||
import { UserMessage } from "./UserMessage";
|
||||
|
||||
interface MessageProps {
|
||||
message: MessageType;
|
||||
onClarificationSelect?: (options: string[]) => void;
|
||||
isReplayMode?: boolean;
|
||||
isGenerating?: boolean;
|
||||
messages?: MessageType[];
|
||||
}
|
||||
|
||||
const deduplicateMessages = (messages: MessageType[]): MessageType[] => {
|
||||
const result: MessageType[] = [];
|
||||
let consecutiveSubResponses: MessageType[] = [];
|
||||
|
||||
// Handle consecutive SUB_RESPONSE
|
||||
const processConsecutiveSubResponses = () => {
|
||||
if (consecutiveSubResponses.length > 0) {
|
||||
// Deduplicate consecutive SUB_RESPONSE
|
||||
const uniqueMessages = new Map<string, MessageType>();
|
||||
consecutiveSubResponses.forEach((msg) => {
|
||||
const key = `${msg.name}-${msg.content}`;
|
||||
if (uniqueMessages.has(key)) {
|
||||
const existingMsg = uniqueMessages.get(key)!;
|
||||
if (
|
||||
new Date(msg.create_time).getTime() >
|
||||
new Date(existingMsg.create_time).getTime()
|
||||
) {
|
||||
uniqueMessages.set(key, msg);
|
||||
}
|
||||
} else {
|
||||
uniqueMessages.set(key, msg);
|
||||
}
|
||||
});
|
||||
|
||||
// Add deduplicated messages to result
|
||||
result.push(...Array.from(uniqueMessages.values()));
|
||||
consecutiveSubResponses = []; // Clear temporary array
|
||||
}
|
||||
};
|
||||
|
||||
messages.forEach((msg, index) => {
|
||||
if (msg.type === MsgType.SUB_RESPONSE) {
|
||||
consecutiveSubResponses.push(msg);
|
||||
} else {
|
||||
// When encountering non-SUB_RESPONSE message, process previously collected consecutive SUB_RESPONSE
|
||||
processConsecutiveSubResponses();
|
||||
// Add non-SUB_RESPONSE message
|
||||
result.push(msg);
|
||||
}
|
||||
});
|
||||
|
||||
// Process last group of consecutive SUB_RESPONSE
|
||||
processConsecutiveSubResponses();
|
||||
|
||||
return result;
|
||||
};
|
||||
export const Message: React.FC<MessageProps> = ({
|
||||
message,
|
||||
onClarificationSelect,
|
||||
isReplayMode = false,
|
||||
isGenerating = false,
|
||||
messages = [],
|
||||
}) => {
|
||||
const isUser = message.role === MessageRole.USER;
|
||||
const [openPopoverId, setOpenPopoverId] = useState<string | null>(null);
|
||||
const location = useLocation();
|
||||
const isSharePage = location.pathname.includes("/share/");
|
||||
|
||||
const renderAvatar = () => {
|
||||
return (
|
||||
<Flex gap="middle">
|
||||
<div className={styles.avatar}>
|
||||
<img src={AssistantAvatar} alt="Assistant" />
|
||||
</div>
|
||||
<div className={styles.assistantTitle}>Alias Agent</div>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
|
||||
// Render directly if it's a user message
|
||||
if (isUser && message.type === MsgType.USER)
|
||||
return <UserMessage message={message} />;
|
||||
// For agent messages, only render the entire group for the first message
|
||||
const isFirstMessage =
|
||||
messages.find(
|
||||
(msg) =>
|
||||
msg.role === MessageRole.ASSISTANT &&
|
||||
msg.parent_message_id === message.parent_message_id,
|
||||
)?.id === message.id;
|
||||
|
||||
if (!isFirstMessage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Modify renderStatus function
|
||||
const renderStatus = () => {
|
||||
if (!message.isGenerating) {
|
||||
return null;
|
||||
}
|
||||
if (
|
||||
message.status !== MessageState.WAITING &&
|
||||
message.status !== MessageState.ERROR
|
||||
) {
|
||||
return (
|
||||
<div className={`${styles.status} ${styles.running}`}>
|
||||
Generating...
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<div
|
||||
className={`${styles.status} ${styles[message.status.toLowerCase()]}`}
|
||||
>
|
||||
{message.status === MessageState.WAITING && "Waiting..."}
|
||||
{message.status === MessageState.ERROR && "Generation failed"}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const renderSingleMessage = (
|
||||
msg: MessageType,
|
||||
allMessages: MessageType[],
|
||||
) => {
|
||||
switch (msg.type) {
|
||||
case MsgType.RESPONSE:
|
||||
return (
|
||||
<div key={msg.id} className={styles.response}>
|
||||
<div className={styles.content}>
|
||||
<CollapsibleMessage message={msg} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
case MsgType.THOUGHT:
|
||||
return (
|
||||
<div key={msg.id} className={styles.thought}>
|
||||
<CollapsibleMessage message={msg} />
|
||||
</div>
|
||||
);
|
||||
|
||||
case MsgType.SUB_RESPONSE:
|
||||
return (
|
||||
<div key={msg.id}>
|
||||
<div className={styles.subResponse}>
|
||||
<img
|
||||
src={
|
||||
msg.status === MessageState.FINISHED
|
||||
? correctCheckIcon
|
||||
: pendingCheckIcon
|
||||
}
|
||||
alt="status"
|
||||
className={styles.icon}
|
||||
/>
|
||||
<div className={styles.content}>
|
||||
<CollapsibleMessage message={msg} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
case MsgType.SUB_THOUGHT:
|
||||
return (
|
||||
<div className={styles.subMessageItem}>
|
||||
<div key={msg.id} className={styles.thought}>
|
||||
<CollapsibleMessage message={msg} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
case MsgType.TOOL_CALL:
|
||||
case MsgType.TOOL_USE:
|
||||
case MsgType.TOOL_RESULT:
|
||||
return (
|
||||
<div
|
||||
key={msg.id}
|
||||
className={styles.toolCallWrapper}
|
||||
id={`message-toolcall-${msg.id}`}
|
||||
>
|
||||
<ToolCallMessageComponent message={msg as ToolCallMessage} />
|
||||
</div>
|
||||
);
|
||||
|
||||
case MsgType.CLARIFICATION:
|
||||
if (!msg.content && (msg?.options?.length === 0 || !msg?.options))
|
||||
return null;
|
||||
return (
|
||||
<div key={msg.id} className={styles.clarificationMessage}>
|
||||
<ClarificationMessageComponent
|
||||
message={msg as ClarificationMessage}
|
||||
onSelect={onClarificationSelect}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
case MsgType.FILES:
|
||||
return (
|
||||
<div key={msg.id} className={styles.fileSection}>
|
||||
<FilesMessageComponent message={msg as FilesMessage} />
|
||||
</div>
|
||||
);
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
// Get all non-user messages with the same parent_message_id
|
||||
const relatedMessages = useMemo(() => {
|
||||
const filteredMessages = messages.filter(
|
||||
(msg) =>
|
||||
msg.role === MessageRole.ASSISTANT &&
|
||||
msg.parent_message_id === message.parent_message_id,
|
||||
);
|
||||
|
||||
// Deduplicate messages
|
||||
const uniqueMessages = deduplicateMessages(filteredMessages);
|
||||
return uniqueMessages;
|
||||
}, [messages, message.parent_message_id]);
|
||||
|
||||
if (relatedMessages && relatedMessages.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.messageWrapper}>
|
||||
{renderAvatar()}
|
||||
<div className={styles.messageContent}>
|
||||
{relatedMessages.map((msg, index) => {
|
||||
return (
|
||||
<div
|
||||
className={`${styles.messageItem} ${
|
||||
openPopoverId === msg.id ? styles.selectedMessage : ""
|
||||
}`}
|
||||
key={msg.id}
|
||||
>
|
||||
{renderSingleMessage(msg, relatedMessages)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
<div className={styles.messageFooter}>{renderStatus()}</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
export default memo(Message);
|
||||
21
alias/frontend/src/components/Chat/MessageList.module.scss
Normal file
@@ -0,0 +1,21 @@
|
||||
.messageList {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: #e5e7eb;
|
||||
border-radius: 3px;
|
||||
|
||||
&:hover {
|
||||
background-color: #d1d5db;
|
||||
}
|
||||
}
|
||||
}
|
||||
195
alias/frontend/src/components/Chat/MessageList.tsx
Normal file
@@ -0,0 +1,195 @@
|
||||
import { MessageState, Message as MessageType } from "@/types/message";
|
||||
import { isAtBottom } from "@/utils/sharedRefs";
|
||||
import React, {
|
||||
memo,
|
||||
useEffect,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useRef,
|
||||
useState,
|
||||
} from "react";
|
||||
import Message from "./Message";
|
||||
import styles from "./MessageList.module.scss";
|
||||
import { ThinkingMessage } from "./ThinkingMessage";
|
||||
|
||||
interface MessageListProps {
|
||||
messages?: MessageType[];
|
||||
onClarificationSelect?: (options: string[]) => void;
|
||||
onAddMessage?: (message: MessageType) => void;
|
||||
isThinking?: boolean;
|
||||
isReplayMode?: boolean;
|
||||
isGenerating?: boolean;
|
||||
currentStep?: number;
|
||||
ScrollToBottomButtonRef?: any;
|
||||
currentConversationId?: string;
|
||||
startTimer: () => void;
|
||||
}
|
||||
|
||||
export const MessageList: React.FC<MessageListProps> = ({
|
||||
messages = [],
|
||||
onClarificationSelect,
|
||||
onAddMessage,
|
||||
isThinking = false,
|
||||
isReplayMode = false,
|
||||
isGenerating = false,
|
||||
currentStep,
|
||||
currentConversationId,
|
||||
ScrollToBottomButtonRef = useRef<any>(),
|
||||
startTimer = () => {},
|
||||
}) => {
|
||||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||||
const [displayedMessages, setDisplayedMessages] = useState<MessageType[]>([]);
|
||||
const [currentMessageIndex, setCurrentMessageIndex] = useState(0);
|
||||
const [toBottomBtn, setToBottomBtn] = useState(true);
|
||||
const messageListRef = useRef<HTMLDivElement>(null);
|
||||
const scrollToBottom = () => {
|
||||
// console.log(
|
||||
// ScrollToBottomButtonRef.current,
|
||||
// "ScrollToBottomButtonRef.current"
|
||||
// );
|
||||
if (ScrollToBottomButtonRef.current) {
|
||||
// console.log("--------");
|
||||
ScrollToBottomButtonRef.current.scrollToBottom("auto");
|
||||
}
|
||||
// messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||||
};
|
||||
|
||||
// Modify message processing logic, add conversation ID filtering
|
||||
const processedMessages = useMemo(() => {
|
||||
if (!Array.isArray(messages)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// First filter out messages belonging to current conversation
|
||||
// const currentConversationMessages = messages.filter(msg =>
|
||||
// !currentConversationId || msg.conversation_id === currentConversationId
|
||||
// );
|
||||
// Sort by time
|
||||
const sortedMessages = [...messages].sort(
|
||||
(a, b) =>
|
||||
new Date(a.create_time).getTime() - new Date(b.create_time).getTime(),
|
||||
);
|
||||
|
||||
// Merge consecutive running messages
|
||||
return sortedMessages.reduce((acc: MessageType[], curr, index) => {
|
||||
// Add directly if it's the first message
|
||||
if (index === 0) {
|
||||
return [curr];
|
||||
}
|
||||
|
||||
const prevMessage = acc[acc.length - 1];
|
||||
const isSameConversation =
|
||||
curr.conversation_id === prevMessage.conversation_id;
|
||||
const isPrevRunning = prevMessage.status === MessageState.RUNNING;
|
||||
const isCurrRunning = curr.status === MessageState.RUNNING;
|
||||
const isSameType = curr.type === prevMessage.type;
|
||||
|
||||
// If previous message is running state, and current message is also running or finished state
|
||||
// and is the same type of message from the same conversation, update the previous message
|
||||
if (
|
||||
isSameConversation &&
|
||||
isPrevRunning &&
|
||||
isSameType &&
|
||||
(isCurrRunning || curr.status === MessageState.FINISHED)
|
||||
) {
|
||||
acc[acc.length - 1] = {
|
||||
...curr,
|
||||
id: prevMessage.id, // Keep original id to maintain React key stability
|
||||
};
|
||||
} else {
|
||||
acc.push(curr);
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
}, [messages, currentConversationId]);
|
||||
|
||||
// Message streaming output in replay mode
|
||||
useEffect(() => {
|
||||
// console.log(messages,"processedMessages")
|
||||
|
||||
if (!isReplayMode) {
|
||||
setDisplayedMessages(processedMessages);
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentMessageIndex < processedMessages.length) {
|
||||
const currentMessage = processedMessages[currentMessageIndex];
|
||||
const messageWithStreaming = {
|
||||
...currentMessage,
|
||||
status: MessageState.RUNNING,
|
||||
};
|
||||
|
||||
setDisplayedMessages((prev) => [...prev, messageWithStreaming]);
|
||||
|
||||
// Simulate streaming output
|
||||
const timer = setTimeout(() => {
|
||||
setDisplayedMessages((prev) => {
|
||||
const newMessages = [...prev];
|
||||
newMessages[newMessages.length - 1] = {
|
||||
...currentMessage,
|
||||
status: MessageState.FINISHED,
|
||||
};
|
||||
return newMessages;
|
||||
});
|
||||
setCurrentMessageIndex((prev) => prev + 1);
|
||||
}, 500); // Display each message for 0.5 seconds
|
||||
|
||||
return () => clearTimeout(timer);
|
||||
}
|
||||
}, [isReplayMode, currentMessageIndex, processedMessages]);
|
||||
|
||||
// Reset state when message list changes
|
||||
useEffect(() => {
|
||||
if (isReplayMode) {
|
||||
setCurrentMessageIndex(0);
|
||||
setDisplayedMessages([]);
|
||||
} else {
|
||||
setDisplayedMessages(processedMessages);
|
||||
}
|
||||
}, [messages, isReplayMode, processedMessages]);
|
||||
|
||||
// Update displayed messages when currentStep changes
|
||||
useEffect(() => {
|
||||
if (currentStep !== undefined) {
|
||||
const messagesToShow = processedMessages.slice(0, currentStep);
|
||||
setDisplayedMessages(messagesToShow);
|
||||
setCurrentMessageIndex(currentStep);
|
||||
}
|
||||
}, [currentStep, processedMessages]);
|
||||
const shouldScrollRef = useRef(isAtBottom.current);
|
||||
|
||||
useEffect(() => {
|
||||
// Sync latest scroll condition to ref
|
||||
shouldScrollRef.current = isAtBottom.current;
|
||||
}, [isAtBottom.current]);
|
||||
useLayoutEffect(() => {
|
||||
// Exit directly if scrolling is not needed
|
||||
if (!shouldScrollRef.current) return;
|
||||
startTimer();
|
||||
}, [displayedMessages, isThinking, startTimer]);
|
||||
useEffect(() => {
|
||||
if (toBottomBtn && displayedMessages.length > 0) {
|
||||
scrollToBottom();
|
||||
setToBottomBtn(false);
|
||||
}
|
||||
}, [displayedMessages, isThinking]);
|
||||
return (
|
||||
<div className={styles.messageList} ref={messageListRef}>
|
||||
{displayedMessages.map((message) => (
|
||||
<Message
|
||||
key={message.id}
|
||||
message={message}
|
||||
messages={displayedMessages}
|
||||
onClarificationSelect={onClarificationSelect}
|
||||
isReplayMode={isReplayMode}
|
||||
isGenerating={isGenerating}
|
||||
/>
|
||||
))}
|
||||
{isThinking && <ThinkingMessage />}
|
||||
<div ref={messagesEndRef} />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default memo(MessageList);
|
||||
26
alias/frontend/src/components/Chat/ResponseMessage.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import React from "react";
|
||||
import { ResponseMessage as ResponseMessageType } from "@/types/message";
|
||||
import { BaseMessage } from "./BaseMessage";
|
||||
import styles from "./Message.module.scss";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import remarkGfm from "remark-gfm";
|
||||
|
||||
interface ResponseMessageProps {
|
||||
message: ResponseMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const ResponseMessage: React.FC<ResponseMessageProps> = ({
|
||||
message,
|
||||
onFeedback,
|
||||
}) => {
|
||||
return (
|
||||
<BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div className={styles.markdown}>
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>
|
||||
{message.content}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
</BaseMessage>
|
||||
);
|
||||
};
|
||||
23
alias/frontend/src/components/Chat/SubResponseMessage.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
import React from "react";
|
||||
import { SubResponseMessage as SubResponseMessageType } from "@/types/message";
|
||||
import { BaseMessage } from "./BaseMessage";
|
||||
import styles from "./Message.module.scss";
|
||||
|
||||
interface SubResponseMessageProps {
|
||||
message: SubResponseMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const SubResponseMessage: React.FC<SubResponseMessageProps> = ({
|
||||
message,
|
||||
onFeedback,
|
||||
}) => {
|
||||
return (
|
||||
<BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div className={styles.subResponseMessage}>
|
||||
{/* <img src={iconCheckbox} alt="checkbox" className={styles.checkbox} /> */}
|
||||
<div className={styles.subResponseContent}>{message.content}</div>
|
||||
</div>
|
||||
</BaseMessage>
|
||||
);
|
||||
};
|
||||
22
alias/frontend/src/components/Chat/SubThoughtMessage.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
import React from "react";
|
||||
import { SubThoughtMessage as SubThoughtMessageType } from "@/types/message";
|
||||
import { BaseMessage } from "./BaseMessage";
|
||||
import styles from "./Message.module.scss";
|
||||
|
||||
interface SubThoughtMessageProps {
|
||||
message: SubThoughtMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const SubThoughtMessage: React.FC<SubThoughtMessageProps> = ({
|
||||
message,
|
||||
onFeedback,
|
||||
}) => {
|
||||
return (
|
||||
<BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div className={styles.subThoughtMessage}>
|
||||
<div className={styles.subThoughtContent}>{message.content}</div>
|
||||
</div>
|
||||
</BaseMessage>
|
||||
);
|
||||
};
|
||||
19
alias/frontend/src/components/Chat/SystemMessage.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import React from "react";
|
||||
import { SystemMessage as SystemMessageType } from "@/types/message";
|
||||
import { BaseMessage } from "./BaseMessage";
|
||||
|
||||
interface SystemMessageProps {
|
||||
message: SystemMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const SystemMessage: React.FC<SystemMessageProps> = ({
|
||||
message,
|
||||
onFeedback,
|
||||
}) => {
|
||||
return (
|
||||
<BaseMessage message={message} onFeedback={onFeedback}>
|
||||
<div>{message.content}</div>
|
||||
</BaseMessage>
|
||||
);
|
||||
};
|
||||
20
alias/frontend/src/components/Chat/ThinkingMessage.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import React from "react";
|
||||
import styles from "./Message.module.scss";
|
||||
import AssistantAvatar from "@/assets/icons/avatar/assistantHeader.png";
|
||||
import { Flex } from "antd";
|
||||
|
||||
export const ThinkingMessage: React.FC = () => {
|
||||
return (
|
||||
<Flex gap="middle" align="center">
|
||||
<div className={styles.avatar}>
|
||||
<img src={AssistantAvatar} alt="Agent" />
|
||||
</div>
|
||||
<div className={styles.thinkingText}>Agent is thinking</div>
|
||||
<div className={styles.thinkingDots}>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
16
alias/frontend/src/components/Chat/ThoughtMessage.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import React from "react";
|
||||
import { ThoughtMessage as ThoughtMessageType } from "@/types/message";
|
||||
|
||||
interface ThoughtMessageProps {
|
||||
message: ThoughtMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const ThoughtMessage: React.FC<ThoughtMessageProps> = ({ message }) => {
|
||||
return (
|
||||
<div className="flex items-start gap-2 p-2 bg-gray-50 rounded">
|
||||
<span className="text-lg">💭</span>
|
||||
<div className="whitespace-pre-wrap">{message.content}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
.toolCallMessage {
|
||||
background-color: var(--sps-color-fill-tertiary);
|
||||
border-radius: 8px;
|
||||
.toolCallHeader {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.arguments {
|
||||
border-left: solid 1px var(--sps-color-border-secondary);
|
||||
margin: 0px 12px 12px 20px;
|
||||
}
|
||||
.contents {
|
||||
white-space: pre-wrap;
|
||||
margin-left: 16px;
|
||||
}
|
||||
}
|
||||
121
alias/frontend/src/components/Chat/ToolCallMessage/index.tsx
Normal file
@@ -0,0 +1,121 @@
|
||||
import { useWorkspace } from "@/context/WorkspaceContext.tsx";
|
||||
import type { ToolCallMessage as ToolCallMessageType } from "@/types/message";
|
||||
import {
|
||||
SparkBrowseLine,
|
||||
SparkDownLine,
|
||||
SparkLocalFileLine,
|
||||
SparkToolLine,
|
||||
SparkUpLine,
|
||||
} from "@agentscope-ai/icons";
|
||||
import { Flex } from "antd";
|
||||
import React, { memo, useEffect, useState } from "react";
|
||||
import styles from "./index.module.scss";
|
||||
|
||||
interface ToolCallMessageProps {
|
||||
message: ToolCallMessageType;
|
||||
onFeedback?: (messageId: string, feedback: "like" | "dislike" | null) => void;
|
||||
}
|
||||
|
||||
export const ToolCallMessage: React.FC<ToolCallMessageProps> = memo(
|
||||
({ message }) => {
|
||||
const { setDisplayedContent, setActiveKey, setArgs, setMessageList } =
|
||||
useWorkspace();
|
||||
const [isExpanded, setIsExpanded] = useState(false);
|
||||
useEffect(() => {
|
||||
setDisplayedContent(message.content);
|
||||
setArgs(message?.arguments);
|
||||
setMessageList((prev) => {
|
||||
// Filter out old messages with same id
|
||||
const filtered = prev.filter(
|
||||
(m) => m.id !== message.id && m.content !== message.content,
|
||||
);
|
||||
// Add new message
|
||||
return [...filtered, message];
|
||||
});
|
||||
}, [message]); // Depend on entire message object
|
||||
|
||||
const getIcon = () => {
|
||||
// Determine icon based on tool name if icon is not specified
|
||||
if (!message.icon) {
|
||||
const toolName =
|
||||
("tool_name" in message ? message.tool_name : undefined) ||
|
||||
message.name ||
|
||||
"";
|
||||
if (toolName.toLowerCase().includes("browser")) {
|
||||
return <SparkBrowseLine />;
|
||||
}
|
||||
if (toolName.toLowerCase().includes("file")) {
|
||||
return <SparkLocalFileLine />;
|
||||
}
|
||||
} else {
|
||||
switch (message.icon) {
|
||||
case "browser":
|
||||
return <SparkBrowseLine />;
|
||||
case "file":
|
||||
return <SparkLocalFileLine />;
|
||||
default:
|
||||
return <SparkToolLine />;
|
||||
}
|
||||
}
|
||||
return <SparkToolLine />;
|
||||
};
|
||||
|
||||
const getToolName = () => {
|
||||
if (message.type === "tool_use")
|
||||
return `Using Tool: ${message?.tool_name || message.name}`;
|
||||
if (message.type === "tool_result")
|
||||
return `Tool result: ${message?.tool_name || message.name}`;
|
||||
return message?.tool_name || message.name;
|
||||
};
|
||||
|
||||
const getToolArguments = () => {
|
||||
const argContents = JSON.stringify(message.arguments, null, 2);
|
||||
if (!argContents || argContents === "{}" || argContents === "{ }") {
|
||||
try {
|
||||
const content = JSON.parse(message.content);
|
||||
if (Array.isArray(content) && content.length > 0) {
|
||||
const output = content[0]?.output;
|
||||
if (typeof output === "string") {
|
||||
return output;
|
||||
}
|
||||
if (Array.isArray(output) && output.length > 0) {
|
||||
return JSON.stringify(output?.[0], null, 2);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
// Return original content or empty string if parsing fails
|
||||
console.error("Failed to parse message content:", error);
|
||||
return message.content || "";
|
||||
}
|
||||
}
|
||||
return argContents;
|
||||
};
|
||||
return (
|
||||
<Flex vertical className={styles.toolCallMessage}>
|
||||
<Flex
|
||||
gap="small"
|
||||
justify="space-between"
|
||||
className={styles.toolCallHeader}
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
setIsExpanded(!isExpanded);
|
||||
setDisplayedContent(message.content);
|
||||
setArgs(message.arguments);
|
||||
setActiveKey("1");
|
||||
}}
|
||||
>
|
||||
<Flex gap="small">
|
||||
{getIcon()}
|
||||
{getToolName()}
|
||||
</Flex>
|
||||
{!isExpanded ? <SparkDownLine /> : <SparkUpLine />}
|
||||
</Flex>
|
||||
{isExpanded && message.arguments && (
|
||||
<div className={styles.arguments}>
|
||||
<div className={styles.contents}>{getToolArguments()}</div>
|
||||
</div>
|
||||
)}
|
||||
</Flex>
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -0,0 +1,74 @@
|
||||
.userMessageFlex {
|
||||
margin-bottom: 24px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
.userMessageText {
|
||||
width: 100%;
|
||||
}
|
||||
.userContentFlex {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: var(--sps-color-primary-bg);
|
||||
padding: 12px 16px;
|
||||
border-radius: 8px;
|
||||
max-width: 80%;
|
||||
}
|
||||
}
|
||||
|
||||
.roadmapCard {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 1px 6px 0 rgba(99, 102, 241, 0.06);
|
||||
padding: 10px 18px;
|
||||
min-width: 140px;
|
||||
max-width: 260px;
|
||||
margin-bottom: 0;
|
||||
background-color: var(--sps-color-bg-base);
|
||||
box-sizing: border-box;
|
||||
border: 1px solid var(--sps-color-border-secondary);
|
||||
&:hover,
|
||||
&.selected {
|
||||
box-shadow: 0 2px 12px 0 rgba(99, 102, 241, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.roadmapLeft {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 8px;
|
||||
padding: 8px;
|
||||
border-radius: 8px;
|
||||
background-color: var(--sps-color-fill-tertiary);
|
||||
}
|
||||
|
||||
.roadmapRight {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
.description {
|
||||
color: var(--sps-color-text-quaternary);
|
||||
}
|
||||
.title {
|
||||
font-size: 14px;
|
||||
color: var(--sps-color-text);
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
.diffRoadmap {
|
||||
height: 600px;
|
||||
border-top: 1px solid var(--sps-color-border-secondary);
|
||||
.left {
|
||||
border-right: 1px solid var(--sps-color-border-secondary);
|
||||
}
|
||||
.diffRoadmapJson {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding: 20px 18px;
|
||||
}
|
||||
}
|
||||
107
alias/frontend/src/components/Chat/UserMessage/index.tsx
Normal file
@@ -0,0 +1,107 @@
|
||||
import { useTheme } from "@/context/ThemeContext";
|
||||
import { UserMessage as UserMessageType } from "@/types/message";
|
||||
import { Modal } from "@agentscope-ai/design";
|
||||
import { SparkProcessJudgmentLine } from "@agentscope-ai/icons";
|
||||
import { Flex } from "antd";
|
||||
import React, { useState } from "react";
|
||||
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
|
||||
import { oneDark, prism } from "react-syntax-highlighter/dist/esm/styles/prism";
|
||||
import { FileItems } from "../FileItems";
|
||||
import styles from "./index.module.scss";
|
||||
|
||||
interface UserMessageProps {
|
||||
message: UserMessageType;
|
||||
}
|
||||
|
||||
export const UserMessage: React.FC<UserMessageProps> = ({ message }) => {
|
||||
const { files, roadmap } = message;
|
||||
const { theme } = useTheme();
|
||||
const [diffOpen, setDiffOpen] = useState(false);
|
||||
const fontSize = { fontSize: 20 };
|
||||
const viewRoadmapDiff = () => {
|
||||
setDiffOpen(true);
|
||||
};
|
||||
const onCancel = () => {
|
||||
setDiffOpen(false);
|
||||
};
|
||||
const customStyle = {
|
||||
borderTopRightRadius: 0,
|
||||
borderTopLeftRadius: 0,
|
||||
overflow: "auto",
|
||||
padding: 0,
|
||||
backgroundColor: "var(--sps-color-bg-base)",
|
||||
};
|
||||
const CodeView = ({ value }: { value: string }) => {
|
||||
return (
|
||||
<SyntaxHighlighter
|
||||
language="JSON"
|
||||
showLineNumbers={true}
|
||||
wrapLines={true}
|
||||
style={theme === "dark" ? oneDark : prism}
|
||||
customStyle={
|
||||
theme === "dark"
|
||||
? customStyle
|
||||
: { ...customStyle, background: "transparent" }
|
||||
}
|
||||
>
|
||||
{value}
|
||||
</SyntaxHighlighter>
|
||||
);
|
||||
};
|
||||
return (
|
||||
<Flex gap="small" vertical className={styles.userMessageFlex}>
|
||||
<Flex justify="flex-end" className={styles.userMessageText}>
|
||||
<div className={styles.userContentFlex}>{message.content}</div>
|
||||
</Flex>
|
||||
{files && files?.length > 0 && (
|
||||
<Flex wrap gap="small" justify="flex-end">
|
||||
<FileItems files={files} />
|
||||
</Flex>
|
||||
)}
|
||||
{roadmap && (
|
||||
<Flex justify="flex-end">
|
||||
<div className={styles.roadmapCard} onClick={viewRoadmapDiff}>
|
||||
<SparkProcessJudgmentLine
|
||||
className={styles.roadmapLeft}
|
||||
style={fontSize}
|
||||
/>
|
||||
<div className={styles.roadmapRight}>
|
||||
<div className={styles.title}>Roadmap</div>
|
||||
<div className={styles.description}>{`${
|
||||
roadmap.current?.subtasks?.length || 0
|
||||
} Tasks`}</div>
|
||||
</div>
|
||||
</div>
|
||||
</Flex>
|
||||
)}
|
||||
{diffOpen && roadmap && (
|
||||
<Modal
|
||||
width={960}
|
||||
open={diffOpen}
|
||||
showDivider={false}
|
||||
title="Roadmap Diff"
|
||||
footer={null}
|
||||
onCancel={onCancel}
|
||||
styles={{
|
||||
body: { padding: 0 },
|
||||
}}
|
||||
>
|
||||
<Flex className={styles.diffRoadmap}>
|
||||
<div className={`${styles.left} ${styles.diffRoadmapJson}`}>
|
||||
<div>Previous JSON</div>
|
||||
{roadmap.previous && (
|
||||
<CodeView value={JSON.stringify(roadmap.previous, null, 2)} />
|
||||
)}
|
||||
</div>
|
||||
<div className={styles.diffRoadmapJson}>
|
||||
<div>Current JSON</div>
|
||||
{roadmap.current && (
|
||||
<CodeView value={JSON.stringify(roadmap.current, null, 2)} />
|
||||
)}
|
||||
</div>
|
||||
</Flex>
|
||||
</Modal>
|
||||
)}
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
34
alias/frontend/src/components/LoginModal/index.module.scss
Normal file
@@ -0,0 +1,34 @@
|
||||
.modalWrap {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
h1 {
|
||||
color: var(--sps-color-text);
|
||||
font-weight: 600;
|
||||
font-size: 2rem;
|
||||
line-height: 1.5;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
}
|
||||
.tips {
|
||||
width: 336px;
|
||||
text-align: center;
|
||||
color: var(--sps-color-text-secondary);
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.25rem;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.logBtn {
|
||||
height: 2.5rem;
|
||||
width: 336px;
|
||||
margin-top: 30px;
|
||||
font-size: 100%;
|
||||
opacity: 1;
|
||||
}
|
||||
.registerBtn {
|
||||
height: 2.5rem;
|
||||
width: 336px;
|
||||
margin-top: 10px;
|
||||
font-size: 100%;
|
||||
border-width: 1px;
|
||||
}
|
||||
}
|
||||
63
alias/frontend/src/components/LoginModal/index.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
import { Button, Modal } from "@agentscope-ai/design";
|
||||
import { memo, useState } from "react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import styles from "./index.module.scss";
|
||||
|
||||
const LoginModal = () => {
|
||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(true);
|
||||
const navigate = useNavigate();
|
||||
const showModal = () => {
|
||||
setIsModalOpen(true);
|
||||
};
|
||||
|
||||
const handleOk = () => {
|
||||
setIsModalOpen(false);
|
||||
};
|
||||
|
||||
const handleCancel = () => {
|
||||
setIsModalOpen(false);
|
||||
};
|
||||
if (
|
||||
localStorage.getItem("access_token") === null &&
|
||||
localStorage.getItem("refresh_token") === null
|
||||
)
|
||||
return (
|
||||
<Modal
|
||||
// title="Basic Modal"
|
||||
open={isModalOpen}
|
||||
onOk={handleOk}
|
||||
onCancel={handleCancel}
|
||||
footer={null}
|
||||
centered={true}
|
||||
width={384}
|
||||
closable={false}
|
||||
>
|
||||
<div className={styles.modalWrap}>
|
||||
<h1>Welcome</h1>
|
||||
<p className={styles.tips}>
|
||||
Login or register to chat with AgentScope, upload files and images,
|
||||
generate images or videos, etc.
|
||||
</p>
|
||||
<Button
|
||||
type="primary"
|
||||
className={styles.logBtn}
|
||||
onClick={() => {
|
||||
navigate("/login?mode=login");
|
||||
}}
|
||||
>
|
||||
Login
|
||||
</Button>
|
||||
<Button
|
||||
className={styles.registerBtn}
|
||||
onClick={() => {
|
||||
navigate("/login?mode=register");
|
||||
}}
|
||||
>
|
||||
Register
|
||||
</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
return null;
|
||||
};
|
||||
export default memo(LoginModal);
|
||||
32
alias/frontend/src/components/LogoIcon/index.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
import type { GetProps } from "antd";
|
||||
import Icon from "@ant-design/icons";
|
||||
|
||||
type CustomIconComponentProps = GetProps<typeof Icon>;
|
||||
const LogoIconSvg = () => (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
width="77"
|
||||
height="48"
|
||||
viewBox="0 0 77 48"
|
||||
>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path
|
||||
d="M37.5018,17.8196C36.7176,14.3736,33.9865,11.68249,30.4893,10.90978C33.9865,10.13707,36.7176,7.44597,37.5018,4C38.286,7.44597,41.0171,10.13707,44.5143,10.90978C41.0171,11.68249,38.286,14.3736,37.5018,17.8196ZM9.877,13.9301L0,35.7632L5.26642,35.7632L7.23737,31.0924L17.5179,31.0924L19.4889,35.7632L24.8438,35.7632L14.9481,13.9301L9.877,13.9301ZM15.8999,27.258L12.3777,18.911099999999998L8.85542,27.258L15.8999,27.258ZM26.199,14.4227L26.199,35.7632L31.137,35.7632L31.137,14.4227L26.199,14.4227ZM54.4086,33.6971L54.4086,35.7632L59.0503,35.7632L59.0503,26.179Q59.0503,22.3578,56.9028,20.5531Q54.7553,18.747999999999998,50.846,18.747999999999998Q48.8202,18.747999999999998,46.8616,19.266Q44.903,19.7836,43.4984,20.7758L45.2616,24.1619Q46.1929,23.444,47.51,23.0293Q48.8276,22.6141,50.1709,22.6141Q52.179,22.6141,53.1454,23.4762Q54.1123,24.3378,54.1123,25.9056L54.1123,25.9085L50.1877,25.9085Q47.5926,25.9085,45.9788,26.5484Q44.3654,27.1878,43.6255,28.3141Q42.8856,29.4398,42.8856,30.9233Q42.8856,32.3703,43.6423,33.5243Q44.399,34.677800000000005,45.8234,35.339200000000005Q47.2479,36,49.2346,36Q51.4821,36,52.907,35.1584Q53.858,34.5968,54.4086,33.6971ZM54.1123,30.456L54.1123,28.7439L50.7352,28.7439Q48.9844,28.7439,48.338,29.3005Q47.6915,29.8565,47.6915,30.7245Q47.6915,31.6368,48.4275,32.187Q49.1634,32.7367,50.4513,32.7367Q51.6952,32.7367,52.6849,32.168Q53.6746,31.5993,54.1123,30.456ZM64.4221,35.484899999999996Q66.4316,36,68.59,36Q71.1579,36,72.9513,35.3177Q74.7452,34.6349,75.6884,33.4317Q76.6316,32.2284,76.6316,30.6811Q76.6316,29.2532,76.0742,28.3584Q75.5168,27.4632,74.6018,26.949Q73.6868,26.4344,72.5883,26.1571Q71.4898,25.8798,70.3913,25.7302Q69.2928,25.5801,68.3778,25.4017Q67.4628,25.2233,66.9054,24.9046Q66.348,24.5859,66.348,23.967Q66.348,23.2974,67.1062,22.8597Q67.8644,22.4221,69.5312,22.4221Q70.6965,22.4221,71.9399,22.6872Q73.1838,22.9523,74.4178,23.6697L76.0747,20.1891Q74.8664,19.4907,73.072,19.119300000000003Q71.2781,18.747999999999998,69.5124,18.747999999999998Q67.0395,18.747999999999998,65.2807,19.439999999999998Q63.5224,20.1316,62.5822,21.3475Q61.6425,22.5634,61.6425,24.1478Q61.6425,25.5947,62.1999,26.4992Q62.7573,27.4032,63.6718,27.9271Q64.5868,28.4505,65.6917,28.722Q66.7966,28.9934,67.8951,29.1431Q68.9941,29.2927,69.9091,29.4525Q70.8241,29.6119,71.381,29.915Q71.9384,30.2181,71.9384,30.7995Q71.9384,31.5125,71.2212,31.9195Q70.5046,32.325900000000004,68.8056,32.325900000000004Q67.2353,32.325900000000004,65.6338,31.8829Q64.0323,31.4394,62.8745,30.7221L61.2176,34.2027Q62.4131,34.9698,64.4221,35.484899999999996ZM35.0938,20.7869L35.0938,35.7632L40.0318,35.7632L40.0318,20.7869L35.0938,20.7869Z"
|
||||
fillRule="evenodd"
|
||||
fill="currentColor"
|
||||
fillOpacity="1"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
);
|
||||
const LogoIcon = (props: Partial<CustomIconComponentProps>) => (
|
||||
<Icon component={LogoIconSvg} {...props} />
|
||||
);
|
||||
|
||||
export default LogoIcon;
|
||||
28
alias/frontend/src/components/Roadmap/index.module.scss
Normal file
@@ -0,0 +1,28 @@
|
||||
.roadmap {
|
||||
width: 100%;
|
||||
max-height: calc(100vh - 123px);
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
border-top: solid 1px var(--sps-color-border-secondary);
|
||||
padding: 16px 20px;
|
||||
.title {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
line-height: 32px;
|
||||
letter-spacing: normal;
|
||||
}
|
||||
.roadmapList {
|
||||
border-radius: 8px;
|
||||
border: solid 1px var(--sps-color-border-secondary);
|
||||
margin-top: 16px;
|
||||
}
|
||||
.listItem {
|
||||
padding: 12px;
|
||||
}
|
||||
.itemFlex {
|
||||
width: 100%;
|
||||
}
|
||||
.success {
|
||||
color: var(--sps-color-text-tertiary);
|
||||
}
|
||||
}
|
||||
375
alias/frontend/src/components/Roadmap/index.tsx
Normal file
@@ -0,0 +1,375 @@
|
||||
import React, {
|
||||
useState,
|
||||
useEffect,
|
||||
useContext,
|
||||
useMemo,
|
||||
createContext,
|
||||
memo,
|
||||
} from "react";
|
||||
import diff from "deep-diff";
|
||||
import {
|
||||
Button,
|
||||
message,
|
||||
Input,
|
||||
AlertDialog,
|
||||
IconButton,
|
||||
Modal,
|
||||
} from "@agentscope-ai/design";
|
||||
import { List, Flex, GetProps } from "antd";
|
||||
import {
|
||||
SparkPlusLine,
|
||||
SparkSaveLine,
|
||||
SparkDeleteLine,
|
||||
SparkEditLine,
|
||||
SparkDragDotLine,
|
||||
SparkIncompleteLine,
|
||||
SparkLoadingLine,
|
||||
SparkCheckCircleLine,
|
||||
SparkProcessFailedLine,
|
||||
} from "@agentscope-ai/icons";
|
||||
import classNames from "classnames";
|
||||
import styles from "./index.module.scss";
|
||||
import { SubtasksProps, RoadMapDataProps, RoadMapType } from "@/types/roadmap";
|
||||
import { conversationApi } from "@/services/api/conversation";
|
||||
import type { DragEndEvent, DraggableAttributes } from "@dnd-kit/core";
|
||||
import { DndContext } from "@dnd-kit/core";
|
||||
import type { SyntheticListenerMap } from "@dnd-kit/core/dist/hooks/utilities";
|
||||
import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
|
||||
import {
|
||||
arrayMove,
|
||||
SortableContext,
|
||||
useSortable,
|
||||
verticalListSortingStrategy,
|
||||
} from "@dnd-kit/sortable";
|
||||
import { CSS } from "@dnd-kit/utilities";
|
||||
|
||||
interface RoadmapProps {
|
||||
data?: RoadMapDataProps | null;
|
||||
conversationId: string;
|
||||
editable?: boolean;
|
||||
onSave?: (data: RoadMapDataProps) => void;
|
||||
}
|
||||
|
||||
interface SortableListItemContextProps {
|
||||
setActivatorNodeRef?: (element: HTMLElement | null) => void;
|
||||
listeners?: SyntheticListenerMap;
|
||||
attributes?: DraggableAttributes;
|
||||
}
|
||||
|
||||
const fontSize = { fontSize: 20 };
|
||||
const SortableListItemContext = createContext<SortableListItemContextProps>({});
|
||||
const DragHandle: React.FC = () => {
|
||||
const { setActivatorNodeRef, listeners, attributes } = useContext(
|
||||
SortableListItemContext,
|
||||
);
|
||||
return (
|
||||
<Button
|
||||
type="text"
|
||||
size="small"
|
||||
icon={<SparkDragDotLine />}
|
||||
style={{ cursor: "move" }}
|
||||
ref={setActivatorNodeRef}
|
||||
{...attributes}
|
||||
{...listeners}
|
||||
/>
|
||||
);
|
||||
};
|
||||
const SortableListItem: React.FC<
|
||||
GetProps<typeof List.Item> & { itemKey: number }
|
||||
> = (props) => {
|
||||
const { itemKey, style, ...rest } = props;
|
||||
const {
|
||||
attributes,
|
||||
listeners,
|
||||
setNodeRef,
|
||||
setActivatorNodeRef,
|
||||
transform,
|
||||
transition,
|
||||
isDragging,
|
||||
} = useSortable({ id: itemKey });
|
||||
|
||||
const listStyle: React.CSSProperties = {
|
||||
...style,
|
||||
transform: CSS.Translate.toString(transform),
|
||||
transition,
|
||||
...(isDragging ? { position: "relative", zIndex: 9999 } : {}),
|
||||
};
|
||||
|
||||
const memoizedValue = useMemo<SortableListItemContextProps>(
|
||||
() => ({ setActivatorNodeRef, listeners, attributes }),
|
||||
[setActivatorNodeRef, listeners, attributes],
|
||||
);
|
||||
|
||||
return (
|
||||
<SortableListItemContext.Provider value={memoizedValue}>
|
||||
<List.Item {...rest} ref={setNodeRef} style={listStyle} />
|
||||
</SortableListItemContext.Provider>
|
||||
);
|
||||
};
|
||||
const ReadListItem: React.FC<
|
||||
GetProps<typeof List.Item> & { item: SubtasksProps }
|
||||
> = ({ item }) => {
|
||||
const { state, description } = item || {};
|
||||
return (
|
||||
<List.Item className={styles.listItem}>
|
||||
<Flex
|
||||
gap="small"
|
||||
align="center"
|
||||
className={classNames(styles.itemFlex, {
|
||||
[styles.success]: state === RoadMapType.DONE,
|
||||
})}
|
||||
>
|
||||
<Flex gap="small">
|
||||
{state === RoadMapType.IN_PROGRESS && (
|
||||
<SparkLoadingLine style={{ ...fontSize, color: "#0B83F1" }} />
|
||||
)}
|
||||
{state === RoadMapType.DONE && (
|
||||
<SparkCheckCircleLine style={fontSize} />
|
||||
)}
|
||||
{state === RoadMapType.TODO && (
|
||||
<SparkIncompleteLine style={fontSize} />
|
||||
)}
|
||||
{state === RoadMapType.ABANDONED && (
|
||||
<SparkProcessFailedLine style={fontSize} />
|
||||
)}
|
||||
{description}
|
||||
</Flex>
|
||||
</Flex>
|
||||
</List.Item>
|
||||
);
|
||||
};
|
||||
|
||||
const Roadmap: React.FC<RoadmapProps> = ({
|
||||
data,
|
||||
conversationId,
|
||||
editable,
|
||||
onSave = (data: RoadMapDataProps) => {},
|
||||
}) => {
|
||||
const [isEditing, setIsEditing] = useState(false);
|
||||
const [taskValue, setTaskValue] = useState("");
|
||||
const [open, setOpen] = useState(false);
|
||||
const [list, setList] = useState<SubtasksProps[]>(data?.subtasks || []);
|
||||
const [taskKey, setTaskKey] = useState<number | undefined>();
|
||||
|
||||
useEffect(() => {
|
||||
if (data?.subtasks && Array.isArray(data?.subtasks)) {
|
||||
const newList = data.subtasks.map((item, index) => {
|
||||
return {
|
||||
...item,
|
||||
key: index + 1,
|
||||
};
|
||||
});
|
||||
setList(newList);
|
||||
}
|
||||
}, [data?.subtasks]);
|
||||
|
||||
const onDragEnd = ({ active, over }: DragEndEvent) => {
|
||||
if (!active || !over) {
|
||||
return;
|
||||
}
|
||||
if (active.id !== over.id) {
|
||||
setList((prevState) => {
|
||||
const activeIndex = prevState.findIndex((i) => i.key === active.id);
|
||||
const overIndex = prevState.findIndex((i) => i.key === over.id);
|
||||
return arrayMove(prevState, activeIndex, overIndex);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const onSaveHandle = () => {
|
||||
AlertDialog.info({
|
||||
title: "Confirm save?",
|
||||
children:
|
||||
"The result you edited will overwrite the original data and become the new roadmap and start execution.",
|
||||
centered: true,
|
||||
okText: "Save",
|
||||
onOk: async () => {
|
||||
const newList = list.map(({ key, ...rest }) => rest);
|
||||
const newData = { subtasks: newList };
|
||||
const differences: any = diff(data, newData);
|
||||
if (differences) {
|
||||
try {
|
||||
const response: any = await conversationApi.setRoadmap(
|
||||
conversationId,
|
||||
newData,
|
||||
);
|
||||
if (response.status && response?.payload) {
|
||||
onSave(response?.payload);
|
||||
}
|
||||
} catch (error) {
|
||||
message.error("Failed to update roadmap");
|
||||
console.error("Error updating roadmap:", error);
|
||||
}
|
||||
} else {
|
||||
message.info("No changes detected, nothing to update.");
|
||||
setIsEditing(false);
|
||||
}
|
||||
onCancel();
|
||||
},
|
||||
});
|
||||
};
|
||||
const onAddTask = () => {
|
||||
setOpen(true);
|
||||
setTaskValue("");
|
||||
setTaskKey(undefined);
|
||||
};
|
||||
const deletedHandle = (key: number) => {
|
||||
AlertDialog.warning({
|
||||
title: "Confirm deletion of this task?",
|
||||
children:
|
||||
"Once deleted, it cannot be recovered. Please proceed with caution.",
|
||||
centered: true,
|
||||
okText: "Confirm deletion",
|
||||
onOk: () => {
|
||||
setList(list.filter((item) => item.key !== key));
|
||||
},
|
||||
});
|
||||
};
|
||||
const updateTaskHandle = (content: string, key: number) => {
|
||||
setOpen(true);
|
||||
setTaskValue(content);
|
||||
setTaskKey(key);
|
||||
};
|
||||
const onCancel = () => {
|
||||
setOpen(false);
|
||||
};
|
||||
const onOk = () => {
|
||||
const trimmedValue = taskValue.trim();
|
||||
if (!trimmedValue) {
|
||||
message.info("Please enter the task");
|
||||
return;
|
||||
}
|
||||
if (taskKey) {
|
||||
setList(
|
||||
list.map((item) =>
|
||||
item.key === taskKey ? { ...item, description: taskValue } : item,
|
||||
),
|
||||
);
|
||||
} else {
|
||||
setList([
|
||||
...list,
|
||||
{
|
||||
key: new Date().getTime(),
|
||||
state: RoadMapType.TODO,
|
||||
description: taskValue.trim(),
|
||||
},
|
||||
]);
|
||||
}
|
||||
onCancel();
|
||||
};
|
||||
// const renderReadItem =
|
||||
return (
|
||||
<div className={styles.roadmap}>
|
||||
<Flex align="center" justify="space-between">
|
||||
<div className={styles.title}>Roadmap</div>
|
||||
{editable && isEditing && (
|
||||
<Flex gap="small">
|
||||
<Button onClick={onAddTask}>
|
||||
<SparkPlusLine /> Add Task
|
||||
</Button>
|
||||
<Button type="primary" onClick={onSaveHandle}>
|
||||
<SparkSaveLine /> Save
|
||||
</Button>
|
||||
</Flex>
|
||||
)}
|
||||
{editable && !isEditing && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
setIsEditing(true);
|
||||
}}
|
||||
>
|
||||
<SparkEditLine /> Edit
|
||||
</Button>
|
||||
)}
|
||||
</Flex>
|
||||
<DndContext
|
||||
modifiers={[restrictToVerticalAxis]}
|
||||
onDragEnd={onDragEnd}
|
||||
id="list-drag-sorting-handler"
|
||||
>
|
||||
<SortableContext
|
||||
items={list.map((item, index) => item.key || index)}
|
||||
strategy={verticalListSortingStrategy}
|
||||
>
|
||||
<List
|
||||
className={styles.roadmapList}
|
||||
dataSource={list}
|
||||
renderItem={(item, index) => {
|
||||
const { description, state, key } = item || {};
|
||||
if (isEditing && editable)
|
||||
return (
|
||||
<SortableListItem
|
||||
key={key}
|
||||
itemKey={key || index}
|
||||
className={styles.listItem}
|
||||
>
|
||||
<Flex
|
||||
gap="small"
|
||||
justify="space-between"
|
||||
align="center"
|
||||
className={styles.itemFlex}
|
||||
>
|
||||
<Flex gap="small">
|
||||
<DragHandle />
|
||||
{state === RoadMapType.IN_PROGRESS && (
|
||||
<SparkLoadingLine
|
||||
style={{ ...fontSize, color: "#0B83F1" }}
|
||||
/>
|
||||
)}
|
||||
{state === RoadMapType.DONE && (
|
||||
<SparkCheckCircleLine style={fontSize} />
|
||||
)}
|
||||
{state === RoadMapType.TODO && (
|
||||
<SparkIncompleteLine style={fontSize} />
|
||||
)}
|
||||
{state === RoadMapType.ABANDONED && (
|
||||
<SparkProcessFailedLine style={fontSize} />
|
||||
)}
|
||||
{description}
|
||||
</Flex>
|
||||
<Flex gap="small">
|
||||
{item.state === RoadMapType.TODO && (
|
||||
<IconButton
|
||||
icon={<SparkEditLine style={fontSize} />}
|
||||
bordered={false}
|
||||
onClick={() => {
|
||||
updateTaskHandle(description, key || index);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
<IconButton
|
||||
icon={<SparkDeleteLine style={fontSize} />}
|
||||
bordered={false}
|
||||
onClick={() => {
|
||||
deletedHandle(key || index);
|
||||
}}
|
||||
/>
|
||||
</Flex>
|
||||
</Flex>
|
||||
</SortableListItem>
|
||||
);
|
||||
return <ReadListItem item={item} />;
|
||||
}}
|
||||
/>
|
||||
</SortableContext>
|
||||
</DndContext>
|
||||
<Modal
|
||||
open={open}
|
||||
onCancel={onCancel}
|
||||
onOk={onOk}
|
||||
okText="Sure"
|
||||
title="Edit Task"
|
||||
>
|
||||
<Input.TextArea
|
||||
rows={Math.min(Math.max(3, taskValue.split("\n").length + 1), 20)}
|
||||
onChange={(v) => {
|
||||
setTaskValue(v.target.value || "");
|
||||
}}
|
||||
value={taskValue}
|
||||
autoSize={{ minRows: 10, maxRows: 20 }}
|
||||
/>
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
export default memo(Roadmap);
|
||||
22
alias/frontend/src/components/SandBox/index.module.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
.sandbox {
|
||||
width: 100%;
|
||||
height: calc(100vh - 134px);
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.title {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
background-color: var(--sps-color-fill-tertiary);
|
||||
}
|
||||
.sandboxIframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: none;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
33
alias/frontend/src/components/SandBox/index.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import React, { useEffect, memo } from "react";
|
||||
import { Result } from "@agentscope-ai/design";
|
||||
import styles from "./index.module.scss";
|
||||
|
||||
interface SandBoxProps {
|
||||
sandboxUrl: string;
|
||||
}
|
||||
|
||||
const SandBox: React.FC<SandBoxProps> = ({ sandboxUrl }) => {
|
||||
return (
|
||||
<div className={styles.sandbox}>
|
||||
{/* <div className={styles.title}>{sandboxUrl}</div> */}
|
||||
{sandboxUrl && (
|
||||
<iframe
|
||||
src={sandboxUrl}
|
||||
className={styles.sandboxIframe}
|
||||
title="Sandbox"
|
||||
allowFullScreen
|
||||
frameBorder="0"
|
||||
/>
|
||||
)}
|
||||
{!sandboxUrl && (
|
||||
<Result
|
||||
type="error"
|
||||
title="Error"
|
||||
description="Please try again later"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default memo(SandBox);
|
||||
@@ -0,0 +1,54 @@
|
||||
// Key stylesheet section
|
||||
.scrollRoot {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
scroll-behavior: smooth;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
|
||||
// Hide scrollbar but keep scroll functionality
|
||||
scrollbar-width: none;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.scrollButton {
|
||||
position: absolute;
|
||||
right: 50%;
|
||||
bottom: 20px;
|
||||
z-index: 100;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background: var(--scroll-button-bg);
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
|
||||
&:hover {
|
||||
background: var(--scroll-button-bg-hover);
|
||||
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.2);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
117
alias/frontend/src/components/ScrollToBottomButton/index.tsx
Normal file
@@ -0,0 +1,117 @@
|
||||
import { isAtBottom, isManualScrolling } from "@/utils/sharedRefs";
|
||||
import React, {
|
||||
forwardRef,
|
||||
useCallback,
|
||||
useImperativeHandle,
|
||||
useRef,
|
||||
useState,
|
||||
} from "react";
|
||||
import styles from "./index.module.scss";
|
||||
// import { debounce } from "lodash";
|
||||
interface ScrollToBottomButtonProps
|
||||
extends React.HTMLAttributes<HTMLDivElement> {
|
||||
autoScrollThreshold?: number;
|
||||
}
|
||||
interface ScrollToBottomButtonHandles {
|
||||
scrollToBottom: (behavior?: ScrollBehavior) => void;
|
||||
}
|
||||
|
||||
const ScrollToBottomButton = forwardRef<
|
||||
ScrollToBottomButtonHandles,
|
||||
ScrollToBottomButtonProps
|
||||
>(({ children, autoScrollThreshold = 1, className, ...props }, ref) => {
|
||||
const [showButton, setShowButton] = useState(false);
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
const isScroll = useRef(false);
|
||||
const isAutoScrolling = useRef<boolean>(false);
|
||||
const scrollTimeout = useRef<NodeJS.Timeout | null>(null);
|
||||
|
||||
// Precise bottom detection
|
||||
const checkIsAtBottom = useCallback(() => {
|
||||
const container = containerRef.current;
|
||||
if (!container) return true;
|
||||
// const { scrollTop, scrollHeight, clientHeight } = container;
|
||||
// Handle floating point precision: round to integer
|
||||
const { scrollTop, scrollHeight, clientHeight } = container;
|
||||
|
||||
// Calculate difference from bottom and take absolute value
|
||||
const diff = scrollHeight - (scrollTop + clientHeight);
|
||||
const isBottom = Math.abs(diff) <= Math.max(30, autoScrollThreshold);
|
||||
|
||||
isAtBottom.current = isBottom;
|
||||
return isAtBottom.current;
|
||||
}, [autoScrollThreshold]);
|
||||
// Scroll method with lock
|
||||
const scrollToBottom = useCallback((behavior: ScrollBehavior = "smooth") => {
|
||||
const container = containerRef.current;
|
||||
if (!container) return;
|
||||
// Clear previous timer
|
||||
if (scrollTimeout.current) {
|
||||
clearTimeout(scrollTimeout.current);
|
||||
}
|
||||
isScroll.current = false;
|
||||
isAutoScrolling.current = true;
|
||||
setShowButton(false);
|
||||
// container.style.scrollBehavior = behavior;
|
||||
container.scrollTop = container.scrollHeight;
|
||||
container.style.scrollBehavior = "auto";
|
||||
isAtBottom.current = true;
|
||||
isManualScrolling.current = true;
|
||||
|
||||
// Set new timer
|
||||
scrollTimeout.current = setTimeout(() => {
|
||||
if (container) {
|
||||
isAutoScrolling.current = false;
|
||||
// isManualScrolling.current = true;
|
||||
}
|
||||
// Clean up timer reference
|
||||
scrollTimeout.current = null;
|
||||
}, 0);
|
||||
}, []);
|
||||
// Optimized scroll handling
|
||||
const handleScroll = useCallback(() => {
|
||||
requestAnimationFrame(() => {
|
||||
if (isAutoScrolling.current) return;
|
||||
setShowButton(!checkIsAtBottom());
|
||||
isScroll.current = !checkIsAtBottom();
|
||||
isManualScrolling.current = false;
|
||||
});
|
||||
}, [checkIsAtBottom]);
|
||||
|
||||
useImperativeHandle(ref, () => ({
|
||||
scrollToBottom,
|
||||
checkIsAtBottom,
|
||||
}));
|
||||
|
||||
return (
|
||||
<div
|
||||
{...props}
|
||||
ref={containerRef}
|
||||
className={`${styles.scrollRoot} ${className}`}
|
||||
onScroll={handleScroll}
|
||||
>
|
||||
{children}
|
||||
|
||||
<div
|
||||
className={styles.scrollAnchor}
|
||||
style={{ position: "absolute", bottom: 0 }}
|
||||
/>
|
||||
|
||||
{isScroll.current && showButton && (
|
||||
<button
|
||||
className={styles.scrollButton}
|
||||
onClick={() => scrollToBottom("auto")}
|
||||
style={{
|
||||
position: "sticky",
|
||||
bottom: "20px",
|
||||
float: "right",
|
||||
animation: `${styles.fadeIn} 0.3s forwards`,
|
||||
}}
|
||||
>
|
||||
↓
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
export default ScrollToBottomButton;
|
||||
22
alias/frontend/src/components/ShareModal/index.module.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
.container {
|
||||
padding: 16px 0;
|
||||
}
|
||||
.share {
|
||||
margin-bottom: 24px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
.urlContainer {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.urlInput {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.description {
|
||||
color: var(--sps-color-text-tertiary);
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
}
|
||||
89
alias/frontend/src/components/ShareModal/index.tsx
Normal file
@@ -0,0 +1,89 @@
|
||||
import { conversationApi } from "@/services/api/conversation";
|
||||
import { Conversation } from "@/types/api";
|
||||
import { Button, Input, message, Modal, Switch } from "@agentscope-ai/design";
|
||||
import copy from "copy-to-clipboard";
|
||||
import React, { useState } from "react";
|
||||
|
||||
import styles from "./index.module.scss";
|
||||
|
||||
interface ShareModalProps {
|
||||
isOpen: boolean;
|
||||
onClose: () => void;
|
||||
shareUrl: string;
|
||||
shared: boolean;
|
||||
conversationId: string;
|
||||
setCurrentConversation: (con: Conversation) => void;
|
||||
}
|
||||
|
||||
export const ShareModal: React.FC<ShareModalProps> = ({
|
||||
isOpen,
|
||||
onClose,
|
||||
shareUrl,
|
||||
shared,
|
||||
conversationId,
|
||||
setCurrentConversation,
|
||||
}) => {
|
||||
const [copied, setCopied] = useState(false);
|
||||
const [isShared, setIsShared] = useState(shared);
|
||||
|
||||
const handleCopy = () => {
|
||||
// navigator.clipboard.writeText(shareUrl);
|
||||
copy(shareUrl);
|
||||
setCopied(true);
|
||||
|
||||
message.success("Share link copied to clipboard");
|
||||
setTimeout(() => setCopied(false), 2000);
|
||||
onClose();
|
||||
};
|
||||
const onChangeShare = (share: boolean) => {
|
||||
if (!!conversationId) {
|
||||
conversationApi
|
||||
.shareConversations(conversationId, share)
|
||||
.then((res: any) => {
|
||||
if (res?.payload) {
|
||||
setCurrentConversation(res.payload);
|
||||
setIsShared(share);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
message.error("network error");
|
||||
});
|
||||
} else setIsShared(share);
|
||||
};
|
||||
|
||||
return (
|
||||
<Modal
|
||||
title="Share This Conversation"
|
||||
open={isOpen}
|
||||
onCancel={onClose}
|
||||
footer={null}
|
||||
width={400}
|
||||
>
|
||||
<div className={styles.container}>
|
||||
<div>Are you sure you want to share this conversation?</div>
|
||||
<Switch
|
||||
className={styles.share}
|
||||
checked={isShared}
|
||||
onChange={onChangeShare}
|
||||
label={isShared ? "Opening" : "Closed"}
|
||||
/>
|
||||
<span></span>
|
||||
<div className={styles.urlContainer}>
|
||||
<Input
|
||||
disabled={!isShared}
|
||||
value={shareUrl}
|
||||
readOnly
|
||||
className={styles.urlInput}
|
||||
/>
|
||||
<Button type="primary" disabled={!isShared} onClick={handleCopy}>
|
||||
{copied ? "Copied" : "Copy Link"}
|
||||
</Button>
|
||||
</div>
|
||||
<p className={styles.description}>
|
||||
Copy this link and share it with others, they can view the contents of
|
||||
this conversation.
|
||||
</p>
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
};
|
||||
193
alias/frontend/src/components/Viewer/CSVViewer.tsx
Normal file
@@ -0,0 +1,193 @@
|
||||
import React from "react";
|
||||
import { BaseViewerProps } from "./types";
|
||||
|
||||
export const CSVViewer: React.FC<BaseViewerProps> = ({ content, style }) => {
|
||||
const parseCSV = (csvContent: string) => {
|
||||
try {
|
||||
// Normalize line breaks
|
||||
const normalizedContent = csvContent
|
||||
.replace(/\r\n/g, "\n")
|
||||
.replace(/\r/g, "\n");
|
||||
const rows = normalizedContent.split("\n").filter((row) => row.trim());
|
||||
|
||||
if (rows.length === 0) {
|
||||
throw new Error("Empty CSV content");
|
||||
}
|
||||
|
||||
// Simple CSV parsing
|
||||
const parseRow = (row: string) => {
|
||||
try {
|
||||
let cells = [];
|
||||
let cell = "";
|
||||
let inQuotes = false;
|
||||
|
||||
for (let i = 0; i < row.length; i++) {
|
||||
const char = row[i];
|
||||
if (char === '"') {
|
||||
inQuotes = !inQuotes;
|
||||
} else if (char === "," && !inQuotes) {
|
||||
cells.push(cell);
|
||||
cell = "";
|
||||
} else {
|
||||
cell += char;
|
||||
}
|
||||
}
|
||||
cells.push(cell);
|
||||
return cells.map((c) => c.trim().replace(/^"|"$/g, ""));
|
||||
} catch (error) {
|
||||
console.error("Error parsing CSV row:", error);
|
||||
throw new Error(`Failed to parse row: ${row}`);
|
||||
}
|
||||
};
|
||||
|
||||
const headers = parseRow(rows[0]);
|
||||
if (headers.length === 0) {
|
||||
throw new Error("No headers found in CSV");
|
||||
}
|
||||
|
||||
const data = rows.slice(1).map((row, index) => {
|
||||
try {
|
||||
const parsedRow = parseRow(row);
|
||||
// Ensure each row has the same number of columns as header
|
||||
if (parsedRow.length !== headers.length) {
|
||||
console.warn(
|
||||
`Row ${index + 1} has ${parsedRow.length} columns, expected ${
|
||||
headers.length
|
||||
}`,
|
||||
);
|
||||
// Pad or truncate columns
|
||||
return parsedRow.length > headers.length
|
||||
? parsedRow.slice(0, headers.length)
|
||||
: [
|
||||
...parsedRow,
|
||||
...Array(headers.length - parsedRow.length).fill(""),
|
||||
];
|
||||
}
|
||||
return parsedRow;
|
||||
} catch (error) {
|
||||
console.error(`Error parsing row ${index + 1}:`, error);
|
||||
// Return empty row instead of interrupting entire parsing
|
||||
return Array(headers.length).fill("");
|
||||
}
|
||||
});
|
||||
|
||||
return { headers, data };
|
||||
} catch (error) {
|
||||
console.error("Error parsing CSV:", error);
|
||||
return {
|
||||
headers: [],
|
||||
data: [],
|
||||
error: error instanceof Error ? error.message : "Failed to parse CSV",
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
const { headers, data, error } = parseCSV(content);
|
||||
|
||||
// Show error message if parsing fails
|
||||
if (error) {
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
padding: "16px",
|
||||
color: "#ff4d4f",
|
||||
backgroundColor: "#fff2f0",
|
||||
border: "1px solid #ffccc7",
|
||||
borderRadius: "4px",
|
||||
}}
|
||||
>
|
||||
Error: {error}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// Show prompt message if there is no data
|
||||
if (headers.length === 0 || data.length === 0) {
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
padding: "16px",
|
||||
color: "#666",
|
||||
backgroundColor: "#fafafa",
|
||||
border: "1px solid #f0f0f0",
|
||||
borderRadius: "4px",
|
||||
}}
|
||||
>
|
||||
No valid CSV data found
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
...style,
|
||||
overflow: "auto",
|
||||
// maxHeight: '500px'
|
||||
}}
|
||||
>
|
||||
<table
|
||||
style={{
|
||||
width: "100%",
|
||||
borderCollapse: "collapse",
|
||||
fontSize: "14px",
|
||||
}}
|
||||
>
|
||||
<thead>
|
||||
<tr>
|
||||
{headers.map((header, index) => (
|
||||
<th
|
||||
key={index}
|
||||
style={{
|
||||
padding: "8px",
|
||||
backgroundColor: "#fafafa",
|
||||
borderBottom: "1px solid #f0f0f0",
|
||||
position: "sticky",
|
||||
top: 0,
|
||||
textAlign: "left",
|
||||
}}
|
||||
>
|
||||
{header}
|
||||
</th>
|
||||
))}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{data.map((row, rowIndex) => (
|
||||
<tr key={rowIndex}>
|
||||
{row.map((cell, cellIndex) => (
|
||||
<td
|
||||
key={cellIndex}
|
||||
style={{
|
||||
padding: "8px",
|
||||
borderBottom: "1px solid #f0f0f0",
|
||||
}}
|
||||
>
|
||||
{cell}
|
||||
</td>
|
||||
))}
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
);
|
||||
} catch (error) {
|
||||
// Component-level error handling
|
||||
console.error("Component error:", error);
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
padding: "16px",
|
||||
color: "#ff4d4f",
|
||||
backgroundColor: "#fff2f0",
|
||||
border: "1px solid #ffccc7",
|
||||
borderRadius: "4px",
|
||||
}}
|
||||
>
|
||||
An unexpected error occurred while rendering the CSV viewer
|
||||
</div>
|
||||
);
|
||||
}
|
||||
};
|
||||
57
alias/frontend/src/components/Viewer/ChartViewer.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { BaseViewerProps } from "./types";
|
||||
|
||||
export const ChartViewer: React.FC<BaseViewerProps> = ({ content, style }) => {
|
||||
const [imageUrl, setImageUrl] = useState<string>("");
|
||||
|
||||
useEffect(() => {
|
||||
// Try to parse URL in content
|
||||
try {
|
||||
// If content itself is a URL
|
||||
if (content.startsWith("http")) {
|
||||
setImageUrl(content);
|
||||
} else {
|
||||
// If content contains URL (e.g., in JSON)
|
||||
const matches = content.match(/(https?:\/\/[^\s"]+)/g);
|
||||
if (matches && matches.length > 0) {
|
||||
setImageUrl(matches[0]);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error parsing chart URL:", error);
|
||||
}
|
||||
}, [content]);
|
||||
|
||||
if (!imageUrl) {
|
||||
return <div>Invalid chart URL</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flex: 1,
|
||||
position: "relative",
|
||||
overflow: "hidden",
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
padding: "20px",
|
||||
...style,
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={imageUrl}
|
||||
alt="Chart"
|
||||
style={{
|
||||
maxWidth: "100%",
|
||||
maxHeight: "100%",
|
||||
objectFit: "contain",
|
||||
}}
|
||||
onError={(e) => {
|
||||
console.error("Error loading chart image");
|
||||
e.currentTarget.style.display = "none";
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
72
alias/frontend/src/components/Viewer/CodeViewer.tsx
Normal file
@@ -0,0 +1,72 @@
|
||||
import { useTheme } from "@/context/ThemeContext";
|
||||
import React from "react";
|
||||
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
|
||||
import { oneDark, prism } from "react-syntax-highlighter/dist/esm/styles/prism"; // Use more modern theme
|
||||
import { BaseViewerProps } from "./types";
|
||||
|
||||
interface CodeViewerProps extends BaseViewerProps {
|
||||
language: string;
|
||||
title?: string;
|
||||
}
|
||||
|
||||
export const CodeViewer: React.FC<CodeViewerProps> = ({
|
||||
content,
|
||||
language,
|
||||
title,
|
||||
style,
|
||||
}) => {
|
||||
const { theme } = useTheme();
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
height: "fit-content", // Changed to adaptive height
|
||||
// backgroundColor: '#282c34', // Match oneDark theme
|
||||
borderRadius: "4px",
|
||||
...style,
|
||||
}}
|
||||
>
|
||||
{title && (
|
||||
<div
|
||||
style={{
|
||||
padding: "8px 16px",
|
||||
borderBottom: "1px solid #3e4451",
|
||||
color: "#abb2bf",
|
||||
fontSize: "14px",
|
||||
fontFamily: "monospace",
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<span>{title}</span>
|
||||
<span style={{ opacity: 0.7 }}>{language}</span>
|
||||
</div>
|
||||
)}
|
||||
<div style={{ overflow: "auto" }}>
|
||||
<SyntaxHighlighter
|
||||
language={language}
|
||||
style={theme === "dark" ? oneDark : prism}
|
||||
showLineNumbers={true}
|
||||
wrapLines={true}
|
||||
customStyle={{
|
||||
borderTopRightRadius: 0,
|
||||
borderTopLeftRadius: 0,
|
||||
// maxHeight: 500,
|
||||
overflow: "auto",
|
||||
background: theme === "dark" ? "" : "transparent",
|
||||
}}
|
||||
// lineNumberStyle={{
|
||||
// minWidth: '3em',
|
||||
// paddingRight: '1em',
|
||||
// color: '#495162',
|
||||
// textAlign: 'right',
|
||||
// }}
|
||||
>
|
||||
{content}
|
||||
</SyntaxHighlighter>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
118
alias/frontend/src/components/Viewer/DiffViewer.tsx
Normal file
@@ -0,0 +1,118 @@
|
||||
import React, { ReactNode, useEffect, useState } from "react";
|
||||
import { BaseViewerProps } from "./types";
|
||||
|
||||
export interface DiffLine {
|
||||
line: string;
|
||||
type: "addition" | "deletion" | "info" | "context";
|
||||
}
|
||||
|
||||
export const DiffViewer: React.FC<BaseViewerProps> = ({ content, style }) => {
|
||||
const [component, setComponent] = useState<ReactNode>(null);
|
||||
|
||||
useEffect(() => {
|
||||
// Parse diff content
|
||||
const parseDiff = (content: string): DiffLine[] => {
|
||||
// Remove diff markers and file information
|
||||
const cleanDiffContent = (raw: string) => {
|
||||
return raw
|
||||
.trim() // First clean leading and trailing whitespace
|
||||
.replace(/^```diff\n|\n```$/g, "") // Remove markdown diff markers
|
||||
.replace(/\\n/g, "\n") // Replace escaped newlines
|
||||
.replace(/\\"/g, '"') // Replace escaped quotes
|
||||
.replace(/\n+$/, "") // Remove trailing newlines
|
||||
.trimEnd(); // Finally clean trailing whitespace
|
||||
};
|
||||
const diffContent = cleanDiffContent(content);
|
||||
|
||||
// show all lines
|
||||
const lines = diffContent.split("\n").filter(
|
||||
(line) => true,
|
||||
// !line.startsWith('Index:') &&
|
||||
// !line.startsWith('===')
|
||||
// !line.startsWith('---') &&
|
||||
// !line.startsWith('+++')
|
||||
);
|
||||
|
||||
return lines.map((line) => {
|
||||
const type = line.startsWith("+")
|
||||
? "addition"
|
||||
: line.startsWith("-")
|
||||
? "deletion"
|
||||
: line.startsWith("@")
|
||||
? "info"
|
||||
: "context";
|
||||
|
||||
return { line, type };
|
||||
});
|
||||
};
|
||||
|
||||
const diffLines = parseDiff(content);
|
||||
|
||||
setComponent(
|
||||
<div
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
overflow: "auto",
|
||||
fontFamily: "monospace",
|
||||
fontSize: "14px",
|
||||
// backgroundColor: '#282c34',
|
||||
color: "#abb2bf",
|
||||
...style,
|
||||
}}
|
||||
>
|
||||
{diffLines.map((item, index) => (
|
||||
<div
|
||||
key={index}
|
||||
style={{
|
||||
display: "flex",
|
||||
backgroundColor:
|
||||
item.type === "addition"
|
||||
? "rgba(40, 167, 69, 0.2)"
|
||||
: item.type === "deletion"
|
||||
? "rgba(203, 36, 49, 0.2)"
|
||||
: item.type === "info"
|
||||
? "rgba(88, 96, 105, 0.2)"
|
||||
: "transparent",
|
||||
padding: "2px 10px",
|
||||
whiteSpace: "pre",
|
||||
}}
|
||||
>
|
||||
<span
|
||||
style={{
|
||||
color:
|
||||
item.type === "addition"
|
||||
? "#28a745"
|
||||
: item.type === "deletion"
|
||||
? "#cb2431"
|
||||
: item.type === "info"
|
||||
? "#586069"
|
||||
: "#abb2bf",
|
||||
}}
|
||||
>
|
||||
{item.line}
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
</div>,
|
||||
);
|
||||
}, [content, style]);
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flex: 1,
|
||||
// maxHeight: 500,
|
||||
position: "relative",
|
||||
overflow: "auto",
|
||||
// border: '1px solid #ddd',
|
||||
borderRadius: "4px",
|
||||
}}
|
||||
>
|
||||
{component}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
48
alias/frontend/src/components/Viewer/HtmlViewer.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
import React, { useState, useEffect, ReactNode } from "react";
|
||||
import { BaseViewerProps } from "./types";
|
||||
|
||||
export const HtmlViewer: React.FC<BaseViewerProps> = ({ content, style }) => {
|
||||
const [component, setComponent] = useState<ReactNode>(null);
|
||||
|
||||
useEffect(() => {
|
||||
setComponent(
|
||||
<div
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
position: "relative",
|
||||
overflow: "hidden",
|
||||
...style,
|
||||
}}
|
||||
>
|
||||
<iframe
|
||||
srcDoc={content}
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{
|
||||
border: "none",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
left: 0,
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
}}
|
||||
/>
|
||||
</div>,
|
||||
);
|
||||
}, [content]);
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flex: 1,
|
||||
height: 500,
|
||||
position: "relative",
|
||||
overflow: "hidden",
|
||||
}}
|
||||
>
|
||||
{component}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
227
alias/frontend/src/components/Viewer/MarkdownViewer.module.scss
Normal file
@@ -0,0 +1,227 @@
|
||||
.markdown {
|
||||
// Basic text styles
|
||||
font-size: 14px;
|
||||
line-height: 1.4;
|
||||
// Ensure container does not exceed parent width
|
||||
width: 100%;
|
||||
// Limit maximum width
|
||||
max-width: 100%;
|
||||
// overflow: 'hidden',
|
||||
|
||||
// Heading styles
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0.3em 0 0.1em;
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
// Paragraph styles
|
||||
p {
|
||||
margin: 0;
|
||||
line-height: 1.4;
|
||||
|
||||
&+p {
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
}
|
||||
|
||||
// List styles
|
||||
ul,
|
||||
ol {
|
||||
margin: 0.1em 0;
|
||||
padding-left: 1.2em;
|
||||
}
|
||||
|
||||
li {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1.4;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&+li {
|
||||
margin-top: 0.1em;
|
||||
}
|
||||
}
|
||||
|
||||
// Code styles
|
||||
code {
|
||||
padding: 0.1em 0.2em;
|
||||
margin: 0;
|
||||
font-size: 85%;
|
||||
background-color: rgba(175, 184, 193, 0.2);
|
||||
border-radius: 4px;
|
||||
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 8px;
|
||||
margin: 0.2em 0;
|
||||
font-size: 85%;
|
||||
line-height: 1.4;
|
||||
background-color: rgba(175, 184, 193, 0.2);
|
||||
border-radius: 4px;
|
||||
|
||||
code {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Quote styles
|
||||
blockquote {
|
||||
margin: 0.2em 0;
|
||||
padding: 0 0.5em;
|
||||
color: #656d76;
|
||||
border-left: 0.2em solid #d0d7de;
|
||||
}
|
||||
|
||||
// Table styles
|
||||
table {
|
||||
margin: 0.2em 0;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #d0d7de;
|
||||
}
|
||||
|
||||
tr {
|
||||
background-color: #ffffff;
|
||||
border-top: 1px solid #d0d7de;
|
||||
|
||||
&:nth-child(2n) {
|
||||
background-color: #f6f8fa;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Image styles
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
// Divider styles
|
||||
hr {
|
||||
height: 1px;
|
||||
margin: 0.2em 0;
|
||||
background-color: #d0d7de;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// Link styles
|
||||
a {
|
||||
color: #0969da;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
// Specifically handle spaces created by line breaks
|
||||
br {
|
||||
// Changed to inline display
|
||||
display: inline;
|
||||
// Preserve line break effect
|
||||
white-space: pre;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 0.3em;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
// Handle consecutive line breaks
|
||||
br+br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Handle line breaks in paragraphs
|
||||
p {
|
||||
br {
|
||||
display: inline;
|
||||
white-space: pre;
|
||||
height: 0.3em;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle line breaks in list items
|
||||
li {
|
||||
br {
|
||||
display: inline;
|
||||
white-space: pre;
|
||||
height: 0.3em;
|
||||
}
|
||||
}
|
||||
|
||||
// Task list styles
|
||||
input[type="checkbox"] {
|
||||
margin: 0 0.3em 0 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
// Task list item styles
|
||||
li:has(input[type="checkbox"]) {
|
||||
list-style: none;
|
||||
margin-left: -1.2em;
|
||||
padding-left: 1.2em;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.2em;
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove extra spacing from first and last elements
|
||||
*:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
*:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
18
alias/frontend/src/components/Viewer/MarkdownViewer.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// src/viewers/MarkdownViewer.ts
|
||||
import React from "react";
|
||||
import { BaseViewerProps } from "./types";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import remarkGfm from "remark-gfm";
|
||||
import { markdownRegex } from "@/utils/constant";
|
||||
|
||||
export const MarkdownViewer: React.FC<BaseViewerProps> = ({
|
||||
content,
|
||||
style,
|
||||
}) => {
|
||||
const processed = content?.match(markdownRegex)?.[1] || content;
|
||||
return (
|
||||
<div style={style}>
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>{processed}</ReactMarkdown>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
81
alias/frontend/src/components/Viewer/UniversalViewer.tsx
Normal file
@@ -0,0 +1,81 @@
|
||||
import React from "react";
|
||||
import { getFileType, languageMap } from "./utils";
|
||||
import { HtmlViewer } from "./HtmlViewer";
|
||||
import { MarkdownViewer } from "./MarkdownViewer";
|
||||
import { CodeViewer } from "./CodeViewer";
|
||||
import { CSVViewer } from "./CSVViewer";
|
||||
import { ChartViewer } from "./ChartViewer";
|
||||
import { DiffViewer } from "./DiffViewer";
|
||||
import { ViewerStyle } from "./types";
|
||||
|
||||
interface UniversalViewerProps {
|
||||
content: string;
|
||||
fileName?: string;
|
||||
style?: ViewerStyle;
|
||||
}
|
||||
|
||||
export const UniversalViewer: React.FC<UniversalViewerProps> = ({
|
||||
content,
|
||||
fileName = "",
|
||||
style = {},
|
||||
}) => {
|
||||
const getViewer = () => {
|
||||
const defaultStyles = {
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
overflow: "auto",
|
||||
...style,
|
||||
};
|
||||
|
||||
const fileType = fileName?.split(".").pop()?.toLowerCase() || "";
|
||||
const type = getFileType(fileType);
|
||||
switch (type) {
|
||||
case "html":
|
||||
return <HtmlViewer content={content} style={defaultStyles} />;
|
||||
|
||||
case "markdown":
|
||||
return <MarkdownViewer content={content} style={defaultStyles} />;
|
||||
|
||||
case "csv":
|
||||
return <CSVViewer content={content} style={defaultStyles} />;
|
||||
|
||||
// case 'pdf':
|
||||
// return <PDFViewer content={content} style={defaultStyles} />;
|
||||
|
||||
// case 'image':
|
||||
// return <ImageViewer content={content} style={defaultStyles} />;
|
||||
|
||||
case "chart":
|
||||
return <ChartViewer content={content} style={defaultStyles} />;
|
||||
|
||||
case "diff":
|
||||
return <DiffViewer content={content} style={defaultStyles} />;
|
||||
|
||||
default:
|
||||
const language = languageMap[fileType] || "text";
|
||||
return (
|
||||
<CodeViewer
|
||||
content={content}
|
||||
language={language}
|
||||
style={defaultStyles}
|
||||
/>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flex: 1,
|
||||
// maxHeight: '500px',
|
||||
position: "relative",
|
||||
// overflow: 'auto',
|
||||
// border: '1px solid #ddd',
|
||||
borderRadius: "4px",
|
||||
}}
|
||||
>
|
||||
{getViewer()}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
8
alias/frontend/src/components/Viewer/index.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
export { UniversalViewer } from "./UniversalViewer";
|
||||
export { MarkdownViewer } from "./MarkdownViewer";
|
||||
export { CodeViewer } from "./CodeViewer";
|
||||
export { CSVViewer } from "./CSVViewer";
|
||||
export { HtmlViewer } from "./HtmlViewer";
|
||||
export { DiffViewer } from "./DiffViewer";
|
||||
export { ChartViewer } from "./ChartViewer";
|
||||
export type { ViewerStyle, BaseViewerProps } from "./types";
|
||||
256
alias/frontend/src/components/Viewer/styles.ts
Normal file
@@ -0,0 +1,256 @@
|
||||
// src/viewers/styles.ts
|
||||
|
||||
export const COMMON_STYLES = `
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
color: #333;
|
||||
line-height: 1.6;
|
||||
padding: 30px;
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
/* Markdown heading styles */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
position: relative;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
font-weight: bold;
|
||||
line-height: 1.4;
|
||||
cursor: text;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.25em;
|
||||
border-bottom: 1px solid #eceff1;
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.75em;
|
||||
border-bottom: 1px solid #eceff1;
|
||||
padding-bottom: 0.3em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1em;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
/* Code block styles */
|
||||
pre {
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 3px;
|
||||
padding: 10px;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.5;
|
||||
overflow-x: auto;
|
||||
border: 1px solid #e9e9e9;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: 'Cascadia Code', 'Fira Code', Consolas, 'Courier New', monospace;
|
||||
background-color: rgba(0,0,0,0.05);
|
||||
padding: 0.2em 0.4em;
|
||||
margin: 0;
|
||||
border-radius: 3px;
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
pre code {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
/* Table styles */
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-bottom: 1.5em;
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table tr {
|
||||
background-color: #fff;
|
||||
border-top: 1px solid #c6cbd1;
|
||||
}
|
||||
|
||||
table tr:nth-child(2n) {
|
||||
background-color: #f6f8fa;
|
||||
}
|
||||
|
||||
table th,
|
||||
table td {
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #dfe2e5;
|
||||
}
|
||||
|
||||
table th {
|
||||
font-weight: bold;
|
||||
background-color: #f0f0f0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Blockquote styles */
|
||||
blockquote {
|
||||
border-left: 4px solid #dfe2e5;
|
||||
padding: 0 15px;
|
||||
color: #777;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* List styles */
|
||||
ul, ol {
|
||||
padding-left: 30px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* Link styles */
|
||||
a {
|
||||
color: #0366d6;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Horizontal line */
|
||||
hr {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background-color: #e1e4e8;
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
||||
/* Additional styles for inline code and code blocks */
|
||||
.highlight {
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.linenos {
|
||||
background-color: #f0f0f0;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
/* Image styles */
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
/* Paragraph styles */
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* Emphasis styles */
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Strikethrough styles */
|
||||
del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* Superscript and subscript */
|
||||
sup, sub {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
/* Keyboard input styles */
|
||||
kbd {
|
||||
background-color: #fafbfc;
|
||||
border: 1px solid #d1d5da;
|
||||
border-bottom-color: #c6cbd1;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 -1px 0 #c6cbd1;
|
||||
color: #444d56;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
line-height: 10px;
|
||||
padding: 3px 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Text selection styles */
|
||||
::selection {
|
||||
background: #b3d4fc;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
/* Scrollbar styles */
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #c1c1c1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #a8a8a8;
|
||||
}
|
||||
`;
|
||||
|
||||
export const HIGHLIGHT_STYLES = {
|
||||
tomorrow: {
|
||||
"hljs-comment": {
|
||||
color: "#999999",
|
||||
},
|
||||
"hljs-keyword": {
|
||||
color: "#cc99cd",
|
||||
},
|
||||
"hljs-string": {
|
||||
color: "#7ec699",
|
||||
},
|
||||
},
|
||||
};
|
||||