Skip to content

Conversation

@yarikdevcom
Copy link
Contributor

@yarikdevcom yarikdevcom commented Oct 7, 2025

  • Updated import paths across multiple files to reflect the new 'vision_agents' namespace.
  • Adjusted mypy and linting commands in development scripts and CI workflows to target 'vision_agents'.
  • Renamed utility functions and logging references to align with the new structure.
  • Added new files for vision agents and updated example scripts accordingly.
  • Ensured backward compatibility by maintaining old references where necessary.

Summary by CodeRabbit

  • Documentation
    • Updated all guides and READMEs to reference vision-agents (imports, examples, install commands).
  • Chores
    • Migrated example projects and dependencies from stream-agents* to vision-agents* packages.
    • Pinned Deepgram SDK to 4.8.1 in the Deepgram plugin.
  • Refactor
    • Renamed public version helper to get_vision_agents_version; user agent strings now use vision-agents branding.
  • Bug Fixes
    • Corrected logging to apply the configured level to the vision_agents logger.
  • Tests
    • Updated test patches and paths to the vision-agents modules; no behavior changes.

@linear
Copy link

linear bot commented Oct 7, 2025

AI-176 Migrate branding to "Vision Agents"

  • Update package names
  • Reserve the name on PyPi if we can
  • Check the docs and remove references to Stream Agents
  • what else?

@coderabbitai
Copy link

coderabbitai bot commented Oct 7, 2025

Walkthrough

Project-wide rename from stream-agents to vision-agents across core utils, docs, examples, and plugins. Code changes include retargeted logging to the vision_agents logger, a version utility rename/swap, GetStream transport user-agent update, Deepgram SDK pin, and test patch paths adjusted to new module locations.

Changes

Cohort / File(s) Summary
Core CLI logging
agents-core/vision_agents/core/cli.py
Log level application retargeted from "stream_agents" to "vision_agents" logger.
Core utils: version function rename
agents-core/vision_agents/core/utils/__init__.py, agents-core/vision_agents/core/utils/utils.py
Public API rename: get_stream_agents_versionget_vision_agents_version; version lookup switches package from "stream-agents" to "vision-agents"; __all__ updated.
GetStream transport user-agent
plugins/getstream/vision_agents/plugins/getstream/stream_edge_transport.py
Imports new version util; AsyncStream user_agent changed from "stream-agents-{version}" to "vision-agents-{version}".
Docs: AI instructions
docs/ai/instructions/* (ai-events-example.md, ai-llm.md, ai-stt.md, ai-tts.md)
Replaced references/imports from stream_agents to vision_agents; paths and narrative adjusted; no functional code.
Examples: dependency/package renames
examples/02_golf_coach_example/pyproject.toml, examples/03_cluely_example/pyproject.toml, examples/other_examples/... (09_github_mcp_demo/pyproject.toml, openai_realtime_webrtc/pyproject.toml, plugins_examples/stt_deepgram_transcription/pyproject.toml, .../tts_elevenlabs/pyproject.toml, .../vad_silero/pyproject.toml)
Project names and dependencies switched from stream-agents(-plugins-) to vision-agents(-plugins-); tool.uv.sources keys updated; paths unchanged.
Deepgram plugin: pin and tests
plugins/deepgram/pyproject.toml, plugins/deepgram/tests/test_realtime.py, plugins/deepgram/tests/test_stt.py
Pinned deepgram-sdk to 4.8.1; tests update patch targets from stream_agents.* to vision_agents.*; logic unchanged.
Moonshine tests: patch path updates
plugins/moonshine/tests/test_stt.py
Patched module paths updated to vision_agents.*; no logic changes.
Plugin READMEs and minor text
plugins/README.md, plugins/getstream/README.md, plugins/ultralytics/README.md, plugins/xai/README.md, plugins/ultralytics/vision_agents/plugins/ultralytics/__init__.py
README install/refs switched to vision-agents; ultralytics module docstring updated.
Example plugin package rename
plugins/example/pyproject.toml
Project name changed to "vision-agents-plugins-elevenlabs".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • maxkahan

Poem

The name sheds its skin like a moonlit snake,
Stream to Vision, a quiet, surgical break.
Loggers blink, a new eye opens, cold and clear,
Versions whisper their numbers in the ear.
Packages align—pins like needles—still, precise,
The code inhales, exudes a glass-blue ice.

Pre-merge checks

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title clearly and concisely indicates that the pull request refactors the project structure by replacing the stream_agents namespace with vision_agents, which aligns directly with the primary change across the codebase.
Docstring Coverage ✅ Passed Docstring coverage is 97.06% which is sufficient. The required threshold is 80.00%.

Note

Free review on us!

CodeRabbit is offering free reviews until Wed Oct 08 2025 to showcase some of the refinements we've made.

Comment @coderabbitai help to get the list of available commands and usage tips.

@yarikdevcom yarikdevcom force-pushed the yarikrudenok/ai-176-migrate-branding-to-vision-agents branch from 12f8776 to 1bd131b Compare October 7, 2025 12:17
@yarikdevcom yarikdevcom marked this pull request as ready for review October 7, 2025 12:17
@yarikdevcom yarikdevcom merged commit b121bc6 into main Oct 7, 2025
4 of 5 checks passed
@yarikdevcom yarikdevcom deleted the yarikrudenok/ai-176-migrate-branding-to-vision-agents branch October 7, 2025 12:23
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
examples/other_examples/09_github_mcp_demo/pyproject.toml (1)

8-8: Update project description to reference Vision Agents.

The description field still references "Stream Agents" while all dependencies and sources have been migrated to "vision-agents".

Apply this diff to update the description:

-description = "GitHub MCP Demo for Stream Agents"
+description = "GitHub MCP Demo for Vision Agents"
agents-core/vision_agents/core/utils/__init__.py (1)

1-5: Update the module docstring to match the new branding.

The module docstring still references "Stream Agents" on Line 2, but should be updated to "Vision Agents" for consistency with the namespace migration.

Apply this diff:

 """
-Stream Agents Utilities Package
+Vision Agents Utilities Package
 
-This package provides utility functions and scripts for Stream Agents.
+This package provides utility functions and scripts for Vision Agents.
 """
🧹 Nitpick comments (1)
agents-core/vision_agents/core/cli.py (1)

33-34: Logger namespace updated correctly; consider removing debug logger.

The update from stream_agents to vision_agents aligns with the migration. However, the test123 logger on Line 34 appears to be a debug/placeholder logger that should be removed or properly documented.

Apply this diff to remove the debug logger:

     # Set specific logger levels
     logging.getLogger("vision_agents").setLevel(numeric_level)
-    logging.getLogger("test123").setLevel(numeric_level)
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4a178e9 and 1bd131b.

⛔ Files ignored due to path filters (9)
  • examples/02_golf_coach_example/uv.lock is excluded by !**/*.lock
  • examples/03_cluely_example/uv.lock is excluded by !**/*.lock
  • examples/other_examples/09_github_mcp_demo/uv.lock is excluded by !**/*.lock
  • examples/other_examples/openai_realtime_webrtc/uv.lock is excluded by !**/*.lock
  • examples/other_examples/plugins_examples/stt_deepgram_transcription/uv.lock is excluded by !**/*.lock
  • examples/other_examples/plugins_examples/tts_elevenlabs/uv.lock is excluded by !**/*.lock
  • examples/other_examples/plugins_examples/vad_silero/uv.lock is excluded by !**/*.lock
  • plugins/example/uv.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (25)
  • agents-core/vision_agents/core/cli.py (1 hunks)
  • agents-core/vision_agents/core/utils/__init__.py (1 hunks)
  • agents-core/vision_agents/core/utils/utils.py (1 hunks)
  • docs/ai/instructions/ai-events-example.md (11 hunks)
  • docs/ai/instructions/ai-llm.md (4 hunks)
  • docs/ai/instructions/ai-stt.md (2 hunks)
  • docs/ai/instructions/ai-tts.md (2 hunks)
  • examples/02_golf_coach_example/pyproject.toml (1 hunks)
  • examples/03_cluely_example/pyproject.toml (1 hunks)
  • examples/other_examples/09_github_mcp_demo/pyproject.toml (1 hunks)
  • examples/other_examples/openai_realtime_webrtc/pyproject.toml (1 hunks)
  • examples/other_examples/plugins_examples/stt_deepgram_transcription/pyproject.toml (1 hunks)
  • examples/other_examples/plugins_examples/tts_elevenlabs/pyproject.toml (1 hunks)
  • examples/other_examples/plugins_examples/vad_silero/pyproject.toml (1 hunks)
  • plugins/README.md (1 hunks)
  • plugins/deepgram/pyproject.toml (1 hunks)
  • plugins/deepgram/tests/test_realtime.py (5 hunks)
  • plugins/deepgram/tests/test_stt.py (9 hunks)
  • plugins/example/pyproject.toml (1 hunks)
  • plugins/getstream/README.md (1 hunks)
  • plugins/getstream/vision_agents/plugins/getstream/stream_edge_transport.py (3 hunks)
  • plugins/moonshine/tests/test_stt.py (15 hunks)
  • plugins/ultralytics/README.md (2 hunks)
  • plugins/ultralytics/vision_agents/plugins/ultralytics/__init__.py (1 hunks)
  • plugins/xai/README.md (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.py

📄 CodeRabbit inference engine (.cursor/rules/python.mdc)

**/*.py: Never adjust sys.path (e.g., sys.path.append/insert/assignment)
Docstrings must follow the Google style guide

Files:

  • agents-core/vision_agents/core/utils/__init__.py
  • plugins/ultralytics/vision_agents/plugins/ultralytics/__init__.py
  • agents-core/vision_agents/core/cli.py
  • plugins/moonshine/tests/test_stt.py
  • plugins/deepgram/tests/test_realtime.py
  • plugins/deepgram/tests/test_stt.py
  • agents-core/vision_agents/core/utils/utils.py
  • plugins/getstream/vision_agents/plugins/getstream/stream_edge_transport.py
🧬 Code graph analysis (3)
plugins/deepgram/tests/test_realtime.py (1)
plugins/deepgram/tests/test_stt.py (1)
  • MockDeepgramClient (81-87)
plugins/deepgram/tests/test_stt.py (1)
plugins/deepgram/tests/test_realtime.py (1)
  • MockDeepgramClient (83-89)
plugins/getstream/vision_agents/plugins/getstream/stream_edge_transport.py (1)
agents-core/vision_agents/core/utils/utils.py (1)
  • get_vision_agents_version (119-129)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: unit / Test "not integration"
  • GitHub Check: unit / Ruff & mypy
  • GitHub Check: unit / Ruff & mypy
  • GitHub Check: unit / Test "not integration"
🔇 Additional comments (22)
plugins/ultralytics/vision_agents/plugins/ultralytics/__init__.py (1)

2-2: LGTM!

Docstring update correctly reflects the new namespace.

plugins/getstream/README.md (1)

8-8: LGTM!

Package name updated to align with the vision-agents namespace.

docs/ai/instructions/ai-stt.md (3)

5-5: LGTM!

Documentation reference updated to reflect the vision-agents framework.


9-14: LGTM!

Import paths and base class references correctly updated to the vision_agents namespace.


330-334: LGTM!

Example code paths and imports updated consistently to vision_agents.

examples/other_examples/openai_realtime_webrtc/pyproject.toml (2)

6-8: LGTM!

Dependencies correctly updated to the vision-agents namespace, maintaining consistency across the core package and plugins.


16-18: LGTM!

Source paths and editable installations properly updated to reference vision-agents, preserving local development workflow.

plugins/deepgram/pyproject.toml (1)

15-15: Document rationale for exact deepgram-sdk pin
No known vulnerabilities found. You’ve moved from >=4.5.0 to ==4.8.1, which blocks future fixes. If there’s no incompatibility, switch to >=4.8.1,<5.0.0; otherwise, note the reason in a comment or changelog.

plugins/deepgram/tests/test_realtime.py (1)

93-93: LGTM! Patch targets correctly updated to vision_agents namespace.

All five test functions now correctly mock vision_agents.plugins.deepgram.stt.DeepgramClient instead of the old stream_agents path. The changes are consistent and align with the broader migration.

Also applies to: 156-156, 227-227, 268-268, 307-307

plugins/deepgram/tests/test_stt.py (1)

248-248: LGTM! Comprehensive patch target migration.

All test patch decorators correctly reference vision_agents.plugins.deepgram.stt.DeepgramClient and vision_agents.plugins.deepgram.stt.stt.moonshine, maintaining consistency with the framework rename.

Also applies to: 258-258, 270-270, 308-308, 340-340, 385-385, 411-411, 443-443, 475-475

docs/ai/instructions/ai-events-example.md (1)

3-3: LGTM! Documentation thoroughly updated for vision_agents.

All code examples, import statements, and narrative references have been consistently migrated from stream_agents to vision_agents. The guide remains clear and accurate for developers building plugins.

Also applies to: 32-32, 60-60, 95-95, 249-249, 263-263, 292-293, 328-329, 467-467, 506-506, 544-544

plugins/moonshine/tests/test_stt.py (1)

174-174: LGTM! All Moonshine test patches migrated correctly.

Fifteen test functions now correctly mock vision_agents.plugins.moonshine.stt.* paths. The migration is complete and consistent throughout the test suite.

Also applies to: 192-192, 203-203, 221-221, 240-240, 256-256, 287-287, 322-322, 367-367, 398-398, 440-440, 475-475, 509-509, 528-528, 550-550

docs/ai/instructions/ai-tts.md (1)

5-5: LGTM! TTS documentation accurately reflects vision_agents framework.

All import statements, example file paths, and narrative references have been properly updated from stream_agents to vision_agents, ensuring developers have correct guidance.

Also applies to: 9-9, 12-13, 238-238, 241-242

examples/02_golf_coach_example/pyproject.toml (1)

2-2: LGTM! Golf coach example configuration fully migrated.

Project name, dependencies, and UV sources correctly reference vision-agents and vision-agents-plugins-*. The local paths remain properly configured for the editable installs.

Also applies to: 9-12, 18-22

examples/03_cluely_example/pyproject.toml (1)

2-2: LGTM! Cluely example configuration properly updated.

All dependency references and UV sources have been migrated from stream-agents to vision-agents, maintaining the correct local editable paths.

Also applies to: 9-14, 21-26

examples/other_examples/09_github_mcp_demo/pyproject.toml (1)

12-18: LGTM! Dependencies and sources properly migrated.

All dependency references and UV sources correctly use vision-agents and vision-agents-plugins-* naming with proper local paths.

Also applies to: 25-30

plugins/xai/README.md (1)

17-17: LGTM! Documentation updated correctly.

The installation command and dependency references have been properly updated to reflect the new vision-agents namespace.

Also applies to: 150-150

plugins/getstream/vision_agents/plugins/getstream/stream_edge_transport.py (1)

25-25: LGTM! Version utility integration updated correctly.

The import and usage of get_vision_agents_version align with the public API changes, and the user agent string now properly reflects the vision-agents branding.

Also applies to: 50-51

plugins/ultralytics/README.md (1)

3-3: LGTM! Plugin documentation aligned with new branding.

The descriptor and installation command have been updated consistently to reference vision-agents.

Also applies to: 16-16

docs/ai/instructions/ai-llm.md (1)

5-5: LGTM! Developer documentation thoroughly updated.

All references to stream_agents have been systematically replaced with vision_agents throughout the LLM plugin development guide, maintaining consistency in import paths and example code.

Also applies to: 9-9, 12-13, 165-165, 176-176, 179-179, 203-203, 205-207

agents-core/vision_agents/core/utils/__init__.py (1)

9-9: LGTM! Public API correctly updated.

The import and __all__ export have been properly updated to expose get_vision_agents_version instead of get_stream_agents_version, completing the public API migration.

Also applies to: 13-13

agents-core/vision_agents/core/utils/utils.py (1)

119-129: LGTM! Version utility function successfully migrated.

The function has been correctly renamed to get_vision_agents_version, the docstring updated, and the package lookup changed to query "vision-agents" instead of "stream-agents". The error handling remains appropriate.


[project]
name = "stream-agents-plugins-elevenlabs"
name = "vision-agents-plugins-elevenlabs"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Package name updated correctly; verify file location.

The package name has been updated to vision-agents-plugins-elevenlabs, which aligns with the namespace migration. However, the file path is plugins/example/pyproject.toml while the package name references "elevenlabs". This suggests either:

  1. This is a template/example configuration that should be updated, or
  2. The file is in the wrong location.

Run the following script to check if there's an actual elevenlabs plugin elsewhere:


🏁 Script executed:

#!/bin/bash
# Check for elevenlabs plugin locations

echo "=== Finding elevenlabs references ==="
fd -t d "elevenlabs" plugins/

echo -e "\n=== Finding pyproject.toml files with elevenlabs ==="
fd -e toml . plugins/ --exec grep -l "elevenlabs"

Length of output: 229


Relocate package name update to plugins/elevenlabs/pyproject.toml
The name = "vision-agents-plugins-elevenlabs" change was applied in the example template (plugins/example/pyproject.toml) rather than the actual plugin manifest (plugins/elevenlabs/pyproject.toml); move the update to the correct file and revert or remove the stale example.

🤖 Prompt for AI Agents
In plugins/example/pyproject.toml around line 6 the package name was incorrectly
changed to "vision-agents-plugins-elevenlabs"; revert this file to the
example/template value (remove or restore the original placeholder package name)
and instead apply the package name update to plugins/elevenlabs/pyproject.toml
(add or replace the name field with name = "vision-agents-plugins-elevenlabs" in
that file). Ensure only the real plugin manifest
(plugins/elevenlabs/pyproject.toml) contains the new package name and the
example template remains generic.


```
stream-agents/plugins/
vision-agents/plugins/
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify consistency between directory path and package references.

The directory path has been updated to vision-agents/plugins/, but the document continues to reference getstream throughout (imports like from getstream.plugins import DeepgramSTT, plugin installation commands, etc.). This creates potential confusion about whether the package namespace is vision_agents or getstream.

Run the following script to check which package namespace is actually used in the codebase:


🏁 Script executed:

#!/bin/bash
# Description: Verify the actual import namespace used in plugin files

# Check for vision_agents imports
echo "=== vision_agents imports ==="
rg -n "from vision_agents" plugins/ --type=py -C2

# Check for getstream imports  
echo -e "\n=== getstream imports ==="
rg -n "from getstream" plugins/ --type=py -C2

# Check package names in pyproject.toml files
echo -e "\n=== Package names in configs ==="
fd -e toml . plugins/ --exec grep -H "name = "

Length of output: 49989


🏁 Script executed:

#!/bin/bash
# Inspect README for potential mismatched references

echo "=== First 20 lines of plugins/README.md ==="
sed -n '1,20p' plugins/README.md

echo -e "\n=== getstream references ==="
rg -n "getstream" plugins/README.md -C2

echo -e "\n=== pip install references ==="
rg -n "pip install" plugins/README.md -C2

Length of output: 2409


Replace getstream references with vision_agents in plugins/README.md
README examples and test commands use getstream.plugins and getstream/plugins/*, but the codebase imports vision_agents.plugins under vision-agents/plugins/ (and pyproject names are vision-agents-plugins-*). Update all getstream namespace and path references in README.md to vision_agents to avoid confusion.

🤖 Prompt for AI Agents
In plugins/README.md around line 8, update all occurrences of the getstream
namespace and path (e.g., getstream.plugins, getstream/plugins/*) to the correct
project naming: use the Python import namespace vision_agents.plugins and the
repository/file path vision-agents/plugins/* (and update any package names in
commands to the vision-agents-plugins-* form); ensure examples, CLI/test
commands, and import references consistently use vision_agents (underscore) for
imports and vision-agents (hyphen) for filesystem/package names.

Nash0x7E2 added a commit that referenced this pull request Oct 8, 2025
commit 4757845
Merge: 8d9a9e2 c834231
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Wed Oct 8 10:29:01 2025 +0200

    Merge branch 'main' of github.com:GetStream/agents

commit 8d9a9e2
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Wed Oct 8 10:28:54 2025 +0200

    move fal smart detection to plugin

commit c834231
Merge: b6deb4d facedf2
Author: maxkahan <max.kahan@getstream.io>
Date:   Wed Oct 8 10:17:22 2025 +0200

    Merge pull request #73 from GetStream/fix/shared_forwarder

    fix: video feed mismatch and VideoForwarder resource leaks

commit b6deb4d
Author: Neevash Ramdial (Nash) <mail@neevash.dev>
Date:   Wed Oct 8 09:38:51 2025 +0200

    Add CI secrets  (#72)

    * Add in secrets for daily integration

    * Rename to realtime instead of realtime 2

    * Add events.wait to xAI test

commit 73ddc8e
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 17:27:40 2025 +0200

    pyproject cleanup

commit facedf2
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 17:26:11 2025 +0200

    fix: critical video feed mismatch and VideoForwarder resource leaks

    CRITICAL FIXES:

    1. Video Feed Mismatch (LLM getting wrong video)
       - When YOLO/video processors are used, LLM was receiving empty processed track
       - Root cause: shared_forwarder was created from RAW track but LLM was given processed track
       - Fix: Create separate forwarders for raw and processed video tracks
       - Now LLM correctly receives YOLO-annotated frames when using pose detection

    2. VideoForwarder Resource Leaks
       - Consumer tasks were never removed from _tasks set (memory leak)
       - Fix: Add task.add_done_callback(self._task_done) to clean up tasks
       - Producer exceptions were silently swallowed
       - Fix: Log and re-raise exceptions for proper error handling

    3. Race Condition in VideoForwarder.stop()
       - Used list() snapshot for cancellation but original set for gather()
       - Fix: Use tasks_snapshot consistently throughout stop()

    4. Multiple start() Protection
       - No guard against calling start() multiple times
       - Fix: Add _started flag and early return with warning

    5. Missing VideoForwarder Cleanup in Agent
       - Forwarders were created but never stopped on agent.close()
       - Fix: Track all forwarders and stop them in close() method

    These fixes prevent resource leaks, ensure correct video routing, and improve
    error visibility for production debugging.

commit fbc1759
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 17:19:45 2025 +0200

    wip on pyproject files

commit 3739605
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 15:55:19 2025 +0200

    pypi environment

commit 6144265
Merge: 231efc8 9b5db80
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 15:17:09 2025 +0200

    cleanup

commit 231efc8
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 15:12:31 2025 +0200

    remove duplicate publish tracks

commit 9b5db80
Merge: 2d08f1d 4f60ab2
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 14:40:31 2025 +0200

    Merge pull request #71 from GetStream/fix/agents-tracks

    fix: remove duplicate track publishing code

commit 2d08f1d
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 14:30:01 2025 +0200

    fix openai realtime test

commit 4f60ab2
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 14:25:01 2025 +0200

    fix: remove duplicate track publishing code and initialize error counters

    - Remove duplicate track publishing and audio/video listening code in join() method
    - Initialize timeout_errors and consecutive_errors before video processing loop
    - Increment timeout_errors in TimeoutError exception handler
    - Fixes potential crash when error counters are referenced but not initialized

commit ca562de
Merge: 4b8f686 b121bc6
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 14:24:02 2025 +0200

    Merge branch 'main' of github.com:GetStream/agents

commit 4b8f686
Author: Thierry Schellenbach <thierry@getstream.io>
Date:   Tue Oct 7 14:23:54 2025 +0200

    nicer tests for openai realtime

commit b121bc6
Merge: 4a178e9 1bd131b
Author: Yarik <43354956+yarikdevcom@users.noreply.github.com>
Date:   Tue Oct 7 14:22:56 2025 +0200

    Merge pull request #69 from GetStream/yarikrudenok/ai-176-migrate-branding-to-vision-agents

    Refactor project structure to replace 'stream_agents' with 'vision_ag…

commit 1bd131b
Author: Yarik <yarik.rudenok@getstream.io>
Date:   Tue Oct 7 14:16:49 2025 +0200

    feat: [AI-176] Rename to vision

commit 4a178e9
Merge: a940bd3 2eacdfb
Author: maxkahan <max.kahan@getstream.io>
Date:   Tue Oct 7 11:50:28 2025 +0100

    Merge pull request #70 from GetStream/fix/agent-example

    fix: Agent Example and TURN detection

commit 2eacdfb
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 12:42:58 2025 +0200

    Fix: Remove f-string prefix from log with no placeholders

    - Fixed lint error F541 on line 797
    - Changed f-string to regular string since no interpolation needed

commit 66deea5
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 12:41:33 2025 +0200

    Move realtime mode check to top of _on_turn_event

    - Realtime LLMs handle their own turn detection and interruption
    - Skip all turn event processing in realtime mode (not just LLM triggering)
    - Removes duplicate realtime check in TurnEndedEvent branch
    - Cleaner and more efficient

commit 8c01c31
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 12:20:42 2025 +0200

    Optimize: Check realtime mode early in _on_turn_event TurnEndedEvent

    - Add early return for realtime mode after logging the event
    - Skips unnecessary transcript fetching and participant metadata extraction
    - Removes redundant realtime_mode check later in the flow
    - Consistent with _on_transcript optimization

commit f4fa0a5
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 12:18:09 2025 +0200

    Optimize: Check realtime mode early in _on_transcript

    - Add early return if in realtime mode to skip LLM triggering logic
    - In realtime mode, the LLM handles STT, turn detection, and responses itself
    - Removes redundant check in else branch
    - Improves code clarity and efficiency

commit 12b1638
Author: Deven Joshi <deven9852@gmail.com>
Date:   Tue Oct 7 10:48:07 2025 +0200

    Fix agent LLM triggering and turn detection

    - Implement automatic LLM triggering in _on_transcript() for both modes:
      * Without turn detection: triggers immediately on transcript completion
      * With turn detection: accumulates transcripts and waits for TurnEndedEvent
    - Add _pending_user_transcripts dict to track multi-chunk transcripts per user
    - Implement turn detection LLM response in _on_turn_event()
    - Add TTS interruption when user starts speaking (barge-in)
    - Fix FAL turn detection event emission logic
    - Fix double TTS triggering in OpenAI LLM plugin (was emitting LLMResponseCompletedEvent twice)
    - Add FAL turn detection to simple agent example
    - Update example dependencies to use vision-agents naming

    Known limitation: LLM response generation is not yet cancelled when user interrupts.
    Only TTS audio playback stops, but LLM continues generating in background.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants