While you build or debug a plugin, DataMind Oda can look inside the plugin system without changing anything. Two read-only calls do this: the first lists what the loaded plugins expose, and the second asks one provider for details. Each shows in the chat as its own step with formatted JSON. The plugins a chat defines and runs itself are covered in Plugins Oda defines in a chat.
Inspection happens in two calls:
host or client), the provider, the method and the input the method expects.The list step is titled List Inspect Providers. A query step is titled Query followed by what it asks for, as in Query host Service.listService.
A query sent to the client side waits for the first valid page: it stays pending until a page answers or the call is cancelled.
Use the exact names from the list result; do not guess them.
Four providers come with the plugin system:
Service lists the host services: first a compact directory, then the exact contract for one (listService).Event lists the events a plugin can listen to, directory first (listEvents); events the system forwards internally are left out.Config lists the live plugin entries with their configuration status (listConfigs), paged as below.Tool lists the tools the asking agent can call, including scoped and dynamic registrations (listTools).A Config query accepts four fields:
entry: the id of one entry. Without it, you get a page of the entry directory.name: narrows the directory by name.offset: where the page starts (default 0).limit: how many entries one page holds (default 25, maximum 100).A directory page reports the total and where the next page starts; the last page has no next page. Ask for one entry and you get that entry: its status, and, when it has one, its exact JSON Schema.
| Status | Meaning |
|---|---|
schema | The entry has a configuration schema; query the entry to read it. |
absent | No configuration is present for the entry. |
unsupported | The configuration is not a form the inspector can show. |
tree | The entry carries other entries instead of being one plugin, so it has no schema of its own. |
inactive | The entry is not active: it is disabled, was never loaded, or has stopped. |
Disabling a plugin after it has run flips its status to inactive.
Config query never runs a configuration's validators or transforms.Tool query is answered for the asking agent, so it lists what that agent can call, no more.A refused call changes nothing. The message tells you what was wrong:
offset must be a non-negative integer, limit must be an integer from 1 to 100, and <key> must be a non-empty string, where <key> is the field's name, as in name must be a non-empty string.unknown entry id "<id>": no entry has that id. Run the list call and query with an id from its result.unknown Tool inspect method "<method>": the provider has no such method. The provider's name replaces Tool for the other providers; use the method names the list call returns.Config query needs the live plugin directory of the running installation; if this installation was built without it, Config queries are refused.No. Both calls are read-only: they cannot invoke a service's methods or change the running system, and a Config query never runs a configuration's validators or transforms.
Service, Event, Config and Tool. Run the list call first: it returns them, and a query uses their exact names.
Event list?The Event provider leaves out the events the system forwards internally. Everything it lists is an event a plugin can listen to.
25 by default, up to 100 per page. Page with offset; the directory page tells you where the next page starts, and the last page has no next page.
tree status mean?The entry carries other entries instead of being one plugin, so it has no schema of its own. The entries it holds are listed in the directory themselves.
inactive?It is not active: it is disabled, was never loaded, or has stopped. Disabling a plugin after it has run flips its entry to inactive.
unknown entry id?The id is not in the directory. Run the list call and query with an exact id from its result.
offset or limit?One of the values is out of range: offset must be 0 or more, and limit must be 1 to 100. Correct the value and run the query again.
It settles when the first valid page arrives, or when the call is cancelled. While it waits, it is not an error.
Config queries?A Config query needs the live plugin directory of the running installation; an installation built without it refuses Config queries.