Documentation
¶
Overview ¶
Package query holds domain query structs — pure read intent, processed by finders. Queries are plain data; no methods with side effects.
Index ¶
- Constants
- type Finding
- type LintQuery
- type LintResult
- type ListQuery
- type ListResult
- type PreflightQuery
- type PreflightResult
- type SchemaStatusQuery
- type SchemaStatusResult
- type Severity
- type ShowGroup
- type ShowQuery
- type ShowResult
- type SkillStatusEntry
- type SkillStatusQuery
- type SkillStatusResult
- type StatusQuery
- type StatusResult
- type WIPListQuery
- type WIPListResult
Constants ¶
const DefaultMaxDepth = 4
DefaultMaxDepth is the default upstream/downstream expansion depth, applied by the CLI when no --max-depth flag is given.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LintResult ¶
LintResult is the structured output of a LintQuery: every entry that has at least one warning, plus the total warning count for convenience.
type ListQuery ¶
type ListQuery struct {
Graph *model.Graph
Filter model.GraphFilter
}
ListQuery captures intent to filter graph entries.
type ListResult ¶
type ListResult struct {
Graph *model.Graph // needed to render derived attributes like status
Entries []*model.Entry
}
ListResult is the structured output of a ListQuery.
type PreflightQuery ¶
type PreflightQuery struct {
Entry *model.Entry
Graph *model.Graph
Model string // LLM model identifier (e.g. "claude-haiku-4-5-20251001")
Timeout time.Duration // hard timeout for the validator call
}
PreflightQuery captures intent to validate an entry against the graph using the pre-flight LLM validator. Pure read — no side effects of its own; the runner dependency injected into the finder handles the LLM call.
type PreflightResult ¶
type PreflightResult struct {
Findings []Finding
}
PreflightResult holds all findings from a pre-flight validator run. An empty Findings slice means the validator reported no findings.
func (*PreflightResult) HasBlocking ¶
func (r *PreflightResult) HasBlocking() bool
HasBlocking reports whether any finding blocks entry creation. Currently only SeverityHigh blocks; this is the single source of truth for the blocking threshold (handler_new_entry uses it; templates do not).
type SchemaStatusQuery ¶ added in v0.2.0
type SchemaStatusQuery struct {
// SDDDir is the absolute path to the .sdd/ directory. The query resolves
// meta.json relative to this path.
SDDDir string
// BinaryVersion is the running sdd binary's version string (semver for
// releases, "dev" or similar for local builds). Dev builds bypass both
// compatibility gates.
BinaryVersion string
// BinarySchemaVersion is the schema version the binary understands. The
// call site passes model.CurrentGraphSchemaVersion.
BinarySchemaVersion int
}
SchemaStatusQuery captures intent to evaluate the current binary against the graph's .sdd/meta.json compatibility fields.
The dispatcher-level write-gate runs this query before any command that mutates the graph; read commands bypass the query entirely.
type SchemaStatusResult ¶ added in v0.2.0
type SchemaStatusResult struct {
// MetaExists is false when .sdd/meta.json is not present on disk. In
// that case Meta is nil and Compatibility is considered compatible (an
// uninitialized graph will be set up on the next init).
MetaExists bool
// Meta is the parsed contents of .sdd/meta.json when MetaExists is true.
Meta *model.SchemaMeta
// Compatibility is the result of checking Meta against the binary's
// version and schema version. Always populated (with Compatible = true)
// when MetaExists is false.
Compatibility model.CompatibilityResult
}
SchemaStatusResult reports whether the binary is permitted to proceed and, when !Compatibility.Compatible, why.
type Severity ¶
type Severity string
Severity classifies a pre-flight finding. The tooling layer decides what to block on (currently: only SeverityHigh blocks); templates describe severity in purely semantic terms and never name a threshold.
type ShowGroup ¶
type ShowGroup struct {
Primary *model.Entry
Upstream []model.ShowTreeItem
Downstream []model.ShowTreeItem
}
ShowGroup is one primary's full tree: the primary entry, its upstream chain, and its downstream chain. Multiple groups are joined with separators.
type ShowQuery ¶
type ShowQuery struct {
Graph *model.Graph
IDs []string
MaxDepth int // depth limit for upstream/downstream expansion; 0 = no expansion
Downstream bool // include downstream entries (refd-by, closed-by, superseded-by)
}
ShowQuery captures intent to render a set of entries with their reference chains. Upstream is always included; downstream requires opt-in.
type ShowResult ¶
type ShowResult struct {
Graph *model.Graph // needed to render derived attributes like status
Groups []ShowGroup
}
ShowResult is the structured output for a ShowQuery — one group per primary.
type SkillStatusEntry ¶ added in v0.2.0
type SkillStatusEntry struct {
Skill string
RelPath string
AbsPath string
Status model.SkillInstallStatus
Embedded model.SkillBundleEntry
// Installed is the parsed on-disk copy. Nil when Status = Missing.
Installed *model.SkillFile
}
SkillStatusEntry carries the inputs a handler needs to decide whether (and how) to write the file: the embedded source, the parsed on-disk copy (nil if missing), and the computed status classification.
type SkillStatusQuery ¶ added in v0.2.0
type SkillStatusQuery struct {
Target model.AgentTarget
Scope model.Scope
RepoRoot string // required for ScopeProject
UserHome string // required for ScopeUser
}
SkillStatusQuery captures intent to read the install state of the embedded skill bundle against a target agent's skill directory.
type SkillStatusResult ¶ added in v0.2.0
type SkillStatusResult struct {
// InstallDir is the resolved absolute directory where skills install
// for this target + scope combination.
InstallDir string
// Entries is one row per embedded skill file.
Entries []SkillStatusEntry
}
SkillStatusResult is a per-entry snapshot of the bundle compared to disk.
type StatusQuery ¶
type StatusQuery struct {
Graph *model.Graph
RecentDone int // how many recent kind: done signals to include (default 10)
RecentInsights int // how many recent kind: insight signals to include (default 10)
}
StatusQuery captures intent to summarise current graph state.
type StatusResult ¶
type StatusResult struct {
Graph *model.Graph // for top-line counts (entries, decisions, signals)
Aspirations []*model.Entry
Contracts []*model.Entry
Plans []*model.Entry
Activities []*model.Entry
Directives []*model.Entry
Open []*model.Entry // kind: gap and kind: question signals (the actionable set)
Insights []*model.Entry // recent kind: insight signals
Recent []*model.Entry // recent kind: done signals
}
StatusResult is the structured snapshot of graph state for the status view. Each decision kind surfaces in its own section — Aspirations guide, Contracts bound, Plans carry multi-step scope with ACs, Activities capture THAT-shaped commitments that specific work happens, Directives are the WHAT-shaped choices. On the signal side, Open carries the closure-gated attention set (gap + question), Insights and Recent are truncated activity streams.
type WIPListQuery ¶
type WIPListQuery struct {
GraphDir string
}
WIPListQuery captures intent to list active WIP markers.
type WIPListResult ¶
WIPListResult is the structured output of a WIPListQuery.