feat: add headless mode, redesign floating widget, refactor lifecycle callbacks (#268)

* feat: add headless widget for deployment

* feat: call callbacks at the right time

* feat: add onCallConnected & onCallDisconnected callback

* feat: add a button with text for floating widget

* feat: add headless widget for deployment

* feat: call callbacks at the right time

* feat: add onCallConnected & onCallDisconnected callback

* feat: add a button with text for floating widget

* docs: web widget

* fix: format issue in pre-pr drift check

* fix: fix CD to rely on pipecat dev dependey

* chore: update message

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
This commit is contained in:
Sabiha Khan 2026-05-07 12:23:41 +05:30 committed by GitHub
parent 31e2c135b0
commit d2a119c38a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
75 changed files with 803 additions and 485 deletions

View file

@ -29,11 +29,12 @@ from contextlib import ExitStack, contextmanager
from typing import Any
from unittest.mock import AsyncMock, patch
from api.db.models import OrganizationModel, UserModel
from api.enums import WorkflowRunMode
from pipecat.frames.frames import Frame
from pipecat.observers.base_observer import BaseObserver
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor
from api.db.models import OrganizationModel, UserModel
from api.enums import WorkflowRunMode
from pipecat.tests import MockLLMService, MockTTSService
USER_CONFIGURATION: dict[str, Any] = {

View file

@ -17,6 +17,8 @@ completion flag, and ``gathered_context`` entries.
import asyncio
import pytest
from pipecat.tests.mock_transport import MockTransport
from pipecat.transports.base_transport import TransportParams
from api.enums import WorkflowRunMode, WorkflowRunState
from api.services.pipecat.audio_config import create_audio_config
@ -25,8 +27,6 @@ from api.tests.integrations._run_pipeline_helpers import (
create_workflow_run_rows,
patch_run_pipeline_externals,
)
from pipecat.tests.mock_transport import MockTransport
from pipecat.transports.base_transport import TransportParams
WORKFLOW_DEFINITION = {
"nodes": [

View file

@ -28,6 +28,10 @@ deterministic and the synthesised audio length is short.
import asyncio
import pytest
from pipecat.frames.frames import TranscriptionFrame
from pipecat.tests.mock_transport import MockTransport
from pipecat.transports.base_transport import TransportParams
from pipecat.utils.time import time_now_iso8601
from api.enums import WorkflowRunMode, WorkflowRunState
from api.services.pipecat.audio_config import create_audio_config
@ -36,11 +40,7 @@ from api.tests.integrations._run_pipeline_helpers import (
create_workflow_run_rows,
patch_run_pipeline_externals,
)
from pipecat.frames.frames import TranscriptionFrame
from pipecat.tests import MockLLMService, MockTTSService
from pipecat.tests.mock_transport import MockTransport
from pipecat.transports.base_transport import TransportParams
from pipecat.utils.time import time_now_iso8601
GREETING_TEXT = (
"Thanks for calling Happy Feet, this is Sarah. How can I help you today?"