okay about to do the big rewrite

Orual 4257f7e1 ee08213a

+89 -26
+3 -2
.gitignore
··· 3 /result-lib 4 /dist 5 /node_modules 6 - 7 .direnv 8 .env 9 .devenv 10 - 11 .db/ 12 **/.db/ 13
··· 3 /result-lib 4 /dist 5 /node_modules 6 + /plans 7 .direnv 8 .env 9 .devenv 10 + CLAUDE.md 11 + grant_proposal.md 12 .db/ 13 **/.db/ 14
-10
.zed/settings.json
··· 11 "command": ["alejandra", "--quiet", "--"] // or ["nixfmt"] 12 } 13 } 14 - }, 15 - "rust-analyzer": { 16 - "binary": { 17 - "path": "/nix/store/qs17clvcja2b5wy5wmcqd5mqly6wypax-rust-default-1.89.0-nightly-2025-05-21/bin/rust-analyzer" 18 - }, 19 - "initialization_options": { 20 - "cargo": { 21 - "allFeatures": true 22 - } 23 - } 24 } 25 } 26 }
··· 11 "command": ["alejandra", "--quiet", "--"] // or ["nixfmt"] 12 } 13 } 14 } 15 } 16 }
+1
crates/weaver-common/src/lexicons/mod.rs
··· 3 pub mod chat; 4 pub mod client; 5 pub mod com; 6 pub mod record; 7 pub mod sh; 8 pub mod tools;
··· 3 pub mod chat; 4 pub mod client; 5 pub mod com; 6 + pub mod place; 7 pub mod record; 8 pub mod sh; 9 pub mod tools;
+3
crates/weaver-common/src/lexicons/place.rs
···
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `place` namespace. 3 + pub mod stream;
+3
crates/weaver-common/src/lexicons/place/stream.rs
···
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `place.stream` namespace. 3 + pub mod live;
+9
crates/weaver-common/src/lexicons/place/stream/live.rs
···
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `place.stream.live` namespace. 3 + pub mod profile; 4 + #[derive(Debug)] 5 + pub struct Profile; 6 + impl atrium_api::types::Collection for Profile { 7 + const NSID: &'static str = "place.stream.live.profile"; 8 + type Record = profile::Record; 9 + }
+45
crates/weaver-common/src/lexicons/place/stream/live/profile.rs
···
··· 1 + // @generated - This file is generated by esquema-codegen (forked from atrium-codegen). DO NOT EDIT. 2 + //!Definitions for the `place.stream.live.profile` namespace. 3 + use atrium_api::types::TryFromUnknown; 4 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 5 + #[serde(rename_all = "camelCase")] 6 + pub struct RecordData { 7 + #[serde(skip_serializing_if = "core::option::Option::is_none")] 8 + pub about: core::option::Option<About>, 9 + } 10 + pub type Record = atrium_api::types::Object<RecordData>; 11 + impl From<atrium_api::types::Unknown> for RecordData { 12 + fn from(value: atrium_api::types::Unknown) -> Self { 13 + Self::try_from_unknown(value).unwrap() 14 + } 15 + } 16 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 17 + #[serde(rename_all = "camelCase")] 18 + pub struct AboutData { 19 + pub blocks: Vec<AboutCol>, 20 + } 21 + pub type About = atrium_api::types::Object<AboutData>; 22 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 23 + #[serde(rename_all = "camelCase")] 24 + pub struct AboutBlockData { 25 + pub item: atrium_api::types::Union<AboutBlockItemRefs>, 26 + } 27 + pub type AboutBlock = atrium_api::types::Object<AboutBlockData>; 28 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 29 + #[serde(rename_all = "camelCase")] 30 + pub struct AboutColData { 31 + pub items: Vec<AboutBlock>, 32 + } 33 + pub type AboutCol = atrium_api::types::Object<AboutColData>; 34 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 35 + #[serde(rename_all = "camelCase")] 36 + pub struct AboutTextData { 37 + pub text: String, 38 + } 39 + pub type AboutText = atrium_api::types::Object<AboutTextData>; 40 + #[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 41 + #[serde(tag = "$type")] 42 + pub enum AboutBlockItemRefs { 43 + #[serde(rename = "place.stream.live.profile#aboutText")] 44 + AboutText(Box<AboutText>), 45 + }
+12
crates/weaver-common/src/lexicons/record.rs
··· 39 LexiconsChatBskyActorDeclaration(Box<crate::lexicons::chat::bsky::actor::declaration::Record>), 40 #[serde(rename = "com.atproto.lexicon.schema")] 41 LexiconsComAtprotoLexiconSchema(Box<crate::lexicons::com::atproto::lexicon::schema::Record>), 42 #[serde(rename = "sh.tangled.actor.profile")] 43 LexiconsShTangledActorProfile(Box<crate::lexicons::sh::tangled::actor::profile::Record>), 44 #[serde(rename = "sh.weaver.actor.profile")] ··· 238 impl From<crate::lexicons::com::atproto::lexicon::schema::RecordData> for KnownRecord { 239 fn from(record_data: crate::lexicons::com::atproto::lexicon::schema::RecordData) -> Self { 240 KnownRecord::LexiconsComAtprotoLexiconSchema(Box::new(record_data.into())) 241 } 242 } 243 impl From<crate::lexicons::sh::tangled::actor::profile::Record> for KnownRecord {
··· 39 LexiconsChatBskyActorDeclaration(Box<crate::lexicons::chat::bsky::actor::declaration::Record>), 40 #[serde(rename = "com.atproto.lexicon.schema")] 41 LexiconsComAtprotoLexiconSchema(Box<crate::lexicons::com::atproto::lexicon::schema::Record>), 42 + #[serde(rename = "place.stream.live.profile")] 43 + LexiconsPlaceStreamLiveProfile(Box<crate::lexicons::place::stream::live::profile::Record>), 44 #[serde(rename = "sh.tangled.actor.profile")] 45 LexiconsShTangledActorProfile(Box<crate::lexicons::sh::tangled::actor::profile::Record>), 46 #[serde(rename = "sh.weaver.actor.profile")] ··· 240 impl From<crate::lexicons::com::atproto::lexicon::schema::RecordData> for KnownRecord { 241 fn from(record_data: crate::lexicons::com::atproto::lexicon::schema::RecordData) -> Self { 242 KnownRecord::LexiconsComAtprotoLexiconSchema(Box::new(record_data.into())) 243 + } 244 + } 245 + impl From<crate::lexicons::place::stream::live::profile::Record> for KnownRecord { 246 + fn from(record: crate::lexicons::place::stream::live::profile::Record) -> Self { 247 + KnownRecord::LexiconsPlaceStreamLiveProfile(Box::new(record)) 248 + } 249 + } 250 + impl From<crate::lexicons::place::stream::live::profile::RecordData> for KnownRecord { 251 + fn from(record_data: crate::lexicons::place::stream::live::profile::RecordData) -> Self { 252 + KnownRecord::LexiconsPlaceStreamLiveProfile(Box::new(record_data.into())) 253 } 254 } 255 impl From<crate::lexicons::sh::tangled::actor::profile::Record> for KnownRecord {
+13 -14
flake.nix
··· 14 crane.url = "github:ipetkov/crane"; 15 }; 16 17 - 18 outputs = { 19 self, 20 nixpkgs, ··· 34 inherit (pkgs) lib; 35 36 rustToolchainFor = p: 37 - p.rust-bin.selectLatestNightlyWith(toolchain: toolchain.default.override { 38 - # Set the build targets supported by the toolchain, 39 - # wasm32-unknown-unknown is required for trunk. 40 - targets = ["wasm32-unknown-unknown"]; 41 - extensions = [ 42 - "rust-src" 43 - "rust-analyzer" 44 - "clippy" 45 - ]; 46 - }); 47 craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchainFor; 48 src = craneLib.cleanCargoSource ./.; 49 ··· 52 inherit src; 53 strictDeps = true; 54 55 - buildInputs = 56 - with pkgs; [ 57 # Add additional build inputs here 58 sqlite 59 pkg-config ··· 215 weaver-server = flake-utils.lib.mkApp { 216 drv = weaver-server; 217 }; 218 - 219 }; 220 221 devShells.default = craneLib.devShell {
··· 14 crane.url = "github:ipetkov/crane"; 15 }; 16 17 outputs = { 18 self, 19 nixpkgs, ··· 33 inherit (pkgs) lib; 34 35 rustToolchainFor = p: 36 + p.rust-bin.selectLatestNightlyWith (toolchain: 37 + toolchain.default.override { 38 + # Set the build targets supported by the toolchain, 39 + # wasm32-unknown-unknown is required for trunk. 40 + targets = ["wasm32-unknown-unknown" "wasm32-wasip1" "wasm32-wasip2"]; 41 + extensions = [ 42 + "rust-src" 43 + "rust-analyzer" 44 + "clippy" 45 + ]; 46 + }); 47 craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchainFor; 48 src = craneLib.cleanCargoSource ./.; 49 ··· 52 inherit src; 53 strictDeps = true; 54 55 + buildInputs = with pkgs; 56 + [ 57 # Add additional build inputs here 58 sqlite 59 pkg-config ··· 215 weaver-server = flake-utils.lib.mkApp { 216 drv = weaver-server; 217 }; 218 }; 219 220 devShells.default = craneLib.devShell {