wolfram/xrpc.h |
Implemented |
libcurl-backed query/procedure calls, binary blob upload, client-level atproto-proxy service-proxying header |
wolfram/session.h |
Implemented |
PDS login, resume, refresh, get, and logout |
wolfram/identity.h |
Implemented |
did:plc, did:web, portable c-ares/POSIX DNS TXT, well-known fallback |
wolfram/repo.h |
Implemented |
DAG-CBOR parse/serialize, one-shot and incremental CID hashing, CAR, MST, commit, diff verify/apply, operation inversion |
wolfram/crypto.h |
Implemented |
secp256k1 + P-256 keygen, sign, verify |
wolfram/oauth.h |
Implemented |
OAuth discovery, PKCE/DPoP, PAR/token calls, callback validation, and persistent state |
wolfram/server.h |
Implemented |
Server account management — describeServer, createAccount, app passwords, deleteAccount, password reset |
wolfram/jetstream.h / wolfram/jetstream_replay.h |
Implemented |
Filtered Jetstream live JSON subscriptions plus Jetstream v2 planSnapshot replay planning, strict pagination metadata, owned segment/block plans, cursor reconnect/backoff, optional zstd, and typed event parsing |
wolfram/json.h |
Implemented |
Generic (non-Lexicon) JSON: canonical round-trip and a JSON-Schema validator subset (type/required/properties/items, enum/const, format, numeric bounds, string length/pattern, array constraints, additionalProperties, anyOf/oneOf/not) |
wolfram/label.h |
Implemented |
Label subscription (com.atproto.label.subscribeLabels) via WebSocket |
wolfram/sync.h |
Implemented |
Firehose subscribeRepos subscription, commit verification, CAR download, plus getBlob/getBlocks/getRecord/listBlobs/getHead/getLatestCommit/getRepoStatus/listRepos |
wolfram/validate.h |
Implemented |
Runtime Lexicon schema validation (records and named values), refs/unions/format keywords |
wolfram/agent.h |
Implemented |
High-level BskyAgent-style API: session, posts, profile, social graph, feeds, preferences, push registration, notifications, blobs, video upload (wf_agent_upload_video/wf_agent_get_video_job_status/wf_agent_get_video_upload_limits), server + app-password management |
wolfram/blob.h |
Implemented |
Binary blob upload — image/blob POST (wf_xrpc_upload_blob) and dedicated video upload (wf_agent_upload_video, wf_uploaded_blob_free) |
wolfram/chat_typed.h |
Implemented |
Chat (DM) — chat.bsky.convo/group/actor/moderation write+query wrappers routed to the user's PDS via the atproto-proxy header (wf_xrpc_client_set_proxy) |
wolfram/ozone.h |
Implemented |
Ozone moderation-service / labeler helper — verify and emit labels, build service auth headers. Full typed wrapper coverage across all tools.ozone.* namespaces: moderation, queue, report, team, verification, signature, setting, hosting, server, safelink, communication, and set value wrappers |
wolfram/auth_client.h |
Implemented |
Authenticated XRPC client — DPoP-binding OAuth-authenticated query/procedure/blob-upload (wf_auth_client_*) with session refresh and DPoP nonce retry |
wolfram/plc.h |
Implemented |
DID PLC operation build/sign/submit helpers (wf_plc_*): create/rotate/tombstone, signing-key and handle operations with ES256 signature + verification |
wolfram/xrpc_server.h |
Implemented |
Optional XRPC server (libmicrohttpd) — route registration, auth middleware, CORS, buffered JSON POSTs, bounded-memory streaming procedures with interruption cleanup, GET query-param parsing, token-bucket rate limiter (wf_rate_limiter) |
wolfram/richtext.h |
Implemented |
Rich text facets, grapheme detection, mention/link/tag parsing |
wolfram/syntax.h |
Implemented |
DID, handle, NSID, TID, AT URI, RFC 3339, BCP 47 validators |
wolfram/atproto_lex.h |
Implemented |
Generated C types/codecs for 402 lexicons and JSON wrappers for the corpus's 319 query/procedure definitions; binary procedures use the dedicated upload/import APIs |
wolfram/moderation.h |
Implemented |
Moderation decision engine — blur/alert/inform/filter for accounts, profiles, posts, notifications, feed generators, and user lists from labels, blocks, mutes, hidden posts, and muted words |
wolfram/store.h |
Partial/Optional |
SQLite-backed session + repo-mirror persistence + persisted-label storage for the moderation engine (OFF by default; build with WOLFRAM_BUILD_STORE=ON; optional WOLFRAM_BUILD_STORE_CRYPTO=ON adds libsodium at-rest encryption) |
wolfram/threadgate_postgate.h |
Implemented |
Threadgate / postgate record helpers — wf_agent_create_threadgate/wf_agent_create_postgate and wf_agent_delete_record_by_uri |
wolfram/embed_typed.h |
Implemented |
Generated owning parser for embed records (app.bsky.embed.*) |
wolfram/feed_typed.h |
Implemented |
Generated owning parser for timeline/feed records (app.bsky.feed.*) |
wolfram/feedgen_typed.h |
Implemented |
Generated owning parser for feed-generator records (app.bsky.feed.generator) |
wolfram/graph_typed.h |
Implemented |
Generated owning parser for graph records (app.bsky.graph.*) |
wolfram/list_typed.h |
Implemented |
Generated owning parser for list records (app.bsky.graph.list*) |
wolfram/thread_typed.h |
Implemented |
Generated owning parser for thread records (app.bsky.feed.defs#thread*) |
wolfram/labeler_typed.h |
Implemented |
Owned typed parsers + agent wrappers for labeler service coverage (com.atproto.label.queryLabels, app.bsky.labeler.getServices, com.atproto.temp.fetchLabels, service record + policies + label value defs) |
wolfram/lexicon_typed.h |
Implemented |
Owned parser + agent wrapper for com.atproto.lexicon.resolveLexicon (lexicon document fetch by NSID/version) |
wolfram/identity_typed.h |
Implemented |
Owned typed parsers + agent wrappers for com.atproto.identity (resolveHandle, resolveDid, updateHandle, getRecommendedDidCredentials, signPlcOperation, submitPlcOperation, resolveIdentity, refreshIdentity) plus a PLC handle-rotation convenience (wf_agent_identity_rotate_handle) |
wolfram/notification_v2_typed.h |
Implemented |
Owned typed parsers + agent wrappers for app.bsky.notification v2 preferences + activity subscriptions (putPreferencesV2, listActivitySubscriptions, putActivitySubscription) |
wolfram/actor_status_typed.h |
Implemented |
Owned typed wrappers for app.bsky.actor.status (stored record + #statusView; query/procedure ops are honest stubs — the lexicon defines only a record) |
wolfram/video_typed.h |
Implemented |
Owned typed parsers + builders + agent wrappers for app.bsky.video, including the current multipart start/finish/abort/status definitions; binary uploadPart uses wf_xrpc_upload_blob_params |
wolfram/unspecced_typed.h |
Implemented |
Owned typed parsers for app.bsky.unspecced query endpoints (trends, suggested users, thread v2, etc.) |
wolfram/temp_typed.h |
Implemented |
Owned typed parsers + agent wrappers for com.atproto.temp account/signup helper flows |
wolfram/admin_typed.h |
Implemented |
Owned typed parsers + agent wrappers for com.atproto.admin PDS/service administration |
wolfram/contact_typed.h |
Implemented |
Owned typed parsers + agent wrappers for app.bsky.contact (import / phone verification / match discovery) |
wolfram/draft_typed.h |
Implemented |
Owned typed parser + agent wrappers for app.bsky.draft (post drafts) |
wolfram/ageassurance_typed.h |
Implemented |
Owned typed parsers + agent wrappers for app.bsky.ageassurance (age verification state) |
wolfram/bookmark_typed.h |
Implemented |
Owned typed parser + agent wrappers for app.bsky.bookmark (bookmarks) |
wolfram/oauth/verify.h |
Implemented |
OAuth resource-server token verification (wf_oauth_verify_bearer/_dpop/_request) with DPoP replay cache and trusted-key set |
wolfram/sync_publish.h |
Implemented |
Firehose event production — builds framed {header}{body} CBOR messages (wf_sync_publish_event/_error), the inverse of sync_subscribe |
wolfram/feedgen_server.h |
Optional |
libmicrohttpd feed-generator skeleton server serving getFeedSkeleton/getFeedGenerator (WOLFRAM_BUILD_SERVER) |
wolfram/relay_server.h |
Optional |
libmicrohttpd generic upstream→downstream WebSocket subscription relay (WOLFRAM_BUILD_SERVER) |
wolfram/blob_store.h |
Optional |
Self-contained blob persistence + serving (in-memory or file-backed); XRPC integration registers uploadBlob/getBlob (WOLFRAM_BUILD_SERVER; core store always built) |
wolfram/platform.h |
Implemented |
Platform abstraction (init/shutdown, mutex, monotonic time). POSIX + Win32 implemented; Wii/Wii U/3DS ship honest WF_ERR_NOT_IMPLEMENTED stubs |
examples/ |
Implemented |
Higher-level endpoint examples using generated clients (label query, PLC handle rotation, notification v2, admin search) |
tools/wf_lexgen.cpp |
Implemented |
Lexicon JSON → typed C declarations, recursive input encoders, endpoint wrappers, and owning output decoders (development-time only; generated output is checked in) |