Skip to main content

Plugin

A plugin hosted by Loom: what its poll answers, how an item is classified and projected onto the actions and data sources a governed turn may use, what the turn ends with, the line the host records for each handled item and the state it keeps between polls. A turn proposes a reply or declines; it sends nothing.

loom.plugin is one of loom's bounded contexts. All domains.

Types​

Classification​

loom.plugin.Classification is a record of three fields:

  • intent — loom.plugin.Intent
  • hints — List<String>
  • confidence — Decimal

Cursor​

loom.plugin.Cursor is a record of two fields:

  • name — String
  • value — String

InboundItem​

loom.plugin.InboundItem is a record of four fields:

  • id — loom.plugin.ItemId
  • revision — String
  • text — String
  • details — Json

Intent​

loom.plugin.Intent is one of Ask, Request, Task and Find.

ItemFailures​

loom.plugin.ItemFailures is a record of three fields:

  • item — loom.plugin.InboundItem
  • failures — Integer
  • last_failure — String

ItemId​

loom.plugin.ItemId wraps String and is not interchangeable with one: the whole value of naming it separately is the crossings the model then refuses.

Objective​

loom.plugin.Objective is a record of two fields:

  • name — String
  • weight — Decimal

PluginConfig​

loom.plugin.PluginConfig is a record of seven fields:

  • connectors — loom.datasource.ConnectorsCliConfig
  • sources — List<loom.datasource.DataSource>
  • objectives — List<loom.plugin.Objective>
  • classify_threshold — Optional<Decimal>, which may be absent
  • poll_interval_seconds — Integer
  • workspace_roots — List<String>
  • checkouts — List<String>

PluginState​

loom.plugin.PluginState is a record of three fields:

  • cursors — List<loom.plugin.Cursor>
  • handled — List<loom.plugin.ItemId>
  • failing — List<loom.plugin.ItemFailures>

Poll​

loom.plugin.Poll is a record of two fields:

  • items — List<loom.plugin.InboundItem>
  • cursors — List<loom.plugin.Cursor>

Projection​

loom.plugin.Projection is a record of two fields:

  • actions — List<String>
  • sources — List<loom.datasource.SourceName>

Proposal​

loom.plugin.Proposal is a record of two fields:

  • item — loom.plugin.ItemId
  • text — String

ProposedCase​

loom.plugin.ProposedCase is a record of three fields:

  • protocol — String
  • confidence — Decimal
  • reasons — List<String>

RecordLine​

loom.plugin.RecordLine is a record of nine fields:

  • item — loom.plugin.ItemId
  • intent — Optional<loom.plugin.Intent>, which may be absent
  • confidence — Optional<Decimal>, which may be absent
  • outcome — loom.plugin.RecordOutcome
  • reads — List<loom.plugin.SourceRead>
  • proposal — Optional<String>, which may be absent
  • proposed_case — Optional<loom.plugin.ProposedCase>, which may be absent
  • detail — Optional<String>, which may be absent
  • steps — List<loom.plugin.TurnStep>

RecordOutcome​

loom.plugin.RecordOutcome is one of Proposed, Declined, ProposedCase, Unclassified and Stopped.

SourceRead​

loom.plugin.SourceRead is a record of two fields:

  • source — loom.datasource.SourceName
  • kind — loom.datasource.ReadKind

StepOutcome​

loom.plugin.StepOutcome is one of Performed, Pending, Refused, Failed and NotInvoked.

TurnResult​

loom.plugin.TurnResult is a record of six fields:

  • outcome — loom.plugin.RecordOutcome
  • reads — List<loom.plugin.SourceRead>
  • proposal — Optional<String>, which may be absent
  • proposed_case — Optional<loom.plugin.ProposedCase>, which may be absent
  • detail — Optional<String>, which may be absent
  • steps — List<loom.plugin.TurnStep>

TurnStep​

loom.plugin.TurnStep is a record of five fields:

  • action — Optional<String>, which may be absent
  • outcome — loom.plugin.StepOutcome
  • reason — Optional<String>, which may be absent
  • steps_left — Integer
  • model_calls_left — Integer

Seven of the types above are reached by nothing else in this system: loom.plugin.Classification, loom.plugin.PluginState, loom.plugin.Poll, loom.plugin.Projection, loom.plugin.Proposal, loom.plugin.RecordLine and loom.plugin.TurnResult. No entity, view, command, event, error or crossing names them, so it is either vocabulary something outside this specification uses or a leftover — and only a person can tell which.


Generated from loom v1 · model digest 687ce3d39bdb34d56d1fe0c221f558534fa9c3e8eda9e34862b5b742d61331e9 · contract digest slice-sha256/2:15882f38a8fb9a69d53338df07a30d76354214618d1abb436d1cd36e9678edd3. Do not edit this file; change the specification and regenerate it with task docs-generate.