STEP-07-D — delegate_task Tool
Part of: STEP-07 spec
Depends on: #4 (STEP-07-C)
What to build
Create tools/delegate_task.py — the substrate abstraction layer.
Current transport: shared filesystem (ZBook POC)
- Write ticket to
tickets/open/<id>.yaml
- Poll for
tickets/closed/<id>.yaml or tickets/failed/<id>.yaml
- Read and return
TicketResult from result_path
- Timeout → return
TicketResult(outcome='error', reason='timeout')
Future transports (only this file changes):
| Transport |
Change |
| TCP localhost socket |
JSON over socket |
| LoRa serial (Liberty Mesh) |
Compact JSON over serial port |
| MQTT |
JSON to broker topic |
Register in agent/runner.py:
REGISTRY.register("delegate_task", _delegate_task, {...})
Architecture rule
Zero transport logic in runner.py or operator_v7.py. All of it lives here.
Gate
Manual integration test passes (see STEP-07-E). Unit test for _read_result() parsing.
Files
tools/delegate_task.py (new)
agent/runner.py
tools/registry.py
STEP-07-D — delegate_task Tool
Part of: STEP-07 spec
Depends on: #4 (STEP-07-C)
What to build
Create
tools/delegate_task.py— the substrate abstraction layer.Current transport: shared filesystem (ZBook POC)
tickets/open/<id>.yamltickets/closed/<id>.yamlortickets/failed/<id>.yamlTicketResultfromresult_pathTicketResult(outcome='error', reason='timeout')Future transports (only this file changes):
Register in
agent/runner.py:Architecture rule
Zero transport logic in
runner.pyoroperator_v7.py. All of it lives here.Gate
Manual integration test passes (see STEP-07-E). Unit test for
_read_result()parsing.Files
tools/delegate_task.py(new)agent/runner.pytools/registry.py