Package-level declarations

Types

Link copied to clipboard

A single, stateful run of one query, advanced one ResolutionStep at a time - the toolkit-neutral equivalent of a Prolog solution iterator.

Link copied to clipboard
data class ResolutionRequest(val pageId: PageId, val query: String, val timeout: Duration, val options: Map<String, String>, val stdin: String)

Everything a SolverSession needs to open a ResolutionCursor for one query on one page.

Link copied to clipboard

Controls whether resolutions on different pages may run at the same time, or whether starting one pre-empts every other page's.

Link copied to clipboard
sealed interface ResolutionStep

One observable outcome of advancing a ResolutionCursor: either another solution (Yield), exhaustion (End), or an unrecoverable error (Failed) - always carrying whatever I/O signals the solver emitted meanwhile.

Link copied to clipboard
data class SolverCapabilities(val values: Set<String> = emptySet())

A set of feature-flag strings a solver profile/session declares support for (see the companion's named constants), gating which inspector tabs/actions a frontend shows for it.

Link copied to clipboard
data class SolverProfile(val id: SolverProfileId, val displayName: String, val capabilities: SolverCapabilities, val factory: SolverSessionFactory, val defaultOptions: Map<String, String> = emptyMap(), val defaultOperators: List<OperatorPresentation> = emptyList())

A selectable solver configuration (e.g. "Prolog" or "Problog") a user can create a page against, bundling how to build sessions for it with what it supports and starts with.

Link copied to clipboard

The set of solver profiles a running application knows about, keyed by id and rejecting duplicates.

Link copied to clipboard
interface SolverSession

A live solver instance backing one page, built by a SolverSessionFactory from a SolverProfile.

Link copied to clipboard
data class SolverSessionCreationRequest(val pageId: PageId, val documentId: DocumentId?, val sourceText: String, val documentRevision: Long, val profileId: SolverProfileId, val options: Map<String, String>, val stdin: String)

Everything a SolverSessionFactory needs to build the SolverSession backing one page.

Link copied to clipboard
fun interface SolverSessionFactory

Builds SolverSessions for one SolverProfile - the profile's own factory function.

Link copied to clipboard
sealed interface SolverSignal

Something a solver emitted while resolving a query, alongside (not instead of) its ResolutionSteps.