Commit graph

698 commits

Author SHA1 Message Date
patrick-motsch
681c96be8e Teamsbot: prevent double AI triggers, remove caption text from AI context
Made-with: Cursor
2026-02-27 16:40:08 +01:00
patrick-motsch
275f7bbc66 Teamsbot: handle chatHistory source - store context but skip AI trigger
Made-with: Cursor
2026-02-27 13:56:46 +01:00
patrick-motsch
21f77d1924 Teamsbot: emit caption/speakerHint to UI for speaker display
Made-with: Cursor
2026-02-27 12:27:02 +01:00
patrick-motsch
1c00ab6024 Forward bot playback acknowledgements to SSE status stream.
Handle ttsPlaybackAck websocket messages and emit ttsDeliveryStatus updates with playback_* states for UI diagnostics.

Made-with: Cursor
2026-02-26 21:45:47 +01:00
patrick-motsch
25854edb4d Allow speaker-hint captions to trigger AI without transcript persistence.
Keep aggressive hybrid persistence rules, but use final speaker hints as transient context to react to direct bot addressing even when audio capture is silent.

Made-with: Cursor
2026-02-26 21:41:56 +01:00
patrick-motsch
fe1a97564b Improve Teams bot response reliability and transcript quality.
Fix invalid bot-response timestamps in SSE payloads, reduce duplicate response loops, and improve audio STT stability with larger capture chunks and safer silence filtering.

Made-with: Cursor
2026-02-26 21:18:21 +01:00
90c0850449 fix:missing return error caused no features to load 2026-02-26 16:50:19 +01:00
1e4047caf1 fix: ready for merge with int 2026-02-26 16:17:15 +01:00
025fb8ff61 removed demo files 2026-02-26 16:05:26 +01:00
d3dbca7289 nicht fertig; Stand Kessler Demo 2026-02-26 16:00:26 +01:00
d8fb3bf821 fix:mainchatbot.py created to ensure feature creation 2026-02-26 15:59:23 +01:00
ea99711ace fix: sharepoint neutralisierung wieder eingebaut 2026-02-26 15:50:16 +01:00
d3cfe8e9be fix: further improved neutraliser 2026-02-26 15:02:01 +01:00
205b99dfa0 updated pdf extractor 2026-02-26 15:02:01 +01:00
5120fbc503 neutralized pdf files and better pattern recognition 2026-02-26 15:02:01 +01:00
7163397fd3 fix: Invitation Wizard Anpassungen fertig 2026-02-26 10:44:33 +01:00
patrick-motsch
cd2fffc651 feat: emit ttsDeliveryStatus SSE diagnostics
Made-with: Cursor
2026-02-26 09:46:05 +01:00
patrick-motsch
02002f3576 feat: add speaker-hint debug flag and improve TTS diagnostics
Made-with: Cursor
2026-02-26 09:26:59 +01:00
patrick-motsch
0cd8e9ebfa feat: treat caption events as speaker hints only
Made-with: Cursor
2026-02-26 09:22:07 +01:00
patrick-motsch
43e310a41d feat: map audio STT to recent caption speaker hints
Made-with: Cursor
2026-02-26 09:05:21 +01:00
patrick-motsch
5684a4d769 fix chat workflow sorting for mixed timestamp types
Use parseTimestamp when sorting messages and stats so INT workflows do not fail when DB rows contain timestamp values as both strings and floats.

Made-with: Cursor
2026-02-25 23:06:53 +01:00
36ce2facbc feat: tested mistral api key 2026-02-25 14:04:53 +01:00
667c432485 aicorePluginMistral erstellt und bereit für API key und testing 2026-02-25 13:48:29 +01:00
258594f310 fix: stripe callback csrf rausgenommen 2026-02-25 09:00:12 +01:00
7578d8bf3e feat: integrated stripe payment 2026-02-25 08:44:12 +01:00
patrick-motsch
f5143611b0 fix trustee 3-step ai call for documents 2026-02-24 22:49:08 +01:00
patrick-motsch
ea8cffee3c fix: log teamsbot audio capture diagnostics in gateway
Read and log per-chunk capture diagnostics (trackId, readyState, rms, nativeSampleRate) from bot audioChunk messages to support root-cause analysis of silent audio streams.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 14:55:43 +01:00
Patrick Motsch
312163d34a
Merge pull request #100 from valueonag/feat/cursor-style-feature
fixed cursor feature
2026-02-23 23:05:11 +01:00
patrick-motsch
2dff6cd0af fixed cursor feature 2026-02-23 23:01:28 +01:00
patrick-motsch
d020293f4b fix: teamsbot audio STT - pass channels and skipFallbacks for known PCM16 format
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:59:53 +01:00
patrick-motsch
f6f42d8db7 phase 2 codeeditor and hotfixes voice 2026-02-23 22:09:27 +01:00
patrick-motsch
338f9522a5 codeeditor mvp phase 1 done 2026-02-23 18:35:36 +01:00
patrick-motsch
9d129f111f fixes for roles 2026-02-23 17:13:50 +01:00
patrick-motsch
f35a90e428 fixes sync and ai tree 2026-02-22 22:34:07 +01:00
patrick-motsch
6b11d66766 fixes 2026-02-22 01:03:19 +01:00
patrick-motsch
2eeaf35990 sync trustee feature with rma 2026-02-22 00:07:33 +01:00
patrick-motsch
e1557e9cc9 trustee connections 2026-02-21 00:56:53 +01:00
patrick-motsch
9c23fc6c52 fix: CSRF exemption for bot endpoints, WS ping timeout, clean up debug logs
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-19 00:46:42 +01:00
patrick-motsch
f9aa35647b sync features a and p 2026-02-19 00:31:32 +01:00
patrick-motsch
2d7da8a66d fix: resolve STT AttributeError and int/str TypeError in teamsbot service
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-19 00:09:00 +01:00
patrick-motsch
7778325e5e feat: add debugMode to config, filter bot own captions to prevent repeats
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 23:52:51 +01:00
patrick-motsch
b616688411 feat: add screenshot proxy endpoints for debug viewer (SysAdmin only)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 22:00:34 +01:00
patrick-motsch
e313055de6 log admin 2026-02-18 21:39:37 +01:00
patrick-motsch
3fa5b98f47 security: restrict system bot access to SysAdmin only
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 21:03:08 +01:00
patrick-motsch
1227324703 feat: differential transcript, fix bot name in WS handler, AI commands support
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:50:31 +01:00
patrick-motsch
6963719499 fix: use enum .value for responseChannel comparison - was silently dropping all responses
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:48:41 +01:00
patrick-motsch
a3b771b12a fix: derive botName from system bot email, robust responseChannel comparison
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:32:16 +01:00
patrick-motsch
33daa8dc74 feat: handle voiceGreeting message type - TTS for bot join greeting
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:17:42 +01:00
patrick-motsch
5d40657aef fix: dynamic bot name in SPEECH_TEAMS prompt + phonetic name trigger
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:12:48 +01:00
patrick-motsch
070e3cbd96 fix: safe access to botAccountEmail in _isBotSpeaker - was crashing WebSocket handler on first transcript
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:54:18 +01:00
patrick-motsch
a27307263f fix: create SSE event queue on-demand so transcript/chat events are never silently dropped
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:44:12 +01:00
patrick-motsch
a3c92ae8d5 fix: load system bot credentials from DB and pass to browser bot for authenticated join
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 19:58:01 +01:00
patrick-motsch
ad254aafb1 feat: handle audioChunk messages from bot, STT via Google Cloud Speech
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 18:43:42 +01:00
patrick-motsch
de573fd834 refactor: add TransferMode, remove backgroundImageUrl and botAccount fields from config
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 18:34:24 +01:00
patrick-motsch
5dd3b9f894 fix: add per-variant test-auth endpoints to avoid Azure timeout
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 16:33:21 +01:00
patrick-motsch
cd9b405d2e fix: increase test-auth timeout to 900s for 5 browser variants
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 13:46:23 +01:00
patrick-motsch
7b4be3dbc9 feat: accept botEmail/botPassword from request, auto-create system bot in DB
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 00:33:05 +01:00
patrick-motsch
f743932768 fix: fallback to any active system bot if mandate mismatch, add credentialDebug to response
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 00:03:01 +01:00
patrick-motsch
1b2ca9512f debug: add logging to test-auth credential loading
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 23:45:47 +01:00
patrick-motsch
bddb039bde docs(teamsbot): update test-auth docstring variant count
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 23:06:56 +01:00
patrick-motsch
b08355ee45 teams test auth bot 2026-02-16 21:37:37 +01:00
patrick-motsch
3f9d791688 disable auth: use system bot display name, do not send credentials to browser bot
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 20:37:09 +01:00
patrick-motsch
1b70c07026 Merge branch 'int' of https://github.com/valueonag/gateway into int 2026-02-16 10:03:43 +01:00
patrick-motsch
a67c7f8b81 feat(teamsbot): stop via AI intent (multilingual), initial session context summarization
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 10:03:21 +01:00
3aaa4790c2 Merge branch 'int' of https://github.com/valueonag/gateway into int 2026-02-16 09:30:41 +01:00
2c1927663d fix:user invitations 2026-02-16 09:30:21 +01:00
patrick-motsch
4186ec6188 feat(teamsbot): stop command detection, session context for AI, context summarization for long sessions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:29:03 +01:00
patrick-motsch
c7d1642f61 fix(teamsbot): improve AI prompt - less floskel, stricter response rules, no repetition, language switching support
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:02:43 +01:00
patrick-motsch
856b9f3c05 feat(teamsbot): system bot accounts with encrypted credentials, per-user settings, credentials removed from UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:16:02 +01:00
patrick-motsch
ef813a9304 feat(teamsbot): chat message handling, response channel (voice/chat/both), join mode (systemBot/anonymous/userAccount)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 00:07:42 +01:00
patrick-motsch
cc86b144ac fix(teamsbot): filter bot's own captions from AI trigger, mark bot responses in context to prevent repetition
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 22:52:02 +01:00
patrick-motsch
33b6da0d18 fix(msft): use delegated OnlineMeetings.Read scope instead of app-only .Read.All
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 15:31:17 +01:00
patrick-motsch
02dedc972d fix(teamsbot): SSE rate-limit 60/min, TTS message format for bot protocol
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 15:19:31 +01:00
patrick-motsch
729c6355b5 fix: increase bot HTTP timeout to 60s for auth flow
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 12:20:58 +01:00
patrick-motsch
ad5c9d10cd feat(teamsbot): dedicated bot account support with authenticated join
- New config fields: botAccountEmail, botAccountPassword for dedicated MSFT account
- BrowserBotConnector passes credentials + backgroundImageUrl to bot service
- Service passes config credentials to connector in joinMeeting
- Enables: full language settings, virtual background, no lobby wait
- Fallback: anonymous join when no bot account configured

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:56:04 +01:00
patrick-motsch
91425809c3 fix(teamsbot): AI prompt priority rules, bot-name trigger overrides cooldown
- SPEECH_TEAMS prompt: Rule 1 (bot name mentioned) now has highest priority
  and ALWAYS triggers a response, even for greetings/smalltalk
- Bot-name detection in transcript overrides cooldown timer (immediate trigger)
- Added multilingual instruction: AI responds in the language it's addressed in
- Voice interface: clean camelCase mapping (audio_content -> audioContent)
- Config save: added "config" to allowed update fields in interfaceFeatures
- Default TTS voices for common languages in connectorVoiceGoogle

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:48:44 +01:00
patrick-motsch
e01c6dcb95 feat(teamsbot): HTTP fallback for transcripts, debug logging for WebSocket
- HTTP POST endpoints: /bot/transcript/{sessionId} and /bot/status/{sessionId}
- Fallback for when Azure App Service blocks WebSocket upgrade
- Debug logging [WS-DEBUG] in WebSocket handler for message tracking
- Handle websocket=None in AI response pipeline (HTTP mode)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 11:05:58 +01:00
patrick-motsch
3777839a5c feat(billing): scope parameter on /view/statistics endpoint
- New query parameter scope: personal/mandate/all
- personal: filters to only current user's transactions (ignores admin role)
- mandate: filters by mandateId parameter
- all: existing RBAC-filtered behavior (default)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 10:44:26 +01:00
patrick-motsch
e24ef42617 feat(teamsbot): AI voice test, config save, camelCase mapping, default voices
- Voice test endpoint generates sample text dynamically via AI in selected language
- Fixed config save: added "config" to allowed update fields in interfaceFeatures
- Clean camelCase mapping in interfaceVoiceObjects (audio_content -> audioContent)
- Default TTS voices for common languages in connectorVoiceGoogle
- Fixed updateFeatureInstanceConfig -> updateFeatureInstance with config field

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 10:08:50 +01:00
patrick-motsch
89166a8f70 feat(teamsbot): URL extraction, status mapping, voice test, improved logging
- URL extraction: _extractTeamsMeetingUrl() handles SafeLinks, invitation text, and clean URLs
- Status mapping: added in_meeting, launching, navigating to bot status map
- Voice test endpoint: POST /{instanceId}/voice/test for TTS preview
- Improved error logging in browserBotConnector (shows exception type + repr)
- Improved AI trigger logging in service (shows buffer size, cooldown state, trigger reasons)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 03:26:23 +01:00
patrick-motsch
7f63dba4aa fixed path realEstate and bot connect 2026-02-15 02:57:02 +01:00
patrick-motsch
5d987e72fe fix(teamsbot): Fix Invalid Date + pass language to browser bot
- Add getIsoTimestamp() to timeUtils for JS-compatible ISO 8601 strings
- Replace getUtcTimestamp() (epoch float) with getIsoTimestamp() for all
  teamsbot session/transcript/response timestamp fields (startedAt, endedAt,
  creationDate, lastModified, SSE event timestamps)
- Pass config.language to browser bot in join request for captions spoken language

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 01:26:27 +01:00
patrick-motsch
294f1a001c fix(teamsbot): Use APP_API_URL for WebSocket URL to ensure https/wss
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 00:12:45 +01:00
patrick-motsch
c7def85a4b feat(teamsbot): Replace bridge with browser bot architecture
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 00:04:39 +01:00
f2fb7fd739 fix:keine features wurden in app.py registriert 2026-02-14 17:50:58 +01:00
f9d2f2061e Merge branch 'int' of https://github.com/valueonag/gateway into int 2026-02-14 17:32:49 +01:00
69aa73ed73 fixed complete langgraph workflow and information fetching 2026-02-14 17:31:39 +01:00
Stephan Schellworth
3ff3cfd51c feat(realestate): RBAC catalog, template roles sync, instance role access rules 2026-02-14 13:18:39 +01:00
c2f2ed3b14 feat: extract bzo information 2026-02-14 13:16:08 +01:00
238ff61740 fix:included oereb kataster 2026-02-14 13:13:46 +01:00
fb6bac7d92 feat: fetch oereb kataster and return Wohnzohne 2026-02-14 13:13:46 +01:00
patrick-motsch
ae4dc9fa48 fix: skip STT fallbacks for teamsbot, run audio processing in background
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 18:17:47 +01:00
patrick-motsch
77151df0f4 fix: STT audioFormat scoping, automation import name, orphan FK cleanup
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 18:03:23 +01:00
patrick-motsch
367edd83e2 fix: add missing await on speechToText and textToSpeech async calls
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:46:02 +01:00
patrick-motsch
65128db713 fix: use original session user for bridge callbacks instead of system user (RBAC)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:26:56 +01:00
patrick-motsch
77cbc5803a fix: use poweron.swiss domain for system user email (Pydantic rejects .local TLD)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 17:12:04 +01:00
patrick-motsch
d88bacc4a9 billing fix 2026-02-13 14:43:45 +01:00
patrick-motsch
92ee130c0a fix: convert timestamp to string for Pydantic v2 validation in teamsbot service
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:13:25 +01:00
patrick-motsch
3c566b58d0 mail for websocket fixed 2026-02-13 14:01:37 +01:00
patrick-motsch
e85aa8366d fix route mail 2026-02-13 13:51:05 +01:00