CVM
Implementation: experimental · Proposal: in-review (status checked 2026-10-31). Session and registry bindings are tested; upstream explicitly marks the contract NEEDS WORK. All capabilities remain subject to change. Maturity and opt-in policy.
Native ContextVM bridge — MCP-over-Nostr (discover / listTools / callTool / listResources / readResource / registry.*); the shell owns transport, registry selection, and tool policy.
ts
if (window.napplet?.cvm) {
const servers = await window.napplet.cvm.discover({ search: 'relay' });
const tools = await window.napplet.cvm.listTools(servers[0]);
const result = await window.napplet.cvm.callTool(servers[0], tools[0].name, {});
}This non-normative guide defers to the living NAP-CVM proposal. Feature-gate with if (window.napplet?.cvm) before use; the runtime injects only available domains. Typed helpers ship from @napplet/nap/cvm and @napplet/sdk.