Directories
ΒΆ
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
rabbot
command
Command rabbot is the entrypoint for the Rabbot-SEO real-time SEO monitoring gateway.
|
Command rabbot is the entrypoint for the Rabbot-SEO real-time SEO monitoring gateway. |
|
internal
|
|
|
alerts
Package alerts is the incident state machine: it dedups, groups, throttles, and auto-closes incidents, suppressing SEO alerts when a fetch is not ok and instead maintaining operational monitoring_* incidents.
|
Package alerts is the incident state machine: it dedups, groups, throttles, and auto-closes incidents, suppressing SEO alerts when a fetch is not ok and instead maintaining operational monitoring_* incidents. |
|
behavior
Package behavior is a synthetic behavioral golden suite that stress-tests the per-site-type SIGNAL/NOISE behavior of the Rabbot SEO change/regression engine.
|
Package behavior is a synthetic behavioral golden suite that stress-tests the per-site-type SIGNAL/NOISE behavior of the Rabbot SEO change/regression engine. |
|
benchcorpus
Package benchcorpus is a deterministic, dependency-free synthetic-HTML generator.
|
Package benchcorpus is a deterministic, dependency-free synthetic-HTML generator. |
|
cli
Package cli implements the cobra command tree.
|
Package cli implements the cobra command tree. |
|
config
Package config defines the Config schema and loads/merges/validates it from defaults -> config.yaml -> RABBOT_ env -> CLI flags via koanf.
|
Package config defines the Config schema and loads/merges/validates it from defaults -> config.yaml -> RABBOT_ env -> CLI flags via koanf. |
|
control
Package control implements the loopback HTTP control plane (server + client) with bearer-token auth, bound to 127.0.0.1 only.
|
Package control implements the loopback HTTP control plane (server + client) with bearer-token auth, bound to 127.0.0.1 only. |
|
coverage
Package coverage estimates how long a full crawl pass takes and roughly how much disk it uses, from the resolved crawl budget.
|
Package coverage estimates how long a full crawl pass takes and roughly how much disk it uses, from the resolved crawl budget. |
|
diff
Package diff compares a new snapshot to the latest stored snapshot and emits model.Change records, classifying main-content changes as cosmetic vs substantive via 64-bit SimHash Hamming distance.
|
Package diff compares a new snapshot to the latest stored snapshot and emits model.Change records, classifying main-content changes as cosmetic vs substantive via 64-bit SimHash Hamming distance. |
|
discovery
Package discovery finds the pages of a site to monitor: recursive sitemap expansion (robots Sitemap: directive, index, gzip) and bounded same-host link-following.
|
Package discovery finds the pages of a site to monitor: recursive sitemap expansion (robots Sitemap: directive, index, gzip) and bounded same-host link-following. |
|
fetcher
Package fetcher fetches URLs over net/http, capturing the full redirect chain, response timing, and headers, and classifies every response into a model.FetchClass (Β§5A).
|
Package fetcher fetches URLs over net/http, capturing the full redirect chain, response timing, and headers, and classifies every response into a model.FetchClass (Β§5A). |
|
frontier
Package frontier enforces per-host politeness (rate + concurrency) and robots.txt allow/disallow/crawl-delay (RFC 9309, crawl-delay honored).
|
Package frontier enforces per-host politeness (rate + concurrency) and robots.txt allow/disallow/crawl-delay (RFC 9309, crawl-delay honored). |
|
fsatomic
Package fsatomic provides a single crash-atomic, power-loss-durable file write used wherever Rabbot persists a config or secret-adjacent file.
|
Package fsatomic provides a single crash-atomic, power-loss-durable file write used wherever Rabbot persists a config or secret-adjacent file. |
|
gsc
Package gsc is a small, hand-rolled Google Search Console API client for the three endpoints Rabbot needs β sites.list, searchAnalytics.query, and urlInspection.index.inspect β plus the two BYO auth flows (service-account JWT and OAuth2 installed-app refresh token).
|
Package gsc is a small, hand-rolled Google Search Console API client for the three endpoints Rabbot needs β sites.list, searchAnalytics.query, and urlInspection.index.inspect β plus the two BYO auth flows (service-account JWT and OAuth2 installed-app refresh token). |
|
hostinfo
Package hostinfo answers one best-effort question: does this host look like a machine that sleeps? It is a pure-Go, build-tagged, dependency-light probe used only to decide whether `rabbot init` prints a one-line "this looks like a laptop" nudge at go-live.
|
Package hostinfo answers one best-effort question: does this host look like a machine that sleeps? It is a pure-Go, build-tagged, dependency-light probe used only to decide whether `rabbot init` prints a one-line "this looks like a laptop" nudge at go-live. |
|
humanize
Package humanize holds tiny display-formatting helpers shared by leaf packages (cli, wizard) that must agree byte-for-byte on operator-facing strings.
|
Package humanize holds tiny display-formatting helpers shared by leaf packages (cli, wizard) that must agree byte-for-byte on operator-facing strings. |
|
hydration
Package hydration locates and decodes the embedded framework state payloads that meta-framework pages ship in their initial HTML β Next.js __NEXT_DATA__ (JSON), Nuxt 3 __NUXT_DATA__ (the "devalue" array-with-index-references wire format), and React Server Components __next_f flight rows β and recovers the SEO signals (title, meta description, canonical, JSON-LD, prose) carried in them.
|
Package hydration locates and decodes the embedded framework state payloads that meta-framework pages ship in their initial HTML β Next.js __NEXT_DATA__ (JSON), Nuxt 3 __NUXT_DATA__ (the "devalue" array-with-index-references wire format), and React Server Components __next_f flight rows β and recovers the SEO signals (title, meta description, canonical, JSON-LD, prose) carried in them. |
|
linkgraph
Package linkgraph is the A9 link-graph LITE service half: it maintains the internal-link edge set incrementally on the crawl path, derives the cross-URL monitor signals (page_orphaned, inlink_loss, click_depth_regression) from the edge delta and the periodic BFS sweep, and serves the bounded get_link_graph export.
|
Package linkgraph is the A9 link-graph LITE service half: it maintains the internal-link edge set incrementally on the crawl path, derives the cross-URL monitor signals (page_orphaned, inlink_loss, click_depth_regression) from the edge delta and the periodic BFS sweep, and serves the bounded get_link_graph export. |
|
mcp
Package mcpsrv exposes the Rabbot-SEO Model Context Protocol (MCP) server over STDIO ONLY.
|
Package mcpsrv exposes the Rabbot-SEO Model Context Protocol (MCP) server over STDIO ONLY. |
|
model
Package model holds the shared data entities, enums, and operational constants.
|
Package model holds the shared data entities, enums, and operational constants. |
|
notify
Package notify defines the backend-agnostic Notifier interface, a route-aware registry/dispatcher, and the Slack Incoming-Webhook backend.
|
Package notify defines the backend-agnostic Notifier interface, a route-aware registry/dispatcher, and the Slack Incoming-Webhook backend. |
|
obs
Package obs configures structured logging (slog), provides a rotating file-log writer (lumberjack) for callers that opt into file output, and defines the canonical log-attribute key constants.
|
Package obs configures structured logging (slog), provides a rotating file-log writer (lumberjack) for callers that opt into file output, and defines the canonical log-attribute key constants. |
|
precheck
Package precheck performs an honest, pure-Go pre-flight for a URL: it reuses the existing fetcher.Doctor preflight (robots/egress/blocked/UA) and adds a calibrated HINT about whether a page's SEO content is visible to Rabbot without executing JavaScript.
|
Package precheck performs an honest, pure-Go pre-flight for a URL: it reuses the existing fetcher.Doctor preflight (robots/egress/blocked/UA) and adds a calibrated HINT about whether a page's SEO content is visible to Rabbot without executing JavaScript. |
|
renderer
Package renderer defines the JS-rendering interface.
|
Package renderer defines the JS-rendering interface. |
|
richresult
Package richresult validates a page's stored JSON-LD against a versioned Rabbot profile of rich-result eligibility checks.
|
Package richresult validates a page's stored JSON-LD against a versioned Rabbot profile of rich-result eligibility checks. |
|
robotsmeta
Package robotsmeta is the single, dependency-free canonical parser for HTML meta-robots / X-Robots-Tag directive values.
|
Package robotsmeta is the single, dependency-free canonical parser for HTML meta-robots / X-Robots-Tag directive values. |
|
rules
Package rules evaluates snapshots (and their diffs) against a default, zero-config SEO rule set, opening/closing model.Issue records keyed (url_id, rule_id) with importance-weighted impact_points.
|
Package rules evaluates snapshots (and their diffs) against a default, zero-config SEO rule set, opening/closing model.Issue records keyed (url_id, rule_id) with importance-weighted impact_points. |
|
segments
Package segments compiles per-site URL classifiers from config and serves hot-path, in-memory membership lookups.
|
Package segments compiles per-site URL classifiers from config and serves hot-path, in-memory membership lookups. |
|
serpwidth
Package serpwidth measures the *rendered pixel width* of a title or meta description against the desktop SERP reference font, so callers can decide whether text will fit a result's container instead of counting characters.
|
Package serpwidth measures the *rendered pixel width* of a title or meta description against the desktop SERP reference font, so callers can decide whether text will fit a result's container instead of counting characters. |
|
setup
internal/setup/coverageplan.go
|
internal/setup/coverageplan.go |
|
store
Package store owns all SQLite access: a single-writer pool plus a read pool, the contract PRAGMAs via a connection hook, and embedded migrations.
|
Package store owns all SQLite access: a single-writer pool plus a read pool, the contract PRAGMAs via a connection hook, and embedded migrations. |
|
supervisor
Package supervisor owns the process lifecycle as a native OS service via kardianos/service, holds the root context, and runs the (empty in M0) scheduler loop.
|
Package supervisor owns the process lifecycle as a native OS service via kardianos/service, holds the root context, and runs the (empty in M0) scheduler loop. |
|
urlx
Package urlx is a tiny, dependency-free helper for host-scoped URL comparison.
|
Package urlx is a tiny, dependency-free helper for host-scoped URL comparison. |
|
verify
Package verify implements proof-of-control verification for monitored sites.
|
Package verify implements proof-of-control verification for monitored sites. |
|
wizard
Package wizard is the interactive, terminal-UI onboarding front-end for `rabbot init`.
|
Package wizard is the interactive, terminal-UI onboarding front-end for `rabbot init`. |
|
scripts
|
|
|
bench/corpussite
command
Command corpussite is the LOOPBACK-ONLY synthetic origin for the B3 capacity harness (docs/PERFORMANCE.md).
|
Command corpussite is the LOOPBACK-ONLY synthetic origin for the B3 capacity harness (docs/PERFORMANCE.md). |
|
bench/rsschart
command
Command rsschart renders a capacity CSV (as written by scripts/bench/ capacity.sh: header "elapsed_s,vmrss_kb,db_bytes") into a small, deterministic SVG line chart at assets/capacity-rss.svg.
|
Command rsschart renders a capacity CSV (as written by scripts/bench/ capacity.sh: header "elapsed_s,vmrss_kb,db_bytes") into a small, deterministic SVG line chart at assets/capacity-rss.svg. |
Click to show internal directories.
Click to hide internal directories.