khive-request 0.1.4

Request DSL — parses verb-dispatch strings (function-call, JSON, and future LNDL / pipe / bash-style syntaxes) into a transport-agnostic ParsedRequest AST
Documentation
  • Coverage
  • 19.35%
    6 out of 31 items documented0 out of 4 items with examples
  • Size
  • Source code size: 24.35 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 540.57 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • ohdearquant/khive
    20 0 24
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ohdearquant

khive-request — request-DSL parser, transport-agnostic.

Scope

Conceptually every transport into khive walks the same pipeline:

request string  →  parse  →  ParsedRequest  →  dispatch (VerbRegistry)  →  result

This crate owns only the parse step. The AST it produces (ParsedRequest, ParsedOp) is consumed by transports (MCP today; HTTP gateway, FFI, CLI in future) which then dispatch through khive-runtime's [VerbRegistry].

Keeping the parser in its own crate frees us to grow the syntax — pipe chains, $prev substitution, LNDL-style natural-language declarations, bash-flavoured redirections — without touching the runtime layering.

Today's syntax (v0.2 — ADR-020)

  • Function-call form: tool_name(arg=value, arg=value)
  • Function-call batch: [tool_name(...), tool_name(...)]
  • JSON form: [{"tool":"...", "args": {...}}, ...] (or a single object)

Argument values are JSON literals — strings, numbers, booleans, null, arrays, objects. Top-level operations inside [...] run in parallel by convention (the parser preserves order; the transport drives concurrency).

Planned (deferred to dedicated ADRs)

  • Pipe chains for sequential dependent ops (v1(...) | v2(id=$prev.id)).
  • LNDL frontend — parses lact-block source and emits the same ParsedRequest.
  • Bash-style redirection / substitution for ops that produce stream output.