Eingehende Ausloeser: n8n und andere starten Agenten (#725, Stufe 1)

Something outside hands an agent a task - an n8n workflow on a mail, a
schedule, a form, or any system that sends an HTTP request.

- Core/Triggers/InboundTriggers: one token per trigger and agent, kept as a
  hash and shown once; a rate per hour; deliveries up to 64 KB. Each
  delivery becomes a task whose content is framed as foreign content with its
  origin; every delivery, accepted or refused, is in the audit (source
  "trigger").
- POST /hooks/trigger on the instance (MCP socket, own token, no browsers);
  the manager forwards /hooks/{instance}/trigger. /api/triggers to issue,
  list and revoke.
- Agent view: a triggers card with the address and an n8n/curl example.
- Nothing writes back: no right to create or change workflows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-01 13:19:05 +02:00
co-authored by Claude Opus 5.5
parent 47a20913b0
commit 73565eff18
14 changed files with 607 additions and 5 deletions
+6
View File
@@ -138,6 +138,9 @@ public sealed class AppHost : IAsyncDisposable
/// <summary>#693: The leads' spot checks and the measures they proposed.</summary>
public Core.Inspection.SpotChecks? SpotChecks { get; private set; }
/// <summary>#725: Inbound triggers — n8n or any other system hands an agent a task.</summary>
public Core.Triggers.InboundTriggers? Triggers { get; private set; }
/// <summary>Modellpreise von OpenRouter - fuer Budget und Kostenprognose (#595). Laedt im Hintergrund.</summary>
public ModelPricingCatalog? Pricing { get; private init; }
@@ -732,6 +735,9 @@ public sealed class AppHost : IAsyncDisposable
spotChecks.Start();
host._shutdown.Add(spotChecks.DisposeAsync);
// #725: what comes in from outside through a trigger becomes a task.
host.Triggers = new Core.Triggers.InboundTriggers(storage, board, audit, () => instance.Agents);
// #702: votes whose time is up are counted without waiting for the next ballot.
if (engine.Votes is Core.Staging.Votes votes)
{