indexer_config_readers {module} answers {readers: [{module, key, kind,
readers}]} for every value key and own secret any kept manifest of the
module ever declared: the module where its trunk's manifest declares it,
each open pull request whose head declares it, none for a key no longer
read (design 32 *A value no longer read*). It reads one watched copy of
the modules, manifests and config-candidates states. Nodes is left out:
the indexer cannot say which nodes' builds read a key. The indexer's
findings are said on its views family and read by indexer_read_findings,
for the condition keeper (the lead's ruling).
Issue 1966.
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
59 lines
3.5 KiB
Go
59 lines
3.5 KiB
Go
package index
|
|
|
|
import (
|
|
"git.novox.be/novox/mesh-sdk/go/delivery"
|
|
"git.novox.be/novox/mesh-sdk/go/health"
|
|
|
|
"git.novox.be/novox/mesh-delivery/sdk/graph"
|
|
"git.novox.be/novox/mesh-delivery/sdk/views"
|
|
)
|
|
|
|
// ViewsStream is the indexer's views family on its old streams section (ADR 0615 §5): one event per changed key of
|
|
// each state in ViewedStates.
|
|
const ViewsStream = views.IndexerStream
|
|
|
|
// MarksBucket is the indexer's state of what its views family said each state up to.
|
|
const MarksBucket = delivery.IndexerModule + "_" + views.MarksState
|
|
|
|
// FirstViewTools are the indexer's first-view tools (ADR 0621 §1, ADR 0622 §1): the tool, the state it answers, and
|
|
// the words of what that state holds. Each answers only its callers list (CallersEnv), which the manifest writes.
|
|
var FirstViewTools = []ViewedTool{
|
|
{Tool: "manifests", State: "manifests", Words: "every manifest the indexer keeps, by its digest."},
|
|
{Tool: "modules", State: "modules", Words: "every module the indexer holds, its fingerprint, inputs and manifest digest."},
|
|
{Tool: "verdicts", State: VerdictsState, Words: "the judge's verdict on each manifest: accepted, waiting or refused."},
|
|
}
|
|
|
|
// ReadTools are the indexer's ordinary read tools, one per state its readers read (design 25 § 12.2).
|
|
var ReadTools = []ViewedTool{
|
|
{Tool: "indexer_read_manifests", State: "manifests", Words: "every manifest the indexer keeps, by its digest."},
|
|
{Tool: "indexer_read_modules", State: "modules", Words: "every module the indexer holds, its fingerprint, inputs and manifest digest."},
|
|
{Tool: "indexer_read_predefined", State: delivery.IndexerPredefinedState, Words: "the predefined config values of each module on the trunk."},
|
|
{Tool: "indexer_read_config_candidates", State: delivery.IndexerConfigCandidatesState, Words: "the config declarations of each open pull request."},
|
|
{Tool: "indexer_read_candidates", State: "candidates", Words: "the candidate groups: the pull requests sharing a branch, their heads and the modules each touches."},
|
|
{Tool: "indexer_read_packages", State: delivery.PackagesState, Words: "the published packages per series."},
|
|
{Tool: "indexer_read_graph", State: graph.State, Words: "the module graph: each module's build and provision edges."},
|
|
{Tool: "indexer_read_heard", State: HeardState, Words: "the forge messages the indexer heard and what it did with each."},
|
|
{Tool: "indexer_read_taken", State: "taken", Words: "each repository's merge the indexer took in last."},
|
|
{Tool: "indexer_read_findings", State: health.FindingsState, Words: "the indexer's findings, which the condition keeper raises and clears."},
|
|
}
|
|
|
|
// ViewedTool is one tool over one state of the indexer's.
|
|
type ViewedTool struct {
|
|
Tool, State, Words string
|
|
}
|
|
|
|
// ViewedStates are the states the indexer's views family says, each by its bucket: the ten its readers read.
|
|
var ViewedStates = map[string]string{
|
|
"manifests": delivery.ManifestsBucket,
|
|
"modules": delivery.ModulesBucket,
|
|
VerdictsState: VerdictsBucket,
|
|
delivery.IndexerPredefinedState: PredefinedBucket,
|
|
delivery.IndexerConfigCandidatesState: ConfigCandidatesBucket,
|
|
"candidates": delivery.CandidatesBucket,
|
|
delivery.PackagesState: delivery.PackagesBucket,
|
|
graph.State: graph.Bucket,
|
|
HeardState: HeardBucket,
|
|
"taken": delivery.TakenBucket,
|
|
health.FindingsState: health.FindingsBucket(delivery.IndexerModule),
|
|
}
|