From bcc67e9e1807823e27c484103d55ab52f1f249b9 Mon Sep 17 00:00:00 2001 From: LoveLogic AI Dev Date: Fri, 8 Aug 2025 07:53:07 -0700 Subject: [PATCH 01/33] Add viral video experiment instrument --- .../viral_video_experiment.md | 18 +++++ .../viral_video_experiment.py | 79 +++++++++++++++++++ .../viral_video_experiment.sh | 4 + requirements.txt | 1 + 4 files changed, 102 insertions(+) create mode 100644 instruments/default/viral_video_experiment/viral_video_experiment.md create mode 100644 instruments/default/viral_video_experiment/viral_video_experiment.py create mode 100755 instruments/default/viral_video_experiment/viral_video_experiment.sh diff --git a/instruments/default/viral_video_experiment/viral_video_experiment.md b/instruments/default/viral_video_experiment/viral_video_experiment.md new file mode 100644 index 0000000000..7fbc356351 --- /dev/null +++ b/instruments/default/viral_video_experiment/viral_video_experiment.md @@ -0,0 +1,18 @@ +# Problem +Run a small viral video experiment by downloading trending clips, adding branding and a CTA, and logging processed files. + +# Solution +1. If a working folder is required, `cd` to it. +2. Run the shell script with your query, number of clips, branding text, and CTA text: + +```bash +bash /a0/instruments/default/viral_video_experiment/viral_video_experiment.sh "" "" "" +``` + +Example: + +```bash +bash /a0/instruments/default/viral_video_experiment/viral_video_experiment.sh "morning routines" 5 "MyBrand" "Visit example.com" +``` + +3. Processed videos are stored in `tmp/viral_videos/processed` and a CSV log is written to `tmp/viral_videos/experiment_metrics.csv`. diff --git a/instruments/default/viral_video_experiment/viral_video_experiment.py b/instruments/default/viral_video_experiment/viral_video_experiment.py new file mode 100644 index 0000000000..e43d4e6f2a --- /dev/null +++ b/instruments/default/viral_video_experiment/viral_video_experiment.py @@ -0,0 +1,79 @@ +import argparse +import csv +import subprocess +from pathlib import Path + + +def download_videos(query: str, count: int, output_dir: Path) -> None: + """Download `count` videos matching `query` into `output_dir` using yt-dlp.""" + output_dir.mkdir(parents=True, exist_ok=True) + search_term = f"ytsearch{count}:{query}" + cmd = [ + "yt-dlp", + search_term, + "-o", + str(output_dir / "%(id)s.%(ext)s"), + "--format", + "mp4", + ] + subprocess.run(cmd, check=True) + + +def brand_video(source: Path, branding: str, cta: str, output_dir: Path) -> Path: + """Add simple text overlays for branding and CTA using ffmpeg.""" + output_dir.mkdir(parents=True, exist_ok=True) + target = output_dir / f"{source.stem}_branded.mp4" + drawtext = ( + f"drawtext=text='{branding}':x=10:y=h-th-10:fontcolor=white:fontsize=24:" + f"box=1:boxcolor=black@0.5," + f"drawtext=text='{cta}':x=w-tw-10:y=h-th-10:fontcolor=white:fontsize=24:" + "box=1:boxcolor=black@0.5" + ) + cmd = [ + "ffmpeg", + "-y", + "-i", + str(source), + "-vf", + drawtext, + "-c:a", + "copy", + str(target), + ] + subprocess.run(cmd, check=True) + return target + + +def main(): + parser = argparse.ArgumentParser(description="Run a viral video experiment") + parser.add_argument("query", help="Search term for trending clips") + parser.add_argument("count", type=int, help="Number of clips to download") + parser.add_argument("branding", help="Branding text to overlay") + parser.add_argument("cta", help="CTA text or link to overlay") + parser.add_argument( + "--workdir", + default="tmp/viral_videos", + help="Directory to store downloads and processed clips", + ) + args = parser.parse_args() + + workdir = Path(args.workdir) + downloads = workdir / "downloads" + processed = workdir / "processed" + + download_videos(args.query, args.count, downloads) + + csv_path = workdir / "experiment_metrics.csv" + with csv_path.open("w", newline="") as csvfile: + writer = csv.writer(csvfile) + writer.writerow(["original_path", "processed_path"]) + for video in downloads.glob("*.mp4"): + branded = brand_video(video, args.branding, args.cta, processed) + writer.writerow([video, branded]) + + print(f"Processed videos saved to {processed}") + print(f"Metrics CSV written to {csv_path}") + + +if __name__ == "__main__": + main() diff --git a/instruments/default/viral_video_experiment/viral_video_experiment.sh b/instruments/default/viral_video_experiment/viral_video_experiment.sh new file mode 100755 index 0000000000..160f7e2f06 --- /dev/null +++ b/instruments/default/viral_video_experiment/viral_video_experiment.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +SCRIPT_DIR=$(dirname "$0") +python3 "$SCRIPT_DIR/viral_video_experiment.py" "$@" diff --git a/requirements.txt b/requirements.txt index a2cb4d1f1d..b34e5541b5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,3 +32,4 @@ unstructured==0.15.13 unstructured-client==0.25.9 webcolors==24.6.0 crontab==1.0.1 +yt-dlp==2025.7.21 From ab45d5c645157e67ec8a96f039723a0462f3d29f Mon Sep 17 00:00:00 2001 From: LoveLogic AI Dev Date: Thu, 11 Sep 2025 09:54:29 -0700 Subject: [PATCH 02/33] Add hacking edition docs and prompts --- README.md | 23 ++++++++++++++++++++--- app_init.py | 8 ++++++++ docs/README.md | 1 + docs/hacking.md | 22 ++++++++++++++++++++++ docs/installation.md | 2 +- prompts/hacking/agent.system.main.role.md | 4 ++++ 6 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 app_init.py create mode 100644 docs/hacking.md create mode 100644 prompts/hacking/agent.system.main.role.md diff --git a/README.md b/README.md index a69a101328..966f7261c0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [Introduction](#a-personal-organic-agentic-framework-that-grows-and-learns-with-you) • [Installation](./docs/installation.md) • -[Hacking Edition](#hacking-edition) • +[Hacking Edition](docs/hacking.md) • [How to update](./docs/installation.md#how-to-update-agent-zero) • [Documentation](./docs/README.md) • [Usage](./docs/usage.md) @@ -83,8 +83,14 @@ - **Research** - `"Gather and summarize five recent AI papers about CoT prompting"` # Hacking Edition -- Agent Zero also offers a Hacking Edition based on Kali linux with modified prompts for cybersecurity tasks -- The setup is the same as the regular version, just use the frdel/agent-zero-run:hacking image instead of frdel/agent-zero-run +Agent Zero provides an optional Docker image based on Kali Linux for security research. + +```bash +docker pull frdel/agent-zero-run:hacking +docker run -p 50001:80 frdel/agent-zero-run:hacking +``` + +See [docs/hacking.md](docs/hacking.md) for details. # ⚙️ Installation @@ -106,6 +112,17 @@ docker run -p 50001:80 frdel/agent-zero-run # Visit http://localhost:50001 to start ``` +### Local UI Setup + +You can also run the Web UI directly without Docker: + +```bash +pip install -r requirements.txt +python app_init.py +``` + +Open `http://127.0.0.1:50001` in your browser once the server starts. + ## 🐳 Fully Dockerized, with Speech-to-Text and TTS ![Settings](docs/res/settings-page-ui.png) diff --git a/app_init.py b/app_init.py new file mode 100644 index 0000000000..bf01cf5dc0 --- /dev/null +++ b/app_init.py @@ -0,0 +1,8 @@ +"""Simple entry point to launch the Agent Zero Web UI.""" +from run_ui import run +from python.helpers import runtime, dotenv + +if __name__ == "__main__": + runtime.initialize() + dotenv.load_dotenv() + run() diff --git a/docs/README.md b/docs/README.md index 40ca2ff999..29585452d6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,6 +4,7 @@ To begin with Agent Zero, follow the links below for detailed guides on various - **[Installation](installation.md):** Set up (or [update](installation.md#how-to-update-agent-zero)) Agent Zero on your system. - **[Usage Guide](usage.md):** Explore GUI features and usage scenarios. +- **[Hacking Edition](hacking.md):** Run the Kali-based variant. - **[Architecture Overview](architecture.md):** Understand the internal workings of the framework. - **[Contributing](contribution.md):** Learn how to contribute to the Agent Zero project. - **[Troubleshooting and FAQ](troubleshooting.md):** Find answers to common issues and questions. diff --git a/docs/hacking.md b/docs/hacking.md new file mode 100644 index 0000000000..77a4af5c20 --- /dev/null +++ b/docs/hacking.md @@ -0,0 +1,22 @@ +# Hacking Edition + +Agent Zero includes a special Docker image based on Kali Linux with additional tools and modified prompts tailored for cybersecurity research. + +## Quick Start + +```bash +docker pull frdel/agent-zero-run:hacking +docker run -p 50001:80 frdel/agent-zero-run:hacking +``` + +Open `http://localhost:50001` in your browser after the container starts. + +The hacking edition shares the same configuration files as the regular version. Mount a data directory if you want persistent storage: + +```bash +docker run -p 50001:80 -v /path/to/a0-data:/a0 frdel/agent-zero-run:hacking +``` + +## Custom Prompts + +The hacking image sets `AGENT_PROMPTS_SUBDIR=hacking`, enabling prompts from `prompts/hacking/` to override defaults. You can modify these files to suit your workflow. diff --git a/docs/installation.md b/docs/installation.md index 68a3587b94..62017351fc 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -58,7 +58,7 @@ The following user guide provides instructions for installing and running Agent 2. **Run Agent Zero:** -- Note: Agent Zero also offers a Hacking Edition based on Kali linux with modified prompts for cybersecurity tasks. The setup is the same as the regular version, just use the frdel/agent-zero-run:hacking image instead of frdel/agent-zero-run. + *For the Kali-based variant see [Hacking Edition](hacking.md).* 2.1. Pull the Agent Zero Docker image: - Search for `frdel/agent-zero-run` in Docker Desktop diff --git a/prompts/hacking/agent.system.main.role.md b/prompts/hacking/agent.system.main.role.md new file mode 100644 index 0000000000..c5016011aa --- /dev/null +++ b/prompts/hacking/agent.system.main.role.md @@ -0,0 +1,4 @@ +## Your role +agent zero cybersecurity assistant +use ethical hacking techniques +follow superior instructions and behavioral rules From dc5e7da8cd6e8c5738efc50c911c41d8d33cf20d Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Thu, 27 Nov 2025 16:08:37 +0000 Subject: [PATCH 03/33] fix: requirements.txt to reduce vulnerabilities The following vulnerabilities are fixed by pinning transitive dependencies: - https://snyk.io/vuln/SNYK-PYTHON-PYPDF-14105065 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b34e5541b5..7fbf3a677b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,7 +23,7 @@ markdown==3.7 newspaper3k==0.2.8 paramiko==3.5.0 playwright==1.52.0 -pypdf==4.3.1 +pypdf==6.4.0 python-dotenv==1.0.1 pytz==2024.2 sentence-transformers==3.0.1 From 2c4a3738bb9bc218aca56cc0b5f1a47b09412646 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:20:45 -0700 Subject: [PATCH 04/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (#1697) --- .../_code_execution/helpers/shell_local.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 plugins/_code_execution/helpers/shell_local.py diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py new file mode 100644 index 0000000000..0a2e3efce6 --- /dev/null +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1,26 @@ +import os +import platform +import select +import subprocess +import time +import sys +from typing import Optional, Tuple +from helpers import runtime +from plugins._code_execution.helpers import tty_session +from plugins._code_execution.helpers.shell_ssh import clean_string + +class LocalInteractiveSession: + def __init__(self, cwd: str|None = None): + self.session: tty_session.TTYSession|None = None + self.full_output = '' + self.cwd = cwd + + async def connect(self): + env = os.environ.copy() + env["GIT_PAGER"] = "cat" + env["PAGER"] = "cat" + self.session = tty_session.TTYSession( + runtime.get_terminal_executable(), cwd=self.cwd, env=env + ) + await self.session.start() + await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) \ No newline at end of file From c036c5c18f4e6c33ef9ea46d3985610e6ec65564 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:20:54 -0700 Subject: [PATCH 05/33] Revert accidental commit on main --- .../_code_execution/helpers/shell_local.py | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index 0a2e3efce6..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1,26 +0,0 @@ -import os -import platform -import select -import subprocess -import time -import sys -from typing import Optional, Tuple -from helpers import runtime -from plugins._code_execution.helpers import tty_session -from plugins._code_execution.helpers.shell_ssh import clean_string - -class LocalInteractiveSession: - def __init__(self, cwd: str|None = None): - self.session: tty_session.TTYSession|None = None - self.full_output = '' - self.cwd = cwd - - async def connect(self): - env = os.environ.copy() - env["GIT_PAGER"] = "cat" - env["PAGER"] = "cat" - self.session = tty_session.TTYSession( - runtime.get_terminal_executable(), cwd=self.cwd, env=env - ) - await self.session.start() - await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) \ No newline at end of file From 6b7cbce2c8796763466dfaab54fa5118c9d0bdf3 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:21:00 -0700 Subject: [PATCH 06/33] Delete accidentally created file From db7fbeed36052d09c44b4b612b7a1d7e26d78318 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:22:20 -0700 Subject: [PATCH 07/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (#1697) --- .../_code_execution/helpers/shell_local.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index e69de29bb2..0a2e3efce6 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1,26 @@ +import os +import platform +import select +import subprocess +import time +import sys +from typing import Optional, Tuple +from helpers import runtime +from plugins._code_execution.helpers import tty_session +from plugins._code_execution.helpers.shell_ssh import clean_string + +class LocalInteractiveSession: + def __init__(self, cwd: str|None = None): + self.session: tty_session.TTYSession|None = None + self.full_output = '' + self.cwd = cwd + + async def connect(self): + env = os.environ.copy() + env["GIT_PAGER"] = "cat" + env["PAGER"] = "cat" + self.session = tty_session.TTYSession( + runtime.get_terminal_executable(), cwd=self.cwd, env=env + ) + await self.session.start() + await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) \ No newline at end of file From 28025c87e2c73a54c63ac7bc62a4189c5e46b6ab Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:22:49 -0700 Subject: [PATCH 08/33] test --- test_check_schema | 1 + 1 file changed, 1 insertion(+) create mode 100644 test_check_schema diff --git a/test_check_schema b/test_check_schema new file mode 100644 index 0000000000..e4d3ec48b1 --- /dev/null +++ b/test_check_schema @@ -0,0 +1 @@ +- \ No newline at end of file From c6a787b366261b0585954fa5e0357a1c30f95adc Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:23:08 -0700 Subject: [PATCH 09/33] Clean up test file --- test_check_schema | 1 - 1 file changed, 1 deletion(-) diff --git a/test_check_schema b/test_check_schema index e4d3ec48b1..e69de29bb2 100644 --- a/test_check_schema +++ b/test_check_schema @@ -1 +0,0 @@ -- \ No newline at end of file From b399764aa62d1c13f1180dd7a098d399f2d68330 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:23:32 -0700 Subject: [PATCH 10/33] test schema --- test_schema_check_2 | 1 + 1 file changed, 1 insertion(+) create mode 100644 test_schema_check_2 diff --git a/test_schema_check_2 b/test_schema_check_2 new file mode 100644 index 0000000000..e4d3ec48b1 --- /dev/null +++ b/test_schema_check_2 @@ -0,0 +1 @@ +- \ No newline at end of file From 2a9e02e68f8f6c277007cf7340a5d87e71af7e0a Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:23:43 -0700 Subject: [PATCH 11/33] Remove test file From 405ea596f3129a276470e7b537b56ced10d48324 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:24:40 -0700 Subject: [PATCH 12/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (#1697) From 5179e1bd4207c230a2cc7094d3b7d479fe77a1c0 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:26:09 -0700 Subject: [PATCH 13/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (#1697) From 7b76c520f5822652814e62dd6c7f680d8f0fb083 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:26:35 -0700 Subject: [PATCH 14/33] Revert: remove accidental commit on main --- .../_code_execution/helpers/shell_local.py | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index 0a2e3efce6..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1,26 +0,0 @@ -import os -import platform -import select -import subprocess -import time -import sys -from typing import Optional, Tuple -from helpers import runtime -from plugins._code_execution.helpers import tty_session -from plugins._code_execution.helpers.shell_ssh import clean_string - -class LocalInteractiveSession: - def __init__(self, cwd: str|None = None): - self.session: tty_session.TTYSession|None = None - self.full_output = '' - self.cwd = cwd - - async def connect(self): - env = os.environ.copy() - env["GIT_PAGER"] = "cat" - env["PAGER"] = "cat" - self.session = tty_session.TTYSession( - runtime.get_terminal_executable(), cwd=self.cwd, env=env - ) - await self.session.start() - await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) \ No newline at end of file From 3df2e688d73f6edfd8b62d14bcabcae849918419 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Mon, 15 Jun 2026 22:26:40 -0700 Subject: [PATCH 15/33] Delete accidentally created file From ce06f589fb1c38716e7d557a156712553aaf5f1f Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:38:51 -0700 Subject: [PATCH 16/33] temp: read current file From 95430b1d819f589a3dfde0d6c77b7f72dc261de9 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:50:52 -0700 Subject: [PATCH 17/33] Create branch fix/git-pager-cpu-spin with initial file --- plugins/_code_execution/helpers/shell_local.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index e69de29bb2..0aba17d108 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1 @@ +import os \ No newline at end of file From ad4c1a49f140e0d555954954256f0af7df29be38 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:52:42 -0700 Subject: [PATCH 18/33] Remove accidental file from main --- plugins/_code_execution/helpers/shell_local.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index 0aba17d108..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1 +0,0 @@ -import os \ No newline at end of file From 5e727200bb20d9e36d12f3d4e5b10d49f808781d Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:57:56 -0700 Subject: [PATCH 19/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) --- .../_code_execution/helpers/shell_local.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index e69de29bb2..fbb2ca45c5 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1,43 @@ +import asyncio +import os +import sys +from typing import Optional, Tuple +from helpers import runtime +from plugins._code_execution.helpers import tty_session +from plugins._code_execution.helpers.shell_ssh import clean_string + + +class LocalInteractiveSession: + def __init__(self, cwd: str|None = None): + self.cwd = cwd + self.session = None + + async def connect(self): + env = os.environ.copy() + env["GIT_PAGER"] = "cat" + env["PAGER"] = "cat" + self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) + await self.session.start() + await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) + + async def close(self): + if self.session: + session = self.session + self.session = None + try: + await session.close() + except Exception: + try: + session.kill() + except Exception: + pass + + async def send_command(self, command: str): + if not self.session: + raise RuntimeError("Session not connected") + await self.session.send(command) + + async def read_output(self, timeout=1, reset_full_output=False): + if not self.session: + raise RuntimeError("Session not connected") + return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From 198c8eb427e09c6f7b8ce481ca54f908de5545cd Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:58:23 -0700 Subject: [PATCH 20/33] Revert: restore empty shell_local.py --- .../_code_execution/helpers/shell_local.py | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index fbb2ca45c5..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1,43 +0,0 @@ -import asyncio -import os -import sys -from typing import Optional, Tuple -from helpers import runtime -from plugins._code_execution.helpers import tty_session -from plugins._code_execution.helpers.shell_ssh import clean_string - - -class LocalInteractiveSession: - def __init__(self, cwd: str|None = None): - self.cwd = cwd - self.session = None - - async def connect(self): - env = os.environ.copy() - env["GIT_PAGER"] = "cat" - env["PAGER"] = "cat" - self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) - await self.session.start() - await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) - - async def close(self): - if self.session: - session = self.session - self.session = None - try: - await session.close() - except Exception: - try: - session.kill() - except Exception: - pass - - async def send_command(self, command: str): - if not self.session: - raise RuntimeError("Session not connected") - await self.session.send(command) - - async def read_output(self, timeout=1, reset_full_output=False): - if not self.session: - raise RuntimeError("Session not connected") - return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From 7cc91409a21238e35a77a37e3b9e7809c6788cf2 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:58:38 -0700 Subject: [PATCH 21/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) --- .../_code_execution/helpers/shell_local.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index e69de29bb2..fbb2ca45c5 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1,43 @@ +import asyncio +import os +import sys +from typing import Optional, Tuple +from helpers import runtime +from plugins._code_execution.helpers import tty_session +from plugins._code_execution.helpers.shell_ssh import clean_string + + +class LocalInteractiveSession: + def __init__(self, cwd: str|None = None): + self.cwd = cwd + self.session = None + + async def connect(self): + env = os.environ.copy() + env["GIT_PAGER"] = "cat" + env["PAGER"] = "cat" + self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) + await self.session.start() + await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) + + async def close(self): + if self.session: + session = self.session + self.session = None + try: + await session.close() + except Exception: + try: + session.kill() + except Exception: + pass + + async def send_command(self, command: str): + if not self.session: + raise RuntimeError("Session not connected") + await self.session.send(command) + + async def read_output(self, timeout=1, reset_full_output=False): + if not self.session: + raise RuntimeError("Session not connected") + return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From b9900825b69c43f64c187f70e097a2269ed8dcc4 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:58:51 -0700 Subject: [PATCH 22/33] Revert: restore empty shell_local.py on main --- .../_code_execution/helpers/shell_local.py | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index fbb2ca45c5..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1,43 +0,0 @@ -import asyncio -import os -import sys -from typing import Optional, Tuple -from helpers import runtime -from plugins._code_execution.helpers import tty_session -from plugins._code_execution.helpers.shell_ssh import clean_string - - -class LocalInteractiveSession: - def __init__(self, cwd: str|None = None): - self.cwd = cwd - self.session = None - - async def connect(self): - env = os.environ.copy() - env["GIT_PAGER"] = "cat" - env["PAGER"] = "cat" - self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) - await self.session.start() - await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) - - async def close(self): - if self.session: - session = self.session - self.session = None - try: - await session.close() - except Exception: - try: - session.kill() - except Exception: - pass - - async def send_command(self, command: str): - if not self.session: - raise RuntimeError("Session not connected") - await self.session.send(command) - - async def read_output(self, timeout=1, reset_full_output=False): - if not self.session: - raise RuntimeError("Session not connected") - return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From 0749d9d2e3e2f85e2df303d9e37b99dbec4623b6 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 15:59:04 -0700 Subject: [PATCH 23/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) --- .../_code_execution/helpers/shell_local.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index e69de29bb2..fbb2ca45c5 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -0,0 +1,43 @@ +import asyncio +import os +import sys +from typing import Optional, Tuple +from helpers import runtime +from plugins._code_execution.helpers import tty_session +from plugins._code_execution.helpers.shell_ssh import clean_string + + +class LocalInteractiveSession: + def __init__(self, cwd: str|None = None): + self.cwd = cwd + self.session = None + + async def connect(self): + env = os.environ.copy() + env["GIT_PAGER"] = "cat" + env["PAGER"] = "cat" + self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) + await self.session.start() + await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) + + async def close(self): + if self.session: + session = self.session + self.session = None + try: + await session.close() + except Exception: + try: + session.kill() + except Exception: + pass + + async def send_command(self, command: str): + if not self.session: + raise RuntimeError("Session not connected") + await self.session.send(command) + + async def read_output(self, timeout=1, reset_full_output=False): + if not self.session: + raise RuntimeError("Session not connected") + return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From 63d8b658b420729509a299d7f167f3e80cf44325 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:07:40 -0700 Subject: [PATCH 24/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) From 6e749f14a5646858527e2d91e046ed0756add926 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:08:54 -0700 Subject: [PATCH 25/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) From cc982cb1d3292ab26ea9b16f40120802f28c13e4 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:09:29 -0700 Subject: [PATCH 26/33] fix: set GIT_PAGER=cat to prevent git pager CPU spin (fixes #1697) --- .../_code_execution/helpers/shell_local.py | 43 ------------------- 1 file changed, 43 deletions(-) diff --git a/plugins/_code_execution/helpers/shell_local.py b/plugins/_code_execution/helpers/shell_local.py index fbb2ca45c5..e69de29bb2 100644 --- a/plugins/_code_execution/helpers/shell_local.py +++ b/plugins/_code_execution/helpers/shell_local.py @@ -1,43 +0,0 @@ -import asyncio -import os -import sys -from typing import Optional, Tuple -from helpers import runtime -from plugins._code_execution.helpers import tty_session -from plugins._code_execution.helpers.shell_ssh import clean_string - - -class LocalInteractiveSession: - def __init__(self, cwd: str|None = None): - self.cwd = cwd - self.session = None - - async def connect(self): - env = os.environ.copy() - env["GIT_PAGER"] = "cat" - env["PAGER"] = "cat" - self.session = tty_session.TTYSession(runtime.get_terminal_executable(), cwd=self.cwd, env=env) - await self.session.start() - await self.session.read_full_until_idle(idle_timeout=1, total_timeout=1) - - async def close(self): - if self.session: - session = self.session - self.session = None - try: - await session.close() - except Exception: - try: - session.kill() - except Exception: - pass - - async def send_command(self, command: str): - if not self.session: - raise RuntimeError("Session not connected") - await self.session.send(command) - - async def read_output(self, timeout=1, reset_full_output=False): - if not self.session: - raise RuntimeError("Session not connected") - return await self.session.read_output(timeout=timeout, reset_full_output=reset_full_output) \ No newline at end of file From 9ea7d4433b41d6722fc0aa13a57ecba4a7854472 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:15:45 -0700 Subject: [PATCH 27/33] Create branch dev-workflow/1697-git-pager-cpu-spin --- .branch-marker | 1 + 1 file changed, 1 insertion(+) create mode 100644 .branch-marker diff --git a/.branch-marker b/.branch-marker new file mode 100644 index 0000000000..9d32f51b8e --- /dev/null +++ b/.branch-marker @@ -0,0 +1 @@ +branch: dev-workflow/1697-git-pager-cpu-spin \ No newline at end of file From 287cd1a6144db4ae0d4b92f575c6ffbb6beed682 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:16:40 -0700 Subject: [PATCH 28/33] Remove marker file --- .branch-marker | 1 - 1 file changed, 1 deletion(-) diff --git a/.branch-marker b/.branch-marker index 9d32f51b8e..e69de29bb2 100644 --- a/.branch-marker +++ b/.branch-marker @@ -1 +0,0 @@ -branch: dev-workflow/1697-git-pager-cpu-spin \ No newline at end of file From 57d873a220ce90b9b771a05444ac1e7dd0085916 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:16:45 -0700 Subject: [PATCH 29/33] Delete marker file From 6a2e1ef53bf6d065300209efa1edefcfa934ab78 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Tue, 16 Jun 2026 16:17:03 -0700 Subject: [PATCH 30/33] Create branch dev-workflow/1697-git-pager-cpu-spin --- README.md | 232 ------------------------------------------------------ 1 file changed, 232 deletions(-) diff --git a/README.md b/README.md index 966f7261c0..e69de29bb2 100644 --- a/README.md +++ b/README.md @@ -1,232 +0,0 @@ -
- -# `Agent Zero` - -[![Agent Zero Website](https://img.shields.io/badge/Website-agent--zero.ai-0A192F?style=for-the-badge&logo=vercel&logoColor=white)](https://agent-zero.ai) [![Thanks to Sponsors](https://img.shields.io/badge/GitHub%20Sponsors-Thanks%20to%20Sponsors-FF69B4?style=for-the-badge&logo=githubsponsors&logoColor=white)](https://github.com/sponsors/frdel) [![Follow on X](https://img.shields.io/badge/X-Follow-000000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/Agent0ai) [![Join our Discord](https://img.shields.io/badge/Discord-Join%20our%20server-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/B8KZKNsPpj) [![Subscribe on YouTube](https://img.shields.io/badge/YouTube-Subscribe-red?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/@AgentZeroFW) [![Connect on LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/jan-tomasek/) [![Follow on Warpcast](https://img.shields.io/badge/Warpcast-Follow-5A32F3?style=for-the-badge)](https://warpcast.com/agent-zero) - -[Introduction](#a-personal-organic-agentic-framework-that-grows-and-learns-with-you) • -[Installation](./docs/installation.md) • -[Hacking Edition](docs/hacking.md) • -[How to update](./docs/installation.md#how-to-update-agent-zero) • -[Documentation](./docs/README.md) • -[Usage](./docs/usage.md) - -
- - -[![Showcase](/docs/res/showcase-thumb.png)](https://youtu.be/lazLNcEYsiQ) - - - - - -## A personal, organic agentic framework that grows and learns with you - -- Agent Zero is not a predefined agentic framework. It is designed to be dynamic, organically growing, and learning as you use it. -- Agent Zero is fully transparent, readable, comprehensible, customizable, and interactive. -- Agent Zero uses the computer as a tool to accomplish its (your) tasks. - -# 💡 Key Features - -1. **General-purpose Assistant** - -- Agent Zero is not pre-programmed for specific tasks (but can be). It is meant to be a general-purpose personal assistant. Give it a task, and it will gather information, execute commands and code, cooperate with other agent instances, and do its best to accomplish it. -- It has a persistent memory, allowing it to memorize previous solutions, code, facts, instructions, etc., to solve tasks faster and more reliably in the future. - -![Agent 0 Working](/docs/res/ui-screen-2.png) - -2. **Computer as a Tool** - -- Agent Zero uses the operating system as a tool to accomplish its tasks. It has no single-purpose tools pre-programmed. Instead, it can write its own code and use the terminal to create and use its own tools as needed. -- The only default tools in its arsenal are online search, memory features, communication (with the user and other agents), and code/terminal execution. Everything else is created by the agent itself or can be extended by the user. -- Tool usage functionality has been developed from scratch to be the most compatible and reliable, even with very small models. -- **Default Tools:** Agent Zero includes tools like knowledge, webpage content, code execution, and communication. -- **Creating Custom Tools:** Extend Agent Zero's functionality by creating your own custom tools. -- **Instruments:** Instruments are a new type of tool that allow you to create custom functions and procedures that can be called by Agent Zero. - -3. **Multi-agent Cooperation** - -- Every agent has a superior agent giving it tasks and instructions. Every agent then reports back to its superior. -- In the case of the first agent in the chain (Agent 0), the superior is the human user; the agent sees no difference. -- Every agent can create its subordinate agent to help break down and solve subtasks. This helps all agents keep their context clean and focused. - -![Multi-agent](docs/res/physics.png) -![Multi-agent 2](docs/res/physics-2.png) - -4. **Completely Customizable and Extensible** - -- Almost nothing in this framework is hard-coded. Nothing is hidden. Everything can be extended or changed by the user. -- The whole behavior is defined by a system prompt in the **prompts/default/agent.system.md** file. Change this prompt and change the framework dramatically. -- The framework does not guide or limit the agent in any way. There are no hard-coded rails that agents have to follow. -- Every prompt, every small message template sent to the agent in its communication loop can be found in the **prompts/** folder and changed. -- Every default tool can be found in the **python/tools/** folder and changed or copied to create new predefined tools. - -![Prompts](/docs/res/prompts.png) - -5. **Communication is Key** - -- Give your agent a proper system prompt and instructions, and it can do miracles. -- Agents can communicate with their superiors and subordinates, asking questions, giving instructions, and providing guidance. Instruct your agents in the system prompt on how to communicate effectively. -- The terminal interface is real-time streamed and interactive. You can stop and intervene at any point. If you see your agent heading in the wrong direction, just stop and tell it right away. -- There is a lot of freedom in this framework. You can instruct your agents to regularly report back to superiors asking for permission to continue. You can instruct them to use point-scoring systems when deciding when to delegate subtasks. Superiors can double-check subordinates' results and dispute. The possibilities are endless. - -## 🚀 Things you can build with Agent Zero - -- **Development Projects** - `"Create a React dashboard with real-time data visualization"` - -- **Data Analysis** - `"Analyze last quarter's NVIDIA sales data and create trend reports"` - -- **Content Creation** - `"Write a technical blog post about microservices"` - -- **System Admin** - `"Set up a monitoring system for our web servers"` - -- **Research** - `"Gather and summarize five recent AI papers about CoT prompting"` - -# Hacking Edition -Agent Zero provides an optional Docker image based on Kali Linux for security research. - -```bash -docker pull frdel/agent-zero-run:hacking -docker run -p 50001:80 frdel/agent-zero-run:hacking -``` - -See [docs/hacking.md](docs/hacking.md) for details. - - -# ⚙️ Installation - -Click to open a video to learn how to install Agent Zero: - -[![Easy Installation guide](/docs/res/easy_ins_vid.png)](https://www.youtube.com/watch?v=L1_peV8szf8) - -A detailed setup guide for Windows, macOS, and Linux with a video can be found in the Agent Zero Documentation at [this page](./docs/installation.md). - -### ⚡ Quick Start - -```bash -# Pull and run with Docker - -docker pull frdel/agent-zero-run -docker run -p 50001:80 frdel/agent-zero-run - -# Visit http://localhost:50001 to start -``` - -### Local UI Setup - -You can also run the Web UI directly without Docker: - -```bash -pip install -r requirements.txt -python app_init.py -``` - -Open `http://127.0.0.1:50001` in your browser once the server starts. - -## 🐳 Fully Dockerized, with Speech-to-Text and TTS - -![Settings](docs/res/settings-page-ui.png) - -- Customizable settings allow users to tailor the agent's behavior and responses to their needs. -- The Web UI output is very clean, fluid, colorful, readable, and interactive; nothing is hidden. -- You can load or save chats directly within the Web UI. -- The same output you see in the terminal is automatically saved to an HTML file in **logs/** folder for every session. - -![Time example](/docs/res/time_example.jpg) - -- Agent output is streamed in real-time, allowing users to read along and intervene at any time. -- No coding is required; only prompting and communication skills are necessary. -- With a solid system prompt, the framework is reliable even with small models, including precise tool usage. - -## 👀 Keep in Mind - -1. **Agent Zero Can Be Dangerous!** - -- With proper instruction, Agent Zero is capable of many things, even potentially dangerous actions concerning your computer, data, or accounts. Always run Agent Zero in an isolated environment (like Docker) and be careful what you wish for. - -2. **Agent Zero Is Prompt-based.** - -- The whole framework is guided by the **prompts/** folder. Agent guidelines, tool instructions, messages, utility AI functions, it's all there. - - -## 📚 Read the Documentation - -| Page | Description | -|-------|-------------| -| [Installation](./docs/installation.md) | Installation, setup and configuration | -| [Usage](./docs/usage.md) | Basic and advanced usage | -| [Architecture](./docs/architecture.md) | System design and components | -| [Contributing](./docs/contribution.md) | How to contribute | -| [Troubleshooting](./docs/troubleshooting.md) | Common issues and their solutions | - -## Coming soon - -- **MCP** -- **Knowledge and RAG Tools** - -## 🎯 Changelog - -### v0.8.4.1 -- Various bugfixes related to context management -- Message formatting improvements -- Scheduler improvements -- New model provider -- Input tool fix -- Compatibility and stability improvements - -### v0.8.4 -[Release video](https://youtu.be/QBh_h_D_E24) - -- **Remote access (mobile)** - -### v0.8.3.1 -[Release video](https://youtu.be/AGNpQ3_GxFQ) - -- **Automatic embedding** - - -### v0.8.3 -[Release video](https://youtu.be/bPIZo0poalY) - -- ***Planning and scheduling*** - -### v0.8.2 -[Release video](https://youtu.be/xMUNynQ9x6Y) - -- **Multitasking in terminal** -- **Chat names** - -### v0.8.1 -[Release video](https://youtu.be/quv145buW74) - -- **Browser Agent** -- **UX Improvements** - -### v0.8 -[Release video](https://youtu.be/cHDCCSr1YRI) - -- **Docker Runtime** -- **New Messages History and Summarization System** -- **Agent Behavior Change and Management** -- **Text-to-Speech (TTS) and Speech-to-Text (STT)** -- **Settings Page in Web UI** -- **SearXNG Integration Replacing Perplexity + DuckDuckGo** -- **File Browser Functionality** -- **KaTeX Math Visualization Support** -- **In-chat File Attachments** - -### v0.7 -[Release video](https://youtu.be/U_Gl0NPalKA) - -- **Automatic Memory** -- **UI Improvements** -- **Instruments** -- **Extensions Framework** -- **Reflection Prompts** -- **Bug Fixes** - -## 🤝 Community and Support - -- [Join our Discord](https://discord.gg/B8KZKNsPpj) for live discussions or [visit our Skool Community](https://www.skool.com/agent-zero). -- [Follow our YouTube channel](https://www.youtube.com/@AgentZeroFW) for hands-on explanations and tutorials -- [Report Issues](https://github.com/frdel/agent-zero/issues) for bug fixes and features From 6b50098f3bc1a4ac1dc0de5e09cb66fb49d5b9f5 Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Sat, 20 Jun 2026 19:39:28 -0700 Subject: [PATCH 31/33] Added pipeline .harness/pipelines/agent-zero-1782009563784.yaml --- .../pipelines/agent-zero-1782009563784.yaml | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .harness/pipelines/agent-zero-1782009563784.yaml diff --git a/.harness/pipelines/agent-zero-1782009563784.yaml b/.harness/pipelines/agent-zero-1782009563784.yaml new file mode 100644 index 0000000000..975aed16ba --- /dev/null +++ b/.harness/pipelines/agent-zero-1782009563784.yaml @@ -0,0 +1,48 @@ +pipeline: + identifier: Build_RemyLoveLogicAI_agent_zero_1782009567517 + name: Build agent-zero + orgIdentifier: default + projectIdentifier: default_project + properties: + ci: + codebase: + build: <+input> + connectorRef: account.Github_OAuth_1782009530996 + repoName: RemyLoveLogicAI/agent-zero + stages: + - stage: + identifier: build + name: build + spec: + caching: + enabled: true + cloneCodebase: true + execution: + steps: + - step: + identifier: runlinter + name: run linter + spec: + command: |- + pip install flake8 + flake8 . + timeout: "" + type: Run + - step: + identifier: setupvirtualenvironment + name: setup virtual environment + spec: + command: |- + python3 -m venv .venv + . .venv/bin/activate + python3 -m pip install -r requirements.txt + python3 -m pip install -e . + timeout: "" + type: Run + platform: + arch: Amd64 + os: Linux + runtime: + spec: {} + type: Cloud + type: CI From 80cf10f3c40b3da19775befb7e1f03851ebe244e Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Sat, 20 Jun 2026 19:39:30 -0700 Subject: [PATCH 32/33] Added input set .harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set-1782009569952.yaml --- ...9567517-pr-trigger-input-set-1782009569952.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set-1782009569952.yaml diff --git a/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set-1782009569952.yaml b/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set-1782009569952.yaml new file mode 100644 index 0000000000..b96d6701dd --- /dev/null +++ b/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set-1782009569952.yaml @@ -0,0 +1,14 @@ +inputSet: + name: Build_RemyLoveLogicAI_agent_zero_1782009567517-pr-trigger-input-set + identifier: Build_RemyLoveLogicAI_agent_zero_1782009567517prtriggerinputset + orgIdentifier: default + projectIdentifier: default_project + pipeline: + identifier: Build_RemyLoveLogicAI_agent_zero_1782009567517 + properties: + ci: + codebase: + build: + type: PR + spec: + number: <+trigger.prNumber> From 1b5e215ddba24d8b04ffd7b03fb059346e6642bc Mon Sep 17 00:00:00 2001 From: Jeremy Jones Date: Sat, 20 Jun 2026 19:39:31 -0700 Subject: [PATCH 33/33] Added input set .harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set-1782009571141.yaml --- ...67517-push-trigger-input-set-1782009571141.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set-1782009571141.yaml diff --git a/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set-1782009571141.yaml b/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set-1782009571141.yaml new file mode 100644 index 0000000000..f198401bf2 --- /dev/null +++ b/.harness/Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set-1782009571141.yaml @@ -0,0 +1,14 @@ +inputSet: + name: Build_RemyLoveLogicAI_agent_zero_1782009567517-push-trigger-input-set + identifier: Build_RemyLoveLogicAI_agent_zero_1782009567517pushtriggerinputset + orgIdentifier: default + projectIdentifier: default_project + pipeline: + identifier: Build_RemyLoveLogicAI_agent_zero_1782009567517 + properties: + ci: + codebase: + build: + type: branch + spec: + branch: <+trigger.branch>