Vibe.Subagents (vibe v0.2.0)

Copy Markdown View Source

Supervised subagent orchestration.

Subagents are Vibe jobs, not detached prompts. LLM subagents create child Vibe sessions so their work can be listed, inspected, cancelled, awaited, and attached from the CLI or TUI. Job and schedule metadata is persisted through Vibe's storage layer.

Summary

Functions

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Intentional facade for the public Vibe API boundary.

Types

task_spec()

@type task_spec() :: %{:task => String.t(), optional(atom()) => term()}

Functions

active()

@spec active() :: [map()]

ask(task, opts \\ [])

@spec ask(
  String.t(),
  keyword()
) :: {:ok, term()} | {:error, term()}

await(id, timeout \\ 120_000)

@spec await(String.t(), timeout()) :: {:ok, term()} | {:error, term()}

cancel(id)

@spec cancel(String.t()) :: :ok | {:error, term()}

Intentional facade for the public Vibe API boundary.

jobs()

@spec jobs() :: [term()]

Intentional facade for the public Vibe API boundary.

result(id)

@spec result(String.t()) :: {:ok, term()} | {:error, term()}

Intentional facade for the public Vibe API boundary.

run_many(specs, opts \\ [])

@spec run_many(
  [task_spec() | map()],
  keyword()
) :: {:ok, [map()]} | {:error, term(), [map()]}

schedule(task, opts \\ [])

@spec schedule(
  String.t(),
  keyword()
) :: {:ok, term()} | {:error, term()}

Intentional facade for the public Vibe API boundary.

scheduled()

@spec scheduled() :: [term()]

Intentional facade for the public Vibe API boundary.

start(task, opts \\ [])

@spec start(
  String.t(),
  keyword()
) :: {:ok, term()} | {:error, term()}

status(id)

@spec status(String.t()) :: {:ok, term()} | {:error, term()}

Intentional facade for the public Vibe API boundary.

unschedule(id)

@spec unschedule(String.t()) :: :ok | {:error, term()}

Intentional facade for the public Vibe API boundary.