diff --git a/.github/workflows/mor-agents-build-linux.yml b/.github/workflows/mor-agents-build-linux.yml
index 3d7dcac..09d09cb 100644
--- a/.github/workflows/mor-agents-build-linux.yml
+++ b/.github/workflows/mor-agents-build-linux.yml
@@ -2,178 +2,178 @@ name: MOR Agents Build Linux
on:
push:
- branches: [ main ]
+ branches: [main]
pull_request:
- branches: [ main ]
+ branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
-
+
steps:
- - uses: actions/checkout@v4
- with:
- submodules: 'recursive'
-
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: '3.12'
-
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- pip install -r requirements.txt
- pip install pyinstaller
-
- - name: Build with PyInstaller
- run: |
- pyinstaller --name="MORagents" --add-data "images/moragents.png:images" main.py
-
- - name: Create Debian package
- run: |
- mkdir -p debian/DEBIAN
- mkdir -p debian/usr/bin
- mkdir -p debian/usr/share/applications
- mkdir -p debian/usr/share/icons/hicolor/256x256/apps
- cp -r dist/MORagents/* debian/usr/bin/
- cp images/moragents.png debian/usr/share/icons/hicolor/256x256/apps/moragents.png
- echo "[Desktop Entry]
- Name=MORagents
- Exec=/usr/bin/MORagents
- Icon=moragents
- Type=Application
- Categories=Utility;" > debian/usr/share/applications/moragents.desktop
- echo "Package: moragents
- Version: 1.0
- Section: utils
- Priority: optional
- Architecture: amd64
- Maintainer: LachsBagel
- Description: MORagents application
- MORagents is a desktop application for AI agents." > debian/DEBIAN/control
-
- dpkg-deb --build debian moragents.deb
-
- - name: Create setup script
- run: |
- cat << EOF > moragents-setup.sh
- #!/bin/bash
- set -e
-
- # Colors for output
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[0;33m'
- NC='\033[0m' # No Color
-
- # Function to check if a command exists
- command_exists() {
- command -v "$1" >/dev/null 2>&1
- }
-
- # Function to add current user to docker group
- add_user_to_docker_group() {
- local current_user=\$(whoami)
- if [ "\$current_user" != "root" ]; then
- echo -e "\${YELLOW}Adding current user to docker group...${NC}"
- sudo usermod -aG docker "\$current_user"
- echo -e "\${GREEN}User added to docker group. Please log out and log back in for changes to take effect.${NC}"
- else
- echo -e "\${YELLOW}Running as root. Skipping user addition to docker group.${NC}"
- fi
- }
-
- # Function to wait for Ollama service to be ready
- wait_for_ollama() {
- echo -e "\${YELLOW}Waiting for Ollama service to be ready...${NC}"
- for i in {1..30}; do
- if curl -s http://localhost:11434/api/tags >/dev/null; then
- echo -e "\${GREEN}Ollama service is ready.${NC}"
- return 0
- fi
- sleep 2
- done
- echo -e "\${RED}Timed out waiting for Ollama service.${NC}"
- return 1
- }
-
- # Function to pull Ollama model with retries
- pull_ollama_model() {
- local model=\$1
- local max_attempts=3
- local attempt=1
-
- while [ \$attempt -le \$max_attempts ]; do
- echo -e "\${YELLOW}Pulling Ollama model \$model (Attempt \$attempt)...${NC}"
- if ollama pull \$model; then
- echo -e "\${GREEN}Successfully pulled \$model.${NC}"
- return 0
- fi
- echo -e "\${YELLOW}Failed to pull \$model. Retrying...${NC}"
- sleep 5
- attempt=\$((attempt + 1))
- done
-
- echo -e "\${RED}Failed to pull \$model after \$max_attempts attempts.${NC}"
- return 1
- }
-
- # Install curl if not present
- if ! command_exists curl; then
- echo -e "\${YELLOW}Installing curl...${NC}"
- sudo apt-get update
- sudo apt-get install -y curl
- fi
-
- # Install Docker if not present
- if ! command_exists docker; then
- echo -e "\${YELLOW}Installing Docker...${NC}"
- curl -fsSL https://get.docker.com -o get-docker.sh
- sudo sh get-docker.sh
- add_user_to_docker_group
- sudo systemctl enable docker
- sudo systemctl start docker
- else
- echo -e "\${GREEN}Docker is already installed.${NC}"
- fi
-
- # Install Ollama
- echo -e "\${YELLOW}Installing Ollama...${NC}"
- curl -fsSL https://ollama.com/install.sh | sh
-
- # Start Ollama service
- echo -e "\${YELLOW}Starting Ollama service...${NC}"
- nohup ollama serve > /dev/null 2>&1 &
-
- # Wait for Ollama service to be ready
- wait_for_ollama
-
- # Pull Ollama models
- echo -e "\${YELLOW}Pulling Ollama models...${NC}"
- pull_ollama_model llama3.1
- pull_ollama_model nomic-embed-text
-
- # Pull necessary Docker images
- echo -e "\${YELLOW}Pulling Docker images...${NC}"
- sudo docker pull lachsbagel/moragents_dockers-nginx:amd64-0.1.0
- sudo docker pull lachsbagel/moragents_dockers-agents:amd64-0.1.0
-
- # Start Docker containers
- echo -e "\${YELLOW}Starting Docker containers...${NC}"
- sudo docker run -d --name agents -p 8080:5000 --restart always -v /var/lib/agents -v /app/src lachsbagel/moragents_dockers-agents:amd64-0.1.0
- sudo docker run -d --name nginx -p 3333:80 lachsbagel/moragents_dockers-nginx:amd64-0.1.0
-
- echo -e "\${GREEN}Setup complete!${NC}"
- EOF
-
- chmod +x moragents-setup.sh
-
- - name: Upload Debian Package and Setup Script
- uses: actions/upload-artifact@v4
- with:
- name: MORagentsSetup-Linux
- path: |
- moragents.deb
- moragents-setup.sh
\ No newline at end of file
+ - uses: actions/checkout@v4
+ with:
+ submodules: "recursive"
+
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+ pip install pyinstaller
+
+ - name: Build with PyInstaller
+ run: |
+ pyinstaller --name="MORagents" --add-data "images/moragents.png:images" main.py
+
+ - name: Create Debian package
+ run: |
+ mkdir -p debian/DEBIAN
+ mkdir -p debian/usr/bin
+ mkdir -p debian/usr/share/applications
+ mkdir -p debian/usr/share/icons/hicolor/256x256/apps
+ cp -r dist/MORagents/* debian/usr/bin/
+ cp images/moragents.png debian/usr/share/icons/hicolor/256x256/apps/moragents.png
+ echo "[Desktop Entry]
+ Name=MORagents
+ Exec=/usr/bin/MORagents
+ Icon=moragents
+ Type=Application
+ Categories=Utility;" > debian/usr/share/applications/moragents.desktop
+ echo "Package: moragents
+ Version: 1.0
+ Section: utils
+ Priority: optional
+ Architecture: amd64
+ Maintainer: LachsBagel
+ Description: MORagents application
+ MORagents is a desktop application for AI agents." > debian/DEBIAN/control
+
+ dpkg-deb --build debian moragents.deb
+
+ - name: Create setup script
+ run: |
+ cat << EOF > moragents-setup.sh
+ #!/bin/bash
+ set -e
+
+ # Colors for output
+ RED='\033[0;31m'
+ GREEN='\033[0;32m'
+ YELLOW='\033[0;33m'
+ NC='\033[0m' # No Color
+
+ # Function to check if a command exists
+ command_exists() {
+ command -v "$1" >/dev/null 2>&1
+ }
+
+ # Function to add current user to docker group
+ add_user_to_docker_group() {
+ local current_user=\$(whoami)
+ if [ "\$current_user" != "root" ]; then
+ echo -e "\${YELLOW}Adding current user to docker group...${NC}"
+ sudo usermod -aG docker "\$current_user"
+ echo -e "\${GREEN}User added to docker group. Please log out and log back in for changes to take effect.${NC}"
+ else
+ echo -e "\${YELLOW}Running as root. Skipping user addition to docker group.${NC}"
+ fi
+ }
+
+ # Function to wait for Ollama service to be ready
+ wait_for_ollama() {
+ echo -e "\${YELLOW}Waiting for Ollama service to be ready...${NC}"
+ for i in {1..30}; do
+ if curl -s http://localhost:11434/api/tags >/dev/null; then
+ echo -e "\${GREEN}Ollama service is ready.${NC}"
+ return 0
+ fi
+ sleep 2
+ done
+ echo -e "\${RED}Timed out waiting for Ollama service.${NC}"
+ return 1
+ }
+
+ # Function to pull Ollama model with retries
+ pull_ollama_model() {
+ local model=\$1
+ local max_attempts=3
+ local attempt=1
+
+ while [ \$attempt -le \$max_attempts ]; do
+ echo -e "\${YELLOW}Pulling Ollama model \$model (Attempt \$attempt)...${NC}"
+ if ollama pull \$model; then
+ echo -e "\${GREEN}Successfully pulled \$model.${NC}"
+ return 0
+ fi
+ echo -e "\${YELLOW}Failed to pull \$model. Retrying...${NC}"
+ sleep 5
+ attempt=\$((attempt + 1))
+ done
+
+ echo -e "\${RED}Failed to pull \$model after \$max_attempts attempts.${NC}"
+ return 1
+ }
+
+ # Install curl if not present
+ if ! command_exists curl; then
+ echo -e "\${YELLOW}Installing curl...${NC}"
+ sudo apt-get update
+ sudo apt-get install -y curl
+ fi
+
+ # Install Docker if not present
+ if ! command_exists docker; then
+ echo -e "\${YELLOW}Installing Docker...${NC}"
+ curl -fsSL https://get.docker.com -o get-docker.sh
+ sudo sh get-docker.sh
+ add_user_to_docker_group
+ sudo systemctl enable docker
+ sudo systemctl start docker
+ else
+ echo -e "\${GREEN}Docker is already installed.${NC}"
+ fi
+
+ # Install Ollama
+ echo -e "\${YELLOW}Installing Ollama...${NC}"
+ curl -fsSL https://ollama.com/install.sh | sh
+
+ # Start Ollama service
+ echo -e "\${YELLOW}Starting Ollama service...${NC}"
+ nohup ollama serve > /dev/null 2>&1 &
+
+ # Wait for Ollama service to be ready
+ wait_for_ollama
+
+ # Pull Ollama models
+ echo -e "\${YELLOW}Pulling Ollama models...${NC}"
+ pull_ollama_model llama3.2:3b
+ pull_ollama_model nomic-embed-text
+
+ # Pull necessary Docker images
+ echo -e "\${YELLOW}Pulling Docker images...${NC}"
+ sudo docker pull lachsbagel/moragents_dockers-nginx:amd64-0.2.0
+ sudo docker pull lachsbagel/moragents_dockers-agents:amd64-0.2.0
+
+ # Start Docker containers
+ echo -e "\${YELLOW}Starting Docker containers...${NC}"
+ sudo docker run -d --name agents -p 8080:5000 --restart always -v /var/lib/agents -v /app/src lachsbagel/moragents_dockers-agents:amd64-0.2.0
+ sudo docker run -d --name nginx -p 3333:80 lachsbagel/moragents_dockers-nginx:amd64-0.2.0
+
+ echo -e "\${GREEN}Setup complete!${NC}"
+ EOF
+
+ chmod +x moragents-setup.sh
+
+ - name: Upload Debian Package and Setup Script
+ uses: actions/upload-artifact@v4
+ with:
+ name: MORagentsSetup-Linux
+ path: |
+ moragents.deb
+ moragents-setup.sh
diff --git a/.github/workflows/security_scan.yml b/.github/workflows/security_scan.yml
new file mode 100644
index 0000000..ab7ebac
--- /dev/null
+++ b/.github/workflows/security_scan.yml
@@ -0,0 +1,46 @@
+name: Security Scan
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ security_scan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+ pip install safety bandit
+
+ - name: Run Safety check
+ run: safety check -r requirements.txt
+ continue-on-error: true
+
+ - name: Run Bandit
+ run: bandit -r . -f custom
+ continue-on-error: true
+
+ - name: Run Trivy vulnerability scanner in repo mode
+ uses: aquasecurity/trivy-action@0.20.0
+ with:
+ scan-type: 'fs'
+ ignore-unfixed: true
+ format: 'sarif'
+ output: 'trivy-results.sarif'
+ severity: 'CRITICAL'
+
+ - name: Upload Trivy scan results to GitHub Security tab
+ uses: github/codeql-action/upload-sarif@v3
+ with:
+ sarif_file: 'trivy-results.sarif'
diff --git a/AGENTABILITIES.md b/AGENTABILITIES.md
index a7e8452..da8a892 100644
--- a/AGENTABILITIES.md
+++ b/AGENTABILITIES.md
@@ -11,7 +11,7 @@ transaction.
### Current Projects:
1. **lachsbagel on Discord** - [this repo](https://github.com/MorpheusAIs/moragents):
- 1. Local install architecture
+ 1. Architecture
2. **IODmitri, SanatSharma, LachsBagel on GitHhub**
1. [HideNSeek](https://github.com/MorpheusAIs/HideNSeek): An algorithm for verifying and fingerprinting which model a compute provider is actually running
1. Link to Paper [Hide and Seek: Fingerprinting Large Language Models with Evolutionary Learning](https://www.arxiv.org/abs/2408.02871)
@@ -20,27 +20,32 @@ transaction.
1. Windows Build (EXE version of .app)
2. Two installation wizards:
1. Windows
- 2. (pending) macOS
+ 2. macOS
3. CICD build for Windows
4. CICD builds for Linux and macOS (apple and intel)
- 4. (pending) Vulnerability scanning of dependencies and code
+ 5. Vulnerability scanning of dependencies and code
4. GenLayer
1. (pending) [FeedBuzz](https://github.com/yeagerai/feedbuzz-contracts) - AI filtered logging system to surface user demand and failure modes for new functionality
5. **CliffordAttractor on Discord** - Following Assume 16GB+ RAM:
1. Developed a [price fetcher agent](submodules/moragents_dockers/agents/src/data_agent) using CoinGecko.
2. A [web interface](submodules/moragents_dockers/frontend) which is served by the local Docker installation and integrated with Rainbow, enabling the use of MetaMask, WalletConnect, and other
EVM-based wallets.
- 3. [Swap agent](submodules/moragents_dockers/agents/src/swap_agent) which can iteratively ask users to provide needed details for disambiguation.
+ 3. (NEEDS REFACTORING DUE TO 1INCH CHANGE) [Swap agent](submodules/moragents_dockers/agents/src/swap_agent) which can iteratively ask users to provide needed details for disambiguation.
4. [General-purpose agent](https://github.com/MorpheusAIs/moragents/pull/34) that can ingest arbitrary documents, such as PDFs, for basic document QA and text generation.
5. [Local delegating agent](https://github.com/MorpheusAIs/moragents/pull/45) which can maintain user's persona/interests as well as coordinating to task agents and tools.
6. (pending) Agent forge to allow devs to publish their custom agents to the Morpheus/Lumerin Agent Registry
7. **Dan Y.**
- 1. [X/Twitter Posting Agent](https://github.com/MorpheusAIs/moragents/pull/57) - an agent which generates spicy tweets with an X integration for one-click posting.
- 2. (pending) Inter-agent Delegator which can coordinate between local and decentralized agents
+ 1. [X/Twitter Posting Agent](https://github.com/MorpheusAIs/moragents/pull/57) - An agent which generates spicy tweets with an X integration for one-click posting.
+ 2. Real-time search agent
+ 3. Replaced llama 3.1 and functionary with llama 3.2 to massively increase speed 10X and reduce install footprint 6X
+ 4. (pending) Tweet maps agent. Will show relevant live tweets with geo-tags based on prompt
+ 5. (pending) Inter-agent Delegator which can coordinate between local and decentralized agents
7. **Niveshi**
- 1. [MOR Rewards agent](https://github.com/MorpheusAIs/moragents/tree/main/submodules/moragents_dockers/agents/src/reward_agent/src). Lets you see how many MOR tokens are claimable for your wallet.
+ 1. [MOR Rewards agent](https://github.com/MorpheusAIs/moragents/tree/main/submodules/moragents_dockers/agents/src/reward_agent/src). Lets you see how many MOR tokens are claimable for your wallet
+ 2. Cryto Live News Agent
8. **Dom**
- 1. (pending) Coinbase MPC enabled Agent on Base
+ 1. (pending) Coinbase MPC enabled Agent on Base for dollar cost averaging and gasless sends
+ 2. (pending) Tweet maps agent. Will show relevant live tweets with geo-tags based on prompt
### Decentralized Inference:
#### Non-Local Installation Agents for Permission-less Compute
@@ -62,4 +67,4 @@ Pending Lumerin's work. Eventually Agent Builders will be able to permission-les
### Contact
Join the [Morpheus Discord](https://discord.com/invite/Dc26EFb6JK)
-*Last Updated: September 14, 2024*
+*Last Updated: October 20, 2024*
diff --git a/README.md b/README.md
index 776c89e..7877e17 100644
--- a/README.md
+++ b/README.md
@@ -7,30 +7,31 @@ Fully Extensible! Add your own agents and have them automatically invoked based
![UI 1](images/tweet_sizzler.png)
-![UI 2](images/wallet_integration.png)
+![UI 2](images/real-time-info.png)
![UI 3](images/mor_rewards.png)
-![UI 4](images/price_fetcher.png)
+![UI 4](images/price-fetcher-realtime-news.png)
-![UI 5](images/moragents_chatpdf.jpg)
+![UI 5](images/moragents_chatpdf.png)
---
### Features
-#### Upload a PDF with paperclip icon, then ask questions about the PDF π
- - "Can you give me a summary?"
- - "What's the main point of the document?"
-#### Swap ERC Compatible Tokens πͺ -> πͺ
- - "Swap 0.01 ETH for USDC"
- - **Works with your favorite wallet extensions in your existing browser**
+#### Write Sizzling Tweets πΆοΈ No Content Moderation π
+ - "Write a based tweet about Crypto and AI"
+#### Real-time Info πΈοΈ
+ - "Real-time info about Company XYZ"
+#### Trending Crypto News
+ - "Latest news for USDC"
+#### Check MOR rewards π
+ - "How many MOR rewards do I have?"
#### Fetch Price, Market Cap, and TVL of coins and tokens supported on CoinGecko π
- "What's the price of ETH?"
- "What's the market cap of BTC?"
-#### Check MOR rewards π
- - "How many MOR rewards do I have?"
-#### Write Sizzling Tweets πΆοΈ No Content Moderation π
- - "Write a based tweet about Crypto and AI"
+#### Upload a PDF with paperclip icon, then ask questions about the PDF π
+ - "Can you give me a summary?"
+ - "What's the main point of the document?"
---
@@ -41,14 +42,13 @@ Fully Extensible! Add your own agents and have them automatically invoked based
#### Steps to Install
1. Download Installer
1. For Mac on Apple Silicon M1/2/3 etc. (arm64)
- 1. Download and run MORagents installer [MORagents010-apple.pkg](https://drive.proton.me/urls/G9JZYZ508R#gmDk0i6UFLSG)
- > SHA256 a4846c83ced5d35740f884a144cf518764edfc17b576b808cd77a8fe2da6ebf2 MORagents010-apple.pkg
+ 1. Download and run MORagents installer [MORagents020-apple.pkg](https://drive.proton.me/urls/20ENWS94AW#Kols2sA9mWLf)
+ > SHA256 e65e11719a24ca9a00545443a35cda3b6d78f756b8e2ba535db00399ef75168f MORagents020-apple.pkg
2. For Mac on Intel (x86_64)
- 1. Download and install [Docker Desktop](https://desktop.docker.com/mac/main/amd64/Docker.dmg)
- 2. Download and run MORagents installer [MORagents010-intel.pkg](https://drive.proton.me/urls/HPFMSN40GM#Pa90tgOzYn9g)
- > SHA256 46b0e927aaca27cf08d9a95b73d01bc07a92cb5a8b05cf69faaf71566712a781 MORagents010-intel.pkg
+ 1. Download and run MORagents installer [MORagents020-intel.pkg](https://drive.proton.me/urls/1SFGC83RMR#7hdNk4t7bQ0y)
+ > SHA256 0e3a831f9817ff8fe79cc87d87a60a7884e6752becde20aaa1920133ab2d8036 MORagents020-intel.pkg
2. Wait several minutes for background files to download and then your browser should automatically open to http://localhost:3333
- > Note: After installation is complete, the MORagents app icon will bounce for several minutes on your dock, and then stop. This is normal behavior as it's downloading a couple large 9GB files in the background. You can open "Activity Monitor" and in the Network tab see that it's downloading.
+ > Note: After installation is complete, the MORagents app icon will bounce for several minutes on your dock, and then stop. This is normal behavior as it's downloading a <7GB of files in the background. You can open "Activity Monitor" and in the Network tab see that it's downloading.
#### Future Usage
- Open the "MORagents" app from Mac search bar.
@@ -66,9 +66,9 @@ Fully Extensible! Add your own agents and have them automatically invoked based
>Assumes minimum 16GB RAM
#### Steps
-1. Download [MORagentsSetupWindows010.zip](https://drive.proton.me/urls/QXRZR77AJ0#U0ZRbd2rDbXT)
- > SHA256 0ca1879d3f103938a49852d2d2f82a36bc0ebc44ed94400fcee3b883e2cbb2f6 MORagentsSetupWindows010.zip
-2. Go to downloaded **MORagentsSetupWindows010(.zip)** file and double click to open
+1. Download [MORagentsSetupWindows020.zip](https://drive.proton.me/urls/CV5NDK88W8#TNGSOxKUbq4b)
+ > SHA256 1802a941517ad19c732d3a34bfd353fd9a7eb5921ca12210dc5335cf75e34ee8 MORagentsSetupWindows020.zip
+2. Go to downloaded **MORagentsSetupWindows020(.zip)** file and double click to open
3. Double click **MORagentsSetup.exe**
1. You may need to click "More info" -> "Run anyway"
2. If that still doesn't work, try temporarily disabling your antivirus and open the .exe again
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python
new file mode 120000
index 0000000..e485e13
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python
@@ -0,0 +1 @@
+Python.framework/Versions/3.11/Python
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Python b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Python
new file mode 120000
index 0000000..be75854
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Python
@@ -0,0 +1 @@
+Versions/Current/Python
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Resources b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Resources
new file mode 120000
index 0000000..953ee36
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Python b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Python
new file mode 100755
index 0000000..e734fa3
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Python differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Resources/Info.plist b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Resources/Info.plist
new file mode 100644
index 0000000..653ba7b
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/Resources/Info.plist
@@ -0,0 +1,28 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ Python
+ CFBundleGetInfoString
+ Python Runtime and Library
+ CFBundleIdentifier
+ org.python.python
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Python
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 3.11.9, (c) 2001-2023 Python Software Foundation.
+ CFBundleLongVersionString
+ 3.11.9, (c) 2001-2023 Python Software Foundation.
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 3.11.9
+
+
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/_CodeSignature/CodeResources b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/_CodeSignature/CodeResources
new file mode 100644
index 0000000..f5201d5
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/3.11/_CodeSignature/CodeResources
@@ -0,0 +1,128 @@
+
+
+
+
+ files
+
+ Resources/Info.plist
+
+ V34aaXzEpRJ2DIzEhy/IxEvsXqA=
+
+
+ files2
+
+ Resources/Info.plist
+
+ hash2
+
+ TdALsl+p8JFfb+D7L2lIlHLO1ByMBpeQxHv1z1Rn5L8=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/Current b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/Current
new file mode 120000
index 0000000..902b2c9
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/Python.framework/Versions/Current
@@ -0,0 +1 @@
+3.11
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/base_library.zip b/build_assets/macOS/MORagents.app/Contents/Frameworks/base_library.zip
new file mode 120000
index 0000000..89ddc93
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Frameworks/base_library.zip
@@ -0,0 +1 @@
+../Resources/base_library.zip
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bisect.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bisect.cpython-311-darwin.so
new file mode 100755
index 0000000..6798a91
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bisect.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_blake2.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_blake2.cpython-311-darwin.so
new file mode 100755
index 0000000..54d6cd1
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_blake2.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bz2.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bz2.cpython-311-darwin.so
new file mode 100755
index 0000000..95bc276
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_bz2.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_cn.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_cn.cpython-311-darwin.so
new file mode 100755
index 0000000..ebfeeef
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_cn.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_hk.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_hk.cpython-311-darwin.so
new file mode 100755
index 0000000..984151a
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_hk.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_iso2022.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_iso2022.cpython-311-darwin.so
new file mode 100755
index 0000000..dc409ba
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_iso2022.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_jp.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_jp.cpython-311-darwin.so
new file mode 100755
index 0000000..38b2679
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_jp.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_kr.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_kr.cpython-311-darwin.so
new file mode 100755
index 0000000..b6f7ccb
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_kr.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_tw.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_tw.cpython-311-darwin.so
new file mode 100755
index 0000000..0545a0e
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_codecs_tw.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_contextvars.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_contextvars.cpython-311-darwin.so
new file mode 100755
index 0000000..fb46fd4
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_contextvars.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_csv.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_csv.cpython-311-darwin.so
new file mode 100755
index 0000000..355db2c
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_csv.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_datetime.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_datetime.cpython-311-darwin.so
new file mode 100755
index 0000000..826edf5
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_datetime.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_decimal.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_decimal.cpython-311-darwin.so
new file mode 100755
index 0000000..c9a39e1
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_decimal.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_hashlib.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_hashlib.cpython-311-darwin.so
new file mode 100755
index 0000000..eadcafe
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_hashlib.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_heapq.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_heapq.cpython-311-darwin.so
new file mode 100755
index 0000000..df8aade
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_heapq.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_lzma.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_lzma.cpython-311-darwin.so
new file mode 100755
index 0000000..adfbb15
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_lzma.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_md5.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_md5.cpython-311-darwin.so
new file mode 100755
index 0000000..6f77cb5
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_md5.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_multibytecodec.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_multibytecodec.cpython-311-darwin.so
new file mode 100755
index 0000000..db87c2e
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_multibytecodec.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_opcode.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_opcode.cpython-311-darwin.so
new file mode 100755
index 0000000..8d7b2d2
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_opcode.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_pickle.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_pickle.cpython-311-darwin.so
new file mode 100755
index 0000000..10b16e8
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_pickle.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_posixsubprocess.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_posixsubprocess.cpython-311-darwin.so
new file mode 100755
index 0000000..64c4e3e
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_posixsubprocess.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_random.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_random.cpython-311-darwin.so
new file mode 100755
index 0000000..325efd7
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_random.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_scproxy.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_scproxy.cpython-311-darwin.so
new file mode 100755
index 0000000..2c5e57f
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_scproxy.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha1.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha1.cpython-311-darwin.so
new file mode 100755
index 0000000..184ae13
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha1.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha256.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha256.cpython-311-darwin.so
new file mode 100755
index 0000000..82aff96
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha256.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha3.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha3.cpython-311-darwin.so
new file mode 100755
index 0000000..b57973f
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha3.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha512.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha512.cpython-311-darwin.so
new file mode 100755
index 0000000..f595726
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_sha512.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_socket.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_socket.cpython-311-darwin.so
new file mode 100755
index 0000000..5ec2b04
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_socket.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_ssl.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_ssl.cpython-311-darwin.so
new file mode 100755
index 0000000..71b4f7d
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_ssl.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_statistics.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_statistics.cpython-311-darwin.so
new file mode 100755
index 0000000..5bf100e
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_statistics.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_struct.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_struct.cpython-311-darwin.so
new file mode 100755
index 0000000..c2b0e78
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_struct.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_typing.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_typing.cpython-311-darwin.so
new file mode 100755
index 0000000..9a3beaa
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/_typing.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/array.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/array.cpython-311-darwin.so
new file mode 100755
index 0000000..c51e5d9
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/array.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/binascii.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/binascii.cpython-311-darwin.so
new file mode 100755
index 0000000..9bf61c7
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/binascii.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/fcntl.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/fcntl.cpython-311-darwin.so
new file mode 100755
index 0000000..9fd0042
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/fcntl.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/grp.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/grp.cpython-311-darwin.so
new file mode 100755
index 0000000..b874135
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/grp.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/math.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/math.cpython-311-darwin.so
new file mode 100755
index 0000000..2b22563
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/math.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/pyexpat.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/pyexpat.cpython-311-darwin.so
new file mode 100755
index 0000000..9170583
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/pyexpat.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/resource.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/resource.cpython-311-darwin.so
new file mode 100755
index 0000000..652b814
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/resource.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/select.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/select.cpython-311-darwin.so
new file mode 100755
index 0000000..4cce59e
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/select.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/termios.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/termios.cpython-311-darwin.so
new file mode 100755
index 0000000..6f58b8f
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/termios.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/unicodedata.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/unicodedata.cpython-311-darwin.so
new file mode 100755
index 0000000..aee61ea
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/unicodedata.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/zlib.cpython-311-darwin.so b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/zlib.cpython-311-darwin.so
new file mode 100755
index 0000000..4533871
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/lib-dynload/zlib.cpython-311-darwin.so differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/libcrypto.3.dylib b/build_assets/macOS/MORagents.app/Contents/Frameworks/libcrypto.3.dylib
new file mode 100755
index 0000000..3c841b5
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/libcrypto.3.dylib differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/liblzma.5.dylib b/build_assets/macOS/MORagents.app/Contents/Frameworks/liblzma.5.dylib
new file mode 100755
index 0000000..7db7017
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/liblzma.5.dylib differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/libmpdec.4.dylib b/build_assets/macOS/MORagents.app/Contents/Frameworks/libmpdec.4.dylib
new file mode 100755
index 0000000..e356217
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/libmpdec.4.dylib differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Frameworks/libssl.3.dylib b/build_assets/macOS/MORagents.app/Contents/Frameworks/libssl.3.dylib
new file mode 100755
index 0000000..85d19a3
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Frameworks/libssl.3.dylib differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Info.plist b/build_assets/macOS/MORagents.app/Contents/Info.plist
new file mode 100644
index 0000000..127cf0e
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDisplayName
+ MORagents
+ CFBundleExecutable
+ MORagents
+ CFBundleIconFile
+ moragents.icns
+ CFBundleIdentifier
+ com.liquidtensor.moragents
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ MORagents
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 0.0.0
+ NSHighResolutionCapable
+
+
+
diff --git a/build_assets/macOS/MORagents.app/Contents/MacOS/MORagents b/build_assets/macOS/MORagents.app/Contents/MacOS/MORagents
new file mode 100755
index 0000000..402dc34
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/MacOS/MORagents differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/Python b/build_assets/macOS/MORagents.app/Contents/Resources/Python
new file mode 120000
index 0000000..e485e13
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/Python
@@ -0,0 +1 @@
+Python.framework/Versions/3.11/Python
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/Python.framework b/build_assets/macOS/MORagents.app/Contents/Resources/Python.framework
new file mode 120000
index 0000000..34ca7ea
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/Python.framework
@@ -0,0 +1 @@
+../Frameworks/Python.framework
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/base_library.zip b/build_assets/macOS/MORagents.app/Contents/Resources/base_library.zip
new file mode 100644
index 0000000..241b01c
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Resources/base_library.zip differ
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/lib-dynload b/build_assets/macOS/MORagents.app/Contents/Resources/lib-dynload
new file mode 120000
index 0000000..5319f7a
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/lib-dynload
@@ -0,0 +1 @@
+../Frameworks/lib-dynload
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/libcrypto.3.dylib b/build_assets/macOS/MORagents.app/Contents/Resources/libcrypto.3.dylib
new file mode 120000
index 0000000..cc14f15
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/libcrypto.3.dylib
@@ -0,0 +1 @@
+../Frameworks/libcrypto.3.dylib
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/liblzma.5.dylib b/build_assets/macOS/MORagents.app/Contents/Resources/liblzma.5.dylib
new file mode 120000
index 0000000..fbed50f
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/liblzma.5.dylib
@@ -0,0 +1 @@
+../Frameworks/liblzma.5.dylib
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/libmpdec.4.dylib b/build_assets/macOS/MORagents.app/Contents/Resources/libmpdec.4.dylib
new file mode 120000
index 0000000..21d144b
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/libmpdec.4.dylib
@@ -0,0 +1 @@
+../Frameworks/libmpdec.4.dylib
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/libssl.3.dylib b/build_assets/macOS/MORagents.app/Contents/Resources/libssl.3.dylib
new file mode 120000
index 0000000..4651492
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/Resources/libssl.3.dylib
@@ -0,0 +1 @@
+../Frameworks/libssl.3.dylib
\ No newline at end of file
diff --git a/build_assets/macOS/MORagents.app/Contents/Resources/moragents.icns b/build_assets/macOS/MORagents.app/Contents/Resources/moragents.icns
new file mode 100644
index 0000000..bd05d78
Binary files /dev/null and b/build_assets/macOS/MORagents.app/Contents/Resources/moragents.icns differ
diff --git a/build_assets/macOS/MORagents.app/Contents/_CodeSignature/CodeResources b/build_assets/macOS/MORagents.app/Contents/_CodeSignature/CodeResources
new file mode 100644
index 0000000..2d4b94e
--- /dev/null
+++ b/build_assets/macOS/MORagents.app/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,616 @@
+
+
+
+
+ files
+
+ Resources/base_library.zip
+
+ IS1VtlvSrysxLHoNY08e2LTAths=
+
+ Resources/moragents.icns
+
+ 9nAN5Ww73gWkts/lCfj9eohp/Ww=
+
+
+ files2
+
+ Frameworks/Python
+
+ symlink
+ Python.framework/Versions/3.11/Python
+
+ Frameworks/Python.framework
+
+ cdhash
+
+ A1ZSa7QwzxfBtgARhMzuuvRDJsA=
+
+ requirement
+ identifier "org.python.python" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/base_library.zip
+
+ symlink
+ ../Resources/base_library.zip
+
+ Frameworks/lib-dynload/_bisect.cpython-311-darwin.so
+
+ cdhash
+
+ a9L5PZ7D3tS7mEXjX3go+xBBBzU=
+
+ requirement
+ identifier "_bisect.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_blake2.cpython-311-darwin.so
+
+ cdhash
+
+ JO+rqD4/5sCJ49BI8PfthSRQPoY=
+
+ requirement
+ identifier "_blake2.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_bz2.cpython-311-darwin.so
+
+ cdhash
+
+ 2zPo0SGvr3iCt42LyeMbyZ9PRbA=
+
+ requirement
+ identifier "_bz2.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_cn.cpython-311-darwin.so
+
+ cdhash
+
+ 0aZ6HxwXyQ0YjKpNIMAWvf1TmGk=
+
+ requirement
+ identifier "_codecs_cn.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_hk.cpython-311-darwin.so
+
+ cdhash
+
+ WTOUUaxw0S5CYaa6gNrmbHoDJlI=
+
+ requirement
+ identifier "_codecs_hk.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_iso2022.cpython-311-darwin.so
+
+ cdhash
+
+ fjPbCTgvW7zInPk48/nX1td9tcg=
+
+ requirement
+ identifier "_codecs_iso2022.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_jp.cpython-311-darwin.so
+
+ cdhash
+
+ +paked5eaY0QSBYCnxJG334zBsg=
+
+ requirement
+ identifier "_codecs_jp.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_kr.cpython-311-darwin.so
+
+ cdhash
+
+ XT6BaBL42ZccSn3m800DWIYBRFs=
+
+ requirement
+ identifier "_codecs_kr.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_codecs_tw.cpython-311-darwin.so
+
+ cdhash
+
+ M7E9qAv9gmULGwJxLjp0auXtJiQ=
+
+ requirement
+ identifier "_codecs_tw.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_contextvars.cpython-311-darwin.so
+
+ cdhash
+
+ FKrEpOUaDpv7b35q9+AU/aMDA+c=
+
+ requirement
+ identifier "_contextvars.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_csv.cpython-311-darwin.so
+
+ cdhash
+
+ sQjwzfAcRL4Qrnl/3LFjuS3Crjo=
+
+ requirement
+ identifier "_csv.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_datetime.cpython-311-darwin.so
+
+ cdhash
+
+ sgzkBEmqvuC6s+W9npnyEVCcW9w=
+
+ requirement
+ identifier "_datetime.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_decimal.cpython-311-darwin.so
+
+ cdhash
+
+ NM64mhqiVLs3XIbP04hnO77kKaw=
+
+ requirement
+ identifier "_decimal.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_hashlib.cpython-311-darwin.so
+
+ cdhash
+
+ w+2+oGeYUZPyoeNH29J9eF7JMbc=
+
+ requirement
+ identifier "_hashlib.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_heapq.cpython-311-darwin.so
+
+ cdhash
+
+ Rwj4koCBDkIe55Ue8Z6A5Ml0yd8=
+
+ requirement
+ identifier "_heapq.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_lzma.cpython-311-darwin.so
+
+ cdhash
+
+ kiRv0/MdHrgtmhXFdOCHgWJ2uJU=
+
+ requirement
+ identifier "_lzma.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_md5.cpython-311-darwin.so
+
+ cdhash
+
+ uCE0tAVZGWYhp0Oe4MaBxrq51zQ=
+
+ requirement
+ identifier "_md5.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_multibytecodec.cpython-311-darwin.so
+
+ cdhash
+
+ 0DqK6kkrSLtL+VMTlMaUsdr2k1g=
+
+ requirement
+ identifier "_multibytecodec.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_opcode.cpython-311-darwin.so
+
+ cdhash
+
+ NgXWdadJDL0FHKEh11iP95PL9ZQ=
+
+ requirement
+ identifier "_opcode.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_pickle.cpython-311-darwin.so
+
+ cdhash
+
+ 4D658Yw3LJ77hQemSSHlDrdMHjY=
+
+ requirement
+ identifier "_pickle.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_posixsubprocess.cpython-311-darwin.so
+
+ cdhash
+
+ HIebyK2xiqYwgs272vOCqP/Nurc=
+
+ requirement
+ identifier "_posixsubprocess.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_random.cpython-311-darwin.so
+
+ cdhash
+
+ sE7ItPIFe6TUZejMiWDCTVN70ng=
+
+ requirement
+ identifier "_random.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_scproxy.cpython-311-darwin.so
+
+ cdhash
+
+ YcaQQ6IhFEmcgdiHjGmlr6hRQIM=
+
+ requirement
+ identifier "_scproxy.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_sha1.cpython-311-darwin.so
+
+ cdhash
+
+ J9whwvzD7VnmseSFhV8fp9OA/VI=
+
+ requirement
+ identifier "_sha1.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_sha256.cpython-311-darwin.so
+
+ cdhash
+
+ E/pmbqfpLEuyYM8aMBftZRh5dw4=
+
+ requirement
+ identifier "_sha256.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_sha3.cpython-311-darwin.so
+
+ cdhash
+
+ NmWij7YVE0M2nUs9XZGzv0OWzj0=
+
+ requirement
+ identifier "_sha3.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_sha512.cpython-311-darwin.so
+
+ cdhash
+
+ lPEAnBiLvZY9DCXykfu9d0xfgfU=
+
+ requirement
+ identifier "_sha512.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_socket.cpython-311-darwin.so
+
+ cdhash
+
+ y1BXtpEw9aOYtFT6l9ZlAoiDqVo=
+
+ requirement
+ identifier "_socket.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_ssl.cpython-311-darwin.so
+
+ cdhash
+
+ Kjzabf6+maOvZUTWsBWKrYAzkO4=
+
+ requirement
+ identifier "_ssl.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_statistics.cpython-311-darwin.so
+
+ cdhash
+
+ JW2gZbV+8dRoqgHMtj1NL8dnE80=
+
+ requirement
+ identifier "_statistics.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_struct.cpython-311-darwin.so
+
+ cdhash
+
+ 5UH/M0Yt24N3swD/rBmT5lKrOe0=
+
+ requirement
+ identifier "_struct.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/_typing.cpython-311-darwin.so
+
+ cdhash
+
+ vCUR84fM32WUlFK6j/xxHbUezcA=
+
+ requirement
+ identifier "_typing.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/array.cpython-311-darwin.so
+
+ cdhash
+
+ AeQhgF1JetTJ/C0B19NItsbatVA=
+
+ requirement
+ identifier "array.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/binascii.cpython-311-darwin.so
+
+ cdhash
+
+ NTr0oJt/gKDQzGRJvl70sKYu47g=
+
+ requirement
+ identifier "binascii.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/fcntl.cpython-311-darwin.so
+
+ cdhash
+
+ DgnOnUXfuucRMHSmMmWGZs0EX5s=
+
+ requirement
+ identifier "fcntl.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/grp.cpython-311-darwin.so
+
+ cdhash
+
+ b+yp3rebVFRT+JNvlmXPrEq6GKc=
+
+ requirement
+ identifier "grp.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/math.cpython-311-darwin.so
+
+ cdhash
+
+ OFGpnDuFpWztXTjGM209yAzo6Jg=
+
+ requirement
+ identifier "math.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/pyexpat.cpython-311-darwin.so
+
+ cdhash
+
+ wCvLfssi5QJEw/8NnASa9k5IhDw=
+
+ requirement
+ identifier "pyexpat.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/resource.cpython-311-darwin.so
+
+ cdhash
+
+ 9Uf/mb4y7Y2K3jC0TpT55m5rD4g=
+
+ requirement
+ identifier "resource.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/select.cpython-311-darwin.so
+
+ cdhash
+
+ bp80lEsUnzkBfBPXujY2lwAFylg=
+
+ requirement
+ identifier "select.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/termios.cpython-311-darwin.so
+
+ cdhash
+
+ uhXx4nr9PYxtLQI1MRfZlMkUl6g=
+
+ requirement
+ identifier "termios.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/unicodedata.cpython-311-darwin.so
+
+ cdhash
+
+ LlGTLpWCJ0uFY4omEfZHkB5N2hw=
+
+ requirement
+ identifier "unicodedata.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/lib-dynload/zlib.cpython-311-darwin.so
+
+ cdhash
+
+ n5WmiLtWUnu3a2gV2tvW2yW4l7I=
+
+ requirement
+ identifier "zlib.cpython-311-darwin" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/libcrypto.3.dylib
+
+ cdhash
+
+ bmegX+B7PeaeEGpFI5BDVptfecI=
+
+ requirement
+ identifier "libcrypto.3" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/liblzma.5.dylib
+
+ cdhash
+
+ 1FRS30QBmju5vzIHqDNcw1OYULk=
+
+ requirement
+ identifier "liblzma.5" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/libmpdec.4.dylib
+
+ cdhash
+
+ fm06OLkQd4GUI2GhR3ynkD0leiY=
+
+ requirement
+ identifier "libmpdec.4" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Frameworks/libssl.3.dylib
+
+ cdhash
+
+ ZD9iKktH53KOE7Ky/cyQmFhYnxA=
+
+ requirement
+ identifier "libssl.3" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = ZQN244GMTD
+
+ Resources/Python
+
+ symlink
+ Python.framework/Versions/3.11/Python
+
+ Resources/Python.framework
+
+ symlink
+ ../Frameworks/Python.framework
+
+ Resources/base_library.zip
+
+ hash2
+
+ LM2oh/dWfTQvy0sewywdjHjTxh73eG2ySkklFF7SC/4=
+
+
+ Resources/lib-dynload
+
+ symlink
+ ../Frameworks/lib-dynload
+
+ Resources/libcrypto.3.dylib
+
+ symlink
+ ../Frameworks/libcrypto.3.dylib
+
+ Resources/liblzma.5.dylib
+
+ symlink
+ ../Frameworks/liblzma.5.dylib
+
+ Resources/libmpdec.4.dylib
+
+ symlink
+ ../Frameworks/libmpdec.4.dylib
+
+ Resources/libssl.3.dylib
+
+ symlink
+ ../Frameworks/libssl.3.dylib
+
+ Resources/moragents.icns
+
+ hash2
+
+ AXbbYYlsdnXtGQLSAQiKk4a1WD/JMby6OiXtkN/AmjI=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/build_assets/macOS/Packaging_Instructions_macOS.md b/build_assets/macOS/Packaging_Instructions_macOS.md
index b3e596e..fe97b24 100644
--- a/build_assets/macOS/Packaging_Instructions_macOS.md
+++ b/build_assets/macOS/Packaging_Instructions_macOS.md
@@ -33,12 +33,12 @@ Future usage only requires you to run MORagents from your searchbar.
## Notarize
```sh
-xcrun notarytool submit MORagents010-[apple\|intel].pkg --keychain-profile "NotaryProfile" --wait
+xcrun notarytool submit MORagents020-[apple\|intel].pkg --keychain-profile "NotaryProfile" --wait
```
## Staple
```sh
-xcrun stapler staple MORagents010-[apple\|intel].pkg
+xcrun stapler staple MORagents020-[apple\|intel].pkg
```
---
diff --git a/build_assets/macOS/postinstall.sh b/build_assets/macOS/postinstall.sh
old mode 100755
new mode 100644
diff --git a/build_assets/macOS/preinstall.sh b/build_assets/macOS/preinstall.sh
old mode 100755
new mode 100644
diff --git a/build_assets/macOS/preinstall_docker.sh b/build_assets/macOS/preinstall_docker.sh
old mode 100755
new mode 100644
diff --git a/build_assets/macOS/preinstall_ollama.sh b/build_assets/macOS/preinstall_ollama.sh
index dfcb2e7..a74c1d5 100644
--- a/build_assets/macOS/preinstall_ollama.sh
+++ b/build_assets/macOS/preinstall_ollama.sh
@@ -7,5 +7,5 @@ chmod +x ollama
sudo mv ollama /usr/local/bin/
nohup /usr/local/bin/ollama serve > /dev/null 2>&1 &
-/usr/local/bin/ollama pull llama3.1
+/usr/local/bin/ollama pull llama3.2:3b
/usr/local/bin/ollama pull nomic-embed-text
diff --git a/build_assets/macOS/welcome.html b/build_assets/macOS/welcome.html
index 18ca86d..a355874 100644
--- a/build_assets/macOS/welcome.html
+++ b/build_assets/macOS/welcome.html
@@ -1,44 +1,57 @@
-
-
-
- Welcome to MORagents v0.1.0 Installer
-
-
-
- Welcome to MORagents v0.1.0 Installer
- Thank you for choosing to install MORagents on your system. This installer will guide you through the process of setting up MORagents and its dependencies.
- The installer will perform the following steps:
-
- - Check the installed Python version and install Python 3.12.0 if necessary.
- - Check if Docker is installed and install Docker Desktop if needed.
- - Check if Ollama is installed and install Ollama if needed.
- - Install the MORagents application.
-
- Please note that during the installation process, you may be prompted to enter your system password to authorize the installation of required components.
- Click "Continue" to proceed with the installation.
-
+ li {
+ margin-bottom: 10px;
+ }
+
+
+
+ Welcome to MORagents v0.2.0 Installer
+
+ Thank you for choosing to install MORagents on your system. This installer
+ will guide you through the process of setting up MORagents and its
+ dependencies.
+
+ The installer will perform the following steps:
+
+ -
+ Check the installed Python version and install Python 3.12.0 if
+ necessary.
+
+ -
+ Check if Docker is installed and install Docker Desktop if needed.
+
+ - Check if Ollama is installed and install Ollama if needed.
+ - Install the MORagents application.
+
+
+ Please note that during the installation process, you may be prompted to
+ enter your system password to authorize the installation of required
+ components.
+
+ Click "Continue" to proceed with the installation.
+