mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-18 18:01:23 +02:00
feat(events): Phase 3 — AI tools, Event-Scout template, feedback loop
- Add discover_events (auto) and suggest_event (propose) to shared-ai tool catalog. discover_events reads the discovery feed, suggest_event creates a proposal to save a discovered event to the user's calendar. - Add Event-Scout agent template with daily "Events der Woche" mission. Policy: discover_events=auto, suggest_event=propose, all else denied. - Add frontend tool implementations in events/tools.ts — discover_events calls the feed API, suggest_event delegates to discoveryStore.saveEvent. - Add feedback.ts — computes implicit user profile from save/dismiss history (category affinity + source quality as 0–2x weight multipliers). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2f226a93aa
commit
2c0d866287
5 changed files with 406 additions and 0 deletions
|
|
@ -886,6 +886,71 @@ export const AI_TOOL_CATALOG: readonly ToolSchema[] = [
|
|||
},
|
||||
],
|
||||
},
|
||||
|
||||
// ── Event Discovery ─────────────────────────────────────────
|
||||
{
|
||||
name: 'discover_events',
|
||||
module: 'events',
|
||||
description:
|
||||
'Sucht oeffentliche Veranstaltungen in den konfigurierten Regionen des Nutzers. Gibt Events mit Titel, Datum, Ort, Kategorie und Quelle zurueck.',
|
||||
defaultPolicy: 'auto',
|
||||
parameters: [
|
||||
{
|
||||
name: 'query',
|
||||
type: 'string',
|
||||
description: 'Optionaler Suchtext (z.B. "Jazz Konzerte")',
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: 'category',
|
||||
type: 'string',
|
||||
description: 'Kategorie-Filter',
|
||||
required: false,
|
||||
enum: [
|
||||
'music',
|
||||
'theater',
|
||||
'art',
|
||||
'tech',
|
||||
'sport',
|
||||
'food',
|
||||
'family',
|
||||
'nature',
|
||||
'education',
|
||||
'community',
|
||||
'nightlife',
|
||||
'market',
|
||||
'other',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'days_ahead',
|
||||
type: 'number',
|
||||
description: 'Wie viele Tage voraus suchen (Standard: 14)',
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'suggest_event',
|
||||
module: 'events',
|
||||
description:
|
||||
'Schlaegt dem Nutzer ein entdecktes Event vor. Erstellt ein Proposal das der Nutzer bestaetigen muss, um das Event in seinen Kalender zu uebernehmen.',
|
||||
defaultPolicy: 'propose',
|
||||
parameters: [
|
||||
{
|
||||
name: 'discovered_event_id',
|
||||
type: 'string',
|
||||
description: 'ID des entdeckten Events',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'reason',
|
||||
type: 'string',
|
||||
description: 'Begruendung warum dieses Event relevant ist',
|
||||
required: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue