CLI · 07

cosmo dispatch

Fire a one-off TASK from the shell - addressed (--neuron), capability-routed (--capabilities), or auctioned (--offer) - and print the reply. By default it waits with --scope=terminal, which tags the TASK with finalize so a stock worker’s AGENT_OUTPUT is promoted to FINAL (terminal-handler finalize).

$ cosmo dispatch --help

Dispatch a TASK and print the reply.

Usage
  cosmo dispatch --url <url> [options]

Options
  --url <url>             Synapse URL (cosmo:// | nats:// | kafka://). Required.
  --namespace, -n <ns>    Namespace to dispatch into.        Default: dev
  --neuron <id>           Addressed dispatch: the target Axon's neuron_id.
  --capabilities <a,b>    Capability-routed dispatch (comma-separated).
  --input <json>          TASK input as a JSON object.       Default: {}
  --offer                  Use TASK_OFFER / BID / TASK_AWARDED instead of direct dispatch.
  --deadline-ms <n>       Bid-collection window for --offer. Default: 250
  --select <strategy>     first_bid | lowest_cost | highest_confidence. Default: first_bid
  --wait / --no-wait       Wait for the reply.                Default: --wait
  --timeout <s>           Seconds to wait for a reply.       Default: 30.0
  --scope <scope>         Pathway scope while waiting: all | terminal. Default: terminal
  --json                   Print the raw reply Signal as JSON.

Examples

# Addressed dispatch, wait for the reply (terminal-handler finalize)
$ cosmo dispatch --url=cosmo://127.0.0.1:7070 -n dev \
    --neuron=answerer --input='{"q": "hi"}'

# Capability-routed
$ cosmo dispatch --url=cosmo://127.0.0.1:7070 --capabilities=summarize \
    --input='{"text": "..."}'

# Auction it instead: collect BIDs, award the cheapest
$ cosmo dispatch --url=cosmo://127.0.0.1:7070 --offer \
    --capabilities=summarize --select=lowest_cost --input='{"text": "..."}'

Retry & cancellation are SDK-level, not CLI flags: cosmo dispatch performs a single dispatch + wait. For automatic retries with backoff and preemptive STOP of abandoned attempts, use Dendrite.run_with_retry(retry=…) / dispatch_and_wait(retry=…); to cancel a whole trace use Dendrite.stop_trace(...). See the Python and TypeScript Dendrite references.

Have a feature in mind?

The protocol, SDKs, and CLI are still pre-1.0. If something here is missing, ambiguous, or wrong - open an issue and propose a change. Every breaking change is debated in DECISIONS.md first.