@happyvertical/smrt-gnode
Federation scaffolding for gnode knowledge bases: published types and class shells, with none of the discovery or exchange behavior implemented yet.
What it gives you
Federation scaffolding for gnode knowledge bases: published types and class shells, with none of the discovery or exchange behavior implemented yet.
- 01Ships today: the GnodePeer, FederationConfig, and WebFingerResponse types
- 02Ships today: Federation, WebFingerProtocol, and PeerExchangeProtocol class shells whose methods return an empty array or null
- 03Planned: WebFinger discovery at /.well-known/gnode, peer exchange at /api/federation/peers, and ActivityPub-inspired cross-gnode queries
What you can rely on now
The exported type definitions are stable enough for design work. A peer has a url, name, discoveredAt, and optional lastSeen. Federation configuration covers enabled, discoverability, peers, autodiscovery, and peerExchange. Nothing behind these types does network work.
What is still to be built
Peer discovery over WebFinger, the peer-exchange endpoint, and cross-gnode querying are all unimplemented. Until they land, an application that needs federation has to implement the transport itself rather than importing it from here.
Check upstream before you plan around it
The source is the current truth. The README has the same stubs-only warning, but some parts are behind the code. It reports no dependencies, although the package declares smrt-core and several SDK adapters. Read the source before you assume that planned behavior is available.
Open the package source →Package UI
No UI layer to carry
This package stays focused on models, runtime behavior, or tooling. Build its interface with smrt-ui, or use a related domain package that exposes a /svelte entry point.
Intentionally headless
Package previews
No playground module yet
This package does not currently export a ./playground module. Its component names and import path remain available in the Components tab.
Intentionally not registered
Generated interface
REST
The exact route set comes from each model's @smrt({ api }) policy
and the application manifest—not from a second controller definition.
This package supports the runtime or build pipeline; it does not define a representative CRUD resource of its own.
Generated interface
MCP
AI tools are generated from the methods you explicitly include. Their inputs are validated against the same model metadata used by REST and CLI.
This package is itself infrastructure, UI, or tooling. Its capabilities are consumed by generated app MCP servers rather than exposed as a model resource.
Browser-native agent interface
WebMCP
The generated web definitions carry the same tool names, descriptions, and JSON Schema
inputs as MCP. smrt-web registers them with document.modelContext.
This package does not define a representative browser tool itself. Its models can still participate when an application exposes them through generated web collections.
Generated interface
CLI
The app CLI turns manifest resources into predictable operator commands while keeping package-specific actions close to their models.
Use this package through its documented build or runtime entry points. It does not contribute a representative generated resource command.