Files
quicproquo/sdks/go/proto/node/node.capnp
Christian Nennemann 2e081ead8e chore: rename quicproquo → quicprochat in docs, Docker, CI, and packaging
Rename all project references from quicproquo/qpq to quicprochat/qpc
across documentation, Docker configuration, CI workflows, packaging
scripts, operational configs, and build tooling.

- Docker: crate paths, binary names, user/group, data dirs, env vars
- CI: workflow crate references, binary names, artifact names
- Docs: all markdown files under docs/, SDK READMEs, book.toml
- Packaging: OpenWrt Makefile, init script, UCI config (file renames)
- Scripts: justfile, dev-shell, screenshot, cross-compile, ai_team
- Operations: Prometheus config, alert rules, Grafana dashboard
- Config: .env.example (QPQ_* → QPC_*), CODEOWNERS paths
- Top-level: README, CONTRIBUTING, ROADMAP, CLAUDE.md
2026-03-21 19:14:06 +01:00

46 lines
2.7 KiB
Cap'n Proto

# node.capnp — Go-annotated copy of the quicprochat node schema.
# This adds Go package annotations needed by capnpc-go.
@0xd5ca5648a9cc1c28;
using Go = import "/go.capnp";
$Go.package("node");
$Go.import("quicprochat.dev/sdk/go/proto/node");
interface NodeService {
uploadKeyPackage @0 (identityKey :Data, package :Data, auth :Auth) -> (fingerprint :Data);
fetchKeyPackage @1 (identityKey :Data, auth :Auth) -> (package :Data);
enqueue @2 (recipientKey :Data, payload :Data, channelId :Data, version :UInt16, auth :Auth, ttlSecs :UInt32) -> (seq :UInt64, deliveryProof :Data);
fetch @3 (recipientKey :Data, channelId :Data, version :UInt16, auth :Auth, limit :UInt32) -> (payloads :List(Envelope));
fetchWait @4 (recipientKey :Data, channelId :Data, version :UInt16, timeoutMs :UInt64, auth :Auth, limit :UInt32) -> (payloads :List(Envelope));
health @5 () -> (status :Text);
uploadHybridKey @6 (identityKey :Data, hybridPublicKey :Data, auth :Auth) -> ();
fetchHybridKey @7 (identityKey :Data, auth :Auth) -> (hybridPublicKey :Data);
opaqueRegisterStart @8 (username :Text, request :Data) -> (response :Data);
opaqueRegisterFinish @9 (username :Text, upload :Data, identityKey :Data) -> (success :Bool);
opaqueLoginStart @10 (username :Text, request :Data) -> (response :Data);
opaqueLoginFinish @11 (username :Text, finalization :Data, identityKey :Data) -> (sessionToken :Data);
publishEndpoint @12 (identityKey :Data, nodeAddr :Data, auth :Auth) -> ();
resolveEndpoint @13 (identityKey :Data, auth :Auth) -> (nodeAddr :Data);
peek @14 (recipientKey :Data, channelId :Data, version :UInt16, auth :Auth, limit :UInt32) -> (payloads :List(Envelope));
ack @15 (recipientKey :Data, channelId :Data, version :UInt16, seqUpTo :UInt64, auth :Auth) -> ();
fetchHybridKeys @16 (identityKeys :List(Data), auth :Auth) -> (keys :List(Data));
batchEnqueue @17 (recipientKeys :List(Data), payload :Data, channelId :Data, version :UInt16, auth :Auth, ttlSecs :UInt32) -> (seqs :List(UInt64));
createChannel @18 (peerKey :Data, auth :Auth) -> (channelId :Data, wasNew :Bool);
resolveUser @19 (username :Text, auth :Auth) -> (identityKey :Data, inclusionProof :Data);
resolveIdentity @20 (identityKey :Data, auth :Auth) -> (username :Text);
uploadBlob @21 (auth :Auth, blobHash :Data, chunk :Data, offset :UInt64, totalSize :UInt64, mimeType :Text) -> (blobId :Data);
downloadBlob @22 (auth :Auth, blobId :Data, offset :UInt64, length :UInt32) -> (chunk :Data, totalSize :UInt64, mimeType :Text);
deleteAccount @23 (auth :Auth) -> (success :Bool);
}
struct Auth {
version @0 :UInt16;
accessToken @1 :Data;
deviceId @2 :Data;
}
struct Envelope {
seq @0 :UInt64;
data @1 :Data;
}