dv-pipecat-flows 0.0.0.dev2057__tar.gz → 0.0.0.dev2071__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dv_pipecat_flows-0.0.0.dev2057/src/dv_pipecat_flows.egg-info → dv_pipecat_flows-0.0.0.dev2071}/PKG-INFO +1 -1
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071/src/dv_pipecat_flows.egg-info}/PKG-INFO +1 -1
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/manager.py +12 -4
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/types.py +6 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.agents/skills/loki-logs/SKILL.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.agents/skills/loki-logs/query-reference.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.claude/skills/loki-logs/SKILL.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.claude/skills/loki-logs/query-reference.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.gitattributes +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.gitignore +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.python-version +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.readthedocs.yaml +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/AGENTS.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/CHANGELOG.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/CLAUDE.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/CONTRIBUTING.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/LICENSE +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/MANIFEST.in +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/README.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/dev-requirements.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/docker-compose.dev.yml +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/.eslintrc.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/.prettierrc +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/css/tailwind.css +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/food_ordering.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/movie_explorer.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/patient_intake.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/restaurant_reservation.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/travel_planner.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/favicon.png +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/favicon.svg +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/index.html +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/canvas.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/editorState.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/sidePanel.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/toolbar.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/main.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/baseNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/endNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/flowNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/functionNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/index.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/mergeNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/startNode.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/types.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/export.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/helpers.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/import.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/validation.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/jsdoc.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/package-lock.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/package.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/postcss.config.cjs +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/public/favicon.png +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/public/favicon.svg +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/tailwind.config.cjs +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/vercel.json +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/vite.config.js +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/engine_primitives_plan.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/env.example +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/images/food-ordering-flow.png +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/pipecat-flows.png +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/pipecat_upgrade.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/pyproject.toml +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/remote-asterisk-code/README.md +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/remote-asterisk-code/extensions.conf +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/remote-asterisk-code/rtp.conf +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/requirements.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/scripts/check-pypi-package.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/scripts/fix-ruff.sh +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/scripts/pre-commit.sh +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/setup.cfg +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/dv_pipecat_flows.egg-info/SOURCES.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/dv_pipecat_flows.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/dv_pipecat_flows.egg-info/requires.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/dv_pipecat_flows.egg-info/top_level.txt +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/__init__.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/actions.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/adapters.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/condition_evaluator.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/exceptions.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/flow_validator.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/processors/__init__.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/processors/router_mode_guard.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/processors/speak_interruption_guard.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/processors/user_turn_observer.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/router_mode.py +0 -0
- {dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/uv.lock +0 -0
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/manager.py
RENAMED
|
@@ -981,6 +981,7 @@ class FlowManager:
|
|
|
981
981
|
transition_callback: Optional[Callable] = None,
|
|
982
982
|
state_update_keys: Optional[List[str]] = None,
|
|
983
983
|
router_node_meta: Optional[Dict[str, Any]] = None,
|
|
984
|
+
cancel_on_interruption: Optional[bool] = None,
|
|
984
985
|
) -> None:
|
|
985
986
|
"""Register a function with the LLM if not already registered.
|
|
986
987
|
|
|
@@ -991,6 +992,9 @@ class FlowManager:
|
|
|
991
992
|
transition_to: Optional node to transition to (static flows)
|
|
992
993
|
transition_callback: Optional transition callback (dynamic flows)
|
|
993
994
|
new_functions: Set to track newly registered functions for this node
|
|
995
|
+
cancel_on_interruption: Optional per-function override. None (default)
|
|
996
|
+
keeps the flow-managed default of False; True makes the function
|
|
997
|
+
abortable by user speech (only safe for terminal functions).
|
|
994
998
|
|
|
995
999
|
Raises:
|
|
996
1000
|
FlowError: If function registration fails
|
|
@@ -1013,13 +1017,16 @@ class FlowManager:
|
|
|
1013
1017
|
)
|
|
1014
1018
|
|
|
1015
1019
|
# Register function with LLM (or LLMSwitcher).
|
|
1016
|
-
# Flow-managed functions must not be cancelled on interruption
|
|
1017
|
-
# transition functions need to complete so
|
|
1018
|
-
# set and the on_context_updated callback
|
|
1020
|
+
# Flow-managed functions must not be cancelled on interruption by
|
|
1021
|
+
# default: transition functions need to complete so
|
|
1022
|
+
# _pending_transition is set and the on_context_updated callback
|
|
1023
|
+
# fires. A schema may opt a terminal function (e.g. end_call) into
|
|
1024
|
+
# interruptibility via cancel_on_interruption; None preserves the
|
|
1025
|
+
# safe default of False.
|
|
1019
1026
|
self._llm.register_function(
|
|
1020
1027
|
name,
|
|
1021
1028
|
transition_func,
|
|
1022
|
-
cancel_on_interruption=
|
|
1029
|
+
cancel_on_interruption=bool(cancel_on_interruption),
|
|
1023
1030
|
)
|
|
1024
1031
|
|
|
1025
1032
|
new_functions.add(name)
|
|
@@ -2708,6 +2715,7 @@ In all of these cases, you can provide a `name` in your new node's config for de
|
|
|
2708
2715
|
transition_callback=schema.transition_callback,
|
|
2709
2716
|
state_update_keys=schema.state_update_keys,
|
|
2710
2717
|
router_node_meta=schema.router_node_meta,
|
|
2718
|
+
cancel_on_interruption=schema.cancel_on_interruption,
|
|
2711
2719
|
)
|
|
2712
2720
|
|
|
2713
2721
|
async def register_direct_function(func):
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/types.py
RENAMED
|
@@ -289,6 +289,12 @@ class FlowsFunctionSchema:
|
|
|
289
289
|
# None means this function is a direct agent→non-router transition;
|
|
290
290
|
# no synthetic events fire.
|
|
291
291
|
router_node_meta: Optional[Dict[str, Any]] = None
|
|
292
|
+
# When True, this function call is cancelled if the user speaks (interrupts)
|
|
293
|
+
# while it is in flight. None (default) is treated by the flow manager as
|
|
294
|
+
# False — flow-managed functions must complete so their transitions fire.
|
|
295
|
+
# Set True only for terminal functions (e.g. end_call) that should be
|
|
296
|
+
# abortable by user speech.
|
|
297
|
+
cancel_on_interruption: Optional[bool] = None
|
|
292
298
|
|
|
293
299
|
def __post_init__(self):
|
|
294
300
|
"""Validate the schema configuration.
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.agents/skills/loki-logs/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/.claude/skills/loki-logs/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/examples/food_ordering.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/canvas.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/editorState.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/sidePanel.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/editor/toolbar.js
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/baseNode.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/endNode.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/flowNode.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/functionNode.js
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/mergeNode.js
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/nodes/startNode.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/helpers.js
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/js/utils/validation.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/editor/tailwind.config.cjs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/images/food-ordering-flow.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/remote-asterisk-code/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/remote-asterisk-code/rtp.conf
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/scripts/check-pypi-package.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/__init__.py
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/actions.py
RENAMED
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/adapters.py
RENAMED
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dv_pipecat_flows-0.0.0.dev2057 → dv_pipecat_flows-0.0.0.dev2071}/src/pipecat_flows/router_mode.py
RENAMED
|
File without changes
|
|
File without changes
|