#643: Entscheidungen wecken den Agenten nur noch bei Ablehnung oder gescheiterter Ausfuehrung, gesammelt in einer Aufgabe je Agent (5 min Ruhefenster), frisch per @new:agent statt im fortgefuehrten Chatverlauf. Eine einmalige Aufgabe, deren Lauf wegen Budget oder Herunterfahren gar nicht stattfand, bleibt faellig (Wiedervorlage nach 30 min) statt mit gesetztem Marker liegenzubleiben. #641: Rechte stehen in der Werkzeugkonfiguration des Agenten (erlaubt/verboten). Erlaubtes laeuft, Nicht-Erlaubtes wird einzeln vorgelegt statt verweigert, Verbotenes gar nicht erst. "Gleichartiges kuenftig erlauben" erteilt eine widerrufbare Dauerfreigabe je Agent/Werkzeug/Operation; nach drei gleichartigen Freigaben schlaegt die Oberflaeche sie vor. Aenderungen an Agenten bleiben ausnahmslos freigabepflichtig. Database: Operation ist das SQL-Schluesselwort; die eigene Zugriffspruefung greift nur noch ohne Freigabestelle (AgentToolContext.FreigabeGeprueft). WebUI: Rechte-Tabelle je Werkzeug, Dauerfreigaben mit Widerruf. Version 0.1.11. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -167,6 +167,9 @@ public sealed record ForecastTaskDto(
|
||||
public sealed record TaskWhenDto(string Kind, string Value, string TimeZone);
|
||||
|
||||
/// <summary>Ein eingefrorener Aufruf, der auf Freigabe wartet.</summary>
|
||||
/// <param name="PreviousApprovals">#641: Wie oft dieselbe Operation dieses Agenten zuletzt schon freigegeben wurde.</param>
|
||||
/// <param name="CanAllowSimilar">#641: Ob "Gleichartiges kuenftig erlauben" angeboten werden darf.</param>
|
||||
/// <param name="SuggestAllowSimilar">#641: Ob die Oberflaeche die Dauerfreigabe vorschlagen soll.</param>
|
||||
public sealed record StagedCallDto(
|
||||
long Id,
|
||||
string RunId,
|
||||
@@ -176,7 +179,44 @@ public sealed record StagedCallDto(
|
||||
string Proposal,
|
||||
string Status,
|
||||
string ArgumentsJson,
|
||||
DateTime CreatedAt);
|
||||
DateTime CreatedAt,
|
||||
int PreviousApprovals = 0,
|
||||
bool CanAllowSimilar = false,
|
||||
bool SuggestAllowSimilar = false);
|
||||
|
||||
/// <summary>#641: Eine Dauerfreigabe - "Gleichartiges kuenftig erlauben".</summary>
|
||||
public sealed record StandingApprovalDto(
|
||||
long Id,
|
||||
string AgentId,
|
||||
string Tool,
|
||||
string Operation,
|
||||
string GrantedBy,
|
||||
DateTime GrantedAt,
|
||||
long? SourceId,
|
||||
DateTime? RevokedAt,
|
||||
string? RevokedBy);
|
||||
|
||||
/// <summary>
|
||||
/// #641: Die Rechte eines Agenten an einem Werkzeug, je Operation.
|
||||
/// <c>Setting</c>: "erlaubt", "verboten" oder "freigabe" (einzeln vorlegen) - so wie es in der
|
||||
/// Konfiguration steht. <c>Effective</c>: was tatsaechlich geschieht ("auto", "approve",
|
||||
/// "deny") - einschliesslich Dauerfreigaben und Werkzeugvorgabe.
|
||||
/// </summary>
|
||||
public sealed record ToolRightsDto(
|
||||
string Tool,
|
||||
bool Configured,
|
||||
IReadOnlyList<ToolOperationDto> Operations);
|
||||
|
||||
public sealed record ToolOperationDto(
|
||||
string Operation,
|
||||
string Setting,
|
||||
string Effective,
|
||||
string Reason,
|
||||
bool AlwaysApproval,
|
||||
long? StandingApprovalId);
|
||||
|
||||
/// <summary>#641: Neue Rechte. <c>Allowed</c> <c>null</c> = Liste entfernen, Vorgabe des Werkzeugs gilt.</summary>
|
||||
public sealed record ToolRightsInputDto(IReadOnlyList<string>? Allowed, IReadOnlyList<string>? Denied);
|
||||
|
||||
/// <summary>Warum ein Vorschlag abgelehnt wurde.</summary>
|
||||
public sealed record RejectDto(string Reason);
|
||||
|
||||
Reference in New Issue
Block a user