···1-# `@cistern/consumer`
0000000000000000000000000000000000023-The Consumer module is responsible for the following:
45-- Generating key pairs
6-- Retrieving and decrypting items
7-- Subscribing to Jetstream to monitor for items
000000000000
···1+# @cistern/lexicon
2+3+AT Protocol lexicon definitions and TypeScript types for Cistern records.
4+5+## Record Types
6+7+| Collection | Description |
8+|------------|-------------|
9+| `app.cistern.lexicon.pubkey` | Public key records with human-readable names, referenced by items via AT-URI |
10+| `app.cistern.lexicon.item` | Encrypted item records containing ciphertext, nonce, algorithm metadata, and public key reference |
+34
packages/producer/README.md
···0000000000000000000000000000000000
···1+# @cistern/producer
2+3+Producer client for creating and encrypting Cistern items.
4+5+## Usage
6+7+```typescript
8+import { createProducer } from "@cistern/producer";
9+10+const producer = await createProducer({
11+ handle: "user.bsky.social",
12+ appPassword: "xxxx-xxxx-xxxx-xxxx",
13+});
14+15+for await (const pubkey of producer.listPublicKeys()) {
16+ console.log(`${pubkey.name}: ${pubkey.uri}`);
17+}
18+19+producer.selectPublicKey(pubkey);
20+21+const itemUri = await producer.createItem("Hello, world!");
22+```
23+24+Or, if you already have a public key record ID:
25+26+```typescript
27+const producer = await createProducer({
28+ handle: "user.bsky.social",
29+ appPassword: "xxxx-xxxx-xxxx-xxxx",
30+ publicKey: "3jzfcijpj2z",
31+});
32+33+const itemUri = await producer.createItem("Hello, world!");
34+```
+6
packages/shared/README.md
···000000
···1+# @cistern/shared
2+3+Shared authentication utilities for Cistern producer and consumer packages.
4+5+Provides DID resolution via Slingshot and authenticated RPC client creation for
6+AT Protocol operations.