Loading...
Loading...
Use the @contextvm/sdk TypeScript SDK effectively. Reference for core interfaces, signers, relay handlers, transports, encryption, logging, and SDK patterns. Use when implementing SDK components, extending interfaces, configuring transports, or debugging SDK usage.
npx skill4agent add contextvm/cvmi typescript-sdk@contextvm/sdknpm install @contextvm/sdk
# or
bun add @contextvm/sdk// Transports
import { NostrClientTransport, NostrServerTransport } from "@contextvm/sdk";
// Signers
import { PrivateKeySigner } from "@contextvm/sdk";
// Relay Handlers
import { ApplesauceRelayPool } from "@contextvm/sdk";
// Components
import { NostrMCPProxy, NostrMCPGateway } from "@contextvm/sdk";
// Core types and utilities
import {
EncryptionMode,
CTXVM_MESSAGES_KIND,
SERVER_ANNOUNCEMENT_KIND,
createLogger,
} from "@contextvm/sdk";interface NostrSigner {
getPublicKey(): Promise<string>;
signEvent(event: EventTemplate): Promise<NostrEvent>;
nip44?: {
encrypt(pubkey: string, plaintext: string): Promise<string>;
decrypt(pubkey: string, ciphertext: string): Promise<string>;
};
}interface RelayHandler {
connect(): Promise<void>;
disconnect(relayUrls?: string[]): Promise<void>;
publish(event: NostrEvent): Promise<void>;
subscribe(
filters: Filter[],
onEvent: (event: NostrEvent) => void,
onEose?: () => void,
): Promise<void>;
unsubscribe(): void;
}subscribe()const signer = new PrivateKeySigner("32-byte-hex-private-key");
const pubkey = await signer.getPublicKey();NostrSignerreferences/custom-signers.mdconst pool = new ApplesauceRelayPool([
"wss://relay.contextvm.org",
"wss://cvm.otherstuff.ai",
]);const pool = new SimpleRelayPool(relayUrls);ApplesauceRelayPoolenum EncryptionMode {
OPTIONAL = "optional", // Use if supported (default)
REQUIRED = "required", // Fail if not supported
DISABLED = "disabled", // Never encrypt
}import { createLogger } from "@contextvm/sdk/core";
const logger = createLogger("my-module");
logger.info("event.name", {
module: "my-module",
txId: "abc-123",
durationMs: 245,
});LOG_LEVEL=debug|info|warn|errorLOG_DESTINATION=stderr|stdout|fileLOG_FILE=/path/to/fileLOG_ENABLED=true|false| Constant | Value | Description |
|---|---|---|
| 25910 | Ephemeral messages |
| 11316 | Server metadata |
| 11317 | Tools announcement |
| 11318 | Resources announcement |
| 1059 | Encrypted messages |
references/patterns.mdreferences/interfaces.mdreferences/constants.mdreferences/logging.md