mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-18 05:18:00 +00:00
Added mailboxes as local data sources (#1022)
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Read metadata (push) Blocked by required conditions
Build and Release / Sync Flatpak repo (push) Blocked by required conditions
Build and Release / Collect Flatpak artifacts (push) Blocked by required conditions
Build and Release / Verify (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Read metadata (push) Blocked by required conditions
Build and Release / Sync Flatpak repo (push) Blocked by required conditions
Build and Release / Collect Flatpak artifacts (push) Blocked by required conditions
Build and Release / Verify (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions
This commit is contained in:
1 parent
93be539e50
commit
c4400c0ff6
343 files changed
+26051
-3122
No files matched your search
@@ -1,4 +1,5 @@
|
||||
@using AIStudio.Chat
|
||||
@using AIStudio.Settings.DataModel
|
||||
@inherits AssistantLowerBase
|
||||
@typeparam TSettings
|
||||
|
||||
@@ -180,7 +181,7 @@
|
||||
@* No selection where the assistant's own rules already name the tools: *@
|
||||
@if (this.SettingsManager.AreToolsEnabled() && this.AssistantManagedToolIds is null && this.SettingsManager.IsToolSelectionVisible(this.Component))
|
||||
{
|
||||
<ToolSelection Component="@this.Component" LLMProvider="@this.ProviderSettings" SelectedToolIds="@this.SelectedToolIds" SelectedToolIdsChanged="@this.SelectedToolIdsChanged" Disabled="@this.IsProcessing" />
|
||||
<ToolSelection Component="@this.Component" LLMProvider="@this.ProviderSettings" RequiredOutboundDataRestriction="@(this.ChatThread?.RequiredOutboundDataRestriction ?? OutboundDataRequirement.NONE)" SelectedToolIds="@this.SelectedToolIds" SelectedToolIdsChanged="@this.SelectedToolIdsChanged" Disabled="@this.IsProcessing" />
|
||||
}
|
||||
|
||||
<MudSpacer />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using AIStudio.Chat;
|
||||
using AIStudio.Provider;
|
||||
using AIStudio.Settings;
|
||||
using AIStudio.Settings.DataModel;
|
||||
using AIStudio.Dialogs.Settings;
|
||||
using AIStudio.Tools.AIJobs;
|
||||
using AIStudio.Tools.AssistantSessions;
|
||||
@@ -197,7 +198,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
this.ProviderSettings = this.SettingsManager.GetPreselectedProvider(this.Component);
|
||||
this.CurrentProfile = this.SettingsManager.GetPreselectedProfile(this.Component);
|
||||
this.CurrentChatTemplate = this.SettingsManager.GetPreselectedChatTemplate(this.Component);
|
||||
this.SelectedToolIds = this.SettingsManager.GetDefaultToolIds(this.Component);
|
||||
this.SelectedToolIds = this.ToolRegistry.GetDefaultToolIds(this.Component);
|
||||
await this.OnDefaultsAppliedAsync();
|
||||
this.assistantSessionKey = new(this.Component, this.AssistantSessionInstanceId);
|
||||
await this.AttachAssistantSessionIfAvailable();
|
||||
@@ -408,7 +409,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
this.ProviderSettings = this.SettingsManager.GetPreselectedProvider(this.Component);
|
||||
this.CurrentProfile = this.SettingsManager.GetPreselectedProfile(this.Component);
|
||||
this.CurrentChatTemplate = this.SettingsManager.GetPreselectedChatTemplate(this.Component);
|
||||
this.SelectedToolIds = this.SettingsManager.GetDefaultToolIds(this.Component);
|
||||
this.SelectedToolIds = this.ToolRegistry.GetDefaultToolIds(this.Component);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -431,18 +432,20 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
/// always has the last word: a tool asking for more confidence than the selected provider has
|
||||
/// never reaches the model, no matter who put it on the list. That filter belongs here rather
|
||||
/// than into the stored selection, because a provider with too little confidence must not cost
|
||||
/// the user a tool for good.
|
||||
/// the user a tool for good. The same goes for a tool which a mailbox the thread read from
|
||||
/// keeps back.
|
||||
/// </remarks>
|
||||
protected HashSet<string> GetRunnableToolIds()
|
||||
/// <param name="outboundDataRestriction">Where the thread the tools run in may still send data, see ChatThread.RequiredOutboundDataRestriction.</param>
|
||||
protected HashSet<string> GetRunnableToolIds(OutboundDataRestriction outboundDataRestriction)
|
||||
{
|
||||
if (this.AssistantManagedToolIds is not null)
|
||||
return this.ToolRegistry.FilterToolIdsForProvider(this.ProviderSettings, this.AssistantManagedToolIds);
|
||||
return this.ToolRegistry.FilterToolIdsForProvider(this.ProviderSettings, this.AssistantManagedToolIds, outboundDataRestriction);
|
||||
|
||||
// What the user cannot see, the assistant does not use:
|
||||
if (!this.SettingsManager.IsToolSelectionVisible(this.Component))
|
||||
return [];
|
||||
|
||||
return this.ToolRegistry.FilterToolIdsForProvider(this.ProviderSettings, this.SelectedToolIds);
|
||||
return this.ToolRegistry.FilterToolIdsForProvider(this.ProviderSettings, this.SelectedToolIds, outboundDataRestriction);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -454,7 +457,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
/// </remarks>
|
||||
protected Task SelectedToolIdsChanged(HashSet<string> updatedToolIds)
|
||||
{
|
||||
this.SelectedToolIds = ToolSelectionRules.NormalizeSelection(updatedToolIds);
|
||||
this.SelectedToolIds = this.ToolRegistry.NormalizeSelection(updatedToolIds);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
@@ -518,7 +521,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
this.ChatThread.SelectedProvider = this.ProviderSettings.Id;
|
||||
this.ChatThread.RuntimeComponent = this.Component;
|
||||
this.ChatThread.SelectedToolIds = [..this.SelectedToolIds];
|
||||
this.ChatThread.RuntimeSelectedToolIds = this.GetRunnableToolIds();
|
||||
this.ChatThread.RuntimeSelectedToolIds = this.GetRunnableToolIds(this.ChatThread.RequiredOutboundDataRestriction.Restriction);
|
||||
this.ChatThread.RuntimeToolsAreAssistantManaged = this.AssistantManagedToolIds is not null;
|
||||
}
|
||||
|
||||
@@ -1014,7 +1017,7 @@ public abstract partial class AssistantBase<TSettings> : AssistantLowerBase wher
|
||||
reader.Restore(RESULTING_CONTENT_BLOCK_STATE_KEY, value => this.ResultingContentBlock = value);
|
||||
reader.Restore(INPUT_ISSUES_STATE_KEY, value => this.InputIssues = value);
|
||||
reader.Restore(IS_PROCESSING_STATE_KEY, value => this.IsProcessing = value);
|
||||
reader.Restore(SELECTED_TOOL_IDS_STATE_KEY, value => this.SelectedToolIds = ToolSelectionRules.NormalizeSelection(value));
|
||||
reader.Restore(SELECTED_TOOL_IDS_STATE_KEY, value => this.SelectedToolIds = this.ToolRegistry.NormalizeSelection(value));
|
||||
this.RestoreCustomAssistantSessionState(reader);
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -1,6 +1,7 @@
|
||||
using AIStudio.Chat;
|
||||
using AIStudio.Provider;
|
||||
using AIStudio.Settings;
|
||||
using AIStudio.Settings.DataModel;
|
||||
using AIStudio.Tools.ToolCallingSystem;
|
||||
|
||||
namespace AIStudio.Assistants.BatchProcessing;
|
||||
@@ -110,7 +111,9 @@ public partial class AssistantBatchProcessing
|
||||
Name = this.Title,
|
||||
Blocks = [],
|
||||
RuntimeComponent = this.Component,
|
||||
RuntimeSelectedToolIds = this.GetRunnableToolIds(),
|
||||
|
||||
// A thread of its own, which has read no mailbox yet:
|
||||
RuntimeSelectedToolIds = this.GetRunnableToolIds(OutboundDataRestriction.UNRESTRICTED),
|
||||
|
||||
// Always true here, unlike in the assistant base: a batch run takes its tools from the
|
||||
// selected policy or from its own field, never from the tool selection in the footer.
|
||||
|
||||
@@ -6,7 +6,6 @@ using AIStudio.Tools.PluginSystem;
|
||||
using AIStudio.Tools.PluginSystem.Assistants;
|
||||
using AIStudio.Tools.PluginSystem.Assistants.DataModel;
|
||||
using AIStudio.Tools.Services;
|
||||
using AIStudio.Tools.ToolCallingSystem;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using DialogOptions = AIStudio.Dialogs.DialogOptions;
|
||||
|
||||
@@ -326,7 +325,7 @@ public partial class AssistantBuilder : AssistantBaseCore<NoSettingsPanel>
|
||||
state.Restore(LAUNCHER_PROFILE_ID_STATE_KEY, value => this.launcherProfileId = value);
|
||||
state.Restore(LAUNCHER_CHAT_TEMPLATE_ID_STATE_KEY, value => this.launcherChatTemplateId = value);
|
||||
state.Restore(LAUNCHER_DATA_SOURCE_IDS_STATE_KEY, value => this.launcherDataSourceIds = value);
|
||||
state.Restore(LAUNCHER_TOOL_IDS_STATE_KEY, value => this.launcherToolIds = ToolSelectionRules.NormalizeSelection(value));
|
||||
state.Restore(LAUNCHER_TOOL_IDS_STATE_KEY, value => this.launcherToolIds = this.ToolRegistry.NormalizeSelection(value));
|
||||
state.Restore(SELECTED_ASSISTANT_COMPONENTS_STATE_KEY, value => this.selectedAssistantComponents = value);
|
||||
state.Restore(SELECTED_OUTPUT_LANGUAGE_STATE_KEY, value => this.selectedOutputLanguage = value);
|
||||
state.Restore(CUSTOM_OUTPUT_LANGUAGE_STATE_KEY, value => this.customOutputLanguage = value);
|
||||
@@ -542,7 +541,7 @@ public partial class AssistantBuilder : AssistantBaseCore<NoSettingsPanel>
|
||||
return null;
|
||||
|
||||
var dataSourceIds = this.launcherDataSourceIds.Distinct(StringComparer.OrdinalIgnoreCase).ToArray();
|
||||
var toolIds = ToolSelectionRules.NormalizeSelection(this.launcherToolIds).ToArray();
|
||||
var toolIds = this.ToolRegistry.NormalizeSelection(this.launcherToolIds).ToArray();
|
||||
return new(
|
||||
this.launcherWorkspaceName.Trim(),
|
||||
NullIfEmpty(this.launcherProviderId),
|
||||
|
||||
@@ -9,7 +9,6 @@ using AIStudio.Tools.PluginSystem;
|
||||
using AIStudio.Tools.PluginSystem.Assistants;
|
||||
using AIStudio.Tools.PluginSystem.Assistants.DataModel;
|
||||
using AIStudio.Tools.Services;
|
||||
using AIStudio.Tools.ToolCallingSystem;
|
||||
using Lua;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
@@ -171,7 +170,7 @@ public partial class AssistantDynamic : AssistantBaseCore<NoSettingsPanel>
|
||||
this.systemPrompt = pluginAssistant.SystemPrompt;
|
||||
this.submitText = pluginAssistant.SubmitText;
|
||||
this.allowProfiles = pluginAssistant.AllowProfiles;
|
||||
this.assistantToolIds = ReadPluginToolIds(pluginAssistant);
|
||||
this.assistantToolIds = this.ReadPluginToolIds(pluginAssistant);
|
||||
this.showFooterProfileSelection = !pluginAssistant.HasEmbeddedProfileSelection;
|
||||
this.pluginPath = pluginAssistant.PluginPath;
|
||||
var pluginHash = pluginAssistant.ComputeAuditHash();
|
||||
@@ -366,7 +365,7 @@ public partial class AssistantDynamic : AssistantBaseCore<NoSettingsPanel>
|
||||
this.systemPrompt = updatedPlugin.SystemPrompt;
|
||||
this.submitText = updatedPlugin.SubmitText;
|
||||
this.allowProfiles = updatedPlugin.AllowProfiles;
|
||||
this.assistantToolIds = ReadPluginToolIds(updatedPlugin);
|
||||
this.assistantToolIds = this.ReadPluginToolIds(updatedPlugin);
|
||||
this.showFooterProfileSelection = !updatedPlugin.HasEmbeddedProfileSelection;
|
||||
this.pluginPath = updatedPlugin.PluginPath;
|
||||
var pluginHash = updatedPlugin.ComputeAuditHash();
|
||||
@@ -391,7 +390,7 @@ public partial class AssistantDynamic : AssistantBaseCore<NoSettingsPanel>
|
||||
/// a plugin installed later, and dropping it here would silently turn a plugin that names tools
|
||||
/// into one that lets the user choose.
|
||||
/// </remarks>
|
||||
private static HashSet<string>? ReadPluginToolIds(PluginAssistants plugin) => plugin.AssistantToolIds is { } toolIds ? ToolSelectionRules.NormalizeSelection(toolIds) : null;
|
||||
private HashSet<string>? ReadPluginToolIds(PluginAssistants plugin) => plugin.AssistantToolIds is { } toolIds ? this.ToolRegistry.NormalizeSelection(toolIds) : null;
|
||||
|
||||
private string ResolveImageSource(AssistantImage image)
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user