ASM.Session.Server (ASM v0.9.2)

Copy Markdown View Source

Session aggregate root for run admission, approval routing, and cost totals.

Summary

Functions

cancel_run(server, run_id)

@spec cancel_run(GenServer.server(), String.t()) :: :ok | {:error, ASM.Error.t()}

checkpoint(server)

@spec checkpoint(GenServer.server()) :: {:ok, map() | nil} | {:error, ASM.Error.t()}

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

get_state(server)

@spec get_state(GenServer.server()) :: ASM.Session.State.t()

intervene(server, run_id, prompt, opts \\ [])

@spec intervene(GenServer.server(), String.t(), String.t(), keyword()) ::
  {:ok, String.t(), pid() | :queued} | {:error, ASM.Error.t()}

pause_run(server, run_id)

@spec pause_run(GenServer.server(), String.t()) :: :ok | {:error, ASM.Error.t()}

resolve_approval(server, approval_id, decision)

@spec resolve_approval(GenServer.server(), String.t(), :allow | :deny) ::
  :ok | {:error, ASM.Error.t()}

resume_run(server, prompt, opts \\ [])

@spec resume_run(GenServer.server(), String.t(), keyword()) ::
  {:ok, String.t(), pid() | :queued} | {:error, ASM.Error.t()}

start_link(opts)

@spec start_link(keyword()) :: GenServer.on_start()

submit_run(server, prompt, opts \\ [])

@spec submit_run(GenServer.server(), String.t(), keyword()) ::
  {:ok, String.t(), pid() | :queued} | {:error, ASM.Error.t()}