# amoorion.methods

Operations over the platforms; the CLI, API, MCP and daemon expose them.

### *class* amoorion.methods.AccountStatus(, platform, ready, missing=[], error=None)

Bases: [`Model`](amoorion.core.html.md#amoorion.core.Model)

Whether a platform is ready: its missing secrets by name, never by value.

* **Parameters:**
  * **platform** (*str*)
  * **ready** (*bool*)
  * **missing** (*list* *[**str* *]*)
  * **error** (*str* *|* *None*)

#### model_config *= {'extra': 'forbid'}*

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

### *class* amoorion.methods.Accounts(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Tells which platforms can work right now. Asks the vault, not the platforms.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### run(params)

Try every secret of every plugin; what can’t be read counts as missing.

* **Parameters:**
  **params** ([*Model*](amoorion.core.html.md#amoorion.core.Model))
* **Return type:**
  list[[*AccountStatus*](amoorion.methods.accounts_method.html.md#amoorion.methods.accounts_method.AccountStatus)]

### *class* amoorion.methods.Compose(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Lets a language model write a text. Posts nothing: pair it with `publish` in a workflow.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`ComposeParams`](amoorion.methods.compose_method.html.md#amoorion.methods.compose_method.ComposeParams)

#### run(params)

One completion by the server in the vault.

* **Parameters:**
  **params** ([*ComposeParams*](amoorion.methods.compose_method.html.md#amoorion.methods.compose_method.ComposeParams))
* **Return type:**
  [*Composition*](amoorion.utilities.llm.html.md#amoorion.utilities.llm.Composition)

### *class* amoorion.methods.Delete(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Removes a message from its platform, and marks its copy in the dataset as deleted.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`DeleteParams`](amoorion.methods.delete_method.html.md#amoorion.methods.delete_method.DeleteParams)

#### run(params)

A failure comes back as a `Result` with the reason, not as an exception.

* **Parameters:**
  **params** ([*DeleteParams*](amoorion.methods.delete_method.html.md#amoorion.methods.delete_method.DeleteParams))
* **Return type:**
  [*Result*](amoorion.models.base.html.md#amoorion.models.base.Result)

### *class* amoorion.methods.InboxMethod(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Lists what is already kept; asks no platform, so it works offline.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`InboxParams`](amoorion.methods.inbox_method.html.md#amoorion.methods.inbox_method.InboxParams)

#### run(params)

The newest messages kept.

* **Parameters:**
  **params** ([*InboxParams*](amoorion.methods.inbox_method.html.md#amoorion.methods.inbox_method.InboxParams))
* **Return type:**
  list[[*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)]

### *class* amoorion.methods.Method(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Controller`](amoorion.core.html.md#amoorion.core.Controller)

One operation of amoorion, the same for every front-end.

A subclass names itself, declares `Params` and implements `run`; registered in
`METHODS`, it appears in the CLI, the API, the MCP server and `Amoorion`.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`NoParams`](amoorion.methods.base.html.md#amoorion.methods.base.NoParams)

#### *property* vault *: [Vault](amoorion.vault.base.html.md#amoorion.vault.base.Vault)*

The vault given, or the environment’s when first needed.

#### *property* inbox *: [Inbox](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox)*

The inbox given, or the environment’s when first needed.

#### *property* dataset *: [Dataset](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset)*

The dataset given, or the environment’s when first needed.

#### run(params)

Do the work; takes validated parameters, answers models.

* **Parameters:**
  **params** ([*Model*](amoorion.core.html.md#amoorion.core.Model))
* **Return type:**
  [*Model*](amoorion.core.html.md#amoorion.core.Model) | list[[*Model*](amoorion.core.html.md#amoorion.core.Model)]

### *class* amoorion.methods.Notify(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

A post to wherever the user wants to hear from amoorion, set in AMOORION_NOTIFY.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`NotifyParams`](amoorion.methods.notify_method.html.md#amoorion.methods.notify_method.NotifyParams)

#### run(params)

Publish to those platforms; none set means nothing is sent and no error.

* **Parameters:**
  **params** ([*NotifyParams*](amoorion.methods.notify_method.html.md#amoorion.methods.notify_method.NotifyParams))
* **Return type:**
  list[[*Result*](amoorion.models.base.html.md#amoorion.models.base.Result)]

### *class* amoorion.methods.PluginInfo(, name, description, capabilities, error=None)

Bases: [`Model`](amoorion.core.html.md#amoorion.core.Model)

One platform and what it can do; `error` when its package failed to load.

* **Parameters:**
  * **name** (*str*)
  * **description** (*str*)
  * **capabilities** (*list* *[*[*Capability*](amoorion.plugins.base.html.md#amoorion.plugins.base.Capability) *]*)
  * **error** (*str* *|* *None*)

#### model_config *= {'extra': 'forbid'}*

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

### *class* amoorion.methods.Plugins(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

What is installed. Loads every plugin, and also reports those that failed.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### run(params)

Working plugins by name, then the failed ones.

* **Parameters:**
  **params** ([*Model*](amoorion.core.html.md#amoorion.core.Model))
* **Return type:**
  list[[*PluginInfo*](amoorion.methods.plugins_method.html.md#amoorion.methods.plugins_method.PluginInfo)]

### *class* amoorion.methods.Publish(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

One post to several platforms. One failing doesn’t stop the others.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`PublishParams`](amoorion.methods.publish_method.html.md#amoorion.methods.publish_method.PublishParams)

#### run(params)

One `Result` per platform, whatever happens on each of them.

* **Parameters:**
  **params** ([*PublishParams*](amoorion.methods.publish_method.html.md#amoorion.methods.publish_method.PublishParams))
* **Return type:**
  list[[*Result*](amoorion.models.base.html.md#amoorion.models.base.Result)]

### *class* amoorion.methods.Read(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Fetches the latest messages, and keeps them in the inbox and the dataset.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`ReadParams`](amoorion.methods.read_method.html.md#amoorion.methods.read_method.ReadParams)

#### run(params)

Read, then keep; `keep` also tells which messages are known already.

* **Parameters:**
  **params** ([*ReadParams*](amoorion.methods.read_method.html.md#amoorion.methods.read_method.ReadParams))
* **Return type:**
  list[[*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)]

### *class* amoorion.methods.Reply(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Answers one message on its platform.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`ReplyParams`](amoorion.methods.reply_method.html.md#amoorion.methods.reply_method.ReplyParams)

#### run(params)

A reply needs only the id, so the message is rebuilt from it instead of fetched.

* **Parameters:**
  **params** ([*ReplyParams*](amoorion.methods.reply_method.html.md#amoorion.methods.reply_method.ReplyParams))
* **Return type:**
  [*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)

### *class* amoorion.methods.Search(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Finds messages already in the inbox; asks no platform.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`SearchParams`](amoorion.methods.search_method.html.md#amoorion.methods.search_method.SearchParams)

#### run(params)

The newest messages containing the text.

* **Parameters:**
  **params** ([*SearchParams*](amoorion.methods.search_method.html.md#amoorion.methods.search_method.SearchParams))
* **Return type:**
  list[[*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)]

### *class* amoorion.methods.Simulate(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Personas talking about a topic, for trying out rules and workflows on a crowd.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`SimulateParams`](amoorion.methods.simulate_method.html.md#amoorion.methods.simulate_method.SimulateParams)

#### run(params)

The feed goes into the inbox under `society:<run>`; no platform is touched.

* **Parameters:**
  **params** ([*SimulateParams*](amoorion.methods.simulate_method.html.md#amoorion.methods.simulate_method.SimulateParams))
* **Return type:**
  list[[*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)]

### *class* amoorion.methods.Skill(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Hands out the SKILL.md installed with the package, so its version always fits.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### run(params)

Read the file; nothing else is touched, so it needs no vault.

* **Parameters:**
  **params** ([*Model*](amoorion.core.html.md#amoorion.core.Model))
* **Return type:**
  [*SkillText*](amoorion.methods.skill_method.html.md#amoorion.methods.skill_method.SkillText)

### *class* amoorion.methods.SkillText(, path, text)

Bases: [`Model`](amoorion.core.html.md#amoorion.core.Model)

The skill’s file: `path` to copy it into an agent’s skills, `text` to read it.

* **Parameters:**
  * **path** (*str*)
  * **text** (*str*)

#### model_config *= {'extra': 'forbid'}*

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

### *class* amoorion.methods.Snapshot(, platform, profile, path, read, complete, present, gone, deleted)

Bases: [`Model`](amoorion.core.html.md#amoorion.core.Model)

What a snapshot found: read now, present, gone from the platform, and deleted by amoorion.

* **Parameters:**
  * **platform** (*str*)
  * **profile** (*str*)
  * **path** (*str*)
  * **read** (*int*)
  * **complete** (*bool*)
  * **present** (*int*)
  * **gone** (*int*)
  * **deleted** (*int*)

#### model_config *= {'extra': 'forbid'}*

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

### *class* amoorion.methods.SnapshotMethod(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

A copy of a profile’s posts, as files. Read-only for the platform.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`SnapshotParams`](amoorion.methods.snapshot_method.html.md#amoorion.methods.snapshot_method.SnapshotParams)

#### run(params)

Only a complete read (fewer posts than asked for) can tell that a post is gone.

* **Parameters:**
  **params** ([*SnapshotParams*](amoorion.methods.snapshot_method.html.md#amoorion.methods.snapshot_method.SnapshotParams))
* **Return type:**
  [*Snapshot*](amoorion.methods.snapshot_method.html.md#amoorion.methods.snapshot_method.Snapshot)

### *class* amoorion.methods.Wiki(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

A Wikipedia summary as a message, ready for a workflow to post on.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`WikiParams`](amoorion.methods.wiki_method.html.md#amoorion.methods.wiki_method.WikiParams)

#### run(params)

Ask Wikipedia’s public REST API; it wants a User-Agent saying who is asking.

* **Parameters:**
  **params** ([*WikiParams*](amoorion.methods.wiki_method.html.md#amoorion.methods.wiki_method.WikiParams))
* **Return type:**
  [*Message*](amoorion.models.base.html.md#amoorion.models.base.Message)

### *class* amoorion.methods.Workflow(vault=None, view=None, inbox=None, dataset=None)

Bases: [`Method`](amoorion.methods.base.html.md#amoorion.methods.base.Method)

Methods one after another; each can use the previous answer as `$last`. Or rules over the inbox.

Each message goes through a rule once; a rule that failed gets it again next time.

* **Parameters:**
  * **vault** ([*Vault*](amoorion.vault.base.html.md#amoorion.vault.base.Vault) *|* *None*)
  * **view** ([*View*](amoorion.core.html.md#amoorion.core.View) *|* *None*)
  * **inbox** ([*Inbox*](amoorion.inbox.base.html.md#amoorion.inbox.base.Inbox) *|* *None*)
  * **dataset** ([*Dataset*](amoorion.dataset.base.html.md#amoorion.dataset.base.Dataset) *|* *None*)

#### Params

alias of [`WorkflowParams`](amoorion.methods.workflow_method.html.md#amoorion.methods.workflow_method.WorkflowParams)

#### run(params)

Each step run, stopping at the first failure; or each rule run on each new message.

* **Parameters:**
  **params** ([*WorkflowParams*](amoorion.methods.workflow_method.html.md#amoorion.methods.workflow_method.WorkflowParams))
* **Return type:**
  list[[*StepResult*](amoorion.workflows.base.html.md#amoorion.workflows.base.StepResult)] | list[[*Handled*](amoorion.methods.workflow_method.html.md#amoorion.methods.workflow_method.Handled)]

### amoorion.methods.plugsFlagsToList(flags)

The names of the flags that are on, e.g. of `Plugins["x"].infoflags`.

* **Parameters:**
  **flags** (*dict* *[**str* *,* *bool* *]*)
* **Return type:**
  list[str]

### Modules

| [`accounts_method`](amoorion.methods.accounts_method.html.md#module-amoorion.methods.accounts_method)   | Accounts: which platforms have their secrets.                                   |
|------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| [`all_params`](amoorion.methods.all_params.html.md#module-amoorion.methods.all_params)             | The params of every method in one place; each is defined next to its method.    |
| [`base`](amoorion.methods.base.html.md#module-amoorion.methods.base)                         | Methods: what amoorion can do, independent of who asks.                         |
| [`compose_method`](amoorion.methods.compose_method.html.md#module-amoorion.methods.compose_method)     | Compose: ask a language model to write something.                               |
| [`delete_method`](amoorion.methods.delete_method.html.md#module-amoorion.methods.delete_method)       | Delete: remove one message from its platform, a copy kept first.                |
| [`inbox_method`](amoorion.methods.inbox_method.html.md#module-amoorion.methods.inbox_method)         | Inbox: the messages received so far.                                            |
| [`notify_method`](amoorion.methods.notify_method.html.md#module-amoorion.methods.notify_method)       | Notify: tell the platforms of AMOORION_NOTIFY.                                  |
| [`plugins_method`](amoorion.methods.plugins_method.html.md#module-amoorion.methods.plugins_method)     | Plugins: what is installed and what each can do.                                |
| [`publish_method`](amoorion.methods.publish_method.html.md#module-amoorion.methods.publish_method)     | Publish: one post on several platforms.                                         |
| [`read_method`](amoorion.methods.read_method.html.md#module-amoorion.methods.read_method)           | Read: the latest messages of one platform.                                      |
| [`reply_method`](amoorion.methods.reply_method.html.md#module-amoorion.methods.reply_method)         | Reply: answer one message on its platform.                                      |
| [`search_method`](amoorion.methods.search_method.html.md#module-amoorion.methods.search_method)       | Search: find messages of the inbox by their text.                               |
| [`simulate_method`](amoorion.methods.simulate_method.html.md#module-amoorion.methods.simulate_method)   | Simulate: personas reacting to a topic, in memory only.                         |
| [`skill_method`](amoorion.methods.skill_method.html.md#module-amoorion.methods.skill_method)         | Skill: amoorion's agent skill, what an agent reads to learn to use it.          |
| [`snapshot_method`](amoorion.methods.snapshot_method.html.md#module-amoorion.methods.snapshot_method)   | Snapshot: read a profile's posts into the dataset.                              |
| [`wiki_method`](amoorion.methods.wiki_method.html.md#module-amoorion.methods.wiki_method)           | Wiki: the summary of a Wikipedia article.                                       |
| [`workflow_method`](amoorion.methods.workflow_method.html.md#module-amoorion.methods.workflow_method)   | Workflow: methods run one after another, or rules running them on what arrived. |
