Skip to content
Open

Yup #51

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
6f294c0
Create README.md
CakeRepository Apr 27, 2025
d6e0904
Update README.md
CakeRepository Apr 27, 2025
9b37673
Update README.md
CakeRepository Apr 27, 2025
b47a6b2
Merge branch 'master' of https://github.com/CakeRepository/Human-Use
CakeRepository Apr 27, 2025
2b03f21
Removed options for null icons in all forms
CakeRepository Apr 27, 2025
adeaaf1
Added working taskflow and prompt structure
CakeRepository Apr 27, 2025
2b1e486
Added function to send with voice
CakeRepository Apr 28, 2025
f566853
Fixed confusing local chat history
CakeRepository Apr 28, 2025
55e02fa
Merge branch 'real-time-audio' into master
CakeRepository Apr 28, 2025
3fb4eb7
Merge pull request #2 from CakeRepository/master
CakeRepository Apr 28, 2025
133b834
Merge pull request #3 from CakeRepository/real-time-audio
CakeRepository Apr 28, 2025
c249c74
Update README.md
CakeRepository Apr 28, 2025
8f3e734
Merge pull request #4 from CakeRepository/readme-update
CakeRepository Apr 28, 2025
946d825
this needs to be added my bad
CakeRepository Apr 28, 2025
509442a
added multiagent setup to start testing with
CakeRepository Apr 29, 2025
1156a3f
Fixed tool config to include better GUI
CakeRepository Apr 29, 2025
ec22f95
darkmode merging to keep main clean
CakeRepository Apr 29, 2025
fe3714f
Merge pull request #5 from CakeRepository/multiagent
CakeRepository Apr 29, 2025
46071be
Fixed warning on build
CakeRepository Apr 29, 2025
62b998a
Merge pull request #7 from CakeRepository/master
CakeRepository Apr 29, 2025
78196c6
Merge pull request #8 from CakeRepository/multiagent
CakeRepository Apr 29, 2025
a2ffa8b
Added more build errors
CakeRepository Apr 29, 2025
30f6f50
Merge branch 'master' of https://github.com/CakeRepository/Human-Use
CakeRepository Apr 29, 2025
0f8028d
more changes to keep everything on master
CakeRepository Apr 29, 2025
2554f59
disabled the auto startu listening
CakeRepository Apr 29, 2025
91eed5b
added .ico file to .exe for better looks :)
CakeRepository Apr 30, 2025
9de64d9
test push with protection
CakeRepository Apr 30, 2025
f963c26
second change and push
CakeRepository Apr 30, 2025
8e4945e
test push
CakeRepository Apr 30, 2025
04b8eed
removed t
CakeRepository Apr 30, 2025
e6787a4
Create LICENSE
CakeRepository Apr 30, 2025
6ffaa69
Merge pull request #12 from flowdevs-io/license
CakeRepository Apr 30, 2025
6aa726b
coordinator for better planner results
CakeRepository Apr 30, 2025
dd480e7
Merge pull request #13 from flowdevs-io/coordinator-agent
CakeRepository Apr 30, 2025
86ab48f
Partial Agent config
CakeRepository Apr 30, 2025
740ef26
fixed chat history
CakeRepository Apr 30, 2025
29b828e
Merge pull request #14 from flowdevs-io/coordinator-agent
CakeRepository Apr 30, 2025
51f40b3
Create SECURITY.md
CakeRepository Apr 30, 2025
38ca813
Merge pull request #15 from flowdevs-io/CakeRepository-patch-1
CakeRepository Apr 30, 2025
34ab2c3
Update SECURITY.md
CakeRepository Apr 30, 2025
811b14d
Merge pull request #16 from flowdevs-io/CakeRepository-patch-2
CakeRepository Apr 30, 2025
8378d7a
final push hopefully lol
CakeRepository May 1, 2025
95a4019
Merge pull request #17 from flowdevs-io/another-branch
CakeRepository May 1, 2025
920de2b
bing bop boom
CakeRepository May 1, 2025
df2877a
Update README.md
CakeRepository May 1, 2025
6a295d3
readme
CakeRepository May 1, 2025
289c455
Update README.md
CakeRepository May 1, 2025
010e0f4
Update README.md
CakeRepository May 1, 2025
2e0bc70
update readme
CakeRepository May 1, 2025
093aa75
Merge pull request #19 from flowdevs-io/readme-update
CakeRepository May 1, 2025
2fd1a0d
added name change and semi implemented playwright
CakeRepository May 9, 2025
93606d0
playwright actually types now
CakeRepository May 9, 2025
8cd6e52
fixed csproj erros
CakeRepository May 9, 2025
6689312
A lot of changes that may need to be rolled back - Multi Agent still …
CakeRepository May 10, 2025
a6cf405
Merge pull request #20 from flowdevs-io/lots-of-changes
CakeRepository May 10, 2025
292a6c9
docs: correct project name in citation section
CakeRepository May 19, 2025
d50a338
Fixed some lameo changes
CakeRepository May 19, 2025
6485512
Merge pull request #22 from flowdevs-io/codex/find-and-propose-codeba…
CakeRepository May 19, 2025
1261109
Improve Playwright cleanup
CakeRepository May 19, 2025
2975dfd
Merge pull request #23 from flowdevs-io/codex/fix-playwright-issues
CakeRepository May 19, 2025
2252393
Working again
CakeRepository May 19, 2025
12b0a2f
Merge branch 'master' into semi-working-playwright
CakeRepository May 19, 2025
fa49dd0
Merge pull request #25 from flowdevs-io/semi-working-playwright
CakeRepository May 19, 2025
ed1110d
docs: add codebase overview section
CakeRepository May 19, 2025
5cead7e
Merge pull request #26 from flowdevs-io/codex/explain-codebase-struct…
CakeRepository May 20, 2025
e5f65d4
Add page content retrieval functions
CakeRepository May 20, 2025
c377e53
Merge pull request #27 from flowdevs-io/codex/add-kernel-functions-to…
CakeRepository May 20, 2025
7748d2e
Add CloseBrowser method to Playwright plugin and document
CakeRepository May 20, 2025
fb436a8
Merge branch 'master' into codex/implement-closebrowser-method-in-pla…
CakeRepository May 20, 2025
298a876
Merge pull request #28 from flowdevs-io/codex/implement-closebrowser-…
CakeRepository May 20, 2025
708cec0
fix: apply dynamic prompt at runtime
CakeRepository May 20, 2025
601f514
Merge pull request #30 from flowdevs-io/codex/load-dynamictoolprompts…
CakeRepository May 20, 2025
6630be3
Add ExecuteScript to Playwright plugin and docs
CakeRepository May 20, 2025
1e0dc11
Merge pull request #31 from flowdevs-io/codex/add-executescript-metho…
CakeRepository May 20, 2025
0f0018a
Add RemoteControlPlugin and configuration
CakeRepository May 20, 2025
8958f0d
Merge pull request #32 from flowdevs-io/codex/implement-remotecontrol…
CakeRepository May 20, 2025
a9493d4
fixed multiple things per usual
CakeRepository May 20, 2025
015b05c
Merge pull request #33 from flowdevs-io/added-config
CakeRepository May 20, 2025
41e785e
Use temp path for screenshot files
CakeRepository May 20, 2025
8342001
Merge pull request #34 from flowdevs-io/codex/update-screencaptureomn…
CakeRepository May 20, 2025
031ccac
fixed more
CakeRepository May 20, 2025
5f50e7e
Merge pull request #35 from flowdevs-io/codex/update-screencaptureomn…
CakeRepository May 20, 2025
1979ece
Revert "fixed more"
CakeRepository May 20, 2025
3ff2e0f
Merge pull request #36 from flowdevs-io/revert-35-codex/update-screen…
CakeRepository May 20, 2025
83dd917
Allow custom wait strategy for navigation
CakeRepository May 20, 2025
c4500a1
Merge pull request #37 from flowdevs-io/codex/modify-navigateto-wait-…
CakeRepository May 20, 2025
9ea8926
Swapped everything from SK to Microsoft.Extensions.AI
CakeRepository Oct 2, 2025
b81642f
Merge pull request #38 from flowdevs-io/dev
CakeRepository Oct 2, 2025
4730d29
added LM Studio Support
CakeRepository Oct 3, 2025
958b264
Merge pull request #39 from flowdevs-io/LM-Studio
CakeRepository Oct 3, 2025
0e0b8c1
changes
CakeRepository Oct 3, 2025
3e56b2d
Merge pull request #40 from flowdevs-io/LM-Studio
CakeRepository Oct 3, 2025
b77f35e
docs changes
CakeRepository Oct 3, 2025
021c8a0
Merge pull request #41 from flowdevs-io/docs
CakeRepository Oct 3, 2025
d54379d
Fix GitHub Pages documentation - populate empty markdown files with c…
CakeRepository Oct 3, 2025
50799a6
Add GitHub Pages deployment workflow
CakeRepository Oct 3, 2025
72efefd
Add documentation fix summary
CakeRepository Oct 3, 2025
cb21290
Remove custom workflow - use GitHub's built-in Pages deployment
CakeRepository Oct 3, 2025
824d5d0
Update documentation fix summary with verification steps
CakeRepository Oct 3, 2025
617e33f
Add deployment instructions for documentation
CakeRepository Oct 3, 2025
08ed173
Merge pull request #42 from flowdevs-io/docs
CakeRepository Oct 3, 2025
75c1f00
Update documentation link in UI to GitHub Pages site
CakeRepository Oct 3, 2025
9058409
Add summary of UI documentation link update
CakeRepository Oct 3, 2025
a1416a8
Merge pull request #43 from flowdevs-io/update-docs-link
CakeRepository Oct 3, 2025
f9f8e50
Add Reset to Default buttons and improve system prompts with detailed…
CakeRepository Oct 3, 2025
47ffa72
Add summary of system prompt improvements
CakeRepository Oct 3, 2025
519436e
Merge pull request #44 from flowdevs-io/improve-system-prompts
CakeRepository Oct 3, 2025
eaf5400
feat: Add OmniParser model downloader and converter scripts
CakeRepository Oct 3, 2025
0d487e7
Merge pull request #45 from flowdevs-io/dev-v2
CakeRepository Oct 3, 2025
79817a1
test
CakeRepository Oct 3, 2025
a0645bc
Merge pull request #46 from flowdevs-io/test
CakeRepository Oct 3, 2025
b64e8d3
more changes
CakeRepository Oct 3, 2025
82bb38a
Merge pull request #47 from flowdevs-io/test
CakeRepository Oct 3, 2025
2bf6d98
Enhance action execution prompts and improve chat client configuration
CakeRepository Oct 3, 2025
57289b7
Merge pull request #48 from flowdevs-io/test
CakeRepository Oct 3, 2025
0500230
Add Gemini and local plugin support; UI and config updates
CakeRepository Nov 28, 2025
67c6b21
Merge pull request #49 from flowdevs-io/test
CakeRepository Nov 28, 2025
98a71a1
Remove OmniParser and related code from FlowVision
CakeRepository Nov 29, 2025
49385a8
te
CakeRepository Nov 29, 2025
998c2c6
te
CakeRepository Nov 29, 2025
70999af
te
CakeRepository Nov 29, 2025
62ad5e5
te
CakeRepository Nov 29, 2025
5c94faf
Remove .git-rewrite and update .gitignore for weights folder
CakeRepository Nov 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -360,4 +360,10 @@ MigrationBackup/
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd
FodyWeavers.xsd

# Large model weights
weights/

# Git filter-branch leftovers
.git-rewrite/
137 changes: 137 additions & 0 deletions Build-Installer.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
<#
.SYNOPSIS
Build FlowVision installer using Inno Setup

.DESCRIPTION
This script builds the FlowVision installer. It requires:
1. Inno Setup 6 to be installed
2. The FlowVision project to be built in Release mode

.EXAMPLE
.\Build-Installer.ps1
#>

param(
[string]$InnoSetupPath = "",
[switch]$SkipBuild
)

$ErrorActionPreference = "Stop"

Write-Host "=========================================" -ForegroundColor Cyan
Write-Host "FlowVision Installer Builder" -ForegroundColor Cyan
Write-Host "=========================================" -ForegroundColor Cyan
Write-Host ""

# Find Inno Setup
if (-not $InnoSetupPath) {
$locations = @(
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe",
"C:\Program Files\Inno Setup 6\ISCC.exe",
"C:\Program Files (x86)\Inno Setup 5\ISCC.exe",
"C:\Program Files\Inno Setup 5\ISCC.exe"
)

foreach ($loc in $locations) {
if (Test-Path $loc) {
$InnoSetupPath = $loc
break
}
}
}

if (-not $InnoSetupPath -or -not (Test-Path $InnoSetupPath)) {
Write-Host "ERROR: Inno Setup not found!" -ForegroundColor Red
Write-Host ""
Write-Host "Please install Inno Setup 6 from: https://jrsoftware.org/isdl.php" -ForegroundColor Yellow
Write-Host ""
Write-Host "Or specify the path with: .\Build-Installer.ps1 -InnoSetupPath 'C:\path\to\ISCC.exe'" -ForegroundColor Yellow
exit 1
}

Write-Host "Using Inno Setup: $InnoSetupPath" -ForegroundColor Green

# Build the project first
if (-not $SkipBuild) {
Write-Host ""
Write-Host "Building FlowVision in Release mode..." -ForegroundColor Yellow

$msbuild = "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe"
if (-not (Test-Path $msbuild)) {
$msbuild = "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe"
}
if (-not (Test-Path $msbuild)) {
$msbuild = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
}

if (Test-Path $msbuild) {
& $msbuild "FlowVision\FlowVision.csproj" /t:Build /p:Configuration=Release /v:minimal
if ($LASTEXITCODE -ne 0) {
Write-Host "ERROR: Build failed!" -ForegroundColor Red
exit 1
}
Write-Host "Build completed successfully!" -ForegroundColor Green
} else {
Write-Host "WARNING: MSBuild not found, skipping build step" -ForegroundColor Yellow
}
}

# Verify required files exist
Write-Host ""
Write-Host "Verifying build output..." -ForegroundColor Yellow

$requiredFiles = @(
"FlowVision\bin\Release\FlowVision.exe",
"FlowVision\bin\Release\onnxruntime.dll",
"FlowVision\bin\Release\tesseract50.dll",
"FlowVision\bin\Release\tessdata\eng.traineddata"
)

$missing = @()
foreach ($file in $requiredFiles) {
if (-not (Test-Path $file)) {
$missing += $file
}
}

if ($missing.Count -gt 0) {
Write-Host "ERROR: Missing required files:" -ForegroundColor Red
foreach ($file in $missing) {
Write-Host " - $file" -ForegroundColor Red
}
exit 1
}

Write-Host "All required files present!" -ForegroundColor Green

# Create installer output directory
$installerDir = "installer"
if (-not (Test-Path $installerDir)) {
New-Item -ItemType Directory -Path $installerDir | Out-Null
}

# Build the installer
Write-Host ""
Write-Host "Building installer..." -ForegroundColor Yellow
Write-Host "This may take several minutes due to the large model files." -ForegroundColor Gray

$issFile = "FlowVision-Installer.iss"
& $InnoSetupPath $issFile

if ($LASTEXITCODE -ne 0) {
Write-Host "ERROR: Installer build failed!" -ForegroundColor Red
exit 1
}

Write-Host ""
Write-Host "=========================================" -ForegroundColor Green
Write-Host "Installer built successfully!" -ForegroundColor Green
Write-Host "=========================================" -ForegroundColor Green
Write-Host ""

# Show the output
$installer = Get-ChildItem "installer\*.exe" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
if ($installer) {
Write-Host "Installer: $($installer.FullName)" -ForegroundColor Cyan
Write-Host "Size: $([math]::Round($installer.Length/1MB, 2)) MB" -ForegroundColor Cyan
}
91 changes: 91 additions & 0 deletions FlowVision-Installer.iss
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
; FlowVision Installer Script for Inno Setup
; This script creates a single-file installer that includes all dependencies

#define MyAppName "FlowVision"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "FlowVision"
#define MyAppExeName "FlowVision.exe"
#define MyAppURL "https://github.com/flowvision"

[Setup]
; Basic installer settings
AppId={{F8E2D3A4-5B6C-7D8E-9F0A-1B2C3D4E5F6A}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
; Output settings
OutputDir=installer
OutputBaseFilename=FlowVision-Setup-{#MyAppVersion}
; Compression - use LZMA2 for best compression of large files
Compression=lzma2/ultra64
SolidCompression=yes
LZMAUseSeparateProcess=yes
LZMANumBlockThreads=4
; UI settings
WizardStyle=modern
SetupIconFile=FlowVision\recursive-control-icon.ico
; Privileges
PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
; Architecture
ArchitecturesAllowed=x64compatible
ArchitecturesInstallIn64BitMode=x64compatible
; Disk space info
DiskSpanning=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
; Main executable (contains embedded managed DLLs and detection model)
Source: "FlowVision\bin\Release\FlowVision.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "FlowVision\bin\Release\FlowVision.exe.config"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist

; Native DLLs (required - cannot be embedded in .NET exe)
Source: "FlowVision\bin\Release\onnxruntime.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "FlowVision\bin\Release\onnxruntime_providers_shared.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "FlowVision\bin\Release\tesseract50.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "FlowVision\bin\Release\leptonica-1.82.0.dll"; DestDir: "{app}"; Flags: ignoreversion

; Any additional DLLs that weren't embedded
Source: "FlowVision\bin\Release\*.dll"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist

; Tesseract OCR data
Source: "FlowVision\bin\Release\tessdata\*"; DestDir: "{app}\tessdata"; Flags: ignoreversion recursesubdirs createallsubdirs

; Florence-2 Caption Models (large ONNX files)
Source: "FlowVision\bin\Release\models\*"; DestDir: "{app}\models"; Flags: ignoreversion recursesubdirs createallsubdirs

; Playwright browser automation files
Source: "FlowVision\bin\Release\.playwright\*"; DestDir: "{app}\.playwright"; Flags: ignoreversion recursesubdirs createallsubdirs skipifsourcedoesntexist

; Native x64/x86 libraries
Source: "FlowVision\bin\Release\x64\*"; DestDir: "{app}\x64"; Flags: ignoreversion recursesubdirs createallsubdirs skipifsourcedoesntexist
Source: "FlowVision\bin\Release\x86\*"; DestDir: "{app}\x86"; Flags: ignoreversion recursesubdirs createallsubdirs skipifsourcedoesntexist

; Web UI files (HTML, CSS, JS)
Source: "FlowVision\bin\Release\*.html"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
Source: "FlowVision\bin\Release\*.css"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist
Source: "FlowVision\bin\Release\*.js"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]
function InitializeSetup(): Boolean;
begin
Result := True;
end;

14 changes: 14 additions & 0 deletions FlowVision.Tests/FlowVision.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FlowVision\FlowVision.csproj" />
</ItemGroup>
</Project>
93 changes: 93 additions & 0 deletions FlowVision.Tests/MultiAgentActionerTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using FlowVision.lib.Classes;
using System;
using System.Reflection;
using System.IO;
using System.Collections.Generic;

namespace FlowVision.Tests
{
[TestClass]
public class MultiAgentActionerTests
{
private static string CallExtract(string plan)
{
var actioner = new MultiAgentActioner(null);
var method = typeof(MultiAgentActioner).GetMethod("ExtractActionableStep", BindingFlags.NonPublic | BindingFlags.Instance);
return (string)method.Invoke(actioner, new object[] { plan });
}

[TestMethod]
public void ExtractActionableStep_ReturnsFirstActionableLine()
{
string plan = "1. Use WindowSelectionPlugin to list windows\n2. Use ScreenCapturePlugin to capture";
string result = CallExtract(plan);
Assert.AreEqual("Use WindowSelectionPlugin to list windows", result);
}

[TestMethod]
public void ExtractActionableStep_SingleLineActionable()
{
string plan = "Use MousePlugin to click start button";
string result = CallExtract(plan);
Assert.AreEqual(plan, result);
}

[TestMethod]
public void ExtractActionableStep_ReturnsNullForNonActionable()
{
string plan = "Hello there";
string result = CallExtract(plan);
Assert.IsNull(result);
}

private static string ConfigPath(string name)
{
return Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"FlowVision", "Config", $"{name}.json");
}

[TestMethod]
public void PlannerPrompt_ContainsTools_WhenDynamicPromptsEnabled()
{
var config = new ToolConfig();
config.DynamicToolPrompts = true;
config.EnableCMDPlugin = true; // ensure at least one tool
config.SaveConfig("toolsconfig");

var actioner = new MultiAgentActioner(null);
actioner.SetChatHistory(new List<LocalChatMessage>());

var field = typeof(MultiAgentActioner).GetField("plannerHistory", BindingFlags.NonPublic | BindingFlags.Instance);
var history = field.GetValue(actioner);
var enumerator = ((System.Collections.IEnumerable)history).GetEnumerator();
enumerator.MoveNext();
var first = enumerator.Current;
string content = (string)first.GetType().GetProperty("Content").GetValue(first);

Assert.IsTrue(content.Contains("You have access to the following tools"));
}

[TestMethod]
public void PlannerPrompt_OmitsTools_WhenDynamicPromptsDisabled()
{
var config = new ToolConfig();
config.DynamicToolPrompts = false;
config.EnableCMDPlugin = true;
config.SaveConfig("toolsconfig");

var actioner = new MultiAgentActioner(null);
actioner.SetChatHistory(new List<LocalChatMessage>());

var field = typeof(MultiAgentActioner).GetField("plannerHistory", BindingFlags.NonPublic | BindingFlags.Instance);
var history = field.GetValue(actioner);
var enumerator = ((System.Collections.IEnumerable)history).GetEnumerator();
enumerator.MoveNext();
var first = enumerator.Current;
string content = (string)first.GetType().GetProperty("Content").GetValue(first);

Assert.IsFalse(content.Contains("You have access to the following tools"));
}
}
}
8 changes: 7 additions & 1 deletion FlowVision.sln
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35828.75 d17.13
VisualStudioVersion = 17.13.35828.75
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowVision", "FlowVision\FlowVision.csproj", "{D0C80BFC-F9E8-4B7D-B3F0-C1A17C0DAB4C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowVision.Tests", "FlowVision.Tests\FlowVision.Tests.csproj", "{5B7C3BAC-8534-42DC-A2B3-A5E4FEF49F1F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -15,6 +17,10 @@ Global
{D0C80BFC-F9E8-4B7D-B3F0-C1A17C0DAB4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0C80BFC-F9E8-4B7D-B3F0-C1A17C0DAB4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0C80BFC-F9E8-4B7D-B3F0-C1A17C0DAB4C}.Release|Any CPU.Build.0 = Release|Any CPU
{5B7C3BAC-8534-42DC-A2B3-A5E4FEF49F1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B7C3BAC-8534-42DC-A2B3-A5E4FEF49F1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B7C3BAC-8534-42DC-A2B3-A5E4FEF49F1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B7C3BAC-8534-42DC-A2B3-A5E4FEF49F1F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Loading