https://github.com/areid987/minions
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.7%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
Basic Info
- Host: GitHub
- Owner: AReid987
- License: mit
- Language: JavaScript
- Default Branch: main
- Size: 921 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
- Releases: 0
Created about 1 year ago
· Last pushed about 1 year ago
https://github.com/AReid987/minions/blob/main/
 # Where On-Device and Cloud LLMs Meet [](https://discord.gg/jfJyxXwFVa) _What is this?_ Minions is a communication protocol that enables small on-device models to collaborate with frontier models in the cloud. By only reading long contexts locally, we can reduce cloud costs with minimal or no quality degradation. This repository provides a demonstration of the protocol. Get started below or see our paper and blogpost below for more information. Paper: [Minions: Cost-efficient Collaboration Between On-device and Cloud Language Models](https://arxiv.org/pdf/2502.15964) Minions Blogpost: https://hazyresearch.stanford.edu/blog/2025-02-24-minions Secure Minions Chat Blogpost: https://hazyresearch.stanford.edu/blog/2025-05-12-security ## Table of Contents > **Looking for Secure Minions Chat?** If you're interested in our end-to-end encrypted and chat system, please see the [Secure Minions Chat README](secure/README.md) for detailed setup and usage instructions. - [Setup](#setup) - [Step 1: Clone and Install](#step-1-clone-the-repository-and-install-the-python-package) - [Step 2: Install a Local Model Server](#step-2-install-a-server-for-running-the-local-model) - [Step 3: Set Cloud LLM API Keys](#step-3-set-your-api-key-for-at-least-one-of-the-following-cloud-llm-providers) - [Minions Demo Application](#minions-demo-application) - [Minions WebGPU App](#minions-webgpu-app) - [Example Code](#example-code-minion-singular) - [Minion (Singular)](#example-code-minion-singular) - [Minions (Plural)](#example-code-minions-plural) - [Python Notebook](#python-notebook) - [Docker Support](#docker-support) - [Command Line Interface](#cli) - [Secure Minions Chat](#secure-minions-chat) - [Inference Estimator](#inference-estimator) - [Command Line Usage](#command-line-usage) - [Python API Usage](#python-api-usage) - [Miscellaneous Setup](#miscellaneous-setup) - [Using Azure OpenAI](#using-azure-openai-with-minions) - [Maintainers](#maintainers) ## Setup _We have tested the following setup on Mac and Ubuntu with Python 3.10-3.11_ (Note: Python 3.13 is not supported)Optional: Create a virtual environment with your favorite package manager (e.g. conda, venv, uv)
```python conda create -n minions python=3.11 ```
**Step 1:** Clone the repository and install the Python package. ```bash git clone https://github.com/HazyResearch/minions.git cd minions pip install -e . # installs the minions package in editable mode ``` _note_: for optional MLX-LM install the package with the following command: ```bash pip install -e ".[mlx]" ``` _note_: for secure minions chat, install the package with the following command: ```bash pip install -e ".[secure]" ``` _note_: for optional Cartesia-MLX install, pip install the basic package and then follow the instructions below. **Step 2:** Install a server for running the local model. We support two servers for running local models: `ollama` and `tokasaurus`. You need to install at least one of these. - You should use `ollama` if you do not have access to NVIDIA GPUs. Install `ollama` following the instructions [here](https://ollama.com/download). To enable Flash Attention, run `launchctl setenv OLLAMA_FLASH_ATTENTION 1` and, if on a mac, restart the ollama app. - You should use `tokasaurus` if you have access to NVIDIA GPUs and you are running the Minions protocol, which benefits from the high-throughput of `tokasaurus`. Install `tokasaurus` with the following command: ``` uv pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ tokasaurus==0.0.1.post1 ```Optional: Install Cartesia-MLX (only available on Apple Silicon)
1. Download XCode 2. Install the command line tools by running `xcode-select --install` 3. Install the Nanobind ``` pip install nanobind@git+https://github.com/wjakob/nanobind.git@2f04eac452a6d9142dedb957701bdb20125561e4 ``` 4. Install the Cartesia Metal backend by running the following command: ``` pip install git+https://github.com/cartesia-ai/edge.git#subdirectory=cartesia-metal ``` 5. Install the Cartesia-MLX package by running the following command: ``` pip install git+https://github.com/cartesia-ai/edge.git#subdirectory=cartesia-mlx ```
Optional: Install llama-cpp-python
# Installation First, install the llama-cpp-python package: ```bash # CPU-only installation pip install llama-cpp-python # For Metal on Mac (Apple Silicon/Intel) CMAKE_ARGS="-DGGML_METAL=on" pip install llama-cpp-python # For CUDA on NVIDIA GPUs CMAKE_ARGS="-DGGML_CUDA=on" pip install llama-cpp-python # For OpenBLAS CPU optimizations CMAKE_ARGS="-DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python ``` For more installation options, see the [llama-cpp-python documentation](https://llama-cpp-python.readthedocs.io/en/latest/). ## Basic Usage The client follows the basic pattern from the llama-cpp-python library: ```python from minions.clients import LlamaCppClient # Initialize the client with a local model client = LlamaCppClient( model_path="/path/to/model.gguf", chat_format="chatml", # Most modern models use "chatml" format n_gpu_layers=35 # Set to 0 for CPU-only inference ) # Run a chat completion messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What's the capital of France?"} ] responses, usage, done_reasons = client.chat(messages) print(responses[0]) # The generated response ``` ## Loading Models from Hugging Face You can easily load models directly from Hugging Face: ```python client = LlamaCppClient( model_path="dummy", # Will be replaced by downloaded model model_repo_id="TheBloke/Mistral-7B-Instruct-v0.2-GGUF", model_file_pattern="*Q4_K_M.gguf", # Optional - specify quantization chat_format="chatml", n_gpu_layers=35 # Offload 35 layers to GPU ) ```
**Step 3:** Set your API key for at least one of the following cloud LLM providers. _If needed, create an [OpenAI API Key](https://platform.openai.com/docs/overview) or [TogetherAI API key](https://docs.together.ai/docs/quickstart) or [DeepSeek API key](https://platform.deepseek.com/api_keys) for the cloud model._ ```bash # OpenAI export OPENAI_API_KEY=export OPENAI_BASE_URL= # Optional: Use a different OpenAI API endpoint # Together AI export TOGETHER_API_KEY= # OpenRouter export OPENROUTER_API_KEY= export OPENROUTER_BASE_URL= # Optional: Use a different OpenRouter API endpoint # Perplexity export PERPLEXITY_API_KEY= export PERPLEXITY_BASE_URL= # Optional: Use a different Perplexity API endpoint # Tokasaurus export TOKASAURUS_BASE_URL= # Optional: Use a different Tokasaurus API endpoint # DeepSeek export DEEPSEEK_API_KEY= # Anthropic export ANTHROPIC_API_KEY= # Mistral AI export MISTRAL_API_KEY= ``` ## Minions Demo Application [](https://www.youtube.com/watch?v=70Kot0_DFNs) To try the Minion or Minions protocol, run the following commands: ```bash pip install torch transformers streamlit run app.py ``` If you are seeing an error about the `ollama` client, ``` An error occurred: Failed to connect to Ollama. Please check that Ollama is downloaded, running and accessible. https://ollama.com/download ``` try running the following command: ```bash OLLAMA_FLASH_ATTENTION=1 ollama serve ``` ## Minions WebGPU App The Minions WebGPU app demonstrates the Minions protocol running entirely in the browser using WebGPU for local model inference and cloud APIs for supervision. This approach eliminates the need for local server setup while providing a user-friendly web interface. ### Features - **Browser-based**: Runs entirely in your web browser with no local server required - **WebGPU acceleration**: Uses WebGPU for fast local model inference - **Model selection**: Choose from multiple pre-optimized models from [MLC AI](https://mlc.ai/models) - **Real-time progress**: See model loading progress and conversation logs in real-time - **Privacy-focused**: Your API key and data never leave your browser ### Quick Start 1. **Navigate to the WebGPU app directory:** ```bash cd apps/minions-webgpu ``` 2. **Install dependencies:** ```bash npm install ``` 3. **Start the development server:** ```bash npm start ``` 4. **Open your browser** and navigate to the URL shown in the terminal (typically `http://localhost:5173`) ## Example code: Minion (singular) The following example is for an `ollama` local client and an `openai` remote client. The protocol is `minion`. ```python from minions.clients.ollama import OllamaClient from minions.clients.openai import OpenAIClient from minions.minion import Minion local_client = OllamaClient( model_name="llama3.2", ) remote_client = OpenAIClient( model_name="gpt-4o", ) # Instantiate the Minion object with both clients minion = Minion(local_client, remote_client) context = """ Patient John Doe is a 60-year-old male with a history of hypertension. In his latest checkup, his blood pressure was recorded at 160/100 mmHg, and he reported occasional chest discomfort during physical activity. Recent laboratory results show that his LDL cholesterol level is elevated at 170 mg/dL, while his HDL remains within the normal range at 45 mg/dL. Other metabolic indicators, including fasting glucose and renal function, are unremarkable. """ task = "Based on the patient's blood pressure and LDL cholesterol readings in the context, evaluate whether these factors together suggest an increased risk for cardiovascular complications." # Execute the minion protocol for up to two communication rounds output = minion( task=task, context=[context], max_rounds=2 ) ``` ## Example Code: Minions (plural) The following example is for an `ollama` local client and an `openai` remote client. The protocol is `minions`. ```python from minions.clients.ollama import OllamaClient from minions.clients.openai import OpenAIClient from minions.minions import Minions from pydantic import BaseModel class StructuredLocalOutput(BaseModel): explanation: str citation: str | None answer: str | None local_client = OllamaClient( model_name="llama3.2", temperature=0.0, structured_output_schema=StructuredLocalOutput ) remote_client = OpenAIClient( model_name="gpt-4o", ) # Instantiate the Minion object with both clients minion = Minions(local_client, remote_client) context = """ Patient John Doe is a 60-year-old male with a history of hypertension. In his latest checkup, his blood pressure was recorded at 160/100 mmHg, and he reported occasional chest discomfort during physical activity. Recent laboratory results show that his LDL cholesterol level is elevated at 170 mg/dL, while his HDL remains within the normal range at 45 mg/dL. Other metabolic indicators, including fasting glucose and renal function, are unremarkable. """ task = "Based on the patient's blood pressure and LDL cholesterol readings in the context, evaluate whether these factors together suggest an increased risk for cardiovascular complications." # Execute the minion protocol for up to two communication rounds output = minion( task=task, doc_metadata="Medical Report", context=[context], max_rounds=2 ) ``` ## Python Notebook To run Minion/Minions in a notebook, checkout `minions.ipynb`. ## Docker support ### Build the Docker Image ```bash docker build -t minions . ``` ### Run the container ```bash #without GPU support docker run -p 8501:8501 --env OPENAI_API_KEY= --env DEEPSEEK_API_KEY= minions #with GPU support docker run --gpus all -p 8501:8501 --env OPENAI_API_KEY= --env DEEPSEEK_API_KEY= minions ``` ## CLI To run Minion/Minions in a CLI, checkout `minions_cli.py`. Set your choice of local and remote models by running the following command. The format is ` / `. Choice of providers are `ollama`, `openai`, `anthropic`, `together`, `perplexity`, `openrouter`, `groq`, and `mlx`. ```bash export MINIONS_LOCAL=ollama/llama3.2 export MINIONS_REMOTE=openai/gpt-4o ``` ```bash minions --help ``` ```bash minions --context --protocol ``` ## Secure Minions Chat To install secure minions chat, install the package with the following command: ```bash pip install -e ".[secure]" ``` See the [Secure Minions Chat README](secure/README.md) for additional details on how to setup clients and run the secure chat protocol. ## Inference Estimator Minions provides a utility to estimate LLM inference speed on your hardware. The inference estimator helps you: 1. Analyze your hardware capabilities (GPU, MPS, or CPU) 2. Calculate peak performance for your models 3. Estimate tokens per second and completion time ### Command Line Usage Run the estimator directly from the command line to check how fast a model will run: ```bash python -m minions.utils.inference_estimator --model llama3.2 --tokens 1000 --describe ``` Arguments: - `--model`: Model name from the supported model list (e.g., llama3.2, mistral7b) - `--tokens`: Number of tokens to estimate generation time for - `--describe`: Show detailed hardware and model performance statistics - `--quantized`: Specify that the model is quantized - `--quant-bits`: Quantization bit-width (4, 8, or 16) ### Python API Usage You can also use the inference estimator in your Python code: ```python from minions.utils.inference_estimator import InferenceEstimator # Initialize the estimator for a specific model estimator = InferenceEstimator( model_name="llama3.2", # Model name is_quant=True, # Is model quantized? quant_bits=4 # Quantization level (4, 8, 16) ) # Estimate performance for 1000 tokens tokens_per_second, estimated_time = estimator.estimate(1000) print(f"Estimated speed: {tokens_per_second:.1f} tokens/sec") print(f"Estimated time: {estimated_time:.2f} seconds") # Get detailed stats detailed_info = estimator.describe(1000) print(detailed_info) # Calibrate with your actual model client for better accuracy # (requires a model client that implements a chat() method) estimator.calibrate(my_model_client, sample_tokens=32, prompt="Hello") ``` The estimator uses a roofline model that considers both compute and memory bandwidth limitations and applies empirical calibration to improve accuracy. The calibration data is cached at `~/.cache/ie_calib.json` for future use. ## Miscellaneous Setup ### Using Azure OpenAI with Minions #### Set Environment Variables ```bash export AZURE_OPENAI_API_KEY=your-api-key export AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/ export AZURE_OPENAI_API_VERSION=2024-02-15-preview ``` #### Example Code Here's an example of how to use Azure OpenAI with the Minions protocol in your own code: ```python from minions.clients.ollama import OllamaClient from minions.clients.azure_openai import AzureOpenAIClient from minions.minion import Minion local_client = OllamaClient( model_name="llama3.2", ) remote_client = AzureOpenAIClient( model_name="gpt-4o", # This should match your deployment name api_key="your-api-key", azure_endpoint="https://your-resource-name.openai.azure.com/", api_version="2024-02-15-preview", ) # Instantiate the Minion object with both clients minion = Minion(local_client, remote_client) ``` ## Maintainers - Avanika Narayan (contact: avanika@cs.stanford.edu) - Dan Biderman (contact: biderman@stanford.edu) - Sabri Eyuboglu (contact: eyuboglu@cs.stanford.edu)
Owner
- Name: Antonio Reid
- Login: AReid987
- Kind: user
- Location: Austin, Texas
- Repositories: 9
- Profile: https://github.com/AReid987
GitHub Events
Total
- Push event: 1
- Pull request event: 2
- Create event: 4
Last Year
- Push event: 1
- Pull request event: 2
- Create event: 4
Dependencies
Dockerfile
docker
- python 3.11-slim build
JavaScript2/Packages/ej2-angular-barcode-generator/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-barcode-generator *
- @syncfusion/ej2-base *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-base/package.json
npm
- @angular-devkit/architect 0.1501.0 development
- @angular-devkit/core 15.1.0 development
- @angular-devkit/schematics ^15.1.0 development
- @angular/common ^15.1.0 development
- @angular/compiler ^15.1.0 development
- @angular/core ^15.1.0 development
- @angular/forms ^15.1.0 development
- @angular/platform-browser ^15.1.0 development
- @angular/platform-browser-dynamic ^15.1.0 development
- @angular/router ^15.1.0 development
- @schematics/angular ^15.1.4 development
- @syncfusion/ej2-build-test /jenkins/workspace/_Backup_ej2-es-build_development/repositories/packages/ej2-build-test.tgz development
- @types/chai ^3.4.28 development
- @types/core-js 0.9.39 development
- @types/jasmine ~4.3.0 development
- @types/jasmine-ajax ^3.1.27 development
- @types/node ^18.18.0 development
- @types/requirejs 2.1.37 development
- core-js ^3.4.8 development
- es6-module-loader ^0.17.11 development
- karma-systemjs ^0.16.0 development
- reflect-metadata ^0.1.9 development
- rxjs 7.8.1 development
- rxjs-compat ^6.5.4 development
- systemjs ^0.19.40 development
- systemjs-plugin-babel 0.0.17 development
- typescript ~4.9.4 development
- zone.js ~0.12.0 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-icons *
JavaScript2/Packages/ej2-angular-buttons/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-calendars/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-calendars *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-charts/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-charts *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-circulargauge/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-circulargauge *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-diagrams/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-diagrams *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-documenteditor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-documenteditor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-dropdowns/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-dropdowns *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-filemanager/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-filemanager *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-gantt/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-gantt *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-grids/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-grids *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-heatmap/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-heatmap *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-image-editor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-image-editor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-inplace-editor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-inplace-editor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-inputs/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-inputs *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-interactive-chat/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-interactive-chat *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-barcode-generator/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-barcode-generator *
- @syncfusion/ej2-base *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-base/package.json
npm
- @angular-devkit/architect 0.1501.0 development
- @angular-devkit/core 15.1.0 development
- @angular-devkit/schematics ^15.1.0 development
- @angular/common ^15.1.0 development
- @angular/compiler ^15.1.0 development
- @angular/core ^15.1.0 development
- @angular/forms ^15.1.0 development
- @angular/platform-browser ^15.1.0 development
- @angular/platform-browser-dynamic ^15.1.0 development
- @angular/router ^15.1.0 development
- @schematics/angular ^15.1.4 development
- @syncfusion/ej2-build-test * development
- @syncfusion/ej2-staging ^1.0.1 development
- @types/chai ^3.4.28 development
- @types/core-js 0.9.39 development
- @types/jasmine ~4.3.0 development
- @types/jasmine-ajax ^3.1.27 development
- @types/node ^18.18.0 development
- @types/requirejs 2.1.37 development
- core-js ^3.4.8 development
- es6-module-loader ^0.17.11 development
- karma-systemjs ^0.16.0 development
- reflect-metadata ^0.1.9 development
- rxjs 7.8.1 development
- rxjs-compat ^6.5.4 development
- systemjs ^0.19.40 development
- systemjs-plugin-babel 0.0.17 development
- typescript ~4.9.4 development
- zone.js ~0.12.0 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-icons *
- markdown-spellcheck ^1.3.1
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-buttons/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-calendars/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-calendars *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-charts/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-charts *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-circulargauge/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-circulargauge *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-diagrams/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-diagrams *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-documenteditor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-documenteditor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-dropdowns/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-dropdowns *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-filemanager/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-filemanager *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-gantt/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-gantt *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-grids/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-grids *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-heatmap/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-heatmap *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-image-editor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-image-editor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-inplace-editor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-inplace-editor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-inputs/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-inputs *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-kanban/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-kanban *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-layouts/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-layouts *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-lineargauge/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-lineargauge *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-lists/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-lists *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-maps/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-maps *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-navigations/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-navigations *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-notifications/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-notifications *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-pdfviewer/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-pdfviewer *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-pivotview/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-pivotview *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-popups/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-popups *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-progressbar/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-progressbar *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-querybuilder/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-querybuilder *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-richtexteditor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-richtexteditor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-schedule/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-schedule *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-splitbuttons/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-splitbuttons *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-spreadsheet/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-spreadsheet *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-treegrid/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-treegrid *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ivy/ej2-angular-treemap/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-treemap *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-kanban/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-kanban *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-layouts/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-layouts *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-lineargauge/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-lineargauge *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-lists/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-lists *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-maps/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-maps *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-multicolumn-combobox/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-multicolumn-combobox *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-navigations/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-navigations *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-notifications/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-notifications *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-pdfviewer/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-pdfviewer *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-pivotview/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-pivotview *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-popups/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-popups *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-progressbar/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-progressbar *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-querybuilder/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-querybuilder *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-ribbon/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-ribbon *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-richtexteditor/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-richtexteditor *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-schedule/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-schedule *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-splitbuttons/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-splitbuttons *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-spreadsheet/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-spreadsheet *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-treegrid/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-treegrid *
- tslib ^2.3.0
JavaScript2/Packages/ej2-angular-treemap/package.json
npm
- @syncfusion/ej2-angular-base *
- @syncfusion/ej2-base *
- @syncfusion/ej2-treemap *
- tslib ^2.3.0
JavaScript2/Packages/ej2-barcode-generator/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-data *
JavaScript2/Packages/ej2-base/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.22 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-icons *
JavaScript2/Packages/ej2-buttons/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
JavaScript2/Packages/ej2-calendars/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-popups *
JavaScript2/Packages/ej2-charts/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-calendars *
- @syncfusion/ej2-data *
- @syncfusion/ej2-excel-export *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-pdf-export *
- @syncfusion/ej2-svg-base *
JavaScript2/Packages/ej2-circulargauge/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-pdf-export *
- @syncfusion/ej2-svg-base *
JavaScript2/Packages/ej2-compression/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-file-utils *
JavaScript2/Packages/ej2-data/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
JavaScript2/Packages/ej2-diagrams/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-data *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-popups *
JavaScript2/Packages/ej2-documenteditor/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-calendars *
- @syncfusion/ej2-compression *
- @syncfusion/ej2-dropdowns *
- @syncfusion/ej2-file-utils *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-office-chart *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-splitbuttons *
JavaScript2/Packages/ej2-drawings/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-data *
JavaScript2/Packages/ej2-dropdowns/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-data *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-notifications *
- @syncfusion/ej2-popups *
JavaScript2/Packages/ej2-excel-export/package.json
npm
- @types/chai 3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.5.43 development
- @types/jasmine-ajax 3.1.27 development
- @types/requirejs 2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-compression *
JavaScript2/Packages/ej2-file-utils/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- typescript ^2.1.1 development
JavaScript2/Packages/ej2-filemanager/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/node 10.14.0 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-data *
- @syncfusion/ej2-grids *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-layouts *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-splitbuttons *
JavaScript2/Packages/ej2-gantt/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/node 10.14.0 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-calendars *
- @syncfusion/ej2-data *
- @syncfusion/ej2-dropdowns *
- @syncfusion/ej2-grids *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-layouts *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-notifications *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-richtexteditor *
- @syncfusion/ej2-svg-base *
- @syncfusion/ej2-treegrid *
JavaScript2/Packages/ej2-grids/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-calendars *
- @syncfusion/ej2-compression *
- @syncfusion/ej2-data *
- @syncfusion/ej2-dropdowns *
- @syncfusion/ej2-excel-export *
- @syncfusion/ej2-file-utils *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-notifications *
- @syncfusion/ej2-pdf-export *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-splitbuttons *
- markdown-spellcheck ^1.3.1
JavaScript2/Packages/ej2-heatmap/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-compression *
- @syncfusion/ej2-data *
- @syncfusion/ej2-file-utils *
- @syncfusion/ej2-pdf-export *
- @syncfusion/ej2-svg-base *
JavaScript2/Packages/ej2-icons/package.json
npm
- @syncfusion/ej2-build-test ./packages/ej2-build-test.tgz development
JavaScript2/Packages/ej2-image-editor/package.json
npm
- @types/chai ^3.4.28 development
- @types/es6-promise 0.0.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-dropdowns *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-splitbuttons *
JavaScript2/Packages/ej2-inplace-editor/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/node 10.14.0 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-calendars *
- @syncfusion/ej2-data *
- @syncfusion/ej2-dropdowns *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-lists *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-notifications *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-richtexteditor *
- @syncfusion/ej2-splitbuttons *
JavaScript2/Packages/ej2-inputs/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-buttons *
- @syncfusion/ej2-popups *
- @syncfusion/ej2-splitbuttons *
JavaScript2/Packages/ej2-interactive-chat/package.json
npm
- @types/chai ^3.4.28 development
- @types/jasmine 2.8.9 development
- @types/jasmine-ajax ^3.1.27 development
- @types/requirejs ^2.1.26 development
- @syncfusion/ej2-base *
- @syncfusion/ej2-inputs *
- @syncfusion/ej2-navigations *
- @syncfusion/ej2-notifications *
JavaScript2/Packages/ej2-js-es5/package.json
npm
- @syncfusion/ej2-build-test ./packages/ej2-build-test.tgz development
- @types/lodash 4.14.159 development
- @types/node 18.11.11 development
- gulp-print ^5.0.2 development
- gulp-prompt 1.2.0 development
- gulp-stylelint ^13.0.0 development
- gulp-util ^3.0.8 development
- postcss ^8.4.14 development
- readline-sync ^1.4.10 development
- rollup 1.32.1 development
- rollup-plugin-commonjs 10.1.0 development
- rollup-plugin-node-resolve 5.2.0 development
- rollup-plugin-sourcemaps 0.6.3 development
- rollup-plugin-typescript 1.0.1 development
- rollup-plugin-uglify 6.0.4 development
- sass 1.51.0 development
- serve 12.0.1 development
- stylelint ^13.13.1 development
- stylelint-scss ^3.18.0 development
- table ^6.8.0 development
- tslib ^1.8.0 development
- typescript ^3.8.2 development