SwarmOps
ReferenceMcp toolsverify
View as Markdown

verify#

Checks the whole store's consistency; deep re-hashes every object and checks the derived values against the objects too.

Metadata
Since
0.1.0
Mutates
no
Identity required
no
Envelope op
verify
Cli command
swarmops verify
Request type
VerifyReq
Annotations
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
Max result chars
null
CLI command
swarmops verify

Input schema#

arguments is a VerifyReq: swarmops schema VerifyReq prints the type. A field the type does not know is ignored.

FieldTypeRequiredDefaultDescription
deepbooleannofalseRe-hash every object, and check every derived value of the built-in derivations (the first-parent skip lists, the last touches of paths) against the objects. When false, verify checks structure only: parents, that referenced objects exist, the index against the journal, and refs.

JSON Schema#

As tools/list gives it: each $ref replaced by its definition, so that it stands alone.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "`verify`: check the whole store's consistency.",
  "properties": {
    "deep": {
      "default": false,
      "description": "Re-hash every object, and check every derived value of the built-in derivations (the\nfirst-parent skip lists, the last touches of paths) against the objects. When `false`,\nverify checks structure only: parents, that referenced objects exist, the index against\nthe journal, and refs.",
      "type": "boolean"
    }
  },
  "title": "VerifyReq",
  "type": "object"
}

Annotations#

It only reads the store.

AnnotationValueMeaning
destructiveHintfalseTrue: a tool that changes the store may overwrite or delete what is there, not only add to it.
idempotentHinttrueTrue: calling it again with the same arguments changes nothing more.
openWorldHintfalseTrue: it reaches beyond a closed set of things. Every tool here stays inside the store.
readOnlyHinttrueTrue: the tool does not change its environment, the store.

Its entry in tools/list carries no _meta.

CLI command#

swarmops verify runs the same operation and prints the same envelope.

Examples#

{
  "id": 22,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "verify"
  }
}
{
  "id": 22,
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "text": "{\"ok\":true,\"op\":\"verify\",\"api\":1,\"result\":{\"objects_checked\":14,\"changesets_checked\":4,\"problems\":[],\"findings\":[]},\"meta\":{\"repo\":\"[tmp]/store\",\"elapsed_ms\":\"[elapsed_ms]\",\"resolved\":{},\"auth\":\"trust\"}}",
        "type": "text"
      }
    ],
    "isError": false,
    "structuredContent": {
      "api": 1,
      "meta": {
        "auth": "trust",
        "elapsed_ms": "[elapsed_ms]",
        "repo": "[tmp]/store",
        "resolved": {}
      },
      "ok": true,
      "op": "verify",
      "result": {
        "changesets_checked": 4,
        "findings": [],
        "objects_checked": 14,
        "problems": []
      }
    }
  }
}

The server ran as swarmops mcp --repo [tmp]/store --as agent/worker-17, after initialize. Recorded by the MCP tests. A name in square brackets, such as [tmp] or [c1], stands for what differs from run to run: the test's temporary directory, an id, a time, the version.

Details#

Without deep, it checks structure: parents, that referenced objects exist, the index against the journal, and refs. With deep: true it also re-hashes every object and checks the derived values against the objects. A store with problems is E_STORE_CORRUPT, as swarmops verify is.

Return information#

A tool result: the envelope, whose op is verify, as structuredContent and again as the text of its one content block. isError is true exactly when the envelope's ok is false. On success the envelope's result is what swarmops verify returns.

Errors#

A failed call is a tool result with isError: true; the envelope's error.code is one of the error codes.

  • E_INVALID_ARG: arguments that do not fit VerifyReq, a field named twice among them included, or that break one of the server's own rules.
  • E_STORE_CORRUPT: the store has problems, as swarmops verify reports them.
  • E_NOT_A_REPO: the server's store is not there; the server serves on.
  • E_INTERNAL: the operation panicked, a bug.

Then the errors of the operation, as swarmops verify lists them.

See also#

Edit on GitHub

On this page