@pipedog/core 0.0.0 → 0.2.0
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.
- package/LICENSE +25 -0
- package/NOTICE +9 -0
- package/dist/adapters/base_llm_adapter.d.ts +266 -0
- package/dist/adapters/base_llm_adapter.js +489 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/schemas/direct_function.d.ts +202 -0
- package/dist/adapters/schemas/direct_function.js +302 -0
- package/dist/adapters/schemas/function_schema.d.ts +67 -0
- package/dist/adapters/schemas/function_schema.js +72 -0
- package/dist/adapters/schemas/index.d.ts +2 -0
- package/dist/adapters/schemas/index.js +8 -0
- package/dist/adapters/schemas/tools_schema.d.ts +57 -0
- package/dist/adapters/schemas/tools_schema.js +79 -0
- package/dist/adapters/services/index.d.ts +2 -0
- package/dist/adapters/services/index.js +8 -0
- package/dist/adapters/services/open_ai_adapter.d.ts +147 -0
- package/dist/adapters/services/open_ai_adapter.js +250 -0
- package/dist/audio/dtmf/dtmf_data.d.ts +3 -0
- package/dist/audio/dtmf/dtmf_data.js +22 -0
- package/dist/audio/dtmf/index.d.ts +2 -0
- package/dist/audio/dtmf/index.js +8 -0
- package/dist/audio/dtmf/types.d.ts +31 -0
- package/dist/audio/dtmf/types.js +35 -0
- package/dist/audio/dtmf/utils.d.ts +13 -0
- package/dist/audio/dtmf/utils.js +62 -0
- package/dist/audio/filters/base_audio_filter.d.ts +51 -0
- package/dist/audio/filters/base_audio_filter.js +17 -0
- package/dist/audio/filters/index.d.ts +2 -0
- package/dist/audio/filters/index.js +8 -0
- package/dist/audio/index.d.ts +2 -0
- package/dist/audio/index.js +8 -0
- package/dist/audio/krisp_instance.d.ts +95 -0
- package/dist/audio/krisp_instance.js +229 -0
- package/dist/audio/mixers/base_audio_mixer.d.ts +56 -0
- package/dist/audio/mixers/base_audio_mixer.js +16 -0
- package/dist/audio/mixers/index.d.ts +2 -0
- package/dist/audio/mixers/index.js +8 -0
- package/dist/audio/resamplers/base_audio_resampler.d.ts +46 -0
- package/dist/audio/resamplers/base_audio_resampler.js +35 -0
- package/dist/audio/resamplers/engine.d.ts +60 -0
- package/dist/audio/resamplers/engine.js +89 -0
- package/dist/audio/resamplers/index.d.ts +2 -0
- package/dist/audio/resamplers/index.js +8 -0
- package/dist/audio/resamplers/resampy_resampler.d.ts +10 -0
- package/dist/audio/resamplers/resampy_resampler.js +15 -0
- package/dist/audio/resamplers/sinc_engine.d.ts +10 -0
- package/dist/audio/resamplers/sinc_engine.js +235 -0
- package/dist/audio/resamplers/soxr_resampler.d.ts +58 -0
- package/dist/audio/resamplers/soxr_resampler.js +79 -0
- package/dist/audio/resamplers/soxr_stream_resampler.d.ts +78 -0
- package/dist/audio/resamplers/soxr_stream_resampler.js +159 -0
- package/dist/audio/turn/base_turn_analyzer.d.ts +84 -0
- package/dist/audio/turn/base_turn_analyzer.js +61 -0
- package/dist/audio/turn/index.d.ts +2 -0
- package/dist/audio/turn/index.js +8 -0
- package/dist/audio/turn/smart_turn/_whisper_features.d.ts +30 -0
- package/dist/audio/turn/smart_turn/_whisper_features.js +225 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.d.ts +94 -0
- package/dist/audio/turn/smart_turn/base_smart_turn.js +239 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.d.ts +76 -0
- package/dist/audio/turn/smart_turn/local_smart_turn_v3.js +151 -0
- package/dist/audio/utils.d.ts +224 -0
- package/dist/audio/utils.js +634 -0
- package/dist/audio/vad/data/index.d.ts +2 -0
- package/dist/audio/vad/data/index.js +8 -0
- package/dist/audio/vad/index.d.ts +2 -0
- package/dist/audio/vad/index.js +8 -0
- package/dist/audio/vad/vad_analyzer.d.ts +134 -0
- package/dist/audio/vad/vad_analyzer.js +249 -0
- package/dist/audio/vad/vad_controller.d.ts +143 -0
- package/dist/audio/vad/vad_controller.js +228 -0
- package/dist/audio/volume.d.ts +38 -0
- package/dist/audio/volume.js +75 -0
- package/dist/bus/adapters/base.d.ts +35 -0
- package/dist/bus/adapters/base.js +19 -0
- package/dist/bus/adapters/index.d.ts +10 -0
- package/dist/bus/adapters/index.js +15 -0
- package/dist/bus/adapters/llm_context_adapter.d.ts +36 -0
- package/dist/bus/adapters/llm_context_adapter.js +82 -0
- package/dist/bus/adapters/tools_schema_adapter.d.ts +25 -0
- package/dist/bus/adapters/tools_schema_adapter.js +70 -0
- package/dist/bus/bridge_processor.d.ts +111 -0
- package/dist/bus/bridge_processor.js +166 -0
- package/dist/bus/bus.d.ts +110 -0
- package/dist/bus/bus.js +200 -0
- package/dist/bus/index.d.ts +22 -0
- package/dist/bus/index.js +27 -0
- package/dist/bus/local/async_queue.d.ts +12 -0
- package/dist/bus/local/async_queue.js +21 -0
- package/dist/bus/local/index.d.ts +3 -0
- package/dist/bus/local/index.js +8 -0
- package/dist/bus/messages.d.ts +378 -0
- package/dist/bus/messages.js +357 -0
- package/dist/bus/network/index.d.ts +16 -0
- package/dist/bus/network/index.js +21 -0
- package/dist/bus/queue.d.ts +27 -0
- package/dist/bus/queue.js +51 -0
- package/dist/bus/serializers/base.d.ts +25 -0
- package/dist/bus/serializers/base.js +14 -0
- package/dist/bus/serializers/index.d.ts +9 -0
- package/dist/bus/serializers/index.js +14 -0
- package/dist/bus/serializers/json.d.ts +77 -0
- package/dist/bus/serializers/json.js +367 -0
- package/dist/bus/subscriber.d.ts +46 -0
- package/dist/bus/subscriber.js +27 -0
- package/dist/bus/ui/index.d.ts +3 -0
- package/dist/bus/ui/index.js +8 -0
- package/dist/bus/ui/messages.d.ts +186 -0
- package/dist/bus/ui/messages.js +171 -0
- package/dist/classifiers/base_classifier.d.ts +263 -0
- package/dist/classifiers/base_classifier.js +346 -0
- package/dist/classifiers/cloudflare/clef/classifier.d.ts +70 -0
- package/dist/classifiers/cloudflare/clef/classifier.js +204 -0
- package/dist/classifiers/cloudflare/clef/client.d.ts +104 -0
- package/dist/classifiers/cloudflare/clef/client.js +234 -0
- package/dist/classifiers/cloudflare/clef/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/clef/index.js +8 -0
- package/dist/classifiers/cloudflare/index.d.ts +2 -0
- package/dist/classifiers/cloudflare/index.js +8 -0
- package/dist/classifiers/http_client.d.ts +70 -0
- package/dist/classifiers/http_client.js +161 -0
- package/dist/classifiers/index.d.ts +2 -0
- package/dist/classifiers/index.js +8 -0
- package/dist/classifiers/jev/classifier.d.ts +8 -0
- package/dist/classifiers/jev/classifier.js +13 -0
- package/dist/classifiers/jev/client.d.ts +8 -0
- package/dist/classifiers/jev/client.js +13 -0
- package/dist/classifiers/jev/index.d.ts +2 -0
- package/dist/classifiers/jev/index.js +8 -0
- package/dist/classifiers/llm/classifier.d.ts +72 -0
- package/dist/classifiers/llm/classifier.js +304 -0
- package/dist/classifiers/llm/index.d.ts +2 -0
- package/dist/classifiers/llm/index.js +8 -0
- package/dist/classifiers/openai/decisions/classifier.d.ts +77 -0
- package/dist/classifiers/openai/decisions/classifier.js +241 -0
- package/dist/classifiers/openai/decisions/client.d.ts +108 -0
- package/dist/classifiers/openai/decisions/client.js +234 -0
- package/dist/classifiers/openai/decisions/index.d.ts +2 -0
- package/dist/classifiers/openai/decisions/index.js +8 -0
- package/dist/classifiers/openai/index.d.ts +2 -0
- package/dist/classifiers/openai/index.js +8 -0
- package/dist/classifiers/typesafe/index.d.ts +2 -0
- package/dist/classifiers/typesafe/index.js +8 -0
- package/dist/classifiers/typesafe/jev/classifier.d.ts +70 -0
- package/dist/classifiers/typesafe/jev/classifier.js +220 -0
- package/dist/classifiers/typesafe/jev/client.d.ts +105 -0
- package/dist/classifiers/typesafe/jev/client.js +233 -0
- package/dist/classifiers/typesafe/jev/index.d.ts +2 -0
- package/dist/classifiers/typesafe/jev/index.js +8 -0
- package/dist/clocks/base_clock.d.ts +13 -0
- package/dist/clocks/base_clock.js +14 -0
- package/dist/clocks/index.d.ts +2 -0
- package/dist/clocks/index.js +8 -0
- package/dist/clocks/system_clock.d.ts +15 -0
- package/dist/clocks/system_clock.js +25 -0
- package/dist/frames/frames.d.ts +2533 -0
- package/dist/frames/frames.js +2485 -0
- package/dist/frames/index.d.ts +2 -0
- package/dist/frames/index.js +8 -0
- package/dist/frames/protobufs/frames_pb2.d.ts +229 -0
- package/dist/frames/protobufs/frames_pb2.js +466 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +56 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/metrics.d.ts +276 -0
- package/dist/metrics/metrics.js +254 -0
- package/dist/observers/base_observer.d.ts +173 -0
- package/dist/observers/base_observer.js +151 -0
- package/dist/observers/error_observer.d.ts +75 -0
- package/dist/observers/error_observer.js +87 -0
- package/dist/observers/function_call_observer.d.ts +157 -0
- package/dist/observers/function_call_observer.js +222 -0
- package/dist/observers/index.d.ts +2 -0
- package/dist/observers/index.js +8 -0
- package/dist/observers/loggers/debug_log_observer.d.ts +91 -0
- package/dist/observers/loggers/debug_log_observer.js +228 -0
- package/dist/observers/loggers/index.d.ts +2 -0
- package/dist/observers/loggers/index.js +8 -0
- package/dist/observers/loggers/llm_log_observer.d.ts +24 -0
- package/dist/observers/loggers/llm_log_observer.js +110 -0
- package/dist/observers/loggers/metrics_log_observer.d.ts +85 -0
- package/dist/observers/loggers/metrics_log_observer.js +186 -0
- package/dist/observers/loggers/transcription_log_observer.d.ts +23 -0
- package/dist/observers/loggers/transcription_log_observer.js +74 -0
- package/dist/observers/service_metrics_observer.d.ts +168 -0
- package/dist/observers/service_metrics_observer.js +236 -0
- package/dist/observers/speaking_observer.d.ts +104 -0
- package/dist/observers/speaking_observer.js +150 -0
- package/dist/observers/startup_timing_observer.d.ts +221 -0
- package/dist/observers/startup_timing_observer.js +365 -0
- package/dist/observers/turn_tracking_observer.d.ts +78 -0
- package/dist/observers/turn_tracking_observer.js +189 -0
- package/dist/observers/user_bot_latency_observer.d.ts +411 -0
- package/dist/observers/user_bot_latency_observer.js +974 -0
- package/dist/pipeline/base_pipeline.d.ts +49 -0
- package/dist/pipeline/base_pipeline.js +101 -0
- package/dist/pipeline/capabilities.d.ts +76 -0
- package/dist/pipeline/capabilities.js +97 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +8 -0
- package/dist/pipeline/job_context.d.ts +317 -0
- package/dist/pipeline/job_context.js +450 -0
- package/dist/pipeline/job_decorator.d.ts +54 -0
- package/dist/pipeline/job_decorator.js +92 -0
- package/dist/pipeline/llm_switcher.d.ts +84 -0
- package/dist/pipeline/llm_switcher.js +107 -0
- package/dist/pipeline/llm_with_backend.d.ts +435 -0
- package/dist/pipeline/llm_with_backend.js +806 -0
- package/dist/pipeline/parallel_pipeline.d.ts +83 -0
- package/dist/pipeline/parallel_pipeline.js +200 -0
- package/dist/pipeline/pipeline.d.ts +126 -0
- package/dist/pipeline/pipeline.js +196 -0
- package/dist/pipeline/service_switcher.d.ts +287 -0
- package/dist/pipeline/service_switcher.js +509 -0
- package/dist/pipeline/sync_parallel_pipeline.d.ts +192 -0
- package/dist/pipeline/sync_parallel_pipeline.js +387 -0
- package/dist/pipeline/worker.d.ts +821 -0
- package/dist/pipeline/worker.js +1656 -0
- package/dist/pipeline/worker_observer.d.ts +131 -0
- package/dist/pipeline/worker_observer.js +274 -0
- package/dist/pipeline/worker_ready_decorator.d.ts +45 -0
- package/dist/pipeline/worker_ready_decorator.js +76 -0
- package/dist/processors/aggregators/async_tool_messages.d.ts +146 -0
- package/dist/processors/aggregators/async_tool_messages.js +291 -0
- package/dist/processors/aggregators/dtmf_aggregator.d.ts +61 -0
- package/dist/processors/aggregators/dtmf_aggregator.js +144 -0
- package/dist/processors/aggregators/gated.d.ts +43 -0
- package/dist/processors/aggregators/gated.js +86 -0
- package/dist/processors/aggregators/gated_llm_context.d.ts +42 -0
- package/dist/processors/aggregators/gated_llm_context.js +86 -0
- package/dist/processors/aggregators/index.d.ts +2 -0
- package/dist/processors/aggregators/index.js +8 -0
- package/dist/processors/aggregators/llm_context.d.ts +370 -0
- package/dist/processors/aggregators/llm_context.js +580 -0
- package/dist/processors/aggregators/llm_context_summarizer.d.ts +219 -0
- package/dist/processors/aggregators/llm_context_summarizer.js +447 -0
- package/dist/processors/aggregators/llm_response.d.ts +37 -0
- package/dist/processors/aggregators/llm_response.js +71 -0
- package/dist/processors/aggregators/llm_response_universal.d.ts +966 -0
- package/dist/processors/aggregators/llm_response_universal.js +2394 -0
- package/dist/processors/aggregators/llm_text_processor.d.ts +53 -0
- package/dist/processors/aggregators/llm_text_processor.js +102 -0
- package/dist/processors/aggregators/sentence.d.ts +39 -0
- package/dist/processors/aggregators/sentence.js +69 -0
- package/dist/processors/async_generator.d.ts +42 -0
- package/dist/processors/async_generator.js +76 -0
- package/dist/processors/audio/audio_buffer_processor.d.ts +241 -0
- package/dist/processors/audio/audio_buffer_processor.js +565 -0
- package/dist/processors/audio/index.d.ts +2 -0
- package/dist/processors/audio/index.js +8 -0
- package/dist/processors/audio/vad_processor.d.ts +67 -0
- package/dist/processors/audio/vad_processor.js +103 -0
- package/dist/processors/consumer_processor.d.ts +49 -0
- package/dist/processors/consumer_processor.js +85 -0
- package/dist/processors/filters/frame_filter.d.ts +39 -0
- package/dist/processors/filters/frame_filter.js +52 -0
- package/dist/processors/filters/function_filter.d.ts +59 -0
- package/dist/processors/filters/function_filter.js +78 -0
- package/dist/processors/filters/identity_filter.d.ts +33 -0
- package/dist/processors/filters/identity_filter.js +37 -0
- package/dist/processors/filters/index.d.ts +2 -0
- package/dist/processors/filters/index.js +8 -0
- package/dist/processors/filters/null_filter.d.ts +34 -0
- package/dist/processors/filters/null_filter.js +47 -0
- package/dist/processors/filters/wake_notifier_filter.d.ts +48 -0
- package/dist/processors/filters/wake_notifier_filter.js +49 -0
- package/dist/processors/frame_processor.d.ts +360 -0
- package/dist/processors/frame_processor.js +932 -0
- package/dist/processors/frameworks/index.d.ts +2 -0
- package/dist/processors/frameworks/index.js +8 -0
- package/dist/processors/frameworks/rtvi/frames.d.ts +241 -0
- package/dist/processors/frameworks/rtvi/frames.js +259 -0
- package/dist/processors/frameworks/rtvi/index.d.ts +6 -0
- package/dist/processors/frameworks/rtvi/index.js +11 -0
- package/dist/processors/frameworks/rtvi/models.d.ts +1741 -0
- package/dist/processors/frameworks/rtvi/models.js +1807 -0
- package/dist/processors/frameworks/rtvi/observer.d.ts +340 -0
- package/dist/processors/frameworks/rtvi/observer.js +1113 -0
- package/dist/processors/frameworks/rtvi/processor.d.ts +182 -0
- package/dist/processors/frameworks/rtvi/processor.js +676 -0
- package/dist/processors/idle_frame_processor.d.ts +44 -0
- package/dist/processors/idle_frame_processor.js +86 -0
- package/dist/processors/index.d.ts +2 -0
- package/dist/processors/index.js +8 -0
- package/dist/processors/logger.d.ts +42 -0
- package/dist/processors/logger.js +87 -0
- package/dist/processors/metrics/frame_processor_metrics.d.ts +172 -0
- package/dist/processors/metrics/frame_processor_metrics.js +372 -0
- package/dist/processors/metrics/index.d.ts +2 -0
- package/dist/processors/metrics/index.js +8 -0
- package/dist/processors/producer_processor.d.ts +68 -0
- package/dist/processors/producer_processor.js +78 -0
- package/dist/processors/text_transformer.d.ts +30 -0
- package/dist/processors/text_transformer.js +48 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/registry.d.ts +69 -0
- package/dist/registry/registry.js +149 -0
- package/dist/registry/types.d.ts +47 -0
- package/dist/registry/types.js +39 -0
- package/dist/serializers/base_serializer.d.ts +94 -0
- package/dist/serializers/base_serializer.js +82 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.js +8 -0
- package/dist/services/ai_service.d.ts +145 -0
- package/dist/services/ai_service.js +262 -0
- package/dist/services/anthropic/index.d.ts +2 -0
- package/dist/services/anthropic/index.js +7 -0
- package/dist/services/assemblyai/index.d.ts +2 -0
- package/dist/services/assemblyai/index.js +7 -0
- package/dist/services/asyncai/index.d.ts +2 -0
- package/dist/services/asyncai/index.js +7 -0
- package/dist/services/aws/index.d.ts +2 -0
- package/dist/services/aws/index.js +7 -0
- package/dist/services/azure/index.d.ts +2 -0
- package/dist/services/azure/index.js +7 -0
- package/dist/services/baseten/index.d.ts +2 -0
- package/dist/services/baseten/index.js +7 -0
- package/dist/services/bland/index.d.ts +2 -0
- package/dist/services/bland/index.js +7 -0
- package/dist/services/camb/index.d.ts +2 -0
- package/dist/services/camb/index.js +7 -0
- package/dist/services/cartesia/index.d.ts +2 -0
- package/dist/services/cartesia/index.js +7 -0
- package/dist/services/cerebras/index.d.ts +2 -0
- package/dist/services/cerebras/index.js +7 -0
- package/dist/services/crusoe/index.d.ts +2 -0
- package/dist/services/crusoe/index.js +7 -0
- package/dist/services/deepgram/index.d.ts +2 -0
- package/dist/services/deepgram/index.js +7 -0
- package/dist/services/deepseek/index.d.ts +2 -0
- package/dist/services/deepseek/index.js +7 -0
- package/dist/services/elevenlabs/index.d.ts +2 -0
- package/dist/services/elevenlabs/index.js +7 -0
- package/dist/services/fal/index.d.ts +2 -0
- package/dist/services/fal/index.js +7 -0
- package/dist/services/fireworks/index.d.ts +2 -0
- package/dist/services/fireworks/index.js +7 -0
- package/dist/services/fish/index.d.ts +2 -0
- package/dist/services/fish/index.js +7 -0
- package/dist/services/funasr/index.d.ts +3 -0
- package/dist/services/funasr/index.js +8 -0
- package/dist/services/gladia/index.d.ts +2 -0
- package/dist/services/gladia/index.js +7 -0
- package/dist/services/google/index.d.ts +2 -0
- package/dist/services/google/index.js +7 -0
- package/dist/services/gradium/index.d.ts +2 -0
- package/dist/services/gradium/index.js +7 -0
- package/dist/services/grok/index.d.ts +2 -0
- package/dist/services/grok/index.js +7 -0
- package/dist/services/groq/index.d.ts +2 -0
- package/dist/services/groq/index.js +7 -0
- package/dist/services/heygen/index.d.ts +2 -0
- package/dist/services/heygen/index.js +7 -0
- package/dist/services/hume/index.d.ts +2 -0
- package/dist/services/hume/index.js +7 -0
- package/dist/services/image_service.d.ts +52 -0
- package/dist/services/image_service.js +60 -0
- package/dist/services/inception/index.d.ts +2 -0
- package/dist/services/inception/index.js +7 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +8 -0
- package/dist/services/inworld/index.d.ts +2 -0
- package/dist/services/inworld/index.js +7 -0
- package/dist/services/keenable/index.d.ts +2 -0
- package/dist/services/keenable/index.js +7 -0
- package/dist/services/kokoro/index.d.ts +2 -0
- package/dist/services/kokoro/index.js +7 -0
- package/dist/services/llm_service.d.ts +1106 -0
- package/dist/services/llm_service.js +2231 -0
- package/dist/services/mem0/index.d.ts +2 -0
- package/dist/services/mem0/index.js +7 -0
- package/dist/services/meta/index.d.ts +2 -0
- package/dist/services/meta/index.js +7 -0
- package/dist/services/minimax/index.d.ts +2 -0
- package/dist/services/minimax/index.js +7 -0
- package/dist/services/mistral/index.d.ts +2 -0
- package/dist/services/mistral/index.js +7 -0
- package/dist/services/moondream/index.d.ts +2 -0
- package/dist/services/moondream/index.js +7 -0
- package/dist/services/moonshine/index.d.ts +2 -0
- package/dist/services/moonshine/index.js +7 -0
- package/dist/services/nebius/index.d.ts +2 -0
- package/dist/services/nebius/index.js +7 -0
- package/dist/services/neuphonic/index.d.ts +2 -0
- package/dist/services/neuphonic/index.js +7 -0
- package/dist/services/novita/index.d.ts +2 -0
- package/dist/services/novita/index.js +7 -0
- package/dist/services/nvidia/index.d.ts +2 -0
- package/dist/services/nvidia/index.js +11 -0
- package/dist/services/ollama/index.d.ts +2 -0
- package/dist/services/ollama/index.js +7 -0
- package/dist/services/openai/index.d.ts +2 -0
- package/dist/services/openai/index.js +7 -0
- package/dist/services/openclaw/index.d.ts +14 -0
- package/dist/services/openclaw/index.js +19 -0
- package/dist/services/openrouter/index.d.ts +2 -0
- package/dist/services/openrouter/index.js +7 -0
- package/dist/services/perplexity/index.d.ts +2 -0
- package/dist/services/perplexity/index.js +7 -0
- package/dist/services/piper/index.d.ts +2 -0
- package/dist/services/piper/index.js +7 -0
- package/dist/services/pocket_tts/index.d.ts +2 -0
- package/dist/services/pocket_tts/index.js +7 -0
- package/dist/services/qwen/index.d.ts +2 -0
- package/dist/services/qwen/index.js +7 -0
- package/dist/services/resembleai/index.d.ts +2 -0
- package/dist/services/resembleai/index.js +7 -0
- package/dist/services/rime/index.d.ts +2 -0
- package/dist/services/rime/index.js +7 -0
- package/dist/services/sambanova/index.d.ts +2 -0
- package/dist/services/sambanova/index.js +7 -0
- package/dist/services/sarvam/index.d.ts +2 -0
- package/dist/services/sarvam/index.js +7 -0
- package/dist/services/settings.d.ts +356 -0
- package/dist/services/settings.js +437 -0
- package/dist/services/simli/index.d.ts +2 -0
- package/dist/services/simli/index.js +7 -0
- package/dist/services/smallest/index.d.ts +2 -0
- package/dist/services/smallest/index.js +7 -0
- package/dist/services/soniox/index.d.ts +2 -0
- package/dist/services/soniox/index.js +7 -0
- package/dist/services/speechify/index.d.ts +2 -0
- package/dist/services/speechify/index.js +7 -0
- package/dist/services/speechmatics/index.d.ts +2 -0
- package/dist/services/speechmatics/index.js +7 -0
- package/dist/services/stt_latency.d.ts +62 -0
- package/dist/services/stt_latency.js +71 -0
- package/dist/services/stt_service.d.ts +601 -0
- package/dist/services/stt_service.js +1044 -0
- package/dist/services/tavus/index.d.ts +2 -0
- package/dist/services/tavus/index.js +7 -0
- package/dist/services/together/index.d.ts +2 -0
- package/dist/services/together/index.js +7 -0
- package/dist/services/tts_service.d.ts +909 -0
- package/dist/services/tts_service.js +2018 -0
- package/dist/services/ultravox/index.d.ts +2 -0
- package/dist/services/ultravox/index.js +9 -0
- package/dist/services/vision_service.d.ts +56 -0
- package/dist/services/vision_service.js +62 -0
- package/dist/services/websocket_service.d.ts +213 -0
- package/dist/services/websocket_service.js +654 -0
- package/dist/services/whisper/index.d.ts +2 -0
- package/dist/services/whisper/index.js +9 -0
- package/dist/services/xai/index.d.ts +2 -0
- package/dist/services/xai/index.js +9 -0
- package/dist/services/xtts/index.d.ts +2 -0
- package/dist/services/xtts/index.js +9 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.js +8 -0
- package/dist/tests/utils.d.ts +123 -0
- package/dist/tests/utils.js +212 -0
- package/dist/transcriptions/index.d.ts +2 -0
- package/dist/transcriptions/index.js +8 -0
- package/dist/transcriptions/language.d.ts +376 -0
- package/dist/transcriptions/language.js +543 -0
- package/dist/transports/base_input.d.ts +149 -0
- package/dist/transports/base_input.js +338 -0
- package/dist/transports/base_output.d.ts +432 -0
- package/dist/transports/base_output.js +1231 -0
- package/dist/transports/base_transport.d.ts +223 -0
- package/dist/transports/base_transport.js +167 -0
- package/dist/transports/daily/index.d.ts +2 -0
- package/dist/transports/daily/index.js +9 -0
- package/dist/transports/heygen/index.d.ts +2 -0
- package/dist/transports/heygen/index.js +9 -0
- package/dist/transports/index.d.ts +2 -0
- package/dist/transports/index.js +8 -0
- package/dist/transports/lemonslice/index.d.ts +2 -0
- package/dist/transports/lemonslice/index.js +9 -0
- package/dist/transports/livekit/index.d.ts +2 -0
- package/dist/transports/livekit/index.js +9 -0
- package/dist/transports/local/index.d.ts +2 -0
- package/dist/transports/local/index.js +9 -0
- package/dist/transports/moq/index.d.ts +2 -0
- package/dist/transports/moq/index.js +9 -0
- package/dist/transports/smallwebrtc/index.d.ts +2 -0
- package/dist/transports/smallwebrtc/index.js +9 -0
- package/dist/transports/tavus/index.d.ts +2 -0
- package/dist/transports/tavus/index.js +9 -0
- package/dist/transports/video_in_sampler.d.ts +157 -0
- package/dist/transports/video_in_sampler.js +258 -0
- package/dist/transports/vonage/index.d.ts +2 -0
- package/dist/transports/vonage/index.js +9 -0
- package/dist/transports/websocket/index.d.ts +2 -0
- package/dist/transports/websocket/index.js +9 -0
- package/dist/transports/whatsapp/index.d.ts +2 -0
- package/dist/transports/whatsapp/index.js +9 -0
- package/dist/turns/eager_end_of_turn_mixin.d.ts +70 -0
- package/dist/turns/eager_end_of_turn_mixin.js +122 -0
- package/dist/turns/empty_user_turn.d.ts +55 -0
- package/dist/turns/empty_user_turn.js +53 -0
- package/dist/turns/index.d.ts +2 -0
- package/dist/turns/index.js +8 -0
- package/dist/turns/speculation_gate.d.ts +169 -0
- package/dist/turns/speculation_gate.js +294 -0
- package/dist/turns/types.d.ts +33 -0
- package/dist/turns/types.js +35 -0
- package/dist/turns/user_idle_controller.d.ts +94 -0
- package/dist/turns/user_idle_controller.js +187 -0
- package/dist/turns/user_mute/always_user_mute_strategy.d.ts +15 -0
- package/dist/turns/user_mute/always_user_mute_strategy.js +29 -0
- package/dist/turns/user_mute/base_user_mute_strategy.d.ts +39 -0
- package/dist/turns/user_mute/base_user_mute_strategy.js +45 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.d.ts +28 -0
- package/dist/turns/user_mute/first_speech_user_mute_strategy.js +52 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.d.ts +25 -0
- package/dist/turns/user_mute/function_call_user_mute_strategy.js +50 -0
- package/dist/turns/user_mute/index.d.ts +6 -0
- package/dist/turns/user_mute/index.js +11 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.d.ts +43 -0
- package/dist/turns/user_mute/mute_until_first_bot_complete_user_mute_strategy.js +76 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.d.ts +135 -0
- package/dist/turns/user_start/base_user_turn_start_strategy.js +134 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.d.ts +45 -0
- package/dist/turns/user_start/external_user_turn_start_strategy.js +64 -0
- package/dist/turns/user_start/index.d.ts +8 -0
- package/dist/turns/user_start/index.js +16 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.d.ts +133 -0
- package/dist/turns/user_start/krisp_viva_ip_user_turn_start_strategy.js +243 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.d.ts +60 -0
- package/dist/turns/user_start/min_words_user_turn_start_strategy.js +102 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.d.ts +29 -0
- package/dist/turns/user_start/transcription_user_turn_start_strategy.js +43 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.d.ts +20 -0
- package/dist/turns/user_start/vad_user_turn_start_strategy.js +31 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.d.ts +141 -0
- package/dist/turns/user_start/wake_phrase_user_turn_start_strategy.js +238 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.d.ts +174 -0
- package/dist/turns/user_stop/base_user_turn_stop_strategy.js +170 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.d.ts +81 -0
- package/dist/turns/user_stop/deferred_user_turn_stop_strategy.js +107 -0
- package/dist/turns/user_stop/eager_match_policy.d.ts +36 -0
- package/dist/turns/user_stop/eager_match_policy.js +50 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.d.ts +84 -0
- package/dist/turns/user_stop/eager_user_turn_stop_strategy.js +154 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.d.ts +45 -0
- package/dist/turns/user_stop/external_user_turn_completion_stop_strategy.js +55 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.d.ts +115 -0
- package/dist/turns/user_stop/external_user_turn_stop_strategy.js +205 -0
- package/dist/turns/user_stop/index.d.ts +10 -0
- package/dist/turns/user_stop/index.js +15 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.d.ts +44 -0
- package/dist/turns/user_stop/llm_turn_completion_user_turn_stop_strategy.js +59 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.d.ts +140 -0
- package/dist/turns/user_stop/speech_timeout_user_turn_stop_strategy.js +303 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.d.ts +135 -0
- package/dist/turns/user_stop/turn_analyzer_user_turn_stop_strategy.js +332 -0
- package/dist/turns/user_turn_completion_mixin.d.ts +147 -0
- package/dist/turns/user_turn_completion_mixin.js +591 -0
- package/dist/turns/user_turn_controller.d.ts +134 -0
- package/dist/turns/user_turn_controller.js +335 -0
- package/dist/turns/user_turn_processor.d.ts +87 -0
- package/dist/turns/user_turn_processor.js +180 -0
- package/dist/turns/user_turn_strategies.d.ts +187 -0
- package/dist/turns/user_turn_strategies.js +222 -0
- package/dist/utils/async_tool_cancellation.d.ts +35 -0
- package/dist/utils/async_tool_cancellation.js +78 -0
- package/dist/utils/asyncio/index.d.ts +2 -0
- package/dist/utils/asyncio/index.js +7 -0
- package/dist/utils/asyncio/task_manager.d.ts +49 -0
- package/dist/utils/asyncio/task_manager.js +105 -0
- package/dist/utils/base_object.d.ts +76 -0
- package/dist/utils/base_object.js +154 -0
- package/dist/utils/context/aggregated_frame_sequencer.d.ts +491 -0
- package/dist/utils/context/aggregated_frame_sequencer.js +803 -0
- package/dist/utils/context/audio_context_manager.d.ts +131 -0
- package/dist/utils/context/audio_context_manager.js +233 -0
- package/dist/utils/context/index.d.ts +2 -0
- package/dist/utils/context/index.js +7 -0
- package/dist/utils/context/llm_context_summarization.d.ts +258 -0
- package/dist/utils/context/llm_context_summarization.js +511 -0
- package/dist/utils/context/text_segment_map.d.ts +611 -0
- package/dist/utils/context/text_segment_map.js +1132 -0
- package/dist/utils/context/word_completion_tracker.d.ts +273 -0
- package/dist/utils/context/word_completion_tracker.js +441 -0
- package/dist/utils/context/word_timestamp_tracker.d.ts +72 -0
- package/dist/utils/context/word_timestamp_tracker.js +98 -0
- package/dist/utils/deprecation.d.ts +28 -0
- package/dist/utils/deprecation.js +75 -0
- package/dist/utils/env.d.ts +38 -0
- package/dist/utils/env.js +62 -0
- package/dist/utils/errors.d.ts +75 -0
- package/dist/utils/errors.js +202 -0
- package/dist/utils/file_resolver.d.ts +126 -0
- package/dist/utils/file_resolver.js +314 -0
- package/dist/utils/file_storage.d.ts +115 -0
- package/dist/utils/file_storage.js +178 -0
- package/dist/utils/frame_queue.d.ts +36 -0
- package/dist/utils/frame_queue.js +66 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +53 -0
- package/dist/utils/image.d.ts +14 -0
- package/dist/utils/image.js +63 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/jpeg_encoder.d.ts +14 -0
- package/dist/utils/jpeg_encoder.js +315 -0
- package/dist/utils/log_config.d.ts +34 -0
- package/dist/utils/log_config.js +76 -0
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/mixin.d.ts +14 -0
- package/dist/utils/mixin.js +63 -0
- package/dist/utils/network.d.ts +73 -0
- package/dist/utils/network.js +90 -0
- package/dist/utils/security/allowed_origins.d.ts +16 -0
- package/dist/utils/security/allowed_origins.js +34 -0
- package/dist/utils/security/index.d.ts +2 -0
- package/dist/utils/security/index.js +7 -0
- package/dist/utils/security/redaction.d.ts +27 -0
- package/dist/utils/security/redaction.js +123 -0
- package/dist/utils/security/ssrf.d.ts +79 -0
- package/dist/utils/security/ssrf.js +327 -0
- package/dist/utils/shared.d.ts +35 -0
- package/dist/utils/shared.js +136 -0
- package/dist/utils/startup.d.ts +17 -0
- package/dist/utils/startup.js +130 -0
- package/dist/utils/string.d.ts +116 -0
- package/dist/utils/string.js +460 -0
- package/dist/utils/sync/base_notifier.d.ts +25 -0
- package/dist/utils/sync/base_notifier.js +16 -0
- package/dist/utils/sync/event_notifier.d.ts +38 -0
- package/dist/utils/sync/event_notifier.js +51 -0
- package/dist/utils/sync/index.d.ts +2 -0
- package/dist/utils/sync/index.js +7 -0
- package/dist/utils/text/alnum_utils.d.ts +109 -0
- package/dist/utils/text/alnum_utils.js +262 -0
- package/dist/utils/text/base_text_aggregator.d.ts +146 -0
- package/dist/utils/text/base_text_aggregator.js +102 -0
- package/dist/utils/text/base_text_filter.d.ts +54 -0
- package/dist/utils/text/base_text_filter.js +50 -0
- package/dist/utils/text/index.d.ts +2 -0
- package/dist/utils/text/index.js +7 -0
- package/dist/utils/text/markdown_text_filter.d.ts +147 -0
- package/dist/utils/text/markdown_text_filter.js +522 -0
- package/dist/utils/text/markup_utils.d.ts +54 -0
- package/dist/utils/text/markup_utils.js +156 -0
- package/dist/utils/text/pattern_pair_aggregator.d.ts +251 -0
- package/dist/utils/text/pattern_pair_aggregator.js +478 -0
- package/dist/utils/text/phonemes.d.ts +60 -0
- package/dist/utils/text/phonemes.js +172 -0
- package/dist/utils/text/simple_text_aggregator.d.ts +135 -0
- package/dist/utils/text/simple_text_aggregator.js +254 -0
- package/dist/utils/text/skip_tags_aggregator.d.ts +85 -0
- package/dist/utils/text/skip_tags_aggregator.js +147 -0
- package/dist/utils/text/transforms/acronyms.d.ts +21 -0
- package/dist/utils/text/transforms/acronyms.js +31 -0
- package/dist/utils/text/transforms/currency.d.ts +16 -0
- package/dist/utils/text/transforms/currency.js +56 -0
- package/dist/utils/text/transforms/dates.d.ts +18 -0
- package/dist/utils/text/transforms/dates.js +102 -0
- package/dist/utils/text/transforms/email.d.ts +17 -0
- package/dist/utils/text/transforms/email.js +35 -0
- package/dist/utils/text/transforms/index.d.ts +37 -0
- package/dist/utils/text/transforms/index.js +42 -0
- package/dist/utils/text/transforms/numbers.d.ts +25 -0
- package/dist/utils/text/transforms/numbers.js +59 -0
- package/dist/utils/text/transforms/percentages.d.ts +16 -0
- package/dist/utils/text/transforms/percentages.js +32 -0
- package/dist/utils/text/transforms/phone.d.ts +21 -0
- package/dist/utils/text/transforms/phone.js +39 -0
- package/dist/utils/text/transforms/pronunciations.d.ts +65 -0
- package/dist/utils/text/transforms/pronunciations.js +112 -0
- package/dist/utils/text/transforms/replacements.d.ts +39 -0
- package/dist/utils/text/transforms/replacements.js +46 -0
- package/dist/utils/text/transforms/strip_markdown.d.ts +25 -0
- package/dist/utils/text/transforms/strip_markdown.js +60 -0
- package/dist/utils/text/transforms/units.d.ts +22 -0
- package/dist/utils/text/transforms/units.js +81 -0
- package/dist/utils/text/transforms/voice_formatter.d.ts +86 -0
- package/dist/utils/text/transforms/voice_formatter.js +98 -0
- package/dist/utils/text/unicode_digits.d.ts +3 -0
- package/dist/utils/text/unicode_digits.js +34 -0
- package/dist/utils/text/word_timestamp_utils.d.ts +26 -0
- package/dist/utils/text/word_timestamp_utils.js +52 -0
- package/dist/utils/time.d.ts +13 -0
- package/dist/utils/time.js +31 -0
- package/dist/utils/tracing/index.d.ts +3 -0
- package/dist/utils/tracing/index.js +8 -0
- package/dist/utils/tracing/service_attributes.d.ts +198 -0
- package/dist/utils/tracing/service_attributes.js +434 -0
- package/dist/utils/tracing/service_decorators.d.ts +214 -0
- package/dist/utils/tracing/service_decorators.js +1662 -0
- package/dist/utils/tracing/setup.d.ts +107 -0
- package/dist/utils/tracing/setup.js +160 -0
- package/dist/utils/tracing/tracing_context.d.ts +55 -0
- package/dist/utils/tracing/tracing_context.js +97 -0
- package/dist/utils/tracing/turn_trace_observer.d.ts +95 -0
- package/dist/utils/tracing/turn_trace_observer.js +233 -0
- package/dist/utils/types.d.ts +80 -0
- package/dist/utils/types.js +108 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +22 -0
- package/dist/utils/yaml.d.ts +179 -0
- package/dist/utils/yaml.js +556 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.js +7 -0
- package/dist/workers/base_worker.d.ts +772 -0
- package/dist/workers/base_worker.js +1298 -0
- package/dist/workers/index.d.ts +2 -0
- package/dist/workers/index.js +8 -0
- package/dist/workers/llm/backend_llm_worker.d.ts +552 -0
- package/dist/workers/llm/backend_llm_worker.js +1055 -0
- package/dist/workers/llm/index.d.ts +6 -0
- package/dist/workers/llm/index.js +11 -0
- package/dist/workers/llm/llm_context_worker.d.ts +66 -0
- package/dist/workers/llm/llm_context_worker.js +72 -0
- package/dist/workers/llm/llm_worker.d.ts +180 -0
- package/dist/workers/llm/llm_worker.js +323 -0
- package/dist/workers/llm/tool_decorator.d.ts +68 -0
- package/dist/workers/llm/tool_decorator.js +60 -0
- package/dist/workers/proxy/index.d.ts +3 -0
- package/dist/workers/proxy/index.js +9 -0
- package/dist/workers/proxy/websocket/client.d.ts +110 -0
- package/dist/workers/proxy/websocket/client.js +196 -0
- package/dist/workers/proxy/websocket/index.d.ts +3 -0
- package/dist/workers/proxy/websocket/index.js +10 -0
- package/dist/workers/runner.d.ts +268 -0
- package/dist/workers/runner.js +489 -0
- package/dist/workers/ui/index.d.ts +22 -0
- package/dist/workers/ui/index.js +27 -0
- package/dist/workers/ui/ui_event_decorator.d.ts +43 -0
- package/dist/workers/ui/ui_event_decorator.js +75 -0
- package/dist/workers/ui/ui_job_context.d.ts +12 -0
- package/dist/workers/ui/ui_job_context.js +17 -0
- package/dist/workers/ui/ui_prompts.d.ts +21 -0
- package/dist/workers/ui/ui_prompts.js +41 -0
- package/dist/workers/ui/ui_tools.d.ts +32 -0
- package/dist/workers/ui/ui_tools.js +112 -0
- package/dist/workers/ui/ui_worker.d.ts +571 -0
- package/dist/workers/ui/ui_worker.js +1156 -0
- package/package.json +61 -3
- package/README.md +0 -5
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
import type { BusJobRequestMessage, BusJobResponseMessage, BusJobResponseUrgentMessage, BusJobStreamEndMessage, BusJobUpdateMessage, BusJobUpdateUrgentMessage, BusMessage } from "../../bus/messages.ts";
|
|
2
|
+
import { BusUIEventMessage } from "../../bus/ui/messages.ts";
|
|
3
|
+
import { type BaseClassifier, type YesNoResult } from "../../classifiers/base_classifier.ts";
|
|
4
|
+
import { type JobGroup, type JobGroupResponse, JobStatus } from "../../pipeline/job_context.ts";
|
|
5
|
+
import { type LLMContext } from "../../processors/aggregators/llm_context.ts";
|
|
6
|
+
import type { LLMAssistantAggregatorParams } from "../../processors/aggregators/llm_response_universal.ts";
|
|
7
|
+
import type { LLMService } from "../../services/llm_service.ts";
|
|
8
|
+
import type { JobGroupOptions } from "../base_worker.ts";
|
|
9
|
+
import { LLMContextWorker } from "../llm/llm_context_worker.ts";
|
|
10
|
+
type Dict = Record<string, unknown>;
|
|
11
|
+
/** The text the user has selected on the page, and the element it is in. */
|
|
12
|
+
export declare class UISelection {
|
|
13
|
+
readonly ref: string;
|
|
14
|
+
readonly text: string;
|
|
15
|
+
constructor(options: {
|
|
16
|
+
ref: string;
|
|
17
|
+
text: string;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/** A named element of the snapshot, as the screen questions see it. */
|
|
21
|
+
interface _Element {
|
|
22
|
+
ref: string;
|
|
23
|
+
role: string;
|
|
24
|
+
name: string;
|
|
25
|
+
state: string[];
|
|
26
|
+
value: string | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Raised by `UIWorker.act` for an action that is not one of the five
|
|
30
|
+
* (upstream: `ValueError`).
|
|
31
|
+
*/
|
|
32
|
+
export declare class UnknownScreenActionError extends Error {
|
|
33
|
+
name: string;
|
|
34
|
+
}
|
|
35
|
+
/** A pending job answer (upstream: an `asyncio.Future`). */
|
|
36
|
+
declare class _PendingAnswer {
|
|
37
|
+
#private;
|
|
38
|
+
done(): boolean;
|
|
39
|
+
setResult(result: {
|
|
40
|
+
response: Dict | null;
|
|
41
|
+
status: JobStatus;
|
|
42
|
+
}): void;
|
|
43
|
+
wait(): Promise<{
|
|
44
|
+
response: Dict | null;
|
|
45
|
+
status: JobStatus;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
export interface UIWorkerOptions {
|
|
49
|
+
/** Unique name for this worker. */
|
|
50
|
+
name: string;
|
|
51
|
+
/** The LLM service. */
|
|
52
|
+
llm: LLMService;
|
|
53
|
+
/**
|
|
54
|
+
* Optional pre-built `LLMContext`. Seeded messages are part of the mutable
|
|
55
|
+
* history and are cleared on each `keepHistory: false` reset; put durable
|
|
56
|
+
* instructions in the LLM's `systemInstruction` instead.
|
|
57
|
+
*/
|
|
58
|
+
context?: LLMContext | null;
|
|
59
|
+
/**
|
|
60
|
+
* Answers the small questions about the screen (`shouldRespond`,
|
|
61
|
+
* `whichElement`). Without one, the `llm` answers them through an
|
|
62
|
+
* `LLMClassifier`, which costs an LLM call per question; a `JevClassifier`
|
|
63
|
+
* answers in about a tenth of a second with a calibrated probability.
|
|
64
|
+
*/
|
|
65
|
+
classifier?: BaseClassifier | null;
|
|
66
|
+
/**
|
|
67
|
+
* Optional assistant-aggregator parameters, e.g. to enable context
|
|
68
|
+
* summarization for `keepHistory: true` workers.
|
|
69
|
+
*/
|
|
70
|
+
assistantParams?: LLMAssistantAggregatorParams | null;
|
|
71
|
+
/**
|
|
72
|
+
* When true (the default), append each UI event to the context as a
|
|
73
|
+
* `<ui_event>` developer message. Override `renderUiEvent` to change the
|
|
74
|
+
* content, or set false to disable.
|
|
75
|
+
*/
|
|
76
|
+
injectEvents?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* When true (the default), append the latest `<ui_state>` snapshot to the
|
|
79
|
+
* context before every inference (via the LLM's `on_before_process_frame`
|
|
80
|
+
* hook). Set false to inject manually with `injectUiState()`.
|
|
81
|
+
*/
|
|
82
|
+
autoInjectUiState?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* When false (the default), the context is cleared at the start of every
|
|
85
|
+
* job, so each turn sees only the current `<ui_state>` and query -- best for
|
|
86
|
+
* the stateless-delegate role. When true, history accumulates across jobs
|
|
87
|
+
* so the LLM can resolve multi-turn references ("the next one", "the Pro
|
|
88
|
+
* version"), at the cost of more tokens and possible confusion from stale
|
|
89
|
+
* `<ui_state>` blocks. Use context summarization to prune the history when
|
|
90
|
+
* it gets too large.
|
|
91
|
+
*/
|
|
92
|
+
keepHistory?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Wire-format guide appended to the LLM's `systemInstruction` so it can
|
|
95
|
+
* parse the `<ui_state>` / `<ui_event>` messages. Defaults to
|
|
96
|
+
* `UI_STATE_PROMPT_GUIDE`; pass a string to override or null to disable.
|
|
97
|
+
* Living in `systemInstruction`, it survives context resets.
|
|
98
|
+
*/
|
|
99
|
+
promptGuide?: string | null;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* LLM worker that reads and drives a client GUI over the RTVI UI channel.
|
|
103
|
+
*
|
|
104
|
+
* A `UIWorker` connects an LLM to whatever the user is looking at: it sees the
|
|
105
|
+
* screen as accessibility snapshots, reacts to the user's UI events, and acts
|
|
106
|
+
* on the page by sending commands to the client. It is the delegate side of a
|
|
107
|
+
* voice/UI split -- a voice layer (the main pipeline's LLM, or a separate
|
|
108
|
+
* `LLMWorker`) handles speech and hands screen-relevant work to this worker.
|
|
109
|
+
*
|
|
110
|
+
* Capabilities:
|
|
111
|
+
*
|
|
112
|
+
* - See the screen. The latest accessibility snapshot is rendered as
|
|
113
|
+
* `<ui_state>` and auto-injected into the LLM context before each
|
|
114
|
+
* inference. Code reads it through `snapshot` and the user's `selection`.
|
|
115
|
+
* - React to UI events, dispatched to `uiEvent(name)` handlers.
|
|
116
|
+
* - Drive the UI with `sendCommand` and the `scrollTo` / `highlight` /
|
|
117
|
+
* `selectText` / `click` / `setInputValue` helpers.
|
|
118
|
+
* - Decide small things with a classifier, not an LLM turn: whether a UI
|
|
119
|
+
* event deserves a comment (`shouldRespond`), which element on screen the
|
|
120
|
+
* user means (`whichElement`), whether something is true of the screen
|
|
121
|
+
* (`checkScreen`), which elements match a description (`selectElements`),
|
|
122
|
+
* and `act` on an element named in words.
|
|
123
|
+
* - Answer a voice LLM's questions about the screen through the `screen`
|
|
124
|
+
* job: find an element, check whether something is true, select the
|
|
125
|
+
* elements matching a description, list what is on screen, read the user's
|
|
126
|
+
* selection, or click, scroll to, highlight, select or fill an element.
|
|
127
|
+
* Every answer is short data and never the page; `screenTools` gives the
|
|
128
|
+
* voice LLM the tool that sends it.
|
|
129
|
+
* - Answer as a delegate. The built-in single-flight `respond` job runs one
|
|
130
|
+
* screen-grounded LLM turn and answers with the reply the LLM writes. A
|
|
131
|
+
* `tool` that calls `respondToJob` answers instead when it needs to decide
|
|
132
|
+
* how the answer reaches the user.
|
|
133
|
+
* - Surface long work. Every job group this worker dispatches is reported to
|
|
134
|
+
* the client as it goes: a card when the group starts, a line per worker's
|
|
135
|
+
* progress and completion, and the close when the group completes, whether
|
|
136
|
+
* normally, by cancellation or by timeout. The client can cancel a group
|
|
137
|
+
* dispatched as cancellable.
|
|
138
|
+
*
|
|
139
|
+
* `PipelineWorker` connects a UIWorker to the client automatically when RTVI
|
|
140
|
+
* is enabled -- no extra wiring. A working worker needs only an LLM; subclass
|
|
141
|
+
* it to react to UI events or add jobs and tools, and override `renderQuery`
|
|
142
|
+
* to read a non-default job payload.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* class MyUIWorker extends UIWorker {
|
|
146
|
+
* async onNav(message: BusUIEventMessage) {
|
|
147
|
+
* const view = (message.payload as Record<string, unknown>).view;
|
|
148
|
+
* ...
|
|
149
|
+
* }
|
|
150
|
+
* static {
|
|
151
|
+
* uiEvent("nav_click")(this.prototype.onNav);
|
|
152
|
+
* }
|
|
153
|
+
* }
|
|
154
|
+
*
|
|
155
|
+
* const worker = new MyUIWorker({ name: "ui", llm: new OpenAILLMService({ apiKey: "..." }) });
|
|
156
|
+
*
|
|
157
|
+
* Note: with client `trackViewport` on (the default), off-screen nodes carry
|
|
158
|
+
* `[offscreen]` in `<ui_state>`; `scrollTo` before acting on them.
|
|
159
|
+
*/
|
|
160
|
+
export declare class UIWorker extends LLMContextWorker {
|
|
161
|
+
protected _classifier: BaseClassifier;
|
|
162
|
+
protected _injectEvents: boolean;
|
|
163
|
+
protected _autoInjectUiState: boolean;
|
|
164
|
+
protected _keepHistory: boolean;
|
|
165
|
+
protected _uiEventHandlers: Map<string, (...args: any[]) => any>;
|
|
166
|
+
protected _latestSnapshot: Dict | null;
|
|
167
|
+
protected _currentJob: BusJobRequestMessage | null;
|
|
168
|
+
protected _pending: _PendingAnswer | null;
|
|
169
|
+
/** Initialize the UIWorker. */
|
|
170
|
+
constructor(options: UIWorkerOptions);
|
|
171
|
+
/** The classifier this worker asks the small questions about the screen. */
|
|
172
|
+
get classifier(): BaseClassifier;
|
|
173
|
+
/** The latest accessibility snapshot of the page, or null before the first. */
|
|
174
|
+
get snapshot(): Dict | null;
|
|
175
|
+
/** The text the user has selected on the page, or null when nothing is. */
|
|
176
|
+
get selection(): UISelection | null;
|
|
177
|
+
/**
|
|
178
|
+
* Set the classifier up with this worker's task manager, then activate as
|
|
179
|
+
* usual.
|
|
180
|
+
*
|
|
181
|
+
* @param args Optional activation arguments.
|
|
182
|
+
*/
|
|
183
|
+
onActivated(args: Dict | null): Promise<void>;
|
|
184
|
+
/** Clean up the classifier along with the worker. */
|
|
185
|
+
cleanup(): Promise<void>;
|
|
186
|
+
/**
|
|
187
|
+
* Send a named UI command to the client.
|
|
188
|
+
*
|
|
189
|
+
* Publishes a `BusUICommandMessage`; when RTVI is enabled, `PipelineWorker`
|
|
190
|
+
* translates it into an `RTVIUICommandFrame` on the pipeline. Client-side
|
|
191
|
+
* handlers subscribed to `RTVIEvent.UICommand` (or React's
|
|
192
|
+
* `useUICommandHandler`) dispatch on the command name.
|
|
193
|
+
*
|
|
194
|
+
* @param name App-defined command name (e.g. `"toast"`, `"navigate"`, or any
|
|
195
|
+
* app-specific name).
|
|
196
|
+
* @param payload One of:
|
|
197
|
+
* - An RTVI `BaseModel` instance (including the built-in command models
|
|
198
|
+
* in `processors/frameworks/rtvi/models`). Converted to a plain object
|
|
199
|
+
* with `modelDump()`.
|
|
200
|
+
* - A plain object, forwarded as-is.
|
|
201
|
+
* - null, forwarded as an empty object.
|
|
202
|
+
*/
|
|
203
|
+
sendCommand(name: string, payload?: unknown): Promise<void>;
|
|
204
|
+
/**
|
|
205
|
+
* Send a `scroll_to` UI command to bring an element into view.
|
|
206
|
+
*
|
|
207
|
+
* Convenience wrapper around `sendCommand("scroll_to", new ScrollTo({ ref }))`.
|
|
208
|
+
* These `scrollTo` / `highlight` / `selectText` / `click` / `setInputValue`
|
|
209
|
+
* helpers are plain methods, not LLM tools: compose them inside a `job`
|
|
210
|
+
* handler or a custom `tool` body.
|
|
211
|
+
*
|
|
212
|
+
* @param ref Snapshot ref (e.g. `"e42"`) from the latest `<ui_state>`.
|
|
213
|
+
*/
|
|
214
|
+
scrollTo(ref: string): Promise<void>;
|
|
215
|
+
/**
|
|
216
|
+
* Send a `highlight` UI command to briefly flash an element.
|
|
217
|
+
*
|
|
218
|
+
* @param ref Snapshot ref (e.g. `"e42"`) from the latest `<ui_state>`.
|
|
219
|
+
*/
|
|
220
|
+
highlight(ref: string): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* Send a `select_text` UI command to select an element's text.
|
|
223
|
+
*
|
|
224
|
+
* Selects the whole element by default, or the `startOffset`..`endOffset`
|
|
225
|
+
* character sub-range (over the element's concatenated `textContent`) when
|
|
226
|
+
* both are given. Used for deixis -- pointing at content via the page's
|
|
227
|
+
* text selection.
|
|
228
|
+
*
|
|
229
|
+
* @param ref Snapshot ref (e.g. `"e42"`) from the latest `<ui_state>`.
|
|
230
|
+
* @param options.startOffset Optional start character offset of the selection.
|
|
231
|
+
* @param options.endOffset Optional end character offset (exclusive).
|
|
232
|
+
*/
|
|
233
|
+
selectText(ref: string, options?: {
|
|
234
|
+
startOffset?: number | null;
|
|
235
|
+
endOffset?: number | null;
|
|
236
|
+
}): Promise<void>;
|
|
237
|
+
/**
|
|
238
|
+
* Send a `click` UI command (checkboxes, radios, submit buttons).
|
|
239
|
+
*
|
|
240
|
+
* The standard client handler no-ops on `disabled` targets, so the worker
|
|
241
|
+
* can't bypass affordances meant to be user-controlled.
|
|
242
|
+
*
|
|
243
|
+
* @param ref Snapshot ref (e.g. `"e42"`) from the latest `<ui_state>`.
|
|
244
|
+
*/
|
|
245
|
+
click(ref: string): Promise<void>;
|
|
246
|
+
/**
|
|
247
|
+
* Send a `set_input_value` UI command to fill a text input/textarea.
|
|
248
|
+
*
|
|
249
|
+
* @param ref Snapshot ref (e.g. `"e42"`) of the input or textarea.
|
|
250
|
+
* @param value Text to write into the field.
|
|
251
|
+
* @param options.replace When true (the default), overwrite the field; when
|
|
252
|
+
* false, append (e.g. to continue a long answer in a textarea).
|
|
253
|
+
*/
|
|
254
|
+
setInputValue(ref: string, value: string, options?: {
|
|
255
|
+
replace?: boolean;
|
|
256
|
+
}): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Ask the classifier whether a UI event calls for the assistant to speak.
|
|
259
|
+
*
|
|
260
|
+
* Most clicks and edits need no comment, and a handler that reacts to
|
|
261
|
+
* events has to tell the few that do apart without an LLM turn. The
|
|
262
|
+
* question carries the event and the latest `<ui_state>` snapshot.
|
|
263
|
+
*
|
|
264
|
+
* @param message The UI event.
|
|
265
|
+
* @param criteria What is being checked for, as a yes or no question.
|
|
266
|
+
* @returns Whether the assistant should respond to the event.
|
|
267
|
+
* @throws ClassifierError If the classifier could not answer.
|
|
268
|
+
*/
|
|
269
|
+
shouldRespond(message: BusUIEventMessage, criteria?: string): Promise<boolean>;
|
|
270
|
+
/**
|
|
271
|
+
* Ask the classifier which element on screen the user means.
|
|
272
|
+
*
|
|
273
|
+
* The candidates are the snapshot's named elements, described by their role
|
|
274
|
+
* and name. The user's words and the screen are the state.
|
|
275
|
+
*
|
|
276
|
+
* @param description What the user said, such as "the blue button".
|
|
277
|
+
* @param threshold The probability below which no element is returned.
|
|
278
|
+
* @returns The element's snapshot ref, or null when there is no snapshot,
|
|
279
|
+
* no named element, or no confident answer.
|
|
280
|
+
* @throws ClassifierError If the classifier could not answer.
|
|
281
|
+
*/
|
|
282
|
+
whichElement(description: string, threshold?: number): Promise<string | null>;
|
|
283
|
+
/**
|
|
284
|
+
* Ask the classifier whether something is true of the screen.
|
|
285
|
+
*
|
|
286
|
+
* @param criteria What is being checked for, as a yes or no question, such
|
|
287
|
+
* as "is anything on the list still unchecked?".
|
|
288
|
+
* @returns How likely the answer is yes.
|
|
289
|
+
* @throws ClassifierError If the classifier could not answer.
|
|
290
|
+
*/
|
|
291
|
+
checkScreen(criteria: string): Promise<YesNoResult>;
|
|
292
|
+
/**
|
|
293
|
+
* Ask the classifier which named elements on screen match a description.
|
|
294
|
+
*
|
|
295
|
+
* One yes or no question per element, all in one call.
|
|
296
|
+
*
|
|
297
|
+
* @param criteria What the elements should be, such as "dairy products".
|
|
298
|
+
* @returns The matching elements, each as `ref`, `label` and `probability`,
|
|
299
|
+
* most likely first. Empty when nothing on screen matches or there is no
|
|
300
|
+
* snapshot.
|
|
301
|
+
* @throws ClassifierError If the classifier could not answer.
|
|
302
|
+
*/
|
|
303
|
+
selectElements(criteria: string): Promise<{
|
|
304
|
+
ref: string;
|
|
305
|
+
label: string;
|
|
306
|
+
probability: number;
|
|
307
|
+
}[]>;
|
|
308
|
+
/**
|
|
309
|
+
* Find the element the description means and act on it.
|
|
310
|
+
*
|
|
311
|
+
* @param action One of `click`, `scroll_to`, `highlight`, `select_text` or
|
|
312
|
+
* `set_input_value`.
|
|
313
|
+
* @param description The element in words, such as "the checkout button".
|
|
314
|
+
* @param options.value The text to write, for `set_input_value`.
|
|
315
|
+
* @returns The ref of the element acted on, or null when no element matched
|
|
316
|
+
* with enough confidence.
|
|
317
|
+
* @throws UnknownScreenActionError If `action` is not one of the five.
|
|
318
|
+
* @throws ClassifierError If the classifier could not answer.
|
|
319
|
+
*/
|
|
320
|
+
act(action: string, description: string, options?: {
|
|
321
|
+
value?: string | null;
|
|
322
|
+
}): Promise<string | null>;
|
|
323
|
+
/**
|
|
324
|
+
* The named elements on screen, without their refs.
|
|
325
|
+
*
|
|
326
|
+
* @param role Only elements of this role, such as `checkbox`; all when null.
|
|
327
|
+
* @returns One entry per element: `role`, `name`, its `state` tags and, for
|
|
328
|
+
* an input, its `value`.
|
|
329
|
+
*/
|
|
330
|
+
listElements(role?: string | null): {
|
|
331
|
+
role: string;
|
|
332
|
+
name: string;
|
|
333
|
+
state: string[];
|
|
334
|
+
value: string | null;
|
|
335
|
+
}[];
|
|
336
|
+
/** Dispatch UI events alongside base lifecycle handling. */
|
|
337
|
+
onBusMessage(message: BusMessage): Promise<void>;
|
|
338
|
+
/**
|
|
339
|
+
* The job this worker is currently processing, or null when idle.
|
|
340
|
+
*
|
|
341
|
+
* Set when a respond turn starts and cleared when the job completes. Lets
|
|
342
|
+
* `tool` methods inspect the in-flight job without threading the message
|
|
343
|
+
* through every call.
|
|
344
|
+
*
|
|
345
|
+
* @returns The in-flight `BusJobRequestMessage`, or null when idle.
|
|
346
|
+
*/
|
|
347
|
+
get currentJob(): BusJobRequestMessage | null;
|
|
348
|
+
protected _respondJob(message: BusJobRequestMessage): Promise<void>;
|
|
349
|
+
/**
|
|
350
|
+
* Answer a question about the screen, or act on it, for a voice LLM.
|
|
351
|
+
*
|
|
352
|
+
* The payload names the `action`, its `target` and, for a fill, the
|
|
353
|
+
* `value`. Every answer is short data and never the page.
|
|
354
|
+
*/
|
|
355
|
+
protected _screenJob(message: BusJobRequestMessage): Promise<void>;
|
|
356
|
+
/**
|
|
357
|
+
* Extract the user's query text from a job request.
|
|
358
|
+
*
|
|
359
|
+
* Override to read a different payload shape. The returned string is
|
|
360
|
+
* appended to the LLM context as a user message before the LLM runs. The
|
|
361
|
+
* default reads `payload["query"]`.
|
|
362
|
+
*
|
|
363
|
+
* @param message The inbound job request.
|
|
364
|
+
* @returns The query text to feed into the LLM.
|
|
365
|
+
*/
|
|
366
|
+
renderQuery(message: BusJobRequestMessage): string;
|
|
367
|
+
/**
|
|
368
|
+
* Run one LLM turn for a job and respond when the turn answers it.
|
|
369
|
+
*
|
|
370
|
+
* Body of the built-in `respond` job. Records the in-flight job, clears the
|
|
371
|
+
* context when `keepHistory` is false, appends the rendered query, and runs
|
|
372
|
+
* the LLM (the current `<ui_state>` is injected by the
|
|
373
|
+
* `on_before_process_frame` hook). Then blocks until the LLM's reply ends
|
|
374
|
+
* the turn or a `tool` calls `respondToJob`, which chooses how the answer
|
|
375
|
+
* is delivered, and sends the job response.
|
|
376
|
+
*
|
|
377
|
+
* Spanning the full round-trip is what makes the job single-flight
|
|
378
|
+
* (`job({ ..., sequential: true })`).
|
|
379
|
+
*
|
|
380
|
+
* @param message The inbound job request.
|
|
381
|
+
*/
|
|
382
|
+
protected _runLlmTurn(message: BusJobRequestMessage): Promise<void>;
|
|
383
|
+
/**
|
|
384
|
+
* Clear the LLM conversation history.
|
|
385
|
+
*
|
|
386
|
+
* Replaces all messages in the running context with an empty list via
|
|
387
|
+
* `LLMMessagesUpdateFrame`. The system prompt (`systemInstruction`) is
|
|
388
|
+
* unaffected, but messages seeded via `context` live in the same mutable
|
|
389
|
+
* list and ARE cleared. `keepHistory: false` workers reset automatically
|
|
390
|
+
* per job; `keepHistory: true` workers call this to deliberately start
|
|
391
|
+
* over.
|
|
392
|
+
*/
|
|
393
|
+
protected _resetContext(): Promise<void>;
|
|
394
|
+
/**
|
|
395
|
+
* Complete the in-flight job with the worker's answer.
|
|
396
|
+
*
|
|
397
|
+
* The reply the LLM writes completes the job on its own; call this from a
|
|
398
|
+
* `tool` to answer with something else. The job responds with
|
|
399
|
+
* `{"answer": answer}` for the requester's voice LLM to phrase, and a falsy
|
|
400
|
+
* `answer` completes the turn silently. No-op when no job is in flight or
|
|
401
|
+
* it was already answered.
|
|
402
|
+
*
|
|
403
|
+
* @param answer The worker's answer, handed to the requester's voice LLM to
|
|
404
|
+
* phrase.
|
|
405
|
+
* @param options.status Completion status. Defaults to `JobStatus.COMPLETED`.
|
|
406
|
+
*/
|
|
407
|
+
respondToJob(answer?: string | null, options?: {
|
|
408
|
+
status?: JobStatus;
|
|
409
|
+
}): Promise<void>;
|
|
410
|
+
/**
|
|
411
|
+
* Dispatch a job group and announce it to the client.
|
|
412
|
+
*
|
|
413
|
+
* @param workerNames Names of the workers to send the job to.
|
|
414
|
+
* @param options Everything `BaseWorker.createJobGroupAndRequestJob` takes,
|
|
415
|
+
* forwarded unchanged.
|
|
416
|
+
* @returns The created `JobGroup`.
|
|
417
|
+
*/
|
|
418
|
+
createJobGroupAndRequestJob(workerNames: string[], options?: JobGroupOptions): Promise<JobGroup>;
|
|
419
|
+
/**
|
|
420
|
+
* Cancel a running job group and complete its client card.
|
|
421
|
+
*
|
|
422
|
+
* @param jobId The job identifier to cancel.
|
|
423
|
+
* @param options.reason Optional human-readable reason for cancellation.
|
|
424
|
+
*/
|
|
425
|
+
cancelJobGroup(jobId: string, options?: {
|
|
426
|
+
reason?: string | null;
|
|
427
|
+
}): Promise<void>;
|
|
428
|
+
/** Forward a worker's progress update to the client. */
|
|
429
|
+
onJobUpdate(message: BusJobUpdateMessage | BusJobUpdateUrgentMessage): Promise<void>;
|
|
430
|
+
/**
|
|
431
|
+
* Forward a worker's response to the client as its terminal envelope.
|
|
432
|
+
*
|
|
433
|
+
* Runs before the group is torn down, so on an error status (with
|
|
434
|
+
* `cancelOnError`) the client learns which worker failed before the card
|
|
435
|
+
* closes.
|
|
436
|
+
*/
|
|
437
|
+
onJobResponse(message: BusJobResponseMessage | BusJobResponseUrgentMessage): Promise<void>;
|
|
438
|
+
/**
|
|
439
|
+
* Forward a worker's stream end as its terminal envelope.
|
|
440
|
+
*
|
|
441
|
+
* A worker may finish by ending its stream instead of responding; the
|
|
442
|
+
* client is told it completed, with the final stream data as the response
|
|
443
|
+
* payload.
|
|
444
|
+
*/
|
|
445
|
+
onJobStreamEnd(message: BusJobStreamEndMessage): Promise<void>;
|
|
446
|
+
/** Complete the client's card for a group whose workers all finished. */
|
|
447
|
+
onJobCompleted(result: JobGroupResponse): Promise<void>;
|
|
448
|
+
/**
|
|
449
|
+
* Render the latest accessibility snapshot as a `<ui_state>` block.
|
|
450
|
+
*
|
|
451
|
+
* Produces Playwright-MCP-style indented text with stable element refs.
|
|
452
|
+
* Apps inject the output via `injectUiState()` when they want the LLM to
|
|
453
|
+
* see what's on screen.
|
|
454
|
+
*
|
|
455
|
+
* When the snapshot carries a current text selection, a nested
|
|
456
|
+
* `<selection ref="...">...</selection>` block is appended inside
|
|
457
|
+
* `<ui_state>` so the LLM can resolve deictic references ("this
|
|
458
|
+
* paragraph", "what I selected") against on-page content.
|
|
459
|
+
*
|
|
460
|
+
* Override to customize the rendered form.
|
|
461
|
+
*
|
|
462
|
+
* @returns The `<ui_state>` block, or an empty string if no snapshot has
|
|
463
|
+
* been received yet.
|
|
464
|
+
*/
|
|
465
|
+
renderUiState(): string;
|
|
466
|
+
/**
|
|
467
|
+
* Append the latest `<ui_state>` block to the LLM context.
|
|
468
|
+
*
|
|
469
|
+
* No-op when no snapshot has been received. Frame has `runLlm: false` —
|
|
470
|
+
* the snapshot is context, not a user turn.
|
|
471
|
+
*/
|
|
472
|
+
injectUiState(): Promise<void>;
|
|
473
|
+
/**
|
|
474
|
+
* Render a UI event as a string for LLM context injection.
|
|
475
|
+
*
|
|
476
|
+
* Override to customize the injected content. The default wraps the event
|
|
477
|
+
* in a single `<ui_event>` XML tag with a `name` attribute and a
|
|
478
|
+
* JSON-encoded payload as inner text.
|
|
479
|
+
*
|
|
480
|
+
* @param message The UI event to render.
|
|
481
|
+
* @returns A string to append to the LLM context as a developer message.
|
|
482
|
+
*/
|
|
483
|
+
renderUiEvent(message: BusUIEventMessage): string;
|
|
484
|
+
/**
|
|
485
|
+
* Inject the event into LLM context, then dispatch to the handler.
|
|
486
|
+
*
|
|
487
|
+
* Injection runs synchronously first so the `<ui_event>` developer message
|
|
488
|
+
* lands in the context before any side effects the handler triggers. The
|
|
489
|
+
* matching `uiEvent` handler then runs in its own task so the bus
|
|
490
|
+
* dispatcher isn't held open while the handler awaits downstream work (job
|
|
491
|
+
* requests, network calls). Events with no registered handler are a no-op
|
|
492
|
+
* after injection.
|
|
493
|
+
*/
|
|
494
|
+
protected _handleUiEvent(message: BusUIEventMessage): Promise<void>;
|
|
495
|
+
/**
|
|
496
|
+
* The element the description means: `ref`, `label` and `confidence`.
|
|
497
|
+
*
|
|
498
|
+
* The candidates are the snapshot's named elements, described by role and
|
|
499
|
+
* name; `ref` and `label` are null when there are none.
|
|
500
|
+
*/
|
|
501
|
+
protected _find(description: string): Promise<{
|
|
502
|
+
ref: string | null;
|
|
503
|
+
label: string | null;
|
|
504
|
+
confidence: number;
|
|
505
|
+
}>;
|
|
506
|
+
/** The snapshot's named elements, breadth first. */
|
|
507
|
+
protected _namedElements(): _Element[];
|
|
508
|
+
/** The string a job's payload carries under `key`, empty when missing. */
|
|
509
|
+
protected _text(message: BusJobRequestMessage, key: string): string;
|
|
510
|
+
/** The answer to one screen action, as the `screen` job returns it. */
|
|
511
|
+
protected _screen(action: string, target: string, value: string | null): Promise<Dict>;
|
|
512
|
+
/** Publish one worker's terminal envelope. */
|
|
513
|
+
protected _sendJobCompleted(options: {
|
|
514
|
+
jobId: string;
|
|
515
|
+
workerName: string;
|
|
516
|
+
status: string;
|
|
517
|
+
response: Dict | null;
|
|
518
|
+
}): Promise<void>;
|
|
519
|
+
/**
|
|
520
|
+
* Publish the envelope that closes the client's card.
|
|
521
|
+
*
|
|
522
|
+
* Reached once per group: a group either completes with every worker
|
|
523
|
+
* having finished, or is cancelled, and the two paths are exclusive.
|
|
524
|
+
*/
|
|
525
|
+
protected _sendGroupCompleted(jobId: string): Promise<void>;
|
|
526
|
+
/**
|
|
527
|
+
* Translate the client's cancel event into a cancel request.
|
|
528
|
+
*
|
|
529
|
+
* Hands the request to `BaseWorker.requestCancelJobGroup`, which refuses it
|
|
530
|
+
* for a group that is unknown or was dispatched as non-cancellable.
|
|
531
|
+
*/
|
|
532
|
+
protected _handleCancelJobEvent(message: BusUIEventMessage): Promise<void>;
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Whether the context's last message is the user's turn.
|
|
536
|
+
*
|
|
537
|
+
* Distinguishes a fresh user-turn inference (tail is the user message) from
|
|
538
|
+
* the follow-up inference the LLM runs after a tool result (tail is the tool
|
|
539
|
+
* result / assistant output), so the `<ui_state>` snapshot is injected once
|
|
540
|
+
* per turn rather than again on each tool round.
|
|
541
|
+
*/
|
|
542
|
+
export declare function _isUserTurn(context: LLMContext): boolean;
|
|
543
|
+
/**
|
|
544
|
+
* Render one A11yNode object as Playwright-MCP-style indented text.
|
|
545
|
+
*
|
|
546
|
+
* Format per node:
|
|
547
|
+
*
|
|
548
|
+
* - role "name" [level=N] [cols=N] [rows=N] [state1] [state2] [ref=eN]:
|
|
549
|
+
*
|
|
550
|
+
* Trailing `:` when the node has children. `name`, `level`, grid dims, and
|
|
551
|
+
* state tags are emitted only when present on the node.
|
|
552
|
+
*/
|
|
553
|
+
export declare function _renderNode(node: Dict, options: {
|
|
554
|
+
depth: number;
|
|
555
|
+
lines: string[];
|
|
556
|
+
}): void;
|
|
557
|
+
/**
|
|
558
|
+
* Render an `A11ySelection` object as a `<selection>` block.
|
|
559
|
+
*
|
|
560
|
+
* Emitted at the root of `<ui_state>` (no leading indent) so the LLM can spot
|
|
561
|
+
* it without parsing the tree:
|
|
562
|
+
*
|
|
563
|
+
* <selection ref="e42">
|
|
564
|
+
* the actual selected text
|
|
565
|
+
* </selection>
|
|
566
|
+
*
|
|
567
|
+
* No-op when the selection lacks a `ref` or `text`.
|
|
568
|
+
*/
|
|
569
|
+
export declare function _renderSelection(selection: Dict, lines: string[]): void;
|
|
570
|
+
export {};
|
|
571
|
+
//# sourceMappingURL=ui_worker.d.ts.map
|