Major refactor of the message pump architecture: - Replace bus.py with stream_pump.py using aiostream for composable stream processing with natural fan-out via flatmap - Add to_id field to MessageState for explicit routing - Fix routing to use to_id.class format (e.g., "greeter.greeting") - Generate XSD schemas from xmlified payload classes - Fix xmlable imports (absolute -> relative) and parse_element ctx New features: - handlers/hello.py: Sample Greeting/GreetingResponse handler - config/organism.yaml: Sample organism configuration - 41 tests (31 unit + 10 integration) all passing Schema changes: - envelope.xsd: Allow any namespace payloads (##other -> ##any) Dependencies added to pyproject.toml: - aiostream>=0.5 (core dependency) - pyhumps, termcolor (for xmlable) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
24 lines
635 B
YAML
24 lines
635 B
YAML
# organism.yaml — Sample configuration for testing the message pump
|
|
#
|
|
# This defines a simple "hello world" organism with one listener.
|
|
|
|
organism:
|
|
name: hello-world
|
|
port: 8765
|
|
|
|
# Concurrency settings
|
|
max_concurrent_pipelines: 50
|
|
max_concurrent_handlers: 20
|
|
max_concurrent_per_agent: 5
|
|
|
|
# Thread scheduling: breadth-first or depth-first
|
|
thread_scheduling: breadth-first
|
|
|
|
listeners:
|
|
# The greeter listener responds to Greeting payloads
|
|
- name: greeter
|
|
payload_class: handlers.hello.Greeting
|
|
handler: handlers.hello.handle_greeting
|
|
description: Responds with a greeting message
|
|
agent: false
|
|
broadcast: false
|