Skip to content

STEP-07-D: tools/delegate_task.py — substrate-agnostic ticket dispatch #5

@MrSnowNB

Description

@MrSnowNB

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)

  1. Write ticket to tickets/open/<id>.yaml
  2. Poll for tickets/closed/<id>.yaml or tickets/failed/<id>.yaml
  3. Read and return TicketResult from result_path
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions