Skip to content

omicverse.jarvis.runtime

source package omicverse.jarvis.runtime

Shared message runtime for JARVIS channel adapters.

Classes

source class AgentBridgeExecutionAdapter()

Execution shim that preserves the current AgentBridge behavior.

Methods

source async method AgentBridgeExecutionAdapter.run(self, session: Any, request: str, *, adata: Optional[Any], callbacks: ExecutionCallbacks)AgentRunResult

source dataclass ConversationRoute(channel: str, scope_type: str, scope_id: str, thread_id: Optional[str] = None, sender_id: Optional[str] = None)

source method ConversationRoute.route_key()str

source property ConversationRoute.conversation_kind: str

source property ConversationRoute.is_direct: bool

source property ConversationRoute.is_group: bool

source property ConversationRoute.is_thread: bool

source method ConversationRoute.to_session_key()SessionKey

source dataclass DeliveryEvent(route: ConversationRoute, kind: str, text: str = '', text_format: str = 'plain', mode: str = 'send', target: Optional[str] = None, binary: Optional[bytes] = None, filename: Optional[str] = None, caption: str = '', controls: Tuple[str, ...] = (), metadata: Dict[str, Any] = field(default_factory=dict))

source class ExecutionAdapter()

Bases : Protocol

Methods

source async method ExecutionAdapter.run(self, session: Any, request: str, *, adata: Optional[Any], callbacks: ExecutionCallbacks)AgentRunResult

source dataclass ExecutionCallbacks(progress_cb: Optional[ProgressCallback] = None, llm_chunk_cb: Optional[ChunkCallback] = None)

source dataclass MessageEnvelope(route: ConversationRoute, text: str, sender_id: str, sender_username: Optional[str] = None, message_id: Optional[str] = None, trigger: str = 'message', explicit_trigger: bool = False, metadata: Dict[str, Any] = field(default_factory=dict))

source class MessagePolicy()

Decide whether an incoming message starts work or joins the queue.

Methods

source method MessagePolicy.decide(envelope: MessageEnvelope, state: RuntimeTaskState)PolicyDecision

source class MessagePresenter()

source method MessagePresenter.ack(envelope: MessageEnvelope, session: Any)List[DeliveryEvent]

source method MessagePresenter.queue_started(route: ConversationRoute, queued_count: int)List[DeliveryEvent]

source method MessagePresenter.draft_open(route: ConversationRoute)DeliveryEvent

source method MessagePresenter.draft_update(route: ConversationRoute, llm_text: str, progress: str)DeliveryEvent

source method MessagePresenter.draft_cancelled(route: ConversationRoute)DeliveryEvent

source method MessagePresenter.analysis_error(route: ConversationRoute, error_text: str)DeliveryEvent

source method MessagePresenter.typing(route: ConversationRoute)Optional[DeliveryEvent]

source method MessagePresenter.quick_chat_reply(route: ConversationRoute, text: str)DeliveryEvent

source method MessagePresenter.quick_chat_fallback(route: ConversationRoute)DeliveryEvent

source method MessagePresenter.analysis_status(route: ConversationRoute, *, has_media: bool, has_reports: bool, has_artifacts: bool)Optional[DeliveryEvent]

source method MessagePresenter.final_events(route: ConversationRoute, *, session: Any, user_text: str, llm_text: str, result: AgentRunResult)List[DeliveryEvent]

source class MessageRuntime(*, router: MessageRouter, presenter: MessagePresenter, execution_adapter: ExecutionAdapter, deliver: DeliveryFn, task_registry: Optional[TaskRegistry] = None, policy: Optional[MessagePolicy] = None)

source property MessageRuntime.task_registry: TaskRegistry

source method MessageRuntime.task_state(route: ConversationRoute)RuntimeTaskState

source method MessageRuntime.running_task(route: ConversationRoute)Optional[asyncio.Task]

source method MessageRuntime.get_session(route: ConversationRoute)Any

source async method MessageRuntime.cancel(self, route: ConversationRoute)bool

source async method MessageRuntime.handle_message(self, envelope: MessageEnvelope)PolicyDecision

source staticmethod MessageRuntime.build_full_request(session: Any, text: str)str

source class MessageRouter(session_manager: Any)

Resolve runtime conversation routes into Jarvis sessions.

Methods

source method MessageRouter.get_session(route: ConversationRoute)Any

source dataclass PolicyDecision(action: str, should_ignore: bool = False, should_ack: bool = False, should_start: bool = False, should_queue: bool = False, should_quick_chat: bool = False, reason: str = '')

source dataclass RuntimeTaskState(route: ConversationRoute, running: bool, request: str = '', started_at: float = 0.0, pending_count: int = 0)

source class TaskRegistry()

source method TaskRegistry.snapshot(route: ConversationRoute)RuntimeTaskState

source method TaskRegistry.task_for(route: ConversationRoute)Optional[asyncio.Task]

source method TaskRegistry.start(route: ConversationRoute, *, envelope: MessageEnvelope, task: asyncio.Task)None

source method TaskRegistry.finish(route: ConversationRoute)None

source method TaskRegistry.enqueue(envelope: MessageEnvelope)int

source method TaskRegistry.pop_pending(route: ConversationRoute)List[MessageEnvelope]

source async method TaskRegistry.cancel(self, route: ConversationRoute, *, timeout: float = 5.0)bool