Wire shape: {"type":"notification","value":{"installed": true|false}}.
Emitted by objectiveai plugins install. true means the binary
landed at <base_dir>/plugins/<repository>/plugin[.exe]; false
means the manifest fetched OK but this platform isn’t in its
binaries map (nothing to install, not an error).
Wire shape for <scope> instructions get (and the global
instructions get). The body is the instruction text the user is
meant to follow plus the generated instructions ID line.
Generic wire wrapper for every list-style notification:
{"type":"notification","items":[...]}. The element type varies
(e.g. Items<ListItem> for agents list, Items<PairListItem> for
pairs list, Items<objectiveai_sdk::filesystem::config::Favorite> for
favorites listings, Items<objectiveai_sdk::filesystem::logs::ListItem>
for log listings).
Result of a user-supplied jq filter applied to a config getter.
jq is the one explicit escape hatch for untyped JSON: the filter
can produce literally any shape, so the body is serde_json::Value.
Wire: {"type":"notification","jq":<value>}.
Emitted mid-stream by long-running */create commands once a log
id has been allocated and the log file is available. Replaces the
prior "Logs ID: ..." plaintext sentinel.
Wrapper that nests the notification payload one level deeper under a
value field. Required because super::super::Output uses
#[serde(tag = "type")] — if we let T flatten directly into the
outer JSON object, any T carrying its own "type" field (e.g. a
JSON Schema document with "type": "object") would collide with
the discriminator.
Wire shape: {"type":"notification","value":{"plugin": <manifest> | null}}.
Emitted by objectiveai plugins get <name>. The value is the
resolved ManifestWithNameAndSource when the manifest file exists
and parses, or JSON null when it doesn’t (same silent-skip policy
as list).
Wire shape: {"type":"notification","value":{"plugins":[...]}}.
Emitted by objectiveai plugins list. One entry per .json
manifest discovered in <base_dir>/plugins/; failures during
discovery are silently dropped (see Client::list_plugins).
A single JSON Schema document, emitted by schemas <category> <type> get.
The body is the raw schema as a Value since JSON Schemas have an
open recursive structure.
Generic wire wrapper used by every typed config getter:
{"type":"notification","value":<T>}. The element type varies
per config family (e.g. Value<ApiMode>, Value<Option<String>>,
Value<ApiHeadersConfig>).
One entry in a non-pair resource listing — either a favorite that
matches a remote resource or a resolved remote path. Untagged so the
wire shape is whichever underlying object matches.
Contents of a log read or subscribe. Mirrors the upstream
objectiveai_sdk::filesystem::logs::LogContent (which has no serde
derives) so the wire shape is parseable in cli-lib without depending
on it for serialization.