From 7abea10cb1dacb203bbd77657eb5c58dc9d6d98d Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Tue, 16 Jun 2026 17:15:00 +0530 Subject: [PATCH 01/10] Configure workspace settings in Cargo.toml - Added workspace configuration to include the CLI and backend in a single workspace for better data contract visibility. - Set default members to optimize build times, allowing for explicit backend builds when needed. - Updated resolver version to 3. --- Cargo.toml | 9 ++ server/Cargo.toml | 29 +++++++ server/README.md | 72 ++++++++++++++++ server/docker-compose.yml | 19 +++++ server/migrations/0001_init.sql | 71 ++++++++++++++++ server/src/auth.rs | 108 +++++++++++++++++++++++ server/src/error.rs | 43 ++++++++++ server/src/main.rs | 78 +++++++++++++++++ server/src/models.rs | 89 +++++++++++++++++++ server/src/routes/cas.rs | 146 ++++++++++++++++++++++++++++++++ server/src/routes/mod.rs | 24 ++++++ server/src/routes/notes.rs | 100 ++++++++++++++++++++++ server/src/state.rs | 13 +++ 13 files changed, 801 insertions(+) create mode 100644 server/Cargo.toml create mode 100644 server/README.md create mode 100644 server/docker-compose.yml create mode 100644 server/migrations/0001_init.sql create mode 100644 server/src/auth.rs create mode 100644 server/src/error.rs create mode 100644 server/src/main.rs create mode 100644 server/src/models.rs create mode 100644 server/src/routes/cas.rs create mode 100644 server/src/routes/mod.rs create mode 100644 server/src/routes/notes.rs create mode 100644 server/src/state.rs diff --git a/Cargo.toml b/Cargo.toml index 6185141..f023669 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,12 @@ +[workspace] +# The CLI (this root package) and the open-source platform backend live in one +# workspace so the data contract is visible in the same repo. `default-members` +# keeps `cargo build` / `task dev` fast by building only the CLI by default; +# build the backend explicitly with `cargo build -p autter-server`. +members = ["server"] +default-members = ["."] +resolver = "3" + [package] name = "autter" version = "1.5.9" diff --git a/server/Cargo.toml b/server/Cargo.toml new file mode 100644 index 0000000..9a09f5e --- /dev/null +++ b/server/Cargo.toml @@ -0,0 +1,29 @@ +[package] +name = "autter-server" +version = "0.1.0" +edition = "2021" +description = "Open-source Autter platform backend: receives authorship notes and prompt (CAS) uploads from the autter CLI and persists them to PostgreSQL." +publish = false + +[[bin]] +name = "autter-server" +path = "src/main.rs" + +[dependencies] +axum = "0.7" +tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "signal"] } +sqlx = { version = "0.8", default-features = false, features = [ + "runtime-tokio", + "tls-native-tls", + "postgres", + "uuid", + "json", + "macros", + "migrate", +] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +uuid = { version = "1", features = ["v4", "serde"] } +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +anyhow = "1" diff --git a/server/README.md b/server/README.md new file mode 100644 index 0000000..aea830e --- /dev/null +++ b/server/README.md @@ -0,0 +1,72 @@ +# autter-server + +The open-source Autter platform backend. It receives uploads from the `autter` +CLI (when a developer connects to the platform) and persists them to +PostgreSQL. Keeping it in this repo means the data contract — exactly what gets +stored when you connect — is visible and auditable. + +> Status: **storage-first cut.** The authorship-note and prompt (CAS) storage +> endpoints the CLI already calls are implemented. Full OAuth token issuance is +> a separate batch; until then, run with `AUTTER_SERVER_DEV_AUTH=1` to exercise +> the pipeline. + +## What it stores + +All data is scoped to an organization (see [`migrations/0001_init.sql`](migrations/0001_init.sql)): + +| Table | Contents | +|-------|----------| +| `orgs` | Organizations (teams/companies). | +| `users` | Developer identities. | +| `access_tokens` | Maps a presented credential (OAuth bearer / `X-API-Key`) → org. | +| `authorship_notes` | The serialized authorship note per `(org, commit_sha)` — the same text the CLI writes to the local `refs/notes/ai`. | +| `cas_objects` | Content-addressed prompt transcripts, deduplicated per `(org, hash)`. | + +## Endpoints (match the CLI wire contract) + +| Method & path | Purpose | +|---------------|---------| +| `GET /health` | Liveness check. | +| `POST /worker/notes/upload` | Upsert a batch of authorship notes. | +| `GET /worker/notes/?commits=sha1,sha2` | Read notes by commit SHA. | +| `POST /worker/cas/upload` | Store a batch of prompt-transcript objects. | +| `GET /worker/cas/?hashes=h1,h2` | Read prompt objects by hash. | + +Auth: send `X-API-Key: ` or `Authorization: Bearer ` (plus the +CLI's `X-Distinct-ID`). + +## Run locally + +```bash +# 1. Start PostgreSQL +docker compose -f server/docker-compose.yml up -d + +# 2. Configure + run (migrations run automatically on startup) +cp server/.env.example server/.env # or export the vars +export DATABASE_URL=postgres://autter:autter@localhost:5432/autter +export AUTTER_SERVER_DEV_AUTH=1 +cargo run -p autter-server +``` + +Point the CLI at it by setting the API base URL: + +```bash +autter config set api_base_url http://localhost:8787 +# then connect: +autter onboard --connect # (once the auth batch lands) +# or, today, drive uploads with an API key in dev-auth mode: +autter config set api_key dev-token-123 +``` + +## Layout + +``` +server/ + migrations/0001_init.sql # the storage schema (what we keep) + src/ + main.rs # startup: pool, migrate, serve + routes/{notes,cas}.rs # storage endpoints + auth.rs # credential → org resolution + models.rs # wire types (mirror the CLI's src/api/types.rs) + error.rs, state.rs +``` diff --git a/server/docker-compose.yml b/server/docker-compose.yml new file mode 100644 index 0000000..0aad516 --- /dev/null +++ b/server/docker-compose.yml @@ -0,0 +1,19 @@ +services: + postgres: + image: postgres:16 + environment: + POSTGRES_USER: autter + POSTGRES_PASSWORD: autter + POSTGRES_DB: autter + ports: + - "5432:5432" + volumes: + - autter_pgdata:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U autter -d autter"] + interval: 5s + timeout: 5s + retries: 10 + +volumes: + autter_pgdata: diff --git a/server/migrations/0001_init.sql b/server/migrations/0001_init.sql new file mode 100644 index 0000000..a125fed --- /dev/null +++ b/server/migrations/0001_init.sql @@ -0,0 +1,71 @@ +-- Autter platform backend — initial schema. +-- +-- This is the full, transparent record of what the Autter platform stores when +-- a developer connects the CLI to the platform. Everything the CLI uploads +-- lands in one of these tables, scoped to an organization. +-- +-- All org-scoped data cascades on org deletion so a customer can be fully +-- removed. + +CREATE EXTENSION IF NOT EXISTS pgcrypto; + +-- An organization (team/company). All stored data is scoped to an org. +CREATE TABLE IF NOT EXISTS orgs ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + slug TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +-- A developer/user. Identity is established by the platform auth flow; the +-- storage endpoints only reference users via the credential they present. +CREATE TABLE IF NOT EXISTS users ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + email TEXT UNIQUE, + name TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +-- Maps a presented credential (OAuth bearer token or X-API-Key) to an org and +-- optional user. The storage endpoints resolve the caller's org via this table. +-- (Full OAuth issuance lands with the auth batch; this table is the seam the +-- storage endpoints authenticate against today.) +CREATE TABLE IF NOT EXISTS access_tokens ( + token TEXT PRIMARY KEY, + org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, + user_id UUID REFERENCES users(id) ON DELETE SET NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +-- Authorship notes: the exact serialized note text the CLI also writes to the +-- local git ref refs/notes/ai, one row per (org, commit). Re-uploads upsert. +CREATE TABLE IF NOT EXISTS authorship_notes ( + id BIGSERIAL PRIMARY KEY, + org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, + commit_sha TEXT NOT NULL, + content TEXT NOT NULL, + uploaded_by UUID REFERENCES users(id) ON DELETE SET NULL, + distinct_id TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), + UNIQUE (org_id, commit_sha) +); + +CREATE INDEX IF NOT EXISTS authorship_notes_org_commit_idx + ON authorship_notes (org_id, commit_sha); + +-- Content-addressable store for prompt transcripts. `hash` is the CLI-computed +-- content hash; `content` is the canonicalized transcript JSON. Deduplicated +-- per (org, hash) — re-uploading the same hash is a no-op. +CREATE TABLE IF NOT EXISTS cas_objects ( + id BIGSERIAL PRIMARY KEY, + org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, + hash TEXT NOT NULL, + content JSONB NOT NULL, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + UNIQUE (org_id, hash) +); + +CREATE INDEX IF NOT EXISTS cas_objects_org_hash_idx + ON cas_objects (org_id, hash); diff --git a/server/src/auth.rs b/server/src/auth.rs new file mode 100644 index 0000000..82b5f3f --- /dev/null +++ b/server/src/auth.rs @@ -0,0 +1,108 @@ +//! Request authentication. +//! +//! The CLI authenticates uploads with either an OAuth bearer token +//! (`Authorization: Bearer `) or an API key (`X-API-Key: `), and +//! always sends `X-Distinct-ID`. Here we resolve that credential to an org via +//! the `access_tokens` table. +//! +//! Full OAuth token issuance is a separate batch; for the storage-first cut, +//! `AUTTER_SERVER_DEV_AUTH=1` auto-provisions a single "dev" org for any +//! previously-unseen credential so the pipeline can be tested end-to-end. + +use axum::http::HeaderMap; +use uuid::Uuid; + +use crate::error::AppError; +use crate::state::AppState; + +/// The authenticated caller for a request. +pub struct AuthOrg { + pub org_id: Uuid, + pub user_id: Option, + pub distinct_id: Option, +} + +/// Pull the credential the CLI presents out of the request headers. +fn extract_token(headers: &HeaderMap) -> Option { + if let Some(key) = headers.get("x-api-key").and_then(|v| v.to_str().ok()) { + let key = key.trim(); + if !key.is_empty() { + return Some(key.to_string()); + } + } + + if let Some(auth) = headers.get("authorization").and_then(|v| v.to_str().ok()) { + if let Some(rest) = auth.strip_prefix("Bearer ").or_else(|| auth.strip_prefix("bearer ")) { + let rest = rest.trim(); + if !rest.is_empty() { + return Some(rest.to_string()); + } + } + } + + None +} + +/// Resolve the caller's org from the presented credential. +pub async fn authenticate(state: &AppState, headers: &HeaderMap) -> Result { + let distinct_id = headers + .get("x-distinct-id") + .and_then(|v| v.to_str().ok()) + .map(|s| s.to_string()); + + let token = extract_token(headers) + .ok_or_else(|| AppError::Unauthorized("Missing credentials".to_string()))?; + + // Known credential → use its org/user. + if let Some(row) = + sqlx::query_as::<_, (Uuid, Option)>( + "SELECT org_id, user_id FROM access_tokens WHERE token = $1", + ) + .bind(&token) + .fetch_optional(&state.pool) + .await? + { + return Ok(AuthOrg { + org_id: row.0, + user_id: row.1, + distinct_id, + }); + } + + // Unknown credential. + if state.dev_auth { + let org_id = ensure_dev_org(state).await?; + sqlx::query( + "INSERT INTO access_tokens (token, org_id) VALUES ($1, $2) + ON CONFLICT (token) DO NOTHING", + ) + .bind(&token) + .bind(org_id) + .execute(&state.pool) + .await?; + + return Ok(AuthOrg { + org_id, + user_id: None, + distinct_id, + }); + } + + Err(AppError::Unauthorized("Invalid credentials".to_string())) +} + +/// Ensure the single "dev" org exists and return its id (dev mode only). +async fn ensure_dev_org(state: &AppState) -> Result { + sqlx::query( + "INSERT INTO orgs (slug, name) VALUES ('dev', 'Dev Org') + ON CONFLICT (slug) DO NOTHING", + ) + .execute(&state.pool) + .await?; + + let (id,): (Uuid,) = sqlx::query_as("SELECT id FROM orgs WHERE slug = 'dev'") + .fetch_one(&state.pool) + .await?; + + Ok(id) +} diff --git a/server/src/error.rs b/server/src/error.rs new file mode 100644 index 0000000..75285a1 --- /dev/null +++ b/server/src/error.rs @@ -0,0 +1,43 @@ +//! Error type that renders to the JSON error shape the CLI expects. + +use axum::http::StatusCode; +use axum::response::{IntoResponse, Response}; +use axum::Json; + +use crate::models::ApiErrorResponse; + +#[derive(Debug)] +pub enum AppError { + Unauthorized(String), + BadRequest(String), + Internal(String), +} + +impl IntoResponse for AppError { + fn into_response(self) -> Response { + let (status, message) = match self { + AppError::Unauthorized(m) => (StatusCode::UNAUTHORIZED, m), + AppError::BadRequest(m) => (StatusCode::BAD_REQUEST, m), + AppError::Internal(m) => { + // Don't leak internals to the client, but do log them. + tracing::error!("internal error: {m}"); + ( + StatusCode::INTERNAL_SERVER_ERROR, + "Internal server error".to_string(), + ) + } + }; + + let body = Json(ApiErrorResponse { + error: message, + details: None, + }); + (status, body).into_response() + } +} + +impl From for AppError { + fn from(e: sqlx::Error) -> Self { + AppError::Internal(e.to_string()) + } +} diff --git a/server/src/main.rs b/server/src/main.rs new file mode 100644 index 0000000..1490bd2 --- /dev/null +++ b/server/src/main.rs @@ -0,0 +1,78 @@ +//! Autter platform backend. +//! +//! Receives authorship-note and prompt (CAS) uploads from the autter CLI and +//! persists them to PostgreSQL. This is the open-source record of exactly what +//! the platform stores. +//! +//! Configuration (environment): +//! - `DATABASE_URL` (required) e.g. postgres://autter:autter@localhost:5432/autter +//! - `BIND` (default 0.0.0.0:8787) listen address +//! - `AUTTER_SERVER_DEV_AUTH` set to `1` to auto-provision a dev org for any +//! credential (development only). + +mod auth; +mod error; +mod models; +mod routes; +mod state; + +use std::net::SocketAddr; + +use anyhow::Context; +use sqlx::postgres::PgPoolOptions; +use tracing_subscriber::EnvFilter; + +use crate::state::AppState; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + tracing_subscriber::fmt() + .with_env_filter( + EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")), + ) + .init(); + + let database_url = std::env::var("DATABASE_URL") + .context("DATABASE_URL must be set (e.g. postgres://autter:autter@localhost:5432/autter)")?; + + let bind = std::env::var("BIND").unwrap_or_else(|_| "0.0.0.0:8787".to_string()); + let dev_auth = std::env::var("AUTTER_SERVER_DEV_AUTH").as_deref() == Ok("1"); + + let pool = PgPoolOptions::new() + .max_connections(10) + .connect(&database_url) + .await + .context("failed to connect to PostgreSQL")?; + + sqlx::migrate!("./migrations") + .run(&pool) + .await + .context("failed to run database migrations")?; + + if dev_auth { + tracing::warn!( + "AUTTER_SERVER_DEV_AUTH is on: unknown credentials are auto-provisioned to a 'dev' org. Do not use in production." + ); + } + + let state = AppState { pool, dev_auth }; + let app = routes::router(state); + + let addr: SocketAddr = bind.parse().context("invalid BIND address")?; + let listener = tokio::net::TcpListener::bind(addr) + .await + .with_context(|| format!("failed to bind {addr}"))?; + + tracing::info!("autter-server listening on http://{addr}"); + axum::serve(listener, app) + .with_graceful_shutdown(shutdown_signal()) + .await + .context("server error")?; + + Ok(()) +} + +async fn shutdown_signal() { + let _ = tokio::signal::ctrl_c().await; + tracing::info!("shutting down"); +} diff --git a/server/src/models.rs b/server/src/models.rs new file mode 100644 index 0000000..900cdac --- /dev/null +++ b/server/src/models.rs @@ -0,0 +1,89 @@ +//! Wire types for the storage endpoints. +//! +//! These mirror the structs the `autter` CLI serializes/deserializes in +//! `src/api/types.rs`. Keep them in sync — the field names and shapes are the +//! contract between the CLI and this server. + +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; + +/// Error body returned to the CLI. The CLI reads the `error` field. +#[derive(Debug, Serialize)] +pub struct ApiErrorResponse { + pub error: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub details: Option, +} + +// ---- Notes ---------------------------------------------------------------- + +#[derive(Debug, Deserialize)] +pub struct NoteEntry { + pub commit_sha: String, + pub content: String, +} + +#[derive(Debug, Deserialize)] +pub struct NotesUploadRequest { + pub entries: Vec, +} + +#[derive(Debug, Serialize)] +pub struct NotesUploadResponse { + pub success_count: usize, + pub failure_count: usize, +} + +#[derive(Debug, Serialize)] +pub struct NotesReadResponse { + pub notes: HashMap, +} + +// ---- CAS (prompt transcripts) --------------------------------------------- + +#[derive(Debug, Deserialize)] +pub struct CasObject { + pub content: serde_json::Value, + pub hash: String, + #[serde(default)] + pub metadata: HashMap, +} + +#[derive(Debug, Deserialize)] +pub struct CasUploadRequest { + pub objects: Vec, +} + +#[derive(Debug, Serialize)] +pub struct CasUploadResult { + pub hash: String, + pub status: String, // "ok" | "error" + #[serde(skip_serializing_if = "Option::is_none")] + pub error: Option, +} + +#[derive(Debug, Serialize)] +pub struct CasUploadResponse { + pub results: Vec, + pub success_count: usize, + pub failure_count: usize, +} + +/// Single result from a CAS batch read. Mirrors the CLI's +/// `CAPromptStoreReadResult`. +#[derive(Debug, Serialize)] +pub struct CasReadResult { + pub hash: String, + pub status: String, // "ok" | "error" + #[serde(skip_serializing_if = "Option::is_none")] + pub content: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub error: Option, +} + +#[derive(Debug, Serialize)] +pub struct CasReadResponse { + pub results: Vec, + pub success_count: usize, + pub failure_count: usize, +} diff --git a/server/src/routes/cas.rs b/server/src/routes/cas.rs new file mode 100644 index 0000000..a5e3c6e --- /dev/null +++ b/server/src/routes/cas.rs @@ -0,0 +1,146 @@ +//! CAS (prompt-transcript) storage endpoints. +//! +//! - `POST /worker/cas/upload` — store a batch of content-addressed objects. +//! - `GET /worker/cas/?hashes=h1,h2` — read objects by hash. + +use axum::extract::{Query, State}; +use axum::http::HeaderMap; +use axum::Json; +use serde::Deserialize; +use std::collections::HashMap; + +use crate::auth::authenticate; +use crate::error::AppError; +use crate::models::{ + CasReadResponse, CasReadResult, CasUploadRequest, CasUploadResponse, CasUploadResult, +}; +use crate::state::AppState; + +pub async fn upload( + State(state): State, + headers: HeaderMap, + Json(req): Json, +) -> Result, AppError> { + let auth = authenticate(&state, &headers).await?; + + let mut results = Vec::with_capacity(req.objects.len()); + let mut success_count = 0usize; + let mut failure_count = 0usize; + + for obj in req.objects { + let metadata = serde_json::to_value(&obj.metadata) + .unwrap_or_else(|_| serde_json::json!({})); + + // Dedup per (org, hash): re-uploading the same content is a no-op. + let result = sqlx::query( + "INSERT INTO cas_objects (org_id, hash, content, metadata) + VALUES ($1, $2, $3, $4) + ON CONFLICT (org_id, hash) DO NOTHING", + ) + .bind(auth.org_id) + .bind(&obj.hash) + .bind(&obj.content) + .bind(&metadata) + .execute(&state.pool) + .await; + + match result { + Ok(_) => { + success_count += 1; + results.push(CasUploadResult { + hash: obj.hash, + status: "ok".to_string(), + error: None, + }); + } + Err(e) => { + tracing::warn!(hash = %obj.hash, "cas upsert failed: {e}"); + failure_count += 1; + results.push(CasUploadResult { + hash: obj.hash, + status: "error".to_string(), + error: Some(e.to_string()), + }); + } + } + } + + Ok(Json(CasUploadResponse { + results, + success_count, + failure_count, + })) +} + +#[derive(Debug, Deserialize)] +pub struct HashesQuery { + hashes: Option, +} + +pub async fn read( + State(state): State, + headers: HeaderMap, + Query(q): Query, +) -> Result, AppError> { + let auth = authenticate(&state, &headers).await?; + + let hashes: Vec = q + .hashes + .unwrap_or_default() + .split(',') + .map(|s| s.trim()) + .filter(|s| !s.is_empty()) + .map(|s| s.to_string()) + .collect(); + + if hashes.is_empty() { + return Ok(Json(CasReadResponse { + results: Vec::new(), + success_count: 0, + failure_count: 0, + })); + } + + let rows = sqlx::query_as::<_, (String, serde_json::Value)>( + "SELECT hash, content FROM cas_objects WHERE org_id = $1 AND hash = ANY($2)", + ) + .bind(auth.org_id) + .bind(&hashes) + .fetch_all(&state.pool) + .await?; + + let found: HashMap = rows.into_iter().collect(); + + let mut results = Vec::with_capacity(hashes.len()); + let mut success_count = 0usize; + let mut failure_count = 0usize; + + for hash in hashes { + match found.get(&hash) { + Some(content) => { + success_count += 1; + results.push(CasReadResult { + hash, + status: "ok".to_string(), + content: Some(content.clone()), + error: None, + }); + } + None => { + failure_count += 1; + results.push(CasReadResult { + hash, + status: "error".to_string(), + content: None, + error: Some("not found".to_string()), + }); + } + } + } + + Ok(Json(CasReadResponse { + results, + success_count, + failure_count, + })) +} diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs new file mode 100644 index 0000000..4cad85d --- /dev/null +++ b/server/src/routes/mod.rs @@ -0,0 +1,24 @@ +//! HTTP routing. Paths match exactly what the autter CLI calls +//! (`{api_base_url}/worker/...`). + +pub mod cas; +pub mod notes; + +use axum::routing::{get, post}; +use axum::Router; + +use crate::state::AppState; + +pub fn router(state: AppState) -> Router { + Router::new() + .route("/health", get(health)) + .route("/worker/notes/upload", post(notes::upload)) + .route("/worker/notes/", get(notes::read)) + .route("/worker/cas/upload", post(cas::upload)) + .route("/worker/cas/", get(cas::read)) + .with_state(state) +} + +async fn health() -> &'static str { + "ok" +} diff --git a/server/src/routes/notes.rs b/server/src/routes/notes.rs new file mode 100644 index 0000000..6eb381f --- /dev/null +++ b/server/src/routes/notes.rs @@ -0,0 +1,100 @@ +//! Authorship-note storage endpoints. +//! +//! - `POST /worker/notes/upload` — upsert a batch of notes for the caller's org. +//! - `GET /worker/notes/?commits=sha1,sha2` — read notes by commit SHA. + +use axum::extract::{Query, State}; +use axum::http::HeaderMap; +use axum::Json; +use serde::Deserialize; +use std::collections::HashMap; + +use crate::auth::authenticate; +use crate::error::AppError; +use crate::models::{NotesReadResponse, NotesUploadRequest, NotesUploadResponse}; +use crate::state::AppState; + +pub async fn upload( + State(state): State, + headers: HeaderMap, + Json(req): Json, +) -> Result, AppError> { + let auth = authenticate(&state, &headers).await?; + + let mut success_count = 0usize; + let mut failure_count = 0usize; + + for entry in req.entries { + if entry.commit_sha.trim().is_empty() { + failure_count += 1; + continue; + } + + let result = sqlx::query( + "INSERT INTO authorship_notes (org_id, commit_sha, content, uploaded_by, distinct_id) + VALUES ($1, $2, $3, $4, $5) + ON CONFLICT (org_id, commit_sha) + DO UPDATE SET content = EXCLUDED.content, updated_at = now()", + ) + .bind(auth.org_id) + .bind(&entry.commit_sha) + .bind(&entry.content) + .bind(auth.user_id) + .bind(&auth.distinct_id) + .execute(&state.pool) + .await; + + match result { + Ok(_) => success_count += 1, + Err(e) => { + tracing::warn!(commit = %entry.commit_sha, "note upsert failed: {e}"); + failure_count += 1; + } + } + } + + Ok(Json(NotesUploadResponse { + success_count, + failure_count, + })) +} + +#[derive(Debug, Deserialize)] +pub struct CommitsQuery { + commits: Option, +} + +pub async fn read( + State(state): State, + headers: HeaderMap, + Query(q): Query, +) -> Result, AppError> { + let auth = authenticate(&state, &headers).await?; + + let commits: Vec = q + .commits + .unwrap_or_default() + .split(',') + .map(|s| s.trim()) + .filter(|s| !s.is_empty()) + .map(|s| s.to_string()) + .collect(); + + if commits.is_empty() { + return Ok(Json(NotesReadResponse { + notes: HashMap::new(), + })); + } + + let rows = sqlx::query_as::<_, (String, String)>( + "SELECT commit_sha, content FROM authorship_notes + WHERE org_id = $1 AND commit_sha = ANY($2)", + ) + .bind(auth.org_id) + .bind(&commits) + .fetch_all(&state.pool) + .await?; + + let notes = rows.into_iter().collect::>(); + Ok(Json(NotesReadResponse { notes })) +} diff --git a/server/src/state.rs b/server/src/state.rs new file mode 100644 index 0000000..b607be2 --- /dev/null +++ b/server/src/state.rs @@ -0,0 +1,13 @@ +//! Shared application state. + +use sqlx::PgPool; + +#[derive(Clone)] +pub struct AppState { + pub pool: PgPool, + /// When true, unknown credentials are auto-provisioned against a single + /// "dev" org so the storage endpoints can be exercised without the full + /// auth flow. Controlled by `AUTTER_SERVER_DEV_AUTH=1`. Never enable in + /// production. + pub dev_auth: bool, +} From 0cd75d8002fffa62c857ec4ea9e392a6b5c939e7 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Tue, 16 Jun 2026 17:43:24 +0530 Subject: [PATCH 02/10] Update Cargo.lock and add AppError variant - Updated Cargo.lock to include new dependencies such as `async-trait`, `atoi`, `autter-server`, and others, enhancing the project's capabilities. - Added `BadRequest` variant to `AppError` enum in `error.rs`, marked as dead code for future use in API handling. --- Cargo.lock | 699 +++++++++++++++++++++++++++++++++++++++++++- server/src/error.rs | 1 + 2 files changed, 699 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 1af2d67..282ee63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,6 +235,26 @@ version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + [[package]] name = "atomic" version = "0.6.1" @@ -310,12 +330,88 @@ dependencies = [ "zip", ] +[[package]] +name = "autter-server" +version = "0.1.0" +dependencies = [ + "anyhow", + "axum", + "serde", + "serde_json", + "sqlx", + "tokio", + "tracing", + "tracing-subscriber", + "uuid", +] + +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "bit-set" version = "0.5.3" @@ -342,6 +438,9 @@ name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +dependencies = [ + "serde_core", +] [[package]] name = "block-buffer" @@ -577,6 +676,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "convert_case" version = "0.10.0" @@ -630,6 +735,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" + [[package]] name = "crc32fast" version = "1.5.0" @@ -694,6 +814,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -815,6 +944,17 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" version = "0.5.8" @@ -853,7 +993,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", + "subtle", ] [[package]] @@ -903,11 +1045,20 @@ dependencies = [ "litrs", ] +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] [[package]] name = "encode_unicode" @@ -931,6 +1082,17 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "euclid" version = "0.22.14" @@ -1050,6 +1212,17 @@ dependencies = [ "zlib-rs", ] +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1134,6 +1307,17 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + [[package]] name = "futures-io" version = "0.3.32" @@ -1648,6 +1832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", + "allocator-api2", ] [[package]] @@ -1707,6 +1892,33 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "http" version = "1.4.0" @@ -1785,6 +1997,7 @@ dependencies = [ "hyper", "pin-project-lite", "tokio", + "tower-service", ] [[package]] @@ -2158,6 +2371,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "leb128fmt" @@ -2180,6 +2396,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + [[package]] name = "libredox" version = "0.1.10" @@ -2272,6 +2494,22 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.7.6" @@ -2302,6 +2540,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -2419,6 +2663,22 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" +dependencies = [ + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.2.1" @@ -2436,6 +2696,26 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2443,6 +2723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -2575,6 +2856,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -2693,6 +2983,27 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.32" @@ -2844,6 +3155,8 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ + "libc", + "rand_chacha 0.3.1", "rand_core 0.6.4", ] @@ -2853,7 +3166,7 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha", + "rand_chacha 0.9.0", "rand_core 0.9.5", ] @@ -2868,6 +3181,16 @@ dependencies = [ "rand_core 0.10.1", ] +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.9.0" @@ -2883,6 +3206,9 @@ name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] [[package]] name = "rand_core" @@ -3065,6 +3391,26 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +[[package]] +name = "rsa" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rstest" version = "0.26.1" @@ -3283,6 +3629,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + [[package]] name = "serde_spanned" version = "1.0.4" @@ -3407,6 +3764,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "simd-adler32" version = "0.3.8" @@ -3436,6 +3803,9 @@ name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] [[package]] name = "smol" @@ -3464,6 +3834,234 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlformat" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" +dependencies = [ + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" +dependencies = [ + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.14.5", + "hashlink", + "hex", + "indexmap", + "log", + "memchr", + "native-tls", + "once_cell", + "paste", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "url", + "uuid", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 2.0.117", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" +dependencies = [ + "dotenvy", + "either", + "heck", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn 2.0.117", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" +dependencies = [ + "atoi", + "base64", + "bitflags 2.10.0", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 1.0.69", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" +dependencies = [ + "atoi", + "base64", + "bitflags 2.10.0", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 1.0.69", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "tracing", + "url", + "uuid", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -3476,6 +4074,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + [[package]] name = "strsim" version = "0.11.1" @@ -3503,6 +4112,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" version = "1.0.109" @@ -3525,6 +4140,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + [[package]] name = "synstructure" version = "0.13.2" @@ -3728,6 +4349,7 @@ dependencies = [ "mio", "parking_lot", "pin-project-lite", + "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.61.2", @@ -3744,6 +4366,17 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.18" @@ -3808,12 +4441,41 @@ version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + [[package]] name = "tracing" version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3887,6 +4549,12 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + [[package]] name = "unicode-bom" version = "2.0.3" @@ -3908,6 +4576,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -3937,6 +4611,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + [[package]] name = "unit-prefix" version = "0.5.2" @@ -3989,6 +4669,7 @@ dependencies = [ "atomic", "getrandom 0.4.2", "js-sys", + "serde_core", "wasm-bindgen", ] @@ -4053,6 +4734,12 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + [[package]] name = "wasm-bindgen" version = "0.2.106" @@ -4224,6 +4911,16 @@ dependencies = [ "wezterm-dynamic", ] +[[package]] +name = "whoami" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +dependencies = [ + "libredox", + "wasite", +] + [[package]] name = "widestring" version = "1.2.1" diff --git a/server/src/error.rs b/server/src/error.rs index 75285a1..06c1932 100644 --- a/server/src/error.rs +++ b/server/src/error.rs @@ -7,6 +7,7 @@ use axum::Json; use crate::models::ApiErrorResponse; #[derive(Debug)] +#[allow(dead_code)] // BadRequest is part of the API surface, not yet used by a handler pub enum AppError { Unauthorized(String), BadRequest(String), From 99aa6c09f91dc210256f7100b2769101e6a8d00a Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Tue, 16 Jun 2026 19:51:23 +0530 Subject: [PATCH 03/10] Enhance JWT authentication and update dependencies - Integrated Better Auth JWT verification into the server, allowing for stateless identity management via JWKS. - Updated `Cargo.toml` to include new dependencies: `jsonwebtoken`, `reqwest`, and `base64` for handling JWTs and HTTP requests. - Refactored database interactions to support per-organization PostgreSQL databases, utilizing the `org_db_url` claim from the JWT. - Revised the schema in `0001_init.sql` to remove organization-specific tables, as each organization now has its own database. - Updated README to reflect changes in identity and routing mechanisms, clarifying the role of autter.dev as the identity/control plane. - Enhanced error handling and logging for better traceability during authentication processes. --- Cargo.lock | 330 +++++++++++++++++++++++++++++++- server/Cargo.toml | 8 +- server/README.md | 86 +++++---- server/migrations/0001_init.sql | 78 ++------ server/src/auth.rs | 276 ++++++++++++++++++-------- server/src/main.rs | 69 ++++--- server/src/routes/cas.rs | 29 +-- server/src/routes/notes.rs | 36 ++-- server/src/state.rs | 59 +++++- 9 files changed, 724 insertions(+), 247 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 282ee63..f43e2f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -336,13 +336,15 @@ version = "0.1.0" dependencies = [ "anyhow", "axum", + "base64", + "jsonwebtoken", + "reqwest", "serde", "serde_json", "sqlx", "tokio", "tracing", "tracing-subscriber", - "uuid", ] [[package]] @@ -1066,6 +1068,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1400,8 +1411,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -1983,6 +1996,38 @@ dependencies = [ "pin-project-lite", "smallvec", "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", ] [[package]] @@ -1991,13 +2036,23 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ + "base64", "bytes", + "futures-channel", + "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", + "socket2", + "system-configuration", "tokio", "tower-service", + "tracing", + "windows-registry", ] [[package]] @@ -2236,6 +2291,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + [[package]] name = "is-terminal" version = "0.4.17" @@ -2334,6 +2395,21 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de0ffda8def4eb16ed430641db8056c2509b20e38f2dd327bdb4c83239f88c4" +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "kasuari" version = "0.4.12" @@ -2663,6 +2739,16 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint-dig" version = "0.8.6" @@ -2856,6 +2942,16 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pem" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" +dependencies = [ + "base64", + "serde_core", +] + [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -3391,6 +3487,60 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rsa" version = "0.9.10" @@ -3476,6 +3626,39 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "rustls" +version = "0.23.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.22" @@ -3786,6 +3969,18 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +[[package]] +name = "simple_asn1" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror 2.0.18", + "time", +] + [[package]] name = "siphasher" version = "1.0.2" @@ -3914,7 +4109,6 @@ dependencies = [ "tokio-stream", "tracing", "url", - "uuid", ] [[package]] @@ -3995,7 +4189,6 @@ dependencies = [ "stringprep", "thiserror 1.0.69", "tracing", - "uuid", "whoami", ] @@ -4034,7 +4227,6 @@ dependencies = [ "stringprep", "thiserror 1.0.69", "tracing", - "uuid", "whoami", ] @@ -4059,7 +4251,6 @@ dependencies = [ "sqlx-core", "tracing", "url", - "uuid", ] [[package]] @@ -4145,6 +4336,9 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -4157,6 +4351,27 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tempfile" version = "3.27.0" @@ -4289,12 +4504,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", + "itoa", "libc", "num-conv", "num_threads", "powerfmt", "serde_core", "time-core", + "time-macros", ] [[package]] @@ -4303,6 +4520,16 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinystr" version = "0.8.2" @@ -4366,6 +4593,26 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.18" @@ -4457,6 +4704,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -4531,6 +4796,12 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "typed-path" version = "0.12.3" @@ -4623,6 +4894,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "ureq" version = "2.12.1" @@ -4669,7 +4946,6 @@ dependencies = [ "atomic", "getrandom 0.4.2", "js-sys", - "serde_core", "wasm-bindgen", ] @@ -4710,6 +4986,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -4753,6 +5038,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.106" @@ -4999,6 +5297,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + [[package]] name = "windows-result" version = "0.4.1" @@ -5026,6 +5335,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.59.0" diff --git a/server/Cargo.toml b/server/Cargo.toml index 9a09f5e..895e4ae 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -11,19 +11,21 @@ path = "src/main.rs" [dependencies] axum = "0.7" -tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "signal"] } +tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "signal", "sync"] } sqlx = { version = "0.8", default-features = false, features = [ "runtime-tokio", "tls-native-tls", "postgres", - "uuid", "json", "macros", "migrate", ] } serde = { version = "1", features = ["derive"] } serde_json = "1" -uuid = { version = "1", features = ["v4", "serde"] } +# JWT verification against Better Auth's JWKS (autter.dev is the identity/control plane). +jsonwebtoken = "9" +reqwest = { version = "0.12", features = ["json"] } +base64 = "0.22" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } anyhow = "1" diff --git a/server/README.md b/server/README.md index aea830e..3ef41d9 100644 --- a/server/README.md +++ b/server/README.md @@ -1,26 +1,54 @@ # autter-server -The open-source Autter platform backend. It receives uploads from the `autter` -CLI (when a developer connects to the platform) and persists them to -PostgreSQL. Keeping it in this repo means the data contract — exactly what gets +The open-source Autter platform **data plane**. It receives uploads from the +`autter` CLI and persists them to **each organization's own PostgreSQL +database**. Keeping it in this repo means the data contract — exactly what gets stored when you connect — is visible and auditable. -> Status: **storage-first cut.** The authorship-note and prompt (CAS) storage -> endpoints the CLI already calls are implemented. Full OAuth token issuance is -> a separate batch; until then, run with `AUTTER_SERVER_DEV_AUTH=1` to exercise -> the pipeline. +## How identity + routing works -## What it stores +``` +CLI ──(Authorization: Bearer )──▶ autter-server + │ + verify JWT signature against autter.dev's JWKS (stateless) + │ + read claims: sub, email, org_id, org_db_url + │ + connect to that org's Postgres (org_db_url) + ▼ + write authorship_notes / cas_objects +``` + +- **autter.dev** runs Better Auth and is the identity/control plane. Its JWT + plugin signs tokens and publishes a JWKS endpoint. +- **autter-server** (this crate) is the data plane. It verifies the JWT against + the JWKS (no per-request call to autter.dev) and routes storage to the org's + own database using the `org_db_url` claim. Pools are created lazily per org + and cached. + +### Required JWT claims + +Configure Better Auth's JWT `definePayload` so tokens include: + +| Claim | Meaning | +|-------|---------| +| `sub` | user id (recorded as `uploaded_by`) | +| `email`, `name` | identity (optional) | +| `org_id` | the caller's organization id | +| `org_db_url` | Postgres URL of that org's database | -All data is scoped to an organization (see [`migrations/0001_init.sql`](migrations/0001_init.sql)): +## What it stores (per org database) + +See [`migrations/0001_init.sql`](migrations/0001_init.sql) — applied to each org +database on first connect: | Table | Contents | |-------|----------| -| `orgs` | Organizations (teams/companies). | -| `users` | Developer identities. | -| `access_tokens` | Maps a presented credential (OAuth bearer / `X-API-Key`) → org. | -| `authorship_notes` | The serialized authorship note per `(org, commit_sha)` — the same text the CLI writes to the local `refs/notes/ai`. | -| `cas_objects` | Content-addressed prompt transcripts, deduplicated per `(org, hash)`. | +| `authorship_notes` | Serialized authorship note per commit (same text the CLI writes to local `refs/notes/ai`). | +| `cas_objects` | Content-addressed prompt transcripts, deduplicated by hash. | + +There are no user/org/token tables here — identity lives in the autter.dev +control plane; the database boundary is the tenant boundary. ## Endpoints (match the CLI wire contract) @@ -32,41 +60,33 @@ All data is scoped to an organization (see [`migrations/0001_init.sql`](migratio | `POST /worker/cas/upload` | Store a batch of prompt-transcript objects. | | `GET /worker/cas/?hashes=h1,h2` | Read prompt objects by hash. | -Auth: send `X-API-Key: ` or `Authorization: Bearer ` (plus the -CLI's `X-Distinct-ID`). +Auth: `Authorization: Bearer ` on every request (plus the CLI's `X-Distinct-ID`). ## Run locally ```bash -# 1. Start PostgreSQL +# 1. Start a Postgres to act as an org database docker compose -f server/docker-compose.yml up -d -# 2. Configure + run (migrations run automatically on startup) -cp server/.env.example server/.env # or export the vars -export DATABASE_URL=postgres://autter:autter@localhost:5432/autter +# 2. Run in dev mode (decodes the JWT without verifying its signature, so you can +# hand-craft a token whose org_db_url points at the docker Postgres). export AUTTER_SERVER_DEV_AUTH=1 cargo run -p autter-server ``` -Point the CLI at it by setting the API base URL: - -```bash -autter config set api_base_url http://localhost:8787 -# then connect: -autter onboard --connect # (once the auth batch lands) -# or, today, drive uploads with an API key in dev-auth mode: -autter config set api_key dev-token-123 -``` +In production, set `AUTTER_SERVER_JWKS_URL=https://autter.dev/api/auth/jwks` +instead of dev mode. ## Layout ``` server/ - migrations/0001_init.sql # the storage schema (what we keep) + migrations/0001_init.sql # per-org storage schema (what we keep) src/ - main.rs # startup: pool, migrate, serve + main.rs # startup: verifier, pools, serve + auth.rs # Better Auth JWT verification (JWKS) → identity + org_db_url + state.rs # per-org pool manager routes/{notes,cas}.rs # storage endpoints - auth.rs # credential → org resolution models.rs # wire types (mirror the CLI's src/api/types.rs) - error.rs, state.rs + error.rs ``` diff --git a/server/migrations/0001_init.sql b/server/migrations/0001_init.sql index a125fed..100a2a3 100644 --- a/server/migrations/0001_init.sql +++ b/server/migrations/0001_init.sql @@ -1,71 +1,33 @@ --- Autter platform backend — initial schema. +-- Autter platform backend — per-organization schema. -- --- This is the full, transparent record of what the Autter platform stores when --- a developer connects the CLI to the platform. Everything the CLI uploads --- lands in one of these tables, scoped to an organization. +-- Each organization has its OWN PostgreSQL database. The backend learns an +-- org's database URL from the verified Better Auth JWT (the `org_db_url` claim) +-- and connects to it, then ensures this schema exists (these migrations run on +-- first connect to each org database). -- --- All org-scoped data cascades on org deletion so a customer can be fully --- removed. +-- Because every database belongs to exactly one org, rows are not org-scoped: +-- the database boundary IS the tenant boundary. Identity (which user uploaded +-- what) comes from the JWT, so there are no user/org/token tables here — those +-- live in the autter.dev control plane. -CREATE EXTENSION IF NOT EXISTS pgcrypto; - --- An organization (team/company). All stored data is scoped to an org. -CREATE TABLE IF NOT EXISTS orgs ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - slug TEXT NOT NULL UNIQUE, - name TEXT NOT NULL, - created_at TIMESTAMPTZ NOT NULL DEFAULT now() -); - --- A developer/user. Identity is established by the platform auth flow; the --- storage endpoints only reference users via the credential they present. -CREATE TABLE IF NOT EXISTS users ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - email TEXT UNIQUE, - name TEXT, - created_at TIMESTAMPTZ NOT NULL DEFAULT now() -); - --- Maps a presented credential (OAuth bearer token or X-API-Key) to an org and --- optional user. The storage endpoints resolve the caller's org via this table. --- (Full OAuth issuance lands with the auth batch; this table is the seam the --- storage endpoints authenticate against today.) -CREATE TABLE IF NOT EXISTS access_tokens ( - token TEXT PRIMARY KEY, - org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, - user_id UUID REFERENCES users(id) ON DELETE SET NULL, - created_at TIMESTAMPTZ NOT NULL DEFAULT now() -); - --- Authorship notes: the exact serialized note text the CLI also writes to the --- local git ref refs/notes/ai, one row per (org, commit). Re-uploads upsert. +-- Authorship notes: the serialized note text the CLI also writes to the local +-- git ref refs/notes/ai, keyed by commit. Re-uploads upsert. CREATE TABLE IF NOT EXISTS authorship_notes ( - id BIGSERIAL PRIMARY KEY, - org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, - commit_sha TEXT NOT NULL, + commit_sha TEXT PRIMARY KEY, content TEXT NOT NULL, - uploaded_by UUID REFERENCES users(id) ON DELETE SET NULL, - distinct_id TEXT, + uploaded_by TEXT, -- Better Auth user id (JWT `sub`) + distinct_id TEXT, -- CLI X-Distinct-ID created_at TIMESTAMPTZ NOT NULL DEFAULT now(), - updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), - UNIQUE (org_id, commit_sha) + updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -CREATE INDEX IF NOT EXISTS authorship_notes_org_commit_idx - ON authorship_notes (org_id, commit_sha); - -- Content-addressable store for prompt transcripts. `hash` is the CLI-computed --- content hash; `content` is the canonicalized transcript JSON. Deduplicated --- per (org, hash) — re-uploading the same hash is a no-op. +-- content hash; `content` is the canonicalized transcript JSON. Deduplicated by +-- hash — re-uploading the same content is a no-op. CREATE TABLE IF NOT EXISTS cas_objects ( - id BIGSERIAL PRIMARY KEY, - org_id UUID NOT NULL REFERENCES orgs(id) ON DELETE CASCADE, - hash TEXT NOT NULL, + hash TEXT PRIMARY KEY, content JSONB NOT NULL, metadata JSONB NOT NULL DEFAULT '{}'::jsonb, - created_at TIMESTAMPTZ NOT NULL DEFAULT now(), - UNIQUE (org_id, hash) + uploaded_by TEXT, -- Better Auth user id (JWT `sub`) + created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); - -CREATE INDEX IF NOT EXISTS cas_objects_org_hash_idx - ON cas_objects (org_id, hash); diff --git a/server/src/auth.rs b/server/src/auth.rs index 82b5f3f..2b211c4 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -1,108 +1,216 @@ -//! Request authentication. +//! Better Auth identity verification. //! -//! The CLI authenticates uploads with either an OAuth bearer token -//! (`Authorization: Bearer `) or an API key (`X-API-Key: `), and -//! always sends `X-Distinct-ID`. Here we resolve that credential to an org via -//! the `access_tokens` table. +//! autter.dev runs Better Auth and is the identity/control plane. Its JWT plugin +//! signs tokens and publishes a JWKS endpoint. The CLI sends one of those tokens +//! as `Authorization: Bearer `; here we verify the signature against the +//! JWKS (stateless — no per-request call to autter.dev) and read the claims. //! -//! Full OAuth token issuance is a separate batch; for the storage-first cut, -//! `AUTTER_SERVER_DEV_AUTH=1` auto-provisions a single "dev" org for any -//! previously-unseen credential so the pipeline can be tested end-to-end. +//! The JWT payload must include these custom claims (configure Better Auth's JWT +//! `definePayload` accordingly): +//! - `org_id` — the caller's organization id +//! - `org_db_url` — the Postgres URL of that organization's database +//! +//! Standard claims used: `sub` (user id), `email`, `name`, `exp`. +//! +//! Dev mode (`AUTTER_SERVER_DEV_AUTH=1`) decodes the token WITHOUT verifying the +//! signature, so the data path can be exercised with a hand-crafted JWT before +//! autter.dev is reachable. Never enable it in production. + +use std::time::{Duration, Instant}; use axum::http::HeaderMap; -use uuid::Uuid; +use jsonwebtoken::jwk::JwkSet; +use jsonwebtoken::{decode, decode_header, DecodingKey, Validation}; +use serde::Deserialize; +use tokio::sync::RwLock; use crate::error::AppError; -use crate::state::AppState; -/// The authenticated caller for a request. -pub struct AuthOrg { - pub org_id: Uuid, - pub user_id: Option, +/// JWKS are refreshed at most this often (and on an unknown `kid`). +const JWKS_TTL: Duration = Duration::from_secs(3600); + +/// Claims we read out of the Better Auth JWT. +#[derive(Debug, Deserialize)] +struct Claims { + sub: Option, + email: Option, + #[allow(dead_code)] + name: Option, + org_id: Option, + org_db_url: Option, + // `exp` is validated by jsonwebtoken; we don't need to read it here. +} + +/// The authenticated caller and where their data lives. +pub struct Identity { + pub user_id: Option, + #[allow(dead_code)] // surfaced for future logging/attribution + pub email: Option, + #[allow(dead_code)] // tenant is selected via org_db_url; org_id kept for logs + pub org_id: String, + pub org_db_url: String, pub distinct_id: Option, } -/// Pull the credential the CLI presents out of the request headers. -fn extract_token(headers: &HeaderMap) -> Option { - if let Some(key) = headers.get("x-api-key").and_then(|v| v.to_str().ok()) { - let key = key.trim(); - if !key.is_empty() { - return Some(key.to_string()); - } - } +pub struct JwtVerifier { + jwks_url: Option, + issuer: Option, + audience: Option, + dev_no_verify: bool, + http: reqwest::Client, + cache: RwLock>, +} - if let Some(auth) = headers.get("authorization").and_then(|v| v.to_str().ok()) { - if let Some(rest) = auth.strip_prefix("Bearer ").or_else(|| auth.strip_prefix("bearer ")) { - let rest = rest.trim(); - if !rest.is_empty() { - return Some(rest.to_string()); - } +impl JwtVerifier { + pub fn new( + jwks_url: Option, + issuer: Option, + audience: Option, + dev_no_verify: bool, + ) -> Self { + Self { + jwks_url, + issuer, + audience, + dev_no_verify, + http: reqwest::Client::new(), + cache: RwLock::new(None), } } - None -} + /// Verify the request's bearer token and return the caller's identity. + pub async fn authenticate(&self, headers: &HeaderMap) -> Result { + let token = extract_bearer(headers) + .ok_or_else(|| AppError::Unauthorized("Missing bearer token".to_string()))?; -/// Resolve the caller's org from the presented credential. -pub async fn authenticate(state: &AppState, headers: &HeaderMap) -> Result { - let distinct_id = headers - .get("x-distinct-id") - .and_then(|v| v.to_str().ok()) - .map(|s| s.to_string()); - - let token = extract_token(headers) - .ok_or_else(|| AppError::Unauthorized("Missing credentials".to_string()))?; - - // Known credential → use its org/user. - if let Some(row) = - sqlx::query_as::<_, (Uuid, Option)>( - "SELECT org_id, user_id FROM access_tokens WHERE token = $1", - ) - .bind(&token) - .fetch_optional(&state.pool) - .await? - { - return Ok(AuthOrg { - org_id: row.0, - user_id: row.1, - distinct_id, - }); - } + let claims = if self.dev_no_verify { + decode_claims_unverified(&token)? + } else { + self.verify(&token).await? + }; + + let org_id = claims + .org_id + .filter(|s| !s.is_empty()) + .ok_or_else(|| AppError::Unauthorized("Token missing org_id claim".to_string()))?; + let org_db_url = claims + .org_db_url + .filter(|s| !s.is_empty()) + .ok_or_else(|| AppError::Unauthorized("Token missing org_db_url claim".to_string()))?; - // Unknown credential. - if state.dev_auth { - let org_id = ensure_dev_org(state).await?; - sqlx::query( - "INSERT INTO access_tokens (token, org_id) VALUES ($1, $2) - ON CONFLICT (token) DO NOTHING", - ) - .bind(&token) - .bind(org_id) - .execute(&state.pool) - .await?; - - return Ok(AuthOrg { + let distinct_id = headers + .get("x-distinct-id") + .and_then(|v| v.to_str().ok()) + .map(|s| s.to_string()); + + Ok(Identity { + user_id: claims.sub, + email: claims.email, org_id, - user_id: None, + org_db_url, distinct_id, - }); + }) } - Err(AppError::Unauthorized("Invalid credentials".to_string())) -} + /// Verify a token's signature against the JWKS and return its claims. + async fn verify(&self, token: &str) -> Result { + let header = decode_header(token) + .map_err(|e| AppError::Unauthorized(format!("Invalid token header: {e}")))?; + let kid = header + .kid + .clone() + .ok_or_else(|| AppError::Unauthorized("Token missing kid".to_string()))?; -/// Ensure the single "dev" org exists and return its id (dev mode only). -async fn ensure_dev_org(state: &AppState) -> Result { - sqlx::query( - "INSERT INTO orgs (slug, name) VALUES ('dev', 'Dev Org') - ON CONFLICT (slug) DO NOTHING", - ) - .execute(&state.pool) - .await?; + let jwk = match self.find_key(&kid, false).await? { + Some(jwk) => jwk, + // Unknown kid: keys may have rotated — force a refresh and retry once. + None => self + .find_key(&kid, true) + .await? + .ok_or_else(|| AppError::Unauthorized("No matching signing key".to_string()))?, + }; - let (id,): (Uuid,) = sqlx::query_as("SELECT id FROM orgs WHERE slug = 'dev'") - .fetch_one(&state.pool) - .await?; + let decoding_key = DecodingKey::from_jwk(&jwk) + .map_err(|e| AppError::Internal(format!("bad JWKS key: {e}")))?; + + let mut validation = Validation::new(header.alg); + validation.validate_exp = true; + if let Some(iss) = &self.issuer { + validation.set_issuer(&[iss]); + } + if let Some(aud) = &self.audience { + validation.set_audience(&[aud]); + } else { + // No audience configured: don't require/validate the `aud` claim. + validation.validate_aud = false; + } + + let data = decode::(token, &decoding_key, &validation) + .map_err(|e| AppError::Unauthorized(format!("Token verification failed: {e}")))?; + Ok(data.claims) + } + + /// Look up a JWK by `kid`, optionally forcing a JWKS refresh first. + async fn find_key( + &self, + kid: &str, + force_refresh: bool, + ) -> Result, AppError> { + if !force_refresh { + if let Some((fetched_at, jwks)) = self.cache.read().await.as_ref() { + if fetched_at.elapsed() < JWKS_TTL { + return Ok(jwks.find(kid).cloned()); + } + } + } + + let jwks = self.fetch_jwks().await?; + let found = jwks.find(kid).cloned(); + *self.cache.write().await = Some((Instant::now(), jwks)); + Ok(found) + } + + async fn fetch_jwks(&self) -> Result { + let url = self + .jwks_url + .as_ref() + .ok_or_else(|| AppError::Internal("AUTTER_SERVER_JWKS_URL not configured".to_string()))?; + let jwks = self + .http + .get(url) + .send() + .await + .map_err(|e| AppError::Internal(format!("JWKS fetch failed: {e}")))? + .json::() + .await + .map_err(|e| AppError::Internal(format!("JWKS parse failed: {e}")))?; + Ok(jwks) + } +} + +fn extract_bearer(headers: &HeaderMap) -> Option { + let auth = headers.get("authorization")?.to_str().ok()?; + let token = auth + .strip_prefix("Bearer ") + .or_else(|| auth.strip_prefix("bearer "))? + .trim(); + if token.is_empty() { + None + } else { + Some(token.to_string()) + } +} - Ok(id) +/// Decode the JWT payload WITHOUT verifying the signature (dev mode only). +fn decode_claims_unverified(token: &str) -> Result { + use base64::Engine; + let payload = token + .split('.') + .nth(1) + .ok_or_else(|| AppError::Unauthorized("Malformed token".to_string()))?; + let bytes = base64::engine::general_purpose::URL_SAFE_NO_PAD + .decode(payload) + .map_err(|e| AppError::Unauthorized(format!("Bad token payload: {e}")))?; + serde_json::from_slice::(&bytes) + .map_err(|e| AppError::Unauthorized(format!("Bad token claims: {e}"))) } diff --git a/server/src/main.rs b/server/src/main.rs index 1490bd2..e4b2435 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,14 +1,21 @@ -//! Autter platform backend. +//! Autter platform backend (data plane). //! //! Receives authorship-note and prompt (CAS) uploads from the autter CLI and -//! persists them to PostgreSQL. This is the open-source record of exactly what -//! the platform stores. +//! persists them to each organization's own PostgreSQL database. Identity comes +//! from a Better Auth JWT issued by autter.dev (verified against its JWKS); the +//! token's `org_db_url` claim tells us which database to write to. +//! +//! This is the open-source record of exactly what the platform stores — see +//! `migrations/0001_init.sql`. //! //! Configuration (environment): -//! - `DATABASE_URL` (required) e.g. postgres://autter:autter@localhost:5432/autter -//! - `BIND` (default 0.0.0.0:8787) listen address -//! - `AUTTER_SERVER_DEV_AUTH` set to `1` to auto-provision a dev org for any -//! credential (development only). +//! - `BIND` listen address (default 0.0.0.0:8787) +//! - `AUTTER_SERVER_JWKS_URL` Better Auth JWKS endpoint, e.g. +//! https://autter.dev/api/auth/jwks (required unless dev) +//! - `AUTTER_SERVER_JWT_ISSUER` optional expected `iss` +//! - `AUTTER_SERVER_JWT_AUDIENCE` optional expected `aud` +//! - `AUTTER_SERVER_DEV_AUTH` set to `1` to decode tokens WITHOUT verifying +//! the signature (development only). mod auth; mod error; @@ -17,12 +24,17 @@ mod routes; mod state; use std::net::SocketAddr; +use std::sync::Arc; use anyhow::Context; -use sqlx::postgres::PgPoolOptions; +use sqlx::migrate::Migrator; use tracing_subscriber::EnvFilter; -use crate::state::AppState; +use crate::auth::JwtVerifier; +use crate::state::{AppState, PoolManager}; + +/// Per-org database schema, applied to each org database on first connect. +pub static MIGRATOR: Migrator = sqlx::migrate!("./migrations"); #[tokio::main] async fn main() -> anyhow::Result<()> { @@ -32,30 +44,29 @@ async fn main() -> anyhow::Result<()> { ) .init(); - let database_url = std::env::var("DATABASE_URL") - .context("DATABASE_URL must be set (e.g. postgres://autter:autter@localhost:5432/autter)")?; - let bind = std::env::var("BIND").unwrap_or_else(|_| "0.0.0.0:8787".to_string()); let dev_auth = std::env::var("AUTTER_SERVER_DEV_AUTH").as_deref() == Ok("1"); - - let pool = PgPoolOptions::new() - .max_connections(10) - .connect(&database_url) - .await - .context("failed to connect to PostgreSQL")?; - - sqlx::migrate!("./migrations") - .run(&pool) - .await - .context("failed to run database migrations")?; + let jwks_url = non_empty_env("AUTTER_SERVER_JWKS_URL"); + let issuer = non_empty_env("AUTTER_SERVER_JWT_ISSUER"); + let audience = non_empty_env("AUTTER_SERVER_JWT_AUDIENCE"); if dev_auth { tracing::warn!( - "AUTTER_SERVER_DEV_AUTH is on: unknown credentials are auto-provisioned to a 'dev' org. Do not use in production." + "AUTTER_SERVER_DEV_AUTH is on: JWT signatures are NOT verified. Do not use in production." + ); + } else if jwks_url.is_none() { + anyhow::bail!( + "AUTTER_SERVER_JWKS_URL must be set (e.g. https://autter.dev/api/auth/jwks), or set AUTTER_SERVER_DEV_AUTH=1 for local development" ); } - let state = AppState { pool, dev_auth }; + let verifier = JwtVerifier::new(jwks_url, issuer, audience, dev_auth); + + let state = AppState { + pools: Arc::new(PoolManager::default()), + verifier: Arc::new(verifier), + }; + let app = routes::router(state); let addr: SocketAddr = bind.parse().context("invalid BIND address")?; @@ -72,6 +83,14 @@ async fn main() -> anyhow::Result<()> { Ok(()) } +/// Read an env var, treating empty/whitespace as unset. +fn non_empty_env(key: &str) -> Option { + std::env::var(key) + .ok() + .map(|v| v.trim().to_string()) + .filter(|v| !v.is_empty()) +} + async fn shutdown_signal() { let _ = tokio::signal::ctrl_c().await; tracing::info!("shutting down"); diff --git a/server/src/routes/cas.rs b/server/src/routes/cas.rs index a5e3c6e..828bdc0 100644 --- a/server/src/routes/cas.rs +++ b/server/src/routes/cas.rs @@ -1,4 +1,4 @@ -//! CAS (prompt-transcript) storage endpoints. +//! CAS (prompt-transcript) storage endpoints (written to the caller's org database). //! //! - `POST /worker/cas/upload` — store a batch of content-addressed objects. //! - `GET /worker/cas/?hashes=h1,h2` — read objects by hash. @@ -9,7 +9,6 @@ use axum::Json; use serde::Deserialize; use std::collections::HashMap; -use crate::auth::authenticate; use crate::error::AppError; use crate::models::{ CasReadResponse, CasReadResult, CasUploadRequest, CasUploadResponse, CasUploadResult, @@ -21,27 +20,28 @@ pub async fn upload( headers: HeaderMap, Json(req): Json, ) -> Result, AppError> { - let auth = authenticate(&state, &headers).await?; + let identity = state.verifier.authenticate(&headers).await?; + let pool = state.pools.get(&identity.org_db_url).await?; let mut results = Vec::with_capacity(req.objects.len()); let mut success_count = 0usize; let mut failure_count = 0usize; for obj in req.objects { - let metadata = serde_json::to_value(&obj.metadata) - .unwrap_or_else(|_| serde_json::json!({})); + let metadata = + serde_json::to_value(&obj.metadata).unwrap_or_else(|_| serde_json::json!({})); - // Dedup per (org, hash): re-uploading the same content is a no-op. + // Dedup by hash: re-uploading the same content is a no-op. let result = sqlx::query( - "INSERT INTO cas_objects (org_id, hash, content, metadata) + "INSERT INTO cas_objects (hash, content, metadata, uploaded_by) VALUES ($1, $2, $3, $4) - ON CONFLICT (org_id, hash) DO NOTHING", + ON CONFLICT (hash) DO NOTHING", ) - .bind(auth.org_id) .bind(&obj.hash) .bind(&obj.content) .bind(&metadata) - .execute(&state.pool) + .bind(&identity.user_id) + .execute(&pool) .await; match result { @@ -82,7 +82,7 @@ pub async fn read( headers: HeaderMap, Query(q): Query, ) -> Result, AppError> { - let auth = authenticate(&state, &headers).await?; + let identity = state.verifier.authenticate(&headers).await?; let hashes: Vec = q .hashes @@ -101,12 +101,13 @@ pub async fn read( })); } + let pool = state.pools.get(&identity.org_db_url).await?; + let rows = sqlx::query_as::<_, (String, serde_json::Value)>( - "SELECT hash, content FROM cas_objects WHERE org_id = $1 AND hash = ANY($2)", + "SELECT hash, content FROM cas_objects WHERE hash = ANY($1)", ) - .bind(auth.org_id) .bind(&hashes) - .fetch_all(&state.pool) + .fetch_all(&pool) .await?; let found: HashMap = rows.into_iter().collect(); diff --git a/server/src/routes/notes.rs b/server/src/routes/notes.rs index 6eb381f..88586b3 100644 --- a/server/src/routes/notes.rs +++ b/server/src/routes/notes.rs @@ -1,6 +1,6 @@ -//! Authorship-note storage endpoints. +//! Authorship-note storage endpoints (written to the caller's org database). //! -//! - `POST /worker/notes/upload` — upsert a batch of notes for the caller's org. +//! - `POST /worker/notes/upload` — upsert a batch of notes. //! - `GET /worker/notes/?commits=sha1,sha2` — read notes by commit SHA. use axum::extract::{Query, State}; @@ -9,7 +9,6 @@ use axum::Json; use serde::Deserialize; use std::collections::HashMap; -use crate::auth::authenticate; use crate::error::AppError; use crate::models::{NotesReadResponse, NotesUploadRequest, NotesUploadResponse}; use crate::state::AppState; @@ -19,7 +18,8 @@ pub async fn upload( headers: HeaderMap, Json(req): Json, ) -> Result, AppError> { - let auth = authenticate(&state, &headers).await?; + let identity = state.verifier.authenticate(&headers).await?; + let pool = state.pools.get(&identity.org_db_url).await?; let mut success_count = 0usize; let mut failure_count = 0usize; @@ -31,17 +31,19 @@ pub async fn upload( } let result = sqlx::query( - "INSERT INTO authorship_notes (org_id, commit_sha, content, uploaded_by, distinct_id) - VALUES ($1, $2, $3, $4, $5) - ON CONFLICT (org_id, commit_sha) - DO UPDATE SET content = EXCLUDED.content, updated_at = now()", + "INSERT INTO authorship_notes (commit_sha, content, uploaded_by, distinct_id) + VALUES ($1, $2, $3, $4) + ON CONFLICT (commit_sha) + DO UPDATE SET content = EXCLUDED.content, + uploaded_by = EXCLUDED.uploaded_by, + distinct_id = EXCLUDED.distinct_id, + updated_at = now()", ) - .bind(auth.org_id) .bind(&entry.commit_sha) .bind(&entry.content) - .bind(auth.user_id) - .bind(&auth.distinct_id) - .execute(&state.pool) + .bind(&identity.user_id) + .bind(&identity.distinct_id) + .execute(&pool) .await; match result { @@ -69,7 +71,7 @@ pub async fn read( headers: HeaderMap, Query(q): Query, ) -> Result, AppError> { - let auth = authenticate(&state, &headers).await?; + let identity = state.verifier.authenticate(&headers).await?; let commits: Vec = q .commits @@ -86,13 +88,13 @@ pub async fn read( })); } + let pool = state.pools.get(&identity.org_db_url).await?; + let rows = sqlx::query_as::<_, (String, String)>( - "SELECT commit_sha, content FROM authorship_notes - WHERE org_id = $1 AND commit_sha = ANY($2)", + "SELECT commit_sha, content FROM authorship_notes WHERE commit_sha = ANY($1)", ) - .bind(auth.org_id) .bind(&commits) - .fetch_all(&state.pool) + .fetch_all(&pool) .await?; let notes = rows.into_iter().collect::>(); diff --git a/server/src/state.rs b/server/src/state.rs index b607be2..ad1358e 100644 --- a/server/src/state.rs +++ b/server/src/state.rs @@ -1,13 +1,58 @@ -//! Shared application state. +//! Shared application state: per-org database pools + the JWT verifier. +use std::collections::HashMap; +use std::sync::Arc; + +use sqlx::postgres::PgPoolOptions; use sqlx::PgPool; +use tokio::sync::RwLock; + +use crate::auth::JwtVerifier; +use crate::error::AppError; + +/// Lazily-created, cached connection pools keyed by org database URL. +/// +/// Each organization has its own PostgreSQL database (the `org_db_url` from the +/// verified JWT). The first time we see an org's URL we open a pool and run the +/// per-org migrations against it; subsequent requests reuse the pool. +#[derive(Default)] +pub struct PoolManager { + pools: RwLock>, +} + +impl PoolManager { + /// Get (or lazily create + migrate) the pool for an org database URL. + pub async fn get(&self, db_url: &str) -> Result { + if let Some(pool) = self.pools.read().await.get(db_url) { + return Ok(pool.clone()); + } + + // Upgrade to a write lock and re-check (another task may have created it). + let mut pools = self.pools.write().await; + if let Some(pool) = pools.get(db_url) { + return Ok(pool.clone()); + } + + let pool = PgPoolOptions::new() + .max_connections(5) + .connect(db_url) + .await + .map_err(|e| AppError::Internal(format!("connect to org database failed: {e}")))?; + + // Ensure the org database has the schema. Idempotent. + crate::MIGRATOR + .run(&pool) + .await + .map_err(|e| AppError::Internal(format!("org database migration failed: {e}")))?; + + pools.insert(db_url.to_string(), pool.clone()); + tracing::info!("opened pool for a new org database"); + Ok(pool) + } +} #[derive(Clone)] pub struct AppState { - pub pool: PgPool, - /// When true, unknown credentials are auto-provisioned against a single - /// "dev" org so the storage endpoints can be exercised without the full - /// auth flow. Controlled by `AUTTER_SERVER_DEV_AUTH=1`. Never enable in - /// production. - pub dev_auth: bool, + pub pools: Arc, + pub verifier: Arc, } From cca6f7ff833418b619f1437de83e40d917b7fc66 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Tue, 16 Jun 2026 22:23:40 +0530 Subject: [PATCH 04/10] Update JWKS URL in documentation and enhance hostname resolution - Revised the JWKS URL in the documentation to reflect the correct endpoint for token signing keys. - Made the `resolve_hostname` function public to allow access from other modules. - Improved device metadata reporting in the OAuth device flow to include hostname and OS information. --- server/src/main.rs | 11 ++++++----- src/api/client.rs | 2 +- src/auth/client.rs | 13 ++++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index e4b2435..5ff2567 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -10,10 +10,11 @@ //! //! Configuration (environment): //! - `BIND` listen address (default 0.0.0.0:8787) -//! - `AUTTER_SERVER_JWKS_URL` Better Auth JWKS endpoint, e.g. -//! https://autter.dev/api/auth/jwks (required unless dev) -//! - `AUTTER_SERVER_JWT_ISSUER` optional expected `iss` -//! - `AUTTER_SERVER_JWT_AUDIENCE` optional expected `aud` +//! - `AUTTER_SERVER_JWKS_URL` JWKS endpoint that publishes the CLI token +//! signing keys, e.g. +//! https://autter.dev/worker/oauth/jwks (required unless dev) +//! - `AUTTER_SERVER_JWT_ISSUER` optional expected `iss` (autter.dev sets it to APP_URL) +//! - `AUTTER_SERVER_JWT_AUDIENCE` optional expected `aud` (autter.dev sets it to `autter-cli`) //! - `AUTTER_SERVER_DEV_AUTH` set to `1` to decode tokens WITHOUT verifying //! the signature (development only). @@ -56,7 +57,7 @@ async fn main() -> anyhow::Result<()> { ); } else if jwks_url.is_none() { anyhow::bail!( - "AUTTER_SERVER_JWKS_URL must be set (e.g. https://autter.dev/api/auth/jwks), or set AUTTER_SERVER_DEV_AUTH=1 for local development" + "AUTTER_SERVER_JWKS_URL must be set (e.g. https://autter.dev/worker/oauth/jwks), or set AUTTER_SERVER_DEV_AUTH=1 for local development" ); } diff --git a/src/api/client.rs b/src/api/client.rs index aa4f0e1..8b5004e 100644 --- a/src/api/client.rs +++ b/src/api/client.rs @@ -105,7 +105,7 @@ fn resolve_username() -> Option { None } -fn resolve_hostname() -> Option { +pub(crate) fn resolve_hostname() -> Option { #[cfg(windows)] if let Ok(h) = std::env::var("COMPUTERNAME") && !h.trim().is_empty() diff --git a/src/auth/client.rs b/src/auth/client.rs index 96e79a5..76ad154 100644 --- a/src/auth/client.rs +++ b/src/auth/client.rs @@ -97,9 +97,20 @@ impl OAuthClient { pub fn start_device_flow(&self) -> Result { let url = format!("{}/worker/oauth/device/code", self.base_url); + // Self-report device metadata so the approval screen and the persisted + // device record can show a meaningful "which device" (best-effort). + let device_name = + crate::api::client::resolve_hostname().unwrap_or_else(|| "autter CLI".to_string()); + let body = serde_json::json!({ + "client_id": "autter-cli", + "device_name": device_name, + "os": std::env::consts::OS, + "cli_version": env!("CARGO_PKG_VERSION"), + }); + let (_agent, request) = ApiContext::http_post(&url, Some(30)); let request = request.set("Content-Type", "application/json"); - let response = http::send_with_body(request, "{}") + let response = http::send_with_body(request, &body.to_string()) .map_err(|e| format!("Failed to connect to server: {}", e))?; if response.status_code != 200 { From e87a9c5e20f5830e9d2564295e201a651dbde411 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 01:38:52 +0530 Subject: [PATCH 05/10] Enhance authentication and upload processes - Added `token_id` field to `Claims` and `Identity` structs for tracking Personal Access Token (PAT) usage in audit logs. - Implemented audit logging for batch uploads in `cas.rs` and per-commit uploads in `notes.rs` to improve traceability of data pushes. - Introduced `exchange_pat` method in `OAuthClient` for validating PATs during login, enhancing the login experience with a new `--token` option. - Updated command handling in `login.rs` to support a two-step PAT login process, improving user guidance for token creation and usage. --- server/migrations/0002_cli_audit_log.sql | 23 +++++ server/src/audit.rs | 44 ++++++++++ server/src/auth.rs | 6 ++ server/src/main.rs | 1 + server/src/routes/cas.rs | 20 +++++ server/src/routes/notes.rs | 16 +++- src/auth/client.rs | 16 ++++ src/commands/autter_handlers.rs | 3 +- src/commands/login.rs | 102 ++++++++++++++++++++--- 9 files changed, 218 insertions(+), 13 deletions(-) create mode 100644 server/migrations/0002_cli_audit_log.sql create mode 100644 server/src/audit.rs diff --git a/server/migrations/0002_cli_audit_log.sql b/server/migrations/0002_cli_audit_log.sql new file mode 100644 index 0000000..18f437b --- /dev/null +++ b/server/migrations/0002_cli_audit_log.sql @@ -0,0 +1,23 @@ +-- Dedicated CLI / Personal Access Token activity log for this org. Separate from +-- any general-purpose audit_log. Tracks three event types: +-- 'pat.created' a new PAT was minted (written by the control plane) +-- 'pat.signin' a PAT was exchanged for a JWT (written by the control plane) +-- 'data.push' a device pushed data with a PAT (written by this worker) +-- +-- Also provisioned by the control plane (`bootstrap-org-tables`); created here +-- IF NOT EXISTS so the worker is self-contained against a fresh org database. +CREATE TABLE IF NOT EXISTS cli_audit_log ( + id TEXT PRIMARY KEY, + event_type TEXT NOT NULL, -- 'pat.created' | 'pat.signin' | 'data.push' + actor_id TEXT, -- Better Auth user id (JWT `sub`) + actor_email TEXT, + token_id TEXT, -- cli_token id (master DB), when known + token_name TEXT, + resource_id TEXT, -- e.g. the commit SHA for data.push + detail JSONB, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +CREATE INDEX IF NOT EXISTS cli_audit_log_eventType_idx ON cli_audit_log (event_type); +CREATE INDEX IF NOT EXISTS cli_audit_log_tokenId_idx ON cli_audit_log (token_id); +CREATE INDEX IF NOT EXISTS cli_audit_log_createdAt_idx ON cli_audit_log (created_at); diff --git a/server/src/audit.rs b/server/src/audit.rs new file mode 100644 index 0000000..949b393 --- /dev/null +++ b/server/src/audit.rs @@ -0,0 +1,44 @@ +//! Append-only CLI activity logging into each org database's `cli_audit_log`. +//! +//! Every time a device pushes new data to the cloud with a Personal Access Token +//! (authorship notes on a commit, prompt/transcript CAS objects), we record a +//! `data.push` event — attributed to the user and, when present, the specific PAT +//! (`token_id`, carried as a JWT claim). The companion `pat.created` / `pat.signin` +//! events are written by the control plane. +//! +//! The table is shared with the control plane (`bootstrap-org-tables`); a worker +//! migration also creates it `IF NOT EXISTS` so the worker is self-contained. +//! +//! Audit writes are best-effort: a failure is logged but never fails the request. + +use sqlx::PgPool; + +use crate::auth::Identity; + +/// Record a `data.push` event into the org's `cli_audit_log`. `resource_id` is +/// optional (e.g. a CAS batch has no single resource). Never returns an error. +pub async fn record_push( + pool: &PgPool, + identity: &Identity, + resource_id: Option<&str>, + detail: serde_json::Value, +) { + // `id` is generated in SQL (gen_random_uuid() is built into Postgres 13+); + // `created_at` defaults to now() in the schema. + let result = sqlx::query( + "INSERT INTO cli_audit_log + (id, event_type, actor_id, actor_email, token_id, resource_id, detail) + VALUES (gen_random_uuid()::text, 'data.push', $1, $2, $3, $4, $5)", + ) + .bind(identity.user_id.as_deref()) + .bind(identity.email.as_deref()) + .bind(identity.token_id.as_deref()) + .bind(resource_id) + .bind(&detail) + .execute(pool) + .await; + + if let Err(e) = result { + tracing::warn!("cli audit write failed: {e}"); + } +} diff --git a/server/src/auth.rs b/server/src/auth.rs index 2b211c4..926f700 100644 --- a/server/src/auth.rs +++ b/server/src/auth.rs @@ -38,6 +38,9 @@ struct Claims { name: Option, org_id: Option, org_db_url: Option, + // Present only for PAT-minted tokens: the cli_token id, used to attribute + // pushed data to the specific Personal Access Token in the audit log. + token_id: Option, // `exp` is validated by jsonwebtoken; we don't need to read it here. } @@ -50,6 +53,8 @@ pub struct Identity { pub org_id: String, pub org_db_url: String, pub distinct_id: Option, + /// The cli_token id, when the access token was minted from a PAT. + pub token_id: Option, } pub struct JwtVerifier { @@ -109,6 +114,7 @@ impl JwtVerifier { org_id, org_db_url, distinct_id, + token_id: claims.token_id, }) } diff --git a/server/src/main.rs b/server/src/main.rs index 5ff2567..e7c878e 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -18,6 +18,7 @@ //! - `AUTTER_SERVER_DEV_AUTH` set to `1` to decode tokens WITHOUT verifying //! the signature (development only). +mod audit; mod auth; mod error; mod models; diff --git a/server/src/routes/cas.rs b/server/src/routes/cas.rs index 828bdc0..833bb9c 100644 --- a/server/src/routes/cas.rs +++ b/server/src/routes/cas.rs @@ -24,6 +24,7 @@ pub async fn upload( let pool = state.pools.get(&identity.org_db_url).await?; let mut results = Vec::with_capacity(req.objects.len()); + let mut stored_hashes: Vec = Vec::new(); let mut success_count = 0usize; let mut failure_count = 0usize; @@ -47,6 +48,7 @@ pub async fn upload( match result { Ok(_) => { success_count += 1; + stored_hashes.push(obj.hash.clone()); results.push(CasUploadResult { hash: obj.hash, status: "ok".to_string(), @@ -65,6 +67,24 @@ pub async fn upload( } } + // One audit row per upload batch summarizing the prompt/transcript objects + // pushed to the cloud (per-object would be far too chatty). Best-effort. + if !stored_hashes.is_empty() { + crate::audit::record_push( + &pool, + &identity, + None, + serde_json::json!({ + "kind": "cas", + "stored_count": stored_hashes.len(), + "failure_count": failure_count, + "hashes": stored_hashes, + "distinct_id": identity.distinct_id, + }), + ) + .await; + } + Ok(Json(CasUploadResponse { results, success_count, diff --git a/server/src/routes/notes.rs b/server/src/routes/notes.rs index 88586b3..51dcd16 100644 --- a/server/src/routes/notes.rs +++ b/server/src/routes/notes.rs @@ -47,7 +47,21 @@ pub async fn upload( .await; match result { - Ok(_) => success_count += 1, + Ok(_) => { + success_count += 1; + // Audit the per-commit push so we know when authorship data for a + // given commit reached the cloud (best-effort; never fails the call). + crate::audit::record_push( + &pool, + &identity, + Some(&entry.commit_sha), + serde_json::json!({ + "kind": "notes", + "distinct_id": identity.distinct_id, + }), + ) + .await; + } Err(e) => { tracing::warn!(commit = %entry.commit_sha, "note upsert failed: {e}"); failure_count += 1; diff --git a/src/auth/client.rs b/src/auth/client.rs index 76ad154..94e0e10 100644 --- a/src/auth/client.rs +++ b/src/auth/client.rs @@ -222,6 +222,22 @@ impl OAuthClient { .map_err(|e| format!("Token refresh failed: {}", e)) } + /// Exchange a Personal Access Token (PAT) for credentials. + /// + /// The PAT rides the refresh grant — the backend routes it by prefix and + /// returns it unchanged (PATs are stable, not rotated). Used by + /// `autter login --token ` to validate the token and seed credentials. + pub fn exchange_pat(&self, pat: &str) -> Result { + let body = serde_json::json!({ + "grant_type": "refresh_token", + "refresh_token": pat, + "client_id": "autter-cli" + }); + + self.exchange_token(body) + .map_err(|e| format!("Token sign-in failed: {}", e)) + } + /// Exchange an install nonce for credentials (auto-login from web install page) pub fn exchange_install_nonce(&self, nonce: &str) -> Result { let body = serde_json::json!({ diff --git a/src/commands/autter_handlers.rs b/src/commands/autter_handlers.rs index e68484a..9d248bf 100644 --- a/src/commands/autter_handlers.rs +++ b/src/commands/autter_handlers.rs @@ -374,7 +374,8 @@ fn print_help() { eprintln!(" --connect Connect to the Autter platform (runs login)"); eprintln!(" --local Use local-only mode (no uploads)"); eprintln!(" --force Re-run onboarding even if already completed"); - eprintln!(" login Authenticate with Autter"); + eprintln!(" login Open the dashboard to create a sign-in token"); + eprintln!(" --token Complete sign-in with a token from the dashboard"); eprintln!(" logout Clear stored credentials"); eprintln!(" whoami Show auth state and login identity"); eprintln!(" version, -v, --version Print the autter version"); diff --git a/src/commands/login.rs b/src/commands/login.rs index 36f29fe..e6081e3 100644 --- a/src/commands/login.rs +++ b/src/commands/login.rs @@ -73,20 +73,100 @@ pub fn run_device_login() -> Result { Ok(LoginOutcome::LoggedIn) } -/// Handle the `autter login` command -pub fn handle_login(_args: &[String]) { - match run_device_login() { - Ok(LoginOutcome::AlreadyLoggedIn) => { - eprintln!("Already logged in. Use 'autter logout' to log out first."); - std::process::exit(0); +/// Sign in with a Personal Access Token instead of the interactive device flow. +/// +/// Validates the token by exchanging it for an access token up-front, so a bad +/// token fails immediately rather than being stored and failing later. +pub fn run_pat_login(token: &str) -> Result { + let token = token.trim(); + if token.is_empty() { + return Err("No token provided. Usage: autter login --token ".to_string()); + } + + let creds = OAuthClient::new().exchange_pat(token)?; + + let store = CredentialStore::new(); + store + .store(&creds) + .map_err(|e| format!("Failed to store credentials: {}", e))?; + + Ok(LoginOutcome::LoggedIn) +} + +/// Extract a `--token ` or `--token=` argument, if present. +fn parse_token_arg(args: &[String]) -> Option { + let mut i = 0; + while i < args.len() { + let arg = &args[i]; + if let Some(rest) = arg.strip_prefix("--token=") { + return Some(rest.to_string()); } - Ok(LoginOutcome::LoggedIn) => { - eprintln!("\nSuccessfully logged in!"); + if arg == "--token" { + return args.get(i + 1).cloned(); } - Err(e) => { - eprintln!("\n{}", e); - std::process::exit(1); + i += 1; + } + None +} + +/// The Autter web dashboard, where the user creates a Personal Access Token. +/// Overridable via `AUTTER_WEB_URL` for local development (e.g. a Vite dev server). +const DEFAULT_WEB_APP_URL: &str = "https://app.autter.dev"; + +fn web_app_url() -> String { + std::env::var("AUTTER_WEB_URL") + .ok() + .filter(|s| !s.is_empty()) + .unwrap_or_else(|| DEFAULT_WEB_APP_URL.to_string()) +} + +/// Print the step-by-step browser sign-in instructions. +fn print_login_instructions(url: &str) { + eprintln!("To sign in to Autter:\n"); + eprintln!(" 1. We've opened the Autter dashboard in your browser:"); + eprintln!(" {}", url); + eprintln!(" (If it didn't open, copy that link into your browser.)\n"); + eprintln!(" 2. Log in, then open any organization's"); + eprintln!(" Settings -> Access Tokens\n"); + eprintln!(" 3. Click \"Create token\", give it a name, and copy the token.\n"); + eprintln!(" 4. Come back here and run:"); + eprintln!(" autter login --token \n"); +} + +/// Handle the `autter login` command. +/// +/// Two-step, browser-assisted Personal Access Token flow: +/// 1. `autter login` opens the dashboard so the user can create + copy a token. +/// 2. `autter login --token ` completes sign-in with that token. +pub fn handle_login(args: &[String]) { + // Step 2: complete sign-in with a token created in the browser. + if let Some(token) = parse_token_arg(args) { + match run_pat_login(&token) { + Ok(_) => { + eprintln!("Successfully logged in!"); + } + Err(e) => { + eprintln!("{}", e); + std::process::exit(1); + } } + return; + } + + // Already signed in? Nothing to do. + let store = CredentialStore::new(); + if let Ok(Some(creds)) = store.load() + && !creds.is_refresh_token_expired() + { + eprintln!("Already logged in. Use 'autter logout' to log out first."); + return; + } + + // Step 1: open the dashboard and tell the user what to do next. + let url = web_app_url(); + print_login_instructions(&url); + if open_browser(&url).is_err() { + eprintln!(" (Could not open the browser automatically — open the link above.)"); } } From 2a64974e6ecad37543c7205da97123f5d0e1a385 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 02:35:44 +0530 Subject: [PATCH 06/10] Implement Personal Access Token (PAT) handling and enhance notes routing - Introduced in-process caching for organization resolution and access tokens associated with Personal Access Tokens (PATs). - Added methods to load and validate stored PATs, enabling organization-specific token minting and routing for note uploads. - Enhanced the notes database schema to include a `repo_url` field, allowing notes to be associated with their originating repository for better organization routing. - Updated the HTTP backend to support repository-specific note writing, improving the accuracy of note uploads to the correct organization. - Refactored login handling to display user and organization information upon successful PAT login, enhancing user feedback during authentication. --- src/api/client.rs | 69 +++++++++++++++++++ src/auth/client.rs | 51 +++++++++++++- src/auth/identity.rs | 20 ++++++ src/commands/login.rs | 83 ++++++++++++++++++---- src/daemon/telemetry_worker.rs | 122 +++++++++++++++++++++------------ src/git/notes_api.rs | 35 +++++++--- src/notes/db.rs | 47 ++++++++++--- 7 files changed, 351 insertions(+), 76 deletions(-) diff --git a/src/api/client.rs b/src/api/client.rs index 8b5004e..6b2d60a 100644 --- a/src/api/client.rs +++ b/src/api/client.rs @@ -61,6 +61,75 @@ fn try_load_auth_token() -> Option { // Mutex guard is automatically released when _guard is dropped } +/// Prefix marking a Personal Access Token (mirrors the backend). +const PAT_PREFIX: &str = "autter_pat_"; + +/// In-process cache: repo remote URL → resolved owning org id (None = untracked). +static ORG_RESOLVE_CACHE: Lazy>>> = + Lazy::new(|| Mutex::new(std::collections::HashMap::new())); + +/// In-process cache: org id → (access token, unix expiry). +static ORG_TOKEN_CACHE: Lazy>> = + Lazy::new(|| Mutex::new(std::collections::HashMap::new())); + +/// Load the stored Personal Access Token (the refresh-token slot), if the user is +/// logged in with a PAT. Per-org routing only works with a PAT; device refresh +/// tokens return None so callers fall back to the single home-org token. +fn load_stored_pat() -> Option { + let creds = CredentialStore::new().load().ok().flatten()?; + if creds.is_refresh_token_expired() { + return None; + } + if !creds.refresh_token.starts_with(PAT_PREFIX) { + return None; + } + Some(creds.refresh_token) +} + +/// Resolve which org owns the repo at `repo_url`, cached in-process. Returns None +/// when no org tracks it, the user isn't logged in with a PAT, or resolution fails +/// — callers then fall back to the home org. +pub fn resolve_org_for_repo_cached(repo_url: &str) -> Option { + if let Ok(cache) = ORG_RESOLVE_CACHE.lock() + && let Some(hit) = cache.get(repo_url) + { + return hit.clone(); + } + let pat = load_stored_pat()?; + let resolved = OAuthClient::new() + .resolve_org_for_repo(&pat, repo_url) + .ok() + .flatten(); + if let Ok(mut cache) = ORG_RESOLVE_CACHE.lock() { + cache.insert(repo_url.to_string(), resolved.clone()); + } + resolved +} + +/// Get an access token scoped to `org_id`, minted from the stored PAT and cached +/// in-process until near expiry. Returns None if not logged in with a PAT or the +/// mint fails (caller should NOT fall back to another org — retry instead). +pub fn access_token_for_org(org_id: &str) -> Option { + let now = chrono::Utc::now().timestamp(); + if let Ok(cache) = ORG_TOKEN_CACHE.lock() + && let Some((token, exp)) = cache.get(org_id) + && *exp > now + 300 + { + return Some(token.clone()); + } + let pat = load_stored_pat()?; + let creds = OAuthClient::new() + .exchange_pat_for_org(&pat, Some(org_id)) + .ok()?; + if let Ok(mut cache) = ORG_TOKEN_CACHE.lock() { + cache.insert( + org_id.to_string(), + (creds.access_token.clone(), creds.access_token_expires_at), + ); + } + Some(creds.access_token) +} + /// Resolve the autter effective author identity without requiring a Repository instance. /// /// Uses the shared git identity helper to get the current user's identity, diff --git a/src/auth/client.rs b/src/auth/client.rs index 94e0e10..954cecb 100644 --- a/src/auth/client.rs +++ b/src/auth/client.rs @@ -228,16 +228,65 @@ impl OAuthClient { /// returns it unchanged (PATs are stable, not rotated). Used by /// `autter login --token ` to validate the token and seed credentials. pub fn exchange_pat(&self, pat: &str) -> Result { - let body = serde_json::json!({ + self.exchange_pat_for_org(pat, None) + } + + /// Exchange a PAT for credentials scoped to a specific org. + /// + /// `org_id = None` mints for the token's home org. A specific `org_id` mints + /// for that org (the backend verifies the PAT owner is a member) — this is how + /// the CLI routes a push to the org that owns the current repository. + pub fn exchange_pat_for_org( + &self, + pat: &str, + org_id: Option<&str>, + ) -> Result { + let mut body = serde_json::json!({ "grant_type": "refresh_token", "refresh_token": pat, "client_id": "autter-cli" }); + if let Some(org) = org_id { + body["org_id"] = serde_json::Value::String(org.to_string()); + } self.exchange_token(body) .map_err(|e| format!("Token sign-in failed: {}", e)) } + /// Resolve which org owns a repository (by `owner/repo` or remote URL), so a + /// push can be routed to the right org. Returns `None` when no org tracks it + /// (the caller should fall back to the PAT's home org). + pub fn resolve_org_for_repo( + &self, + pat: &str, + repo: &str, + ) -> Result, String> { + let url = format!("{}/worker/oauth/resolve-org", self.base_url); + let body = serde_json::json!({ "pat": pat, "repo": repo }); + + let (_agent, request) = ApiContext::http_post(&url, Some(30)); + let request = request.set("Content-Type", "application/json"); + let response = http::send_with_body(request, &body.to_string()) + .map_err(|e| format!("Failed to connect to server: {}", e))?; + + if response.status_code != 200 { + return Err(format!("resolve-org failed ({})", response.status_code)); + } + + let body = response + .as_str() + .map_err(|e| format!("Invalid response encoding: {}", e))?; + + #[derive(serde::Deserialize)] + struct ResolveOrgResponse { + org_id: Option, + } + let parsed: ResolveOrgResponse = serde_json::from_str(body) + .map_err(|e| format!("Invalid resolve-org response: {}", e))?; + Ok(parsed.org_id) + } + /// Exchange an install nonce for credentials (auto-login from web install page) pub fn exchange_install_nonce(&self, nonce: &str) -> Result { let body = serde_json::json!({ diff --git a/src/auth/identity.rs b/src/auth/identity.rs index 77d3d93..a495560 100644 --- a/src/auth/identity.rs +++ b/src/auth/identity.rs @@ -6,9 +6,27 @@ pub struct TokenIdentity { pub email: Option, pub name: Option, pub personal_org_id: Option, + /// The org this token is scoped to (the `org_id` claim). + pub active_org_id: Option, pub orgs: Vec, } +impl TokenIdentity { + /// The org entry this token is scoped to, matched from `orgs` by the active + /// `org_id`. Falls back to the sole org when there's exactly one. + pub fn active_org(&self) -> Option<&TokenOrg> { + if let Some(id) = self.active_org_id.as_deref() { + if let Some(org) = self.orgs.iter().find(|o| o.org_id.as_deref() == Some(id)) { + return Some(org); + } + } + if self.orgs.len() == 1 { + return self.orgs.first(); + } + None + } +} + #[derive(Default, Debug, Clone, PartialEq, Eq, Deserialize)] pub struct TokenOrg { pub org_id: Option, @@ -22,6 +40,7 @@ struct AccessTokenClaims { pub sub: Option, pub email: Option, pub name: Option, + pub org_id: Option, #[serde(default)] pub orgs: Vec, pub personal_org_id: Option, @@ -51,6 +70,7 @@ pub fn extract_identity_from_access_token(access_token: &str) -> TokenIdentity { email: claims.email, name: claims.name, personal_org_id: claims.personal_org_id, + active_org_id: claims.org_id, orgs: claims.orgs, } } diff --git a/src/commands/login.rs b/src/commands/login.rs index e6081e3..337ffd9 100644 --- a/src/commands/login.rs +++ b/src/commands/login.rs @@ -90,9 +90,37 @@ pub fn run_pat_login(token: &str) -> Result { .store(&creds) .map_err(|e| format!("Failed to store credentials: {}", e))?; + print_login_success(&creds.access_token); Ok(LoginOutcome::LoggedIn) } +/// Print "Successfully logged in!" plus the signed-in user and active org, read +/// from the access token's claims (best-effort — falls back gracefully). +fn print_login_success(access_token: &str) { + use crate::auth::identity::extract_identity_from_access_token; + + eprintln!("Successfully logged in!"); + let identity = extract_identity_from_access_token(access_token); + + if let Some(name) = identity.name.as_deref().filter(|s| !s.is_empty()) { + match identity.email.as_deref().filter(|s| !s.is_empty()) { + Some(email) => eprintln!(" Signed in as {} ({})", name, email), + None => eprintln!(" Signed in as {}", name), + } + } else if let Some(email) = identity.email.as_deref().filter(|s| !s.is_empty()) { + eprintln!(" Signed in as {}", email); + } + + if let Some(org) = identity.active_org() { + if let Some(org_name) = org.org_name.as_deref().filter(|s| !s.is_empty()) { + match org.org_slug.as_deref().filter(|s| !s.is_empty()) { + Some(slug) => eprintln!(" Organization: {} ({})", org_name, slug), + None => eprintln!(" Organization: {}", org_name), + } + } + } +} + /// Extract a `--token ` or `--token=` argument, if present. fn parse_token_arg(args: &[String]) -> Option { let mut i = 0; @@ -110,14 +138,47 @@ fn parse_token_arg(args: &[String]) -> Option { } /// The Autter web dashboard, where the user creates a Personal Access Token. -/// Overridable via `AUTTER_WEB_URL` for local development (e.g. a Vite dev server). const DEFAULT_WEB_APP_URL: &str = "https://app.autter.dev"; +/// Resolve the web dashboard URL. Precedence: +/// 1. `AUTTER_WEB_URL` env (explicit override, e.g. a local Vite dev server) +/// 2. derived from the configured `api_base_url` (swap the `api` host label) +/// 3. the default `https://app.autter.dev` fn web_app_url() -> String { - std::env::var("AUTTER_WEB_URL") - .ok() - .filter(|s| !s.is_empty()) - .unwrap_or_else(|| DEFAULT_WEB_APP_URL.to_string()) + if let Ok(url) = std::env::var("AUTTER_WEB_URL") + && !url.trim().is_empty() + { + return url; + } + if let Some(web) = derive_web_url_from_api(crate::config::Config::get().api_base_url()) { + return web; + } + DEFAULT_WEB_APP_URL.to_string() +} + +/// Derive the web app URL from the API base URL by swapping the leading `api` +/// host label for `app`, e.g. `https://test-api.autter.dev` -> +/// `https://test-app.autter.dev`, `https://api.autter.dev` -> `https://app.autter.dev`. +/// Returns `None` when there is no `api` label to swap. +fn derive_web_url_from_api(api_base_url: &str) -> Option { + let (scheme, rest) = api_base_url.split_once("://")?; + let (host, tail) = match rest.split_once('/') { + Some((h, t)) => (h, Some(t)), + None => (rest, None), + }; + let (first, remainder) = host.split_once('.')?; + let new_first = if first == "api" { + "app".to_string() + } else if let Some(prefix) = first.strip_suffix("-api") { + format!("{prefix}-app") + } else { + return None; + }; + let new_host = format!("{new_first}.{remainder}"); + Some(match tail { + Some(t) => format!("{scheme}://{new_host}/{t}"), + None => format!("{scheme}://{new_host}"), + }) } /// Print the step-by-step browser sign-in instructions. @@ -141,14 +202,10 @@ fn print_login_instructions(url: &str) { pub fn handle_login(args: &[String]) { // Step 2: complete sign-in with a token created in the browser. if let Some(token) = parse_token_arg(args) { - match run_pat_login(&token) { - Ok(_) => { - eprintln!("Successfully logged in!"); - } - Err(e) => { - eprintln!("{}", e); - std::process::exit(1); - } + // run_pat_login prints the success message + identity on success. + if let Err(e) = run_pat_login(&token) { + eprintln!("{}", e); + std::process::exit(1); } return; } diff --git a/src/daemon/telemetry_worker.rs b/src/daemon/telemetry_worker.rs index 68ab04c..4212808 100644 --- a/src/daemon/telemetry_worker.rs +++ b/src/daemon/telemetry_worker.rs @@ -567,7 +567,7 @@ pub fn flush_notes() { return; } }; - let context = ApiContext::new(Some(backend_url)); + let context = ApiContext::new(Some(backend_url.clone())); let client = ApiClient::new(context); if !client.is_logged_in() && !client.has_api_key() { @@ -600,51 +600,87 @@ pub fn flush_notes() { return; } - let commit_shas: Vec = pending.iter().map(|p| p.commit_sha.clone()).collect(); - - let entries: Vec = pending - .iter() - .map(|p| NoteEntry { - commit_sha: p.commit_sha.clone(), - content: p.content.clone(), - }) - .collect(); - - let request = NotesUploadRequest { entries }; + // Route each note to the org that owns its repo. Notes whose repo isn't known + // or isn't tracked by any org go to the home org (org = None → default token). + let mut groups: std::collections::HashMap, Vec<(String, String)>> = + std::collections::HashMap::new(); + for note in &pending { + let org = note + .repo_url + .as_deref() + .and_then(crate::api::client::resolve_org_for_repo_cached); + groups + .entry(org) + .or_default() + .push((note.commit_sha.clone(), note.content.clone())); + } + + for (org_opt, batch) in groups { + let commit_shas: Vec = batch.iter().map(|(sha, _)| sha.clone()).collect(); + let entries: Vec = batch + .iter() + .map(|(sha, content)| NoteEntry { + commit_sha: sha.clone(), + content: content.clone(), + }) + .collect(); + + // Pick the client for this org. A resolved org mints an org-scoped token; + // if minting fails we defer (mark failed → retry) rather than misroute. + let group_client = match &org_opt { + Some(org) => match crate::api::client::access_token_for_org(org) { + Some(token) => { + ApiClient::new(ApiContext::with_auth(Some(backend_url.clone()), token)) + } + None => { + if let Ok(db) = crate::notes::db::NotesDatabase::global() + && let Ok(mut lock) = db.lock() + { + let _ = lock + .mark_failed(&commit_shas, "could not mint org-scoped token"); + } + continue; + } + }, + None => ApiClient::new(ApiContext::new(Some(backend_url.clone()))), + }; - match client.upload_notes(request) { - Ok(resp) => { - tracing::debug!( - success = resp.success_count, - failure = resp.failure_count, - "notes: uploaded batch" - ); - if let Ok(db) = crate::notes::db::NotesDatabase::global() - && let Ok(mut lock) = db.lock() - { - if resp.failure_count == 0 { - let _ = lock.mark_synced(&commit_shas); - } else { - // Server reported partial failures but doesn't identify which - // entries failed. Mark the entire batch as failed so all entries - // are retried on the next flush cycle. - let _ = lock.mark_failed( - &commit_shas, - &format!( - "partial failure: {}/{} entries failed", - resp.failure_count, - commit_shas.len() - ), - ); + let request = NotesUploadRequest { entries }; + match group_client.upload_notes(request) { + Ok(resp) => { + tracing::debug!( + success = resp.success_count, + failure = resp.failure_count, + org = org_opt.as_deref().unwrap_or("home"), + "notes: uploaded batch" + ); + if let Ok(db) = crate::notes::db::NotesDatabase::global() + && let Ok(mut lock) = db.lock() + { + if resp.failure_count == 0 { + let _ = lock.mark_synced(&commit_shas); + } else { + // Server reported partial failures but doesn't identify which + // entries failed. Mark the whole group failed so all entries + // retry on the next flush cycle. + let _ = lock.mark_failed( + &commit_shas, + &format!( + "partial failure: {}/{} entries failed", + resp.failure_count, + commit_shas.len() + ), + ); + } } } - } - Err(e) => { - tracing::warn!(%e, "notes: upload error"); - if let Ok(db) = crate::notes::db::NotesDatabase::global() - && let Ok(mut lock) = db.lock() - { - let _ = lock.mark_failed(&commit_shas, &e.to_string()); + Err(e) => { + tracing::warn!(%e, "notes: upload error"); + if let Ok(db) = crate::notes::db::NotesDatabase::global() + && let Ok(mut lock) = db.lock() + { + let _ = lock.mark_failed(&commit_shas, &e.to_string()); + } } } } diff --git a/src/git/notes_api.rs b/src/git/notes_api.rs index 5c5d6dd..c32d122 100644 --- a/src/git/notes_api.rs +++ b/src/git/notes_api.rs @@ -20,7 +20,10 @@ pub use crate::git::refs::CommitAuthorship; pub fn write_note(repo: &Repository, commit_sha: &str, content: &str) -> Result<(), AutterError> { match Config::get().notes_backend_kind() { - NotesBackendKind::Http => http_write_note(commit_sha, content), + NotesBackendKind::Http => { + let repo_url = crate::repo_url::resolve_repo_url_from_repo(repo); + http_write_note(commit_sha, content, repo_url.as_deref()) + } NotesBackendKind::GitNotes => crate::git::refs::notes_add(repo, commit_sha, content), } } @@ -33,7 +36,10 @@ pub fn write_notes_batch( return Ok(()); } match Config::get().notes_backend_kind() { - NotesBackendKind::Http => http_write_batch(entries), + NotesBackendKind::Http => { + let repo_url = crate::repo_url::resolve_repo_url_from_repo(repo); + http_write_batch(entries, repo_url.as_deref()) + } NotesBackendKind::GitNotes => crate::git::refs::notes_add_batch(repo, entries), } } @@ -506,23 +512,30 @@ pub fn warm_cache_for_remote(repo: &Repository, remote: &str) -> Result<(), Autt // --- HTTP backend helpers (private) --- -fn http_write_note(commit_sha: &str, content: &str) -> Result<(), AutterError> { +fn http_write_note( + commit_sha: &str, + content: &str, + repo_url: Option<&str>, +) -> Result<(), AutterError> { let db = crate::notes::db::NotesDatabase::global()?; let mut db_lock = db .lock() .map_err(|e| AutterError::Generic(format!("notes-db lock: {}", e)))?; - db_lock.upsert_note(commit_sha, content)?; + db_lock.upsert_note_with_repo(commit_sha, content, repo_url)?; drop(db_lock); crate::daemon::telemetry_handle::submit_notes(); Ok(()) } -fn http_write_batch(entries: &[(String, String)]) -> Result<(), AutterError> { +fn http_write_batch( + entries: &[(String, String)], + repo_url: Option<&str>, +) -> Result<(), AutterError> { let db = crate::notes::db::NotesDatabase::global()?; let mut db_lock = db .lock() .map_err(|e| AutterError::Generic(format!("notes-db lock: {}", e)))?; - db_lock.upsert_notes_batch(entries)?; + db_lock.upsert_notes_batch_with_repo(entries, repo_url)?; drop(db_lock); crate::daemon::telemetry_handle::submit_notes(); Ok(()) @@ -613,7 +626,7 @@ mod tests { } // Write directly via http helper (no repo needed). - http_write_note("abc123def456abc123def456abc123def456abc1", "test content").expect("write"); + http_write_note("abc123def456abc123def456abc123def456abc1", "test content", None).expect("write"); // Read back from cache. let content = http_read_note("abc123def456abc123def456abc123def456abc1"); @@ -653,8 +666,8 @@ mod tests { let sha2 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb".to_string(); let sha3 = "cccccccccccccccccccccccccccccccccccccccc".to_string(); - http_write_note(&sha1, "content-a").expect("write sha1"); - http_write_note(&sha2, "content-b").expect("write sha2"); + http_write_note(&sha1, "content-a", None).expect("write sha1"); + http_write_note(&sha2, "content-b", None).expect("write sha2"); // sha3 is not written — should not appear in result. let result = http_read_notes(&[sha1.clone(), sha2.clone(), sha3.clone()]); @@ -739,7 +752,7 @@ mod tests { let sha = repo.commit_all("msg").expect("commit"); // Write a note for this SHA using the Http helper. - http_write_note(&sha, "some-note-content").expect("http write"); + http_write_note(&sha, "some-note-content", None).expect("http write"); // Confirm it is in notes-db with synced=0. let db = crate::notes::db::NotesDatabase::global().expect("global db"); @@ -797,7 +810,7 @@ mod tests { let sha = repo.commit_all("test commit").expect("commit"); // Put a note in the cache for this commit. - http_write_note(&sha, "display-note-content").expect("write note"); + http_write_note(&sha, "display-note-content", None).expect("write note"); // Materialize the cache into refs/notes/ai-display. let count = materialize_notes_for_display(repo.autter_repo(), 50).expect("materialize"); diff --git a/src/notes/db.rs b/src/notes/db.rs index cd27646..0a4c943 100644 --- a/src/notes/db.rs +++ b/src/notes/db.rs @@ -17,7 +17,7 @@ use std::path::PathBuf; use std::sync::{Mutex, OnceLock}; /// Current schema version (must equal MIGRATIONS.len()). -const SCHEMA_VERSION: usize = 1; +const SCHEMA_VERSION: usize = 2; /// Database migrations — each entry upgrades the schema by one version. const MIGRATIONS: &[&str] = &[ @@ -39,6 +39,12 @@ const MIGRATIONS: &[&str] = &[ CREATE INDEX IF NOT EXISTS idx_notes_pending ON notes(synced, next_retry_at) WHERE synced = 0; "#, + // Migration 1 → 2: record the canonical repo remote URL per note so the + // daemon flush can route each note to the org that owns that repository. + // NULL means "no known repo" → upload to the user's home org. + r#" + ALTER TABLE notes ADD COLUMN repo_url TEXT; + "#, ]; /// Global singleton for the notes database. @@ -50,6 +56,9 @@ pub struct PendingNote { pub commit_sha: String, pub content: String, pub attempts: i64, + /// Canonical remote URL of the repo this note came from (None = unknown → + /// home org). Used to route the upload to the org that owns the repository. + pub repo_url: Option, } /// SQLite wrapper for notes storage and queue. @@ -234,25 +243,45 @@ impl NotesDatabase { /// - If the content changed, `synced` and `attempts` are reset to 0 so the /// updated note is queued for re-upload. pub fn upsert_note(&mut self, commit_sha: &str, content: &str) -> Result<(), AutterError> { + self.upsert_note_with_repo(commit_sha, content, None) + } + + /// Upsert a note, associating it with the repo it came from (for org routing). + pub fn upsert_note_with_repo( + &mut self, + commit_sha: &str, + content: &str, + repo_url: Option<&str>, + ) -> Result<(), AutterError> { let now = unix_now(); self.conn.execute( r#" - INSERT INTO notes (commit_sha, content, synced, created_at, updated_at, next_retry_at) - VALUES (?1, ?2, 0, ?3, ?3, ?3) + INSERT INTO notes (commit_sha, content, repo_url, synced, created_at, updated_at, next_retry_at) + VALUES (?1, ?2, ?3, 0, ?4, ?4, ?4) ON CONFLICT(commit_sha) DO UPDATE SET content = excluded.content, + repo_url = excluded.repo_url, synced = CASE WHEN notes.content = excluded.content THEN notes.synced ELSE 0 END, attempts = CASE WHEN notes.content = excluded.content THEN notes.attempts ELSE 0 END, next_retry_at = CASE WHEN notes.content = excluded.content THEN notes.next_retry_at ELSE excluded.next_retry_at END, updated_at = excluded.updated_at "#, - params![commit_sha, content, now], + params![commit_sha, content, repo_url, now], )?; Ok(()) } /// Upsert a batch of notes inside a single transaction. pub fn upsert_notes_batch(&mut self, entries: &[(String, String)]) -> Result<(), AutterError> { + self.upsert_notes_batch_with_repo(entries, None) + } + + /// Upsert a batch of notes from a single repo (for org routing). + pub fn upsert_notes_batch_with_repo( + &mut self, + entries: &[(String, String)], + repo_url: Option<&str>, + ) -> Result<(), AutterError> { if entries.is_empty() { return Ok(()); } @@ -261,10 +290,11 @@ impl NotesDatabase { { let mut stmt = tx.prepare_cached( r#" - INSERT INTO notes (commit_sha, content, synced, created_at, updated_at, next_retry_at) - VALUES (?1, ?2, 0, ?3, ?3, ?3) + INSERT INTO notes (commit_sha, content, repo_url, synced, created_at, updated_at, next_retry_at) + VALUES (?1, ?2, ?3, 0, ?4, ?4, ?4) ON CONFLICT(commit_sha) DO UPDATE SET content = excluded.content, + repo_url = excluded.repo_url, synced = CASE WHEN notes.content = excluded.content THEN notes.synced ELSE 0 END, attempts = CASE WHEN notes.content = excluded.content THEN notes.attempts ELSE 0 END, next_retry_at = CASE WHEN notes.content = excluded.content THEN notes.next_retry_at ELSE excluded.next_retry_at END, @@ -272,7 +302,7 @@ impl NotesDatabase { "#, )?; for (sha, content) in entries { - stmt.execute(params![sha, content, now])?; + stmt.execute(params![sha, content, repo_url, now])?; } } tx.commit()?; @@ -374,7 +404,7 @@ impl NotesDatabase { // Read back the locked rows. let select_sql = format!( - "SELECT commit_sha, content, attempts FROM notes WHERE commit_sha IN ({})", + "SELECT commit_sha, content, attempts, repo_url FROM notes WHERE commit_sha IN ({})", shas.iter() .enumerate() .map(|(i, _)| format!("?{}", i + 1)) @@ -393,6 +423,7 @@ impl NotesDatabase { commit_sha: row.get(0)?, content: row.get(1)?, attempts: row.get(2)?, + repo_url: row.get(3)?, }) })?; From ccb1a93be12734a9d312a1277df1b16aa56eea59 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 16:43:19 +0530 Subject: [PATCH 07/10] Refactor project structure and remove server components - Deleted the `autter-server` package and its associated files, as the backend functionality is no longer required. - Updated `Cargo.toml` to reflect the removal of the server dependencies and adjusted workspace settings accordingly. - Enhanced the README to clarify the new architecture, emphasizing direct database interactions from the CLI. - Removed outdated documentation related to the server's HTTP contract and database schema. - Updated `Cargo.lock` to remove references to the deleted server dependencies. --- .../workflows/publish-vscode-extension.yml | 62 + Cargo.lock | 1260 ++++------------- Cargo.toml | 15 +- README.md | 46 + assets/docs/autter.png | Bin 961660 -> 10641 bytes docs/notes-backend-spec.md | 388 ----- server/Cargo.toml | 31 - server/README.md | 92 -- server/docker-compose.yml | 19 - server/migrations/0001_init.sql | 33 - server/migrations/0002_cli_audit_log.sql | 23 - server/src/audit.rs | 44 - server/src/auth.rs | 222 --- server/src/error.rs | 44 - server/src/main.rs | 99 -- server/src/models.rs | 89 -- server/src/routes/cas.rs | 167 --- server/src/routes/mod.rs | 24 - server/src/routes/notes.rs | 116 -- server/src/state.rs | 58 - src/api/cas.rs | 102 +- src/api/client.rs | 10 + src/api/mod.rs | 1 + src/api/notes.rs | 77 +- src/api/org_db.rs | 474 +++++++ src/commands/autter_handlers.rs | 52 +- src/commands/notes_migrate.rs | 6 +- src/commands/onboard.rs | 6 +- src/config.rs | 21 +- src/daemon/telemetry_worker.rs | 19 +- src/notes/mod.rs | 8 +- src/notes/reference_server.rs | 521 ------- 32 files changed, 967 insertions(+), 3162 deletions(-) create mode 100644 .github/workflows/publish-vscode-extension.yml delete mode 100644 docs/notes-backend-spec.md delete mode 100644 server/Cargo.toml delete mode 100644 server/README.md delete mode 100644 server/docker-compose.yml delete mode 100644 server/migrations/0001_init.sql delete mode 100644 server/migrations/0002_cli_audit_log.sql delete mode 100644 server/src/audit.rs delete mode 100644 server/src/auth.rs delete mode 100644 server/src/error.rs delete mode 100644 server/src/main.rs delete mode 100644 server/src/models.rs delete mode 100644 server/src/routes/cas.rs delete mode 100644 server/src/routes/mod.rs delete mode 100644 server/src/routes/notes.rs delete mode 100644 server/src/state.rs create mode 100644 src/api/org_db.rs delete mode 100644 src/notes/reference_server.rs diff --git a/.github/workflows/publish-vscode-extension.yml b/.github/workflows/publish-vscode-extension.yml new file mode 100644 index 0000000..30d1ef9 --- /dev/null +++ b/.github/workflows/publish-vscode-extension.yml @@ -0,0 +1,62 @@ +name: Publish VS Code Extension + +# Publishes the autter VS Code extension (agent-support/vscode) to the +# Open VSX Registry and, if a token is configured, the VS Code Marketplace. +# +# Triggers: +# - pushing a tag matching `vscode-v*` (e.g. vscode-v0.1.23) +# - manual run via the Actions tab (workflow_dispatch) +# +# Required repository secrets: +# OVSX_PAT - Open VSX access token (https://open-vsx.org user settings) +# VSCE_PAT - VS Code Marketplace PAT (optional; Marketplace step is skipped if unset) + +on: + push: + tags: + - "vscode-v*" + workflow_dispatch: + +permissions: + contents: read + +jobs: + publish: + runs-on: ubuntu-latest + defaults: + run: + working-directory: agent-support/vscode + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: agent-support/vscode/package-lock.json + + - name: Install dependencies + run: npm ci + + - name: Package extension (.vsix) + run: npm run package + + - name: Publish to Open VSX + env: + OVSX_PAT: ${{ secrets.OVSX_PAT }} + run: npx ovsx publish *.vsix -p "$OVSX_PAT" + + - name: Publish to VS Code Marketplace + if: ${{ secrets.VSCE_PAT != '' }} + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + run: npx vsce publish --packagePath *.vsix -p "$VSCE_PAT" + + - name: Upload .vsix artifact + uses: actions/upload-artifact@v4 + with: + name: autter-vscode-vsix + path: agent-support/vscode/*.vsix + if-no-files-found: warn diff --git a/Cargo.lock b/Cargo.lock index f43e2f1..ac60ca2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -246,15 +246,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - [[package]] name = "atomic" version = "0.6.1" @@ -281,6 +272,7 @@ name = "autter" version = "1.5.9" dependencies = [ "autter", + "base64", "chrono", "clap", "criterion", @@ -306,6 +298,8 @@ dependencies = [ "once_cell", "openssl", "paste", + "postgres", + "postgres-native-tls", "rand 0.10.1", "ratatui", "regex", @@ -315,7 +309,7 @@ dependencies = [ "serde_json", "serde_json_canonicalizer", "serial_test", - "sha2", + "sha2 0.10.9", "smol", "tempfile", "tokio", @@ -330,90 +324,12 @@ dependencies = [ "zip", ] -[[package]] -name = "autter-server" -version = "0.1.0" -dependencies = [ - "anyhow", - "axum", - "base64", - "jsonwebtoken", - "reqwest", - "serde", - "serde_json", - "sqlx", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - [[package]] name = "bit-set" version = "0.5.3" @@ -440,9 +356,6 @@ name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" -dependencies = [ - "serde_core", -] [[package]] name = "block-buffer" @@ -453,6 +366,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + [[package]] name = "blocking" version = "1.6.2" @@ -628,6 +550,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "cmov" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" + [[package]] name = "colorchoice" version = "1.0.4" @@ -680,9 +608,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.6" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" [[package]] name = "convert_case" @@ -737,21 +665,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" - [[package]] name = "crc32fast" version = "1.5.0" @@ -816,15 +729,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -874,6 +778,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "csscolorparser" version = "0.6.2" @@ -881,7 +794,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" dependencies = [ "lab", - "phf", + "phf 0.11.3", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", ] [[package]] @@ -946,17 +868,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.5.8" @@ -994,10 +905,20 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", + "crypto-common 0.1.7", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", "const-oid", - "crypto-common", - "subtle", + "crypto-common 0.2.2", + "ctutils", ] [[package]] @@ -1047,20 +968,11 @@ dependencies = [ "litrs", ] -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - [[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] [[package]] name = "encode_unicode" @@ -1068,15 +980,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1093,17 +996,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - [[package]] name = "euclid" version = "0.22.14" @@ -1134,6 +1026,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + [[package]] name = "fallible-iterator" version = "0.3.0" @@ -1223,17 +1121,6 @@ dependencies = [ "zlib-rs", ] -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1318,17 +1205,6 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - [[package]] name = "futures-io" version = "0.3.32" @@ -1411,10 +1287,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", - "js-sys", "libc", - "wasi", - "wasm-bindgen", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] @@ -1845,7 +1719,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", ] [[package]] @@ -1905,31 +1778,13 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - [[package]] name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.12" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "windows-sys 0.61.2", + "digest 0.11.3", ] [[package]] @@ -1977,6 +1832,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.9.0" @@ -1996,38 +1860,6 @@ dependencies = [ "pin-project-lite", "smallvec", "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", ] [[package]] @@ -2036,23 +1868,12 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64", "bytes", - "futures-channel", - "futures-util", "http", "http-body", "hyper", - "ipnet", - "libc", - "percent-encoding", "pin-project-lite", - "socket2", - "system-configuration", "tokio", - "tower-service", - "tracing", - "windows-registry", ] [[package]] @@ -2291,12 +2112,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "ipnet" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" - [[package]] name = "is-terminal" version = "0.4.17" @@ -2381,11 +2196,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31" dependencies = [ - "once_cell", + "cfg-if", + "futures-util", "wasm-bindgen", ] @@ -2395,21 +2211,6 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de0ffda8def4eb16ed430641db8056c2509b20e38f2dd327bdb4c83239f88c4" -[[package]] -name = "jsonwebtoken" -version = "9.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" -dependencies = [ - "base64", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "kasuari" version = "0.4.12" @@ -2447,9 +2248,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "leb128fmt" @@ -2472,21 +2270,16 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libm" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" - [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" dependencies = [ "bitflags 2.10.0", "libc", - "redox_syscall", + "plain", + "redox_syscall 0.8.1", ] [[package]] @@ -2570,20 +2363,14 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "md-5" -version = "0.10.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +checksum = "69b6441f590336821bb897fb28fc622898ccceb1d6cea3fde5ea86b090c4de98" dependencies = [ "cfg-if", - "digest", + "digest 0.11.3", ] [[package]] @@ -2616,12 +2403,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -2646,7 +2427,7 @@ checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.61.2", ] @@ -2740,42 +2521,16 @@ dependencies = [ ] [[package]] -name = "num-bigint" -version = "0.4.6" +name = "num-conv" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] -name = "num-bigint-dig" -version = "0.8.6" +name = "num-derive" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-conv" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", @@ -2783,42 +2538,39 @@ dependencies = [ ] [[package]] -name = "num-integer" -version = "0.1.46" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "num-traits", + "autocfg", ] [[package]] -name = "num-iter" -version = "0.1.45" +name = "num_threads" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "libc", ] [[package]] -name = "num-traits" -version = "0.2.19" +name = "objc2-core-foundation" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "autocfg", - "libm", + "bitflags 2.10.0", ] [[package]] -name = "num_threads" -version = "0.1.7" +name = "objc2-system-configuration" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" dependencies = [ - "libc", + "objc2-core-foundation", ] [[package]] @@ -2931,7 +2683,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", "windows-link", ] @@ -2942,25 +2694,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64", - "serde_core", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -3007,7 +2740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", - "sha2", + "sha2 0.10.9", ] [[package]] @@ -3017,7 +2750,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", - "phf_shared", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_shared 0.13.1", + "serde", ] [[package]] @@ -3027,7 +2770,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", ] [[package]] @@ -3036,7 +2779,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared", + "phf_shared 0.11.3", "rand 0.8.5", ] @@ -3047,7 +2790,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", "proc-macro2", "quote", "syn 2.0.117", @@ -3062,6 +2805,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -3079,33 +2831,18 @@ dependencies = [ "futures-io", ] -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "plotters" version = "0.3.7" @@ -3163,6 +2900,63 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "postgres" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ad20e0aa0b24f5a394eab4f78c781d248982b22b25cecc7e3aa46a681605bd" +dependencies = [ + "bytes", + "fallible-iterator 0.2.0", + "futures-util", + "log", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "postgres-native-tls" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fef4de47bb81477e0c3deaf153a1b10ae176484713ff1640969f4cb96b653ebc" +dependencies = [ + "native-tls", + "tokio", + "tokio-native-tls", + "tokio-postgres", +] + +[[package]] +name = "postgres-protocol" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08808e3c483c46e999108051c78334f473d5adb59d78bb80a1268c7e6aa6c514" +dependencies = [ + "base64", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "hmac", + "md-5", + "memchr", + "rand 0.10.1", + "sha2 0.11.0", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "851ca9db4932932d69f3ea811b1abe63087a0f740a47692619dd40d4899b68be" +dependencies = [ + "bytes", + "fallible-iterator 0.2.0", + "postgres-protocol", + "serde_core", + "serde_json", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -3251,8 +3045,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "libc", - "rand_chacha 0.3.1", "rand_core 0.6.4", ] @@ -3262,7 +3054,7 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] @@ -3277,16 +3069,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_chacha" version = "0.9.0" @@ -3302,9 +3084,6 @@ name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] [[package]] name = "rand_core" @@ -3441,6 +3220,15 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "redox_syscall" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b44b894f2a6e36457d665d1e08c3866add6ed5e70050c1b4ba8a8ddedb02ce7" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "redox_users" version = "0.4.6" @@ -3487,80 +3275,6 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rsa" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rstest" version = "0.26.1" @@ -3597,7 +3311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" dependencies = [ "bitflags 2.10.0", - "fallible-iterator", + "fallible-iterator 0.3.0", "fallible-streaming-iterator", "hashlink", "libsqlite3-sys", @@ -3626,39 +3340,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.22" @@ -3812,17 +3493,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "serde_path_to_error" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" -dependencies = [ - "itoa", - "serde", - "serde_core", -] - [[package]] name = "serde_spanned" version = "1.0.4" @@ -3878,7 +3548,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", ] [[package]] @@ -3887,7 +3557,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" dependencies = [ - "digest", + "digest 0.10.7", "sha1", ] @@ -3899,7 +3569,18 @@ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -3947,16 +3628,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - [[package]] name = "simd-adler32" version = "0.3.8" @@ -3969,18 +3640,6 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" -[[package]] -name = "simple_asn1" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.18", - "time", -] - [[package]] name = "siphasher" version = "1.0.2" @@ -3998,9 +3657,6 @@ name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -dependencies = [ - "serde", -] [[package]] name = "smol" @@ -4030,240 +3686,16 @@ dependencies = [ ] [[package]] -name = "spin" -version = "0.9.8" +name = "stable_deref_trait" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] -name = "spki" -version = "0.7.3" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" -dependencies = [ - "atoi", - "byteorder", - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.14.5", - "hashlink", - "hex", - "indexmap", - "log", - "memchr", - "native-tls", - "once_cell", - "paste", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 2.0.117", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn 2.0.117", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" -dependencies = [ - "atoi", - "base64", - "bitflags 2.10.0", - "byteorder", - "bytes", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" -dependencies = [ - "atoi", - "base64", - "bitflags 2.10.0", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.5", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 1.0.69", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core", - "tracing", - "url", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stringprep" @@ -4303,12 +3735,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "1.0.109" @@ -4331,15 +3757,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - [[package]] name = "synstructure" version = "0.13.2" @@ -4351,27 +3768,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "system-configuration" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tempfile" version = "3.27.0" @@ -4393,7 +3789,7 @@ checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" dependencies = [ "fnv", "nom", - "phf", + "phf 0.11.3", "phf_codegen", ] @@ -4430,8 +3826,8 @@ dependencies = [ "ordered-float", "pest", "pest_derive", - "phf", - "sha2", + "phf 0.11.3", + "sha2 0.10.9", "signal-hook", "siphasher", "terminfo", @@ -4504,14 +3900,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", "powerfmt", "serde_core", "time-core", - "time-macros", ] [[package]] @@ -4520,16 +3914,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tinystr" version = "0.8.2" @@ -4576,7 +3960,6 @@ dependencies = [ "mio", "parking_lot", "pin-project-lite", - "signal-hook-registry", "socket2", "tokio-macros", "windows-sys 0.61.2", @@ -4604,24 +3987,29 @@ dependencies = [ ] [[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" +name = "tokio-postgres" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +checksum = "a528f7d280f6d5b9cd149635c8705b0dd049754bc67d81d31fa25169a93809d3" dependencies = [ - "futures-core", + "async-trait", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "futures-channel", + "futures-util", + "log", + "parking_lot", + "percent-encoding", + "phf 0.13.1", "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.10.1", + "socket2", "tokio", + "tokio-util", + "whoami", ] [[package]] @@ -4688,59 +4076,12 @@ version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" -dependencies = [ - "bitflags 2.10.0", - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", - "url", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4796,12 +4137,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "typed-path" version = "0.12.3" @@ -4810,9 +4145,9 @@ checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ucd-trie" @@ -4882,24 +4217,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "unit-prefix" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "ureq" version = "2.12.1" @@ -4987,19 +4310,19 @@ dependencies = [ ] [[package]] -name = "want" -version = "0.3.1" +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" +version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] [[package]] name = "wasip2" @@ -5021,15 +4344,18 @@ dependencies = [ [[package]] name = "wasite" -version = "0.1.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" +dependencies = [ + "wasi 0.14.7+wasi-0.2.4", +] [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a" dependencies = [ "cfg-if", "once_cell", @@ -5038,24 +4364,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5063,9 +4376,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd" dependencies = [ "bumpalo", "proc-macro2", @@ -5076,9 +4389,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f" dependencies = [ "unicode-ident", ] @@ -5119,9 +4432,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d" dependencies = [ "js-sys", "wasm-bindgen", @@ -5155,7 +4468,7 @@ checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" dependencies = [ "getrandom 0.3.4", "mac_address", - "sha2", + "sha2 0.10.9", "thiserror 1.0.69", "uuid", ] @@ -5211,12 +4524,15 @@ dependencies = [ [[package]] name = "whoami" -version = "1.6.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +checksum = "998767ef88740d1f5b0682a9c53c24431453923962269c2db68ee43788c5a40d" dependencies = [ + "libc", "libredox", + "objc2-system-configuration", "wasite", + "web-sys", ] [[package]] @@ -5297,17 +4613,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link", - "windows-result", - "windows-strings", -] - [[package]] name = "windows-result" version = "0.4.1" @@ -5335,15 +4640,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.59.0" diff --git a/Cargo.toml b/Cargo.toml index f023669..03cb115 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,8 @@ [workspace] -# The CLI (this root package) and the open-source platform backend live in one -# workspace so the data contract is visible in the same repo. `default-members` -# keeps `cargo build` / `task dev` fast by building only the CLI by default; -# build the backend explicitly with `cargo build -p autter-server`. -members = ["server"] +# The CLI writes authorship notes and prompt CAS objects straight to each org's +# own Postgres (connection URL comes from the access-token JWT's `org_db_url` +# claim), so there is no separate backend crate to build or deploy. +members = [] default-members = ["."] resolver = "3" @@ -34,6 +33,12 @@ jsonc-parser = { version = "0.32", features = ["cst"] } dirs = "5.0" ureq = { version = "2.12", default-features = false, features = ["native-tls"] } native-tls = "0.2" +# Direct writes to each org's own Postgres (authorship notes + prompt CAS). The +# org's connection URL is read from the access-token JWT's `org_db_url` claim, so +# the CLI talks to the org database itself — there is no intermediate backend. +postgres = { version = "0.19", features = ["with-serde_json-1"] } +postgres-native-tls = "0.5" +base64 = "0.22" url = "2.5" glob = "0.3" ignore = "0.4" diff --git a/README.md b/README.md index 1e9b98f..7a13ab1 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,52 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://autter.dev/i **No per-repo setup or git hooks required.** Commit with the Agent, git, or your favorite git client. Attribution will be linked to commits automatically. +During install you'll be asked whether to run **local-only** or **connect to the Autter platform**. You can change this any time with `autter onboard`. + +## Connect to the Autter platform (optional) + +Local-only mode works fully offline with no account. Connecting links this machine to your Autter account so attribution and prompt history sync to the platform's dashboards (per-user / per-team usage, prompt search, and audit logs). + +Sign in is a two-step, browser-based flow using a **Personal Access Token (PAT)**: + +```bash +# 1. Opens https://app.autter.dev in your browser +autter login + +# 2. In the dashboard: Settings → Access Tokens → Create token → copy it. +# Then complete sign-in with the token you copied: +autter login --token autter_pat_xxxxxxxx + +# Confirm who you're signed in as: +autter whoami +``` + +Once connected: + +- **Authorship notes** (which lines are AI vs human, per commit) and **prompt transcripts** are written on commit straight to **your organization's own database** — never shared across orgs. The CLI connects to that database directly using the connection URL carried in your signed access token; there is no intermediate Autter server in the data path. +- A token is scoped to your account; if you belong to multiple organizations, each push is automatically routed to the org that owns the repository (resolved from its git remote), falling back to your default org. +- Manage and revoke tokens, and view CLI activity (token created, sign-in, data pushed), under **Settings → Access Tokens** in the dashboard. + +To go back to local-only at any time: + +```bash +autter logout # clear stored credentials +autter onboard --force # re-choose local or connected +``` + +### Configuration + +`autter` reads `~/.autter/config.json`. Defaults point at the hosted platform; override per machine (e.g. for self-hosting or CI): + +| Field | Default | Purpose | +|-------|---------|---------| +| `api_base_url` | `https://api.autter.dev` | Auth + token exchange | +| `notes_backend.kind` | `git_notes` (local) / `http` (connected) | Where authorship notes go | +| `notes_backend.backend_url` | `https://cli.autter.dev` | Gate that enables cloud sync; the actual notes/prompt writes go straight to your org database (URL from your token), not to this host | +| `prompt_storage` | `local` / `default` (connected) | `default` uploads prompts, `local` keeps them on-device | + +Env overrides: `AUTTER_API_BASE_URL`, `AUTTER_WEB_URL`, `AUTTER_NOTES_BACKEND_KIND`, `AUTTER_NOTES_BACKEND_URL`, `AUTTER_API_KEY` (for CI). + **The [Autter standard](https://github.com/autter-dev/autter-cli/blob/main/specs/autter_standard_v3.0.0.md) is supported by:** diff --git a/assets/docs/autter.png b/assets/docs/autter.png index 06f67c14a5a31eb0ea409f16354ccdcb87788ae1..56a44fa10e1a184e57a3d34a82b35e42bb780a6a 100644 GIT binary patch literal 10641 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 W4F1jITl6FD02F0aWvZl1gZ~Ey2Eii$ literal 961660 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%0DN)(sZ2Wh8Y%;O7GeXOgYmSxm5?ZFi_l_zal6emq zr=IyTwqn=0_j@>q(hZtpPQ+MYMq8_8pWgpk=oHRGxy_DYMCg_RSMVMcKysOX4PT9{ zXmtnxbM z36L~J^YMU7*GCh-K43=RfFm!C`E&jHsSP2EP1wp}HF%8M135CZAa!&4pM5P3sHKl6sK0BSw*f_kk@C_PH%?Z|vYFmlItBer5d3sCbE1jLDf1bbI z3(7C$Un-}x;zrUAls{18rsd&Ou;%1R%l4>!b6>#xm>67TvXst7@X(sZbNbCrkt%Be z8=V@#*7TnJe5h0bV@VH}H3PJ0@+1EcPu2<)qNE`PRc>tv`tBt(*6GeRW<*cV@x^0I zg|JX_RyotY_I=$=ZQ&V~Qq>F-{B+R5YW-pzfwxE7g2Wnx;UmX zbsTF$Y>m73D?125fvQxCla6dc!YE4zO}C@wXDxD#{iAY1M?DOKow2gRlO?mBX2U;; zvb;RpZ$~!{6Cj8iA%>S`)w6eF4+CjesR!qm3wHZNe0;7J@4Wc7K`qR~;$mw#FoV*d z{_-@i|JmZJRTDI3vu{i2NCo+qUo)ROI>rV-&9`((+F`HDN`)HB3ZBri;3a8u;JXq< zuW9%u{9xe<$7&of=N{SiS~h6N06%JxxBIL6x?__^TnV zf1UETtVeiqxB2pBVzHj+3^+FZm-{SpRZ0!{g{Le67JaAgg>oHszq6S-;Rcs?(9z_D)azb{uTi9B1LDc8HkakagU`k zewRwnX3G{Stn1Lz9HXTmuTVPhjAnmT6DDXeJm`<|t*813g@|y`c}JGa`r8^4nPHwp zZQW_zzLa%Z3CDch7>_v>ka*J@&wd+SPT*=IP53W{H^YV?VG1mMO{BBJGo8T(;?LVzZD&uJfg%xI+>C2%ykau4MZ{m`*= zz7i7~-^r*oq_MD<951*AM2$B#&~e@X2QAZ$7sdu65t4Y9NQr{3m}sGb>BDOssKbIP z)42Kq63zCjF-+`08L8kb;-UG)r>X*r>G89du-J>v#>%|Mgimir>++lC$LrGAMPl3||6fsKlq*$}($?0LV9&N4^r2H)sspMN zg{XJL(AkSvn~M5QJTYioV>|F(PHkt;CJut_Yxpi5_n`;`(4Ub)yWUrXPO4bV5@!|I zB#OCB$f4e+VPq@r!dV8OJw{)3TeH>`9yO{I!E19A?+;2(>KICy4V5>qYq?EZy)<@E z6dEoJS}2>@WIN#J%BLMpSBcIY@ZHtM_B(AVxDDLj`;iX5`C_WF?(x4aj}>sce7S4) zaC!S5z&;)>lE1ZD1h006k4EddpLjp*ds4NyK0}W{Os0e%FMa5xY;{OJMlMIKOMm16 zWiuOLA}%2&-#jIkM63!py=ZU8zAyG1d2CCHyFP8T;fryfe5tmUCIjT}Bk(+D4%dP2^ zI@imlFlyo9_vwWC!N_8k6ue7=-yXkVtmDHb>j<-U~$MlaU6-?rgkRjCVl9d zL<wrGTUKohDIV^-WpbkfjWZ9=jk>Hk zp;QVQjv0!B0)EY?_QN0X4quP;t)OK-_1DoY=-0Iv5hcH|<=;@5(A|0P>kGS7;z(QRpub01bV;&yRGW8GNWpK_F`I zdd`_t-Kw4W)HB4_?6NSMuQsvkfh9Z^cU6ifY8C6)>~M>~j*rdOhg&T{_A5|vZ+K1P z!jc4WkRAo+w;^E)>`>JOp!5xT#$#OeWeo_~z|K3IrApW{dVTi9dT&_U-AalJ+Wuw8 zw5hdmJbZ^lWMV#+1n8#V2o4aNjwPO|dtj%x5HgA&*#+K2nn|lNHFk+~WcqYZe!TTq zIyIq8Hs;_ImOC6YqI0$p9vZ5DSVTr=52B8bihR__1az(R8YNUpF-+| zXoO9_`Ay-y!MlL3ZJDcbvB)Eh+dv<-x`pK>O{^>xs&9N7oe!wSf1?o_W2?ozs91(Q@j? zcj6<_#}SCKi}F{n)4IYF(IcrVEdiihkh*Ol6-Xrn)$g^wIiWqGPX)$Div&>d&jhbQ z*$H}RAw*4T1wdguq{73{N^vHzF!WK38{hx$A`^mRZ_6J!328?=+CCPX^B+wo+DfU7 zDAW+p(RX%CZC5*9#<03~HhBXJH0QviGKGWB(z5``*LY3x0#H!;5Jk^7emlxexz|0$ zRDoPjs~&;PhLSy_$uzdGO9P{chjK+>{bq(eP>DrkKLzJR)Xz_S$coL9M5?SQ0Dcp< zdG7N{^2%@Rz2EWP28_lhq_cagvYW}$eir{adT{jDa0}2Cn-MW5n$A}2S1iT2wC|%Z zgMvP$n#@-Es&wQlf;AH^uPaoyrS224g3V+0lP10v2I1Y9U`hH_*u?4Z-%O}#&3o%& zD(#zL6npej_fe!OcTwa|i{eWrNig6wu~WM6wCh3d8BU|x@VD=Un`g{?_qKm)k#AL$ zU@Vo*{b!P7mTxZB+OYXcy?GcD?2f-1?6nT|IKeI&Dmj8evB({Ay%=gAA{S8fJM~m= zSy&SoO22A~e~ElFDe-u&<%M`(a)BQ*ybswr;j6*I4k(CXyZ>~59h1QGto46e!46-b z$TJuk-FBtx`uf59$bHTG%0QqIL>(e;luZRH2w9zVkmi#*rF{d+|0T|c7a7|(6-#eE zB2>02^XmzHTq;jix-f!oQJWIZ&KS9!!HY<339PIr#UHkI_|OdUadtCMK~GhdhnK|( z_LR>bJH|z|W^th`n_1u9)Yso)WGRNIf(uvTjm!~qJI!xG^bTqwP}AZjDBaOXIOx2& zFn;@&S>KBPe@uO4Sd?McE#M$SGpGpC41$7$fON;uB}k`|l9CcLLrEyzNU4-acb6a% z!bmp*N;kt$12c0t=R4o)`*U5_^Yec8z3;WxTH9VBYAep7_D;aT{bX|PPU@!8awgc! zC3~r$HcVY`1G!eyreSfXz5Ae|TIRfr zC%Q$({{FGUN%1FR=D}rD2>ZBu4P!F3wSjtTV=Yf|-@_^_-p@9`e*WG`5X|VumowkC zBM7A5@~7~*XI0(%A*19|InjgYQ_PD-O-ZO`_NI3ay?ja`C7PRPATxT8ZL390+;G$@ z!k{wbIn>aaXM5IU?1gT;5SqqIbjVKS6g!}sE_NrUllzm;foh}cppww3y5DxwLCxu5 z`5a|YhuPWD^|rBxJM2f(@*>{83uO*RpJQ8DvD;lItoY|D{}??+Mnb&Df5E$iYxtC| zo0GD)jgYNDcg;;_w_0p?fAYKgEs!WyR6^F^|pKMu>k2gS;p|MCm2*Cw01g zH8QpHE99nq>4zp~JT9eG4GcF)S`BPlIai>1n3Nh4xQXe#9)KDi z^Kfmgi?NDKEZKt#1b-;$1t)mUpD>Ltm*zT}-Cg(AS}avWMe82pB9v-Ymgw_|(%QYR zLq2XNN_7OYlAGgvD@jmS{j)uGn#jGo!7;{2V(ZkT(X%^!60-s!1;M8c+on4D9U5d2 zf;OVG{pYd`y$q&~$YX7!xB`cpmx~YCh|pLGfb`;*iEM0pI=;Mv@t3G63zK4|>{|gq zSfA0)uT4{gFKK)EC!PmjOiR?aldXCpgrr95Pr+U~$QSA-b=FC)hY#4hkhHN=n>iBB=_b6s- zU4z(t97q9-e#mk;E=TMD_kz3QtX+2)V4EI*C7ZvuL`!`|YX~DuH@g@#hi{LB>%!3+ zml?2)lFk$ODIA9EIK)uG{UfdZ^C0YG2Z`f}yVxz;a$5i2gzl|3m`0)Xe8(dIiAN9a z>f( z&O#6@1a@w#A6Aq7;Cdw5V##;J&I>IrEwg=%v730KS)I55YOp(6)uFEKhXXFkr4ShN z=h1fkic#y7)YrOM?8k z|E_8#e84Q4R*d+Dg-X8mNQt*qUU0qDya&Wf$Dv5BCjnJHTaezBY2CiV6~$F zVUJwB_Zaf=#ov?_eOkm;dtD~l;iJ>Lh_TRWmn(_%Kij|cLLP9y-LWV|F0-+&S2h^R@jtEGqX$t;C?UO`|EN-c&eYh%;cTxMI<3@x$`?@XT0He$c~=?$_o_~fV|zoX^60vT}f zC!=G3Uk=v>pHP*w}NM$5IZ3z0M{OH6bC9Dby^uDQLnw4pYkX2x0bxDU(-ey*RSM%ozR{z&TO zq2%|_H5wr@<4|qFs`i^rfuMe$k2*5X<8ywG&D>5@#l=@N8E)LH^riv9> z@Lh^_8!Y|B1*oXnoXE((eC6h&A~_TTAhn78^z%!sRo!WiCiTJ(+?bjR+1Vg>VUWul zXwYXI3TbT_k;uF~F}nKlL3`lEC(xoGgVD9hKztnI*dZo%Bcqa8$gWCAYh_|)pEprp zHSf!MsS;&y6Sq?7ncT{K3E)bSzNR19d6K6n+E-NI2_m{Cb*Rpg@oFwP#LIO@HRMS| zD;b$Rp0rtQ{*kXeBy6}y0xZe{JBqo`P~9Qs+w$m&l!8JULB67lgUjXNW=ZhEC1Oq+ z$C&Q)*QvdC^(YUYECK^ab@x?1dkbP3`38`8FHtijrgN7>GHDD?)2GiTT+Q_gtjOem9ogOe2p=Eu=%* zljwJVOimsu&c^zYxg_ZT9EZT zx!(7HU)_fx;HR&wFL>d{85x29dc_dng|W{+D1Y-%$iLuY#r)Onyf%Pu@f~81rZF53 zte7L&*rwG8lB)^i^MRyZ@10`T*dGB^*0o4jhresloDQS~s?84sD*tvz`LL;}Er0kK zea6n9#^|M+|7?jdh7U21mgUfY^~5D~gi382_#D+ANmovfYl$g2 zVpgLTTW!i`uz$;QhQbM5;rq1a-ytuL!Qis&XEaY${8(RzzKL2{qU~!dqILWjNTgZy zR_kfZ{t?7W-IPMf<3-3=ivuqBNkYyOzAKvHnkrA@`=29PvWTOqiIp=KvRE!D+ILDm zixj33DMS=acq zv#BsmcjP4Lt}oRJn7yg*?Hc`rzPs{FR+!rJHhp(b1 ztbY-)I~p0(CqW3~_MdvX%=qb4iD$IuCCL2}8G)@;AQ$vy=5!x4q*)z<6i{Cs9tt^1 zHZva((4t{_Q2?!AV*SZS2W&zhoPml4|fW;ho_Y+b7rWX<^dkjZMho&1k$ zO8Y|l{ThRP#DUcF4_~RL)@mt}uczR_Pf2L1?^gf$+o_6s!K0m3Ev#fa3{ZYqn8u!9 zDf(tIp@DU7d_>s>8?bKeXBv)N5X_Tt_Ip=_4zy>znq2U8+y4!3Na-NMxcd$CVu-qU zTNucftPc|I@+IEN;5^+0Oacel{KRkbX1R7*a@EWcu5Y`9AY~rXJ%3n5Dt-EG&X+$o zs0>pJ=$b9d5xo;U_u19DM4&9gf9QonXy?36b`Iv;gXQ%6&sY=mYNVj4>#yuF900|`CvQ$zqscDqR@^1^dGIy#cg@EFP?{g@qPZ-UFy!G3HZ_WRp;(TQAwNw z1dxYx$NW$cA(|2X5^QC8U;llGE05%tP#={rQ9cQdmz<~Z?QV6_c7#EmH~DqOZ7ljC zhYa~KkJ!P{jTqoPAt`rO+tO+F$utEWnu14zI}YE0TV5|E!0B;*97RzBDhHwqY^5gf zdxhYSka(!OVVafQhuP!OdcUyyV}r6!n4K3M@i79F9N?RCvVT+nQYoOgAw+bLbD9&N z(WS7q-R*ZeQb@J6EL?=cY8k>7u5k&O@IO#|u0hP#&Y|~S^h@?H5K0z0H$WZeUk7%0 z_3pB0qqzA5K3&5AnWA{>@mg>wXr2S>$(Th|;u>tX4WRZ|;HRg8L5Y5#qQr<8(#(UX zQ_yy3BAypva*Ed9-ls^E>msBwjUwUi+1AO~2&~L}BjxSUIW_wP%tS@Um$7I0oi$A$ zf(q&G{4rdm@n0jmP9%AoBSWC5bvgeZZ84_rD%}KSoh~PQ37!HGBMv`ORX0$=-r~>a zzT%@LC;WYq<9Z2O{G4aLPkbf62FiB>Rt2=C%TvgF-Ea3f{9pnNTdS%Mth7uV8dyIH z3GJI`_@sby?oGP3JLudulU88d&ntdpz4DmmlR%9loP4~_W|oMiqvJ2PobSm6xg7R~ zKlT#8l@^4&gjzSB9AVo3_f%jY-SGK;r$SPd?WNaYO4oV^{LjX)^>z69GJZ*nnkDGZ z;UE%-n|&}e{z^`9r;G%jR6NiPDR`4OzQ*`MCRjzC^MK~@A&>uoylemKn}_JrV!c<^ z%mZXpp}+P53w6xa3WWyLxRV-`EI=O0a#MA27KMgxYkgl)cM1x@;y^Abnk;ja5jO5) zM#3*<78oQ^)hC5_snwIj5_ici?;svKO9h4%HL$MbW|?;#7{E~5+Yz4?$n)DqrZsrr z!aOviD4LVF9I(Z=O%has-nUZzam4ZDL$*t(R#U{JUKuA*e0_Xh8kL#Ctse*X-@f5X z^kj8!8;DZl6QKECvNKU4^D0l5Xq#XDuQ&9SkW=@2#(2T;M={0N*?T->`=hnYl5*RHBzhq?&}CDKZRu-R4p@~#pWSM zg>Kor<;__im{1+;~jY*FN9>5qnwygKx2|z(@W;X0Yb~{tDNZA^_jc58CcPPPC$n zpQ+wqfjs$Q20|*;p+JA)SkleL*%_j{qZO1n$B)bPr|NXfwX?`RKJ(N( zV-%0;d_pqF5G23&667di5O4~h)zXE;gA$T6U_E?Vu1<-g_ev84lb)MQg&uCc4Ol|Q=GFX^XTeq}?@nZFEjHW%yI|Gj6GMNx-K$U>o$a+s&w?NVe8bS9|B+P}zod; z3(%OoF*JL#%G4v}9d=UAZ0Sw?M|B{VS(bv|y3il+Bw`W|UwX&VQq1=W99`yVHO$adrD?3FQNK}Ozn7@acJEa+jf%pZrF)Gj#0oWXg@z_ zm>0>c|CY%azNiE>WOJw6&r=P?;<-S+WndD;W95fD)hzwDO@ z6kG_Ay^3QU;oalAIKkuVHH6yT)9r!&G(;E3^yz!lRKR%jX750(@qLcId;Q)d-yv^2 zC>MS*wgN9Co=b&|9A1mew}LLJq0x7_T!EzYc2ZX!$el*eh9hBo1Y?mA)%ynoG0L4G zwFGL1j!HjSx?n`)L(Jm=f(%(w&%T2L=ASXf^1I~kpRjFxW~Lq1`D08slw?90#v4Wm z>JA%oaubl3e;=skz&+u8|9ac&v_b3TSCjl%^{!E^kU)YbG{4Cfbw|^+3WMsv z;}ia^cjOU}q7?rRn>_lH3Q?j`o0f*@*zPZy)!XPS;qR4|RZ6vwH#O_zS$5?thi7K* zWaZ9BRl-IoD8O5LV&KoUpBBq4Fr57}2g58|s1fiSObz*_U63vC`&nBper$xoa)K8^LNEgzHJ~tUn_bVO@PAhcwoD`F6T44E=a6!qvxtVCx5H}0)IjXz$*~`qz~G*5HgO_ zu{8(~Oe0PhMg!9OskXQDz;kU?MR_?e=rD~{U!MMXC`YVCtRdTT5}86;=RnLC?I{kf zY_l%O0Vf})^>2)!55^J%FS+YWkAVnC6>qA=Q}VtPR>+qmMaKHUAR6J1lwhMRL=AV! zX75fNKJytq_5Kt2k2;vDFr_>15j zm$@ME?Lmvuq2bma1O){<<@+9c4N0$*U5yBylu$eKS|;`<3Oy-i3GE9S-uZhl^+Ve#@}%E5tdSQMP$2o{9#oi7lyXaboeq03mZ*Zp6{30yvCi4{pzo1 zND%iBxNY(pnt2i+dn5sfRv(x?^tWCQ-VDykBDZp5joKmQ5`3f3vJkuvt0EZdMsQUq zj#+&WSG3M=i1~||EOp6x_i5}E_SwS0GjN|nX7A@6a>dlnt2~*xrmNDf2>fHJv8h6q5JnBt_I1zd)FF8L(ArVI->yZd&0mq?W&?zNCe3kBDm zUR2FG;dWp2WWK)rZ)QGIf>0HC--(n>rt+wjh__cQIttafGJf9+j2gD^dE~8 zO$Je&+}}hY8jQ}v>3ZLE(u$vE&DA>}?WAEiAd)WMZQYEn_*JhqQ(9@j#@-7G)*r@u zo>10GUu1MK5NehkFafWmvWZ`F#ZeQ-eV0m!5wDHbEM~YrzZ(#GS6CRWP32AEFtbBJfETa}C=kk(mx$lZD895~}9X(@~T}Z+kO{VXnw6V&A4C~-^{u=&BXB|y8k&Ss4*pB~*=;nD|kNC)-1OG43Rmt3D1#yIQ5aum^ z3nF#wwmax&pxRA{HdZ^)u_X@Xcc?%Q|9M5`*|DB|LxtgcSc8uJt)W+?zW<&xfj8EL ztp93U6+cB`gKj?VJVXXww;*t#C5M;K#Lk1_=CIS4z%OF^c$I>(fy^j4lZRa7lkAOH zt;G*oH(~rWaXo3vK7NHF&znzsk{CFN!smeY5r`>2fqe1oP4?1l$?!=~#SRx0NFkU; zrqDo!^KC&B$aMG?PmMmbD&PZef@>^&g}WVhtq>9Oabn>$5t*GzKg6=>mgJZ8$hDKE z@i}iu&RpX%bxEL~fm+zB-4pjwqMKxqkxVO;zOwz`zX>sc`c0~tO3-T)?PFS1&Yokz< zUgNo1$voRKh92KpTAh@sVI#(xn*5a%?zO8USuy=+PYgUNaHEsATA!xox{`8U94JB%xYqghdV2ww_RC^=GEb+J8rqF*odP2YNY;Qh9%(Qif z$X44}ZF2)xmOWQ-<8s8-iX2jt)93zh?&pj>j?ga_*m{<{eE^d=F~xw1`Mua647yB= zdiiu{Bs>GQEry--z>Kn9p&W53{yF0_hyUw4tl|b-^S1rRh*)(85SZC@UWz=$;-^m# z!F&18iy_qq9WdH4nVdo32IEAU4C<#H&8f_UD&0%sr_sV;uZ^LFWQ6pGibgcdYh|w( zZ)mKjD}XYLrj|QlB17v(QlylSL~;nfvaIN9smGvr5Fck@Ed-~kO!Y=lEf!~F=Yp0R zo<8v)4c#QKMfW?r9i&$%1){>YT;0yxXuxhMaNaLkwN%IYR(iHB-*r*7moW44l!e+k zAKu3*B-G8BGCh?BAoupc(N#_X-y!>x-We-)aL z4fl&qg7n{68jV6Z5)<)9l{;C}@NDZmQE5gE6n9V^QoAow%(KuL%3<2maPl+t_WJ&;b?AW!hi;b!ZKDm-ZrQGrPuhvDr z8;Sj|5+hG=2|sOuuie<&rxLJrh~=xKwc< z!Q9ar0OI@y>iZ`ElKy~5+zC2yj>Mxn3zC#XTLR^|XS#!;kuNBE(Vb8886=@xEC4>g z_h3*zp{uMpxtyJoPpb5_wE#!-L@uTO#IovpVtOOlk&q!aWtVp;KTAj*U(NO$)2tLY z7K(!75Va{JKl5Z$yrm^^6|U@0D@O*p<47$XK$2WP_jks;j_Prd2ygi zFCwZrqPk810sQBy>` zbr{!#%w<}r!g=?A9BusdgqU)@n>g35zA%}H5;6io^&XN6?hER$mLL*}S2lzQD6X_U zGNp;LgsfoSYJahbT_>vJ-SjCDa|m_n-TA%kc5i-Jiz$C6UldV%&`}w`xYx868Hzr6 z_e}JtezmC8-%n5z=kThWEn>e$0h~2A6n;}|3gw5xRMQ%mY=kwp`0#U8n9*!ikE;z2 z%pNuFmfYDNRs2rV_&);Pn)ODW@A)4B-umzVCE#(PhnG$H!P`^tjT;-?jX&%7?|>FH z9@M!xz*Zb#$IirpNxCO{dKCYu(t;X;dh=NZfAz471h4&2wDt)c&j27F;wp+58{s)< zMM5^k$fOo|?$ns608DIQbGoUPIxGnAoEMxky@V|G@1z z$4!VhZ}G?Wzn+_`)!iyy!JqYlCF_V&Rl48G+(PkT?!bW4WK<=5I%JhxsI4EPw4aEb2* zSNvY$3Ij)F!Ca+r{LRUW!tZrx1OggOtOaR+$K&&6a@{~uf)c!-mHtZDdoE6d+gpB zWDxi9)qVE93bd6Ptk%WAy7$eUYD}s`Y9@|X#Im}?!vJslxJ%N!QT}irThh*!b57mN zyI6e_QF@qzzso0IIPyAyI5_!7$p{gfRDi={A0xbM^T)hTSC?;C1wG-ynELHPQ^{=S zRjWsE?37HlOxPQNc_7i5`Oc?Y7-}keQ|`*Y3w4Iyw+=WIxO`D{t(^96u$`RLi*GRvm?18mgC!~Qo<8V~ z25a*BYg?v)#c8I5hq<4=XYDYR+Uh>}@he;+QBI963nF;w8BKqce2;WE&A@1!!a&Sm zJOO=p`fklPrvbBLXMUi&Y&*etwTOyX!)SE78dD$7dqpQdVb5HgR?-w>oojyvU6n)qI4BJrBjT1St{A{UfYJ7I%#a5Obu^&TRB&}W z=^;i8+?k4f3^nlWqKtUHAy1u$n`sVD zU+&KKrpc~zFeREIsy={pHCN@3~dD5?60+tr6iBB5_~9u2{+|~vO+1!DPDG7 zmDB>Etk^ZjP9D!y{%IV={dIzbwoO5UAF5o`pPHmAjnZ zl)chL;zz0D1!bM?9%Qxj%FKBrNKqdEyTIQCzmHk_7qq<+1#wm39y~o*We%U+Y611K zpg~07%#n|>fba0zS}RBI)Ls}8TtVX3*eRg0P9M=Je)m+#5=jdZ!0}H3;IC0ftVBX* zd0Kr#cb#ezKTUdwyxBG}A*16|>rYDK(U=Q+$1YT=Y8}@ZujcrqHpO_*!%j>ZGU~BU zho+%dAG-E*sP~^}xl&GST%89BSdU8t6Yj>^ym;l>upICZddwTF=&z zL8+@c3kqU1SZUqfLuohT$2_Zgvlmh&F`0ao#sW(W(OPCfiAC$b2kJ(*LxVhTCQ)=xXSu{0QP`HBi~cP?Zq-*XQ?4?ur=Yr^%=7*7h}7^^*$z2s~g0puG|o&C0A3&5Ua(Sec*R>}8G* zlW4l+HJ5QSp*&8@8eZNAX(YuH~SIQnIrr z=W{muu>-2^)Z!DW<@_cwqzbQKXTSJ z>1-aq>%`bl}K1ge+p2Z}EObIG(Ny*~0;m+83M@9#F zBoLJNRqg1#hP?N;01a%Nl(CZxmGmYVrVv6=z9)!Rewo%^`a71_4vZp;D zVRQF;MHEW>x?aTegF<@7-W|E*ns;7%M0^m!; zdA5<3s`AfEtg8CH1U#FRgTW3Ah`#+iqr2i+o<#&Ztyikn{beE3xo-!TMs3hvNhzqf z0S*aBUlXr%N1clOf&K29p2ZTxBM!yrR!r8yP&2$OTr0q*HKaOpp!SA?D?zZ&eK*^- z`!lUEHxnp(O8sYXwBxU6@7Ar=pF4$OPqFAg1^q+@ODw2itD+O5Hax&uk`X9o&)eOj@$ZbW%r8jD&0g=pLP%KaUkGjyJqBwMj6 zS1@tLcvUAjbf638SG<=|jGuJh(@%sCAri(RKE&@1_8zm!JLqoRcTn9+3-#-*V)CK; zHDu)$-Dk8G=l3=--$Be3-19hRK5c~Yi%V1ioG`x9@#Ae1e5e=6Ws$SNHu+GZRIbH3 zF%i?*V71{Ydb?gwGpJc&JVsCsc8wY7&DaNf9x!7)bsT^9ac|oEU~A5>v@}EKLWQle z(J>aog)SyMd`^0KX7zbN(K$n@xI+09F&-`dQ?j4$emEzz&2hEKEzPX!;$D|gi^-n0 z;Eda*V}5bGHR;~?1r%@HY_OigM7lM3UDRG_=c|o|MHnn196fs%BDedG9ex%eAF;OV2wTD8M^g~Ei$nPKE#%Fh>a+^|m3do* zIPiBTYtNDF+dhIzZ#D{WyQtkRd1zhDlA6jxki+I|6iEOz&K$Ai#KI+58*3Uc$Gqy`MhMyUb>|Pn zcegYu?TM7hBbg{N+3A0mteR{NW_2>Sb183~dlo)DCm0i4=+C0F)CvnPD)z zt!M&z!&2xrT<)@{_av-C^$U~ijQsjU%fu+!ZHC)q!tuFH?I&Bff1WfPyV29sakw$I zfILR2!mr>5f90-X@M{aa|J5J80$!N^7X$;*iO|C-v@%ZIgHyOP+F4^z)sQB-0$#1Fk#%9~;A~6n=$T5W5%S;*aXtjJ1AI_kV2{kTPQKb-;Dj&^h zQ*T}TCkB0~?2*SGCOHzKq#xD}w<~ElYS#7=1}N2n#^W}qvtNk?+uQ1}f{ zMXSq8{|z7SDzc#$nwNG@1n)*XS&bUIny|Zf5Ex2=)&KLYxA4qdiTUcH{_#mehO7!D zJ2@A+g+Lp1nsQn|=86gUaim{aYtvuJ-Mool{9G(iyBVKY?d1CA$Ja)N$KG?IaUwoj83=^kzAwZOVad*<rVc-60mMlenNxPFNr4SKbXOXwqz(D9Isx!2UM<7wt z+4u9YYa_h~T;DG8_&#p_>YxJ~o?kiiZ}=U@wsMI32PxT({`_EV!IvV>x~>eYv6Bhd z-@^lNB@f29y)jt9pp12blP!VFJCBs6frOf|I5iI4Bucx9$v-kb&toY1p74Z2_Fi{^ z!enq@)F7<%@n7Af(&!NVE*?XE31t-u=_9$<>fNF_De0X_FYgw#EUN7d=^nF3>LWmP zCsbEXdO})aow-*d<&!zNYmX%xbxzsklvQ7zANbc7xG3ANbG!@|4-F6A4lL-}s{)ij z>_CM(F^<*n?29<2ks77vQWc)Q-@i*NLZUfU?FPe*IT8K7=jP!Ee3FD{_q#lvE1$%= znNgJ|BTt$G?mE{xg3hWCd`KnUH?kjp()u1M?!_~$+4C_qb$>nNhVeoH;uIT zQy9PITPeksMx+8MB-by`f0EgIR-M&mN1Fw8K~{e5I7rP&a%tpaD;Ozpvj>U~Q>+=h z1vrE2crKm@zDa+07abj3wVUer`7)jOk>MXA#U{=R_tg1E?Y*ZCTE80C{8A|H-1h$} zrMAV&VyZ|2MQJXYlg{#f)~%hZV>3D9ffEr&AEIyZ^5A!q=+&3^b-7mZ=O9PgC6g7 z7V(}^tB^@qvt}-&>5B%@3d4i>tu@XoncP}KfQz<_m5y90ikS3bW3t5~*HCJCA7HA? z>G}I9A`NP*&Pxr2kc`fY3Ek!6u1n3T_WfMe%Sp0-(r(y|!9(t!!2^~AdV8#j8^9Xl zk@zb)>~)FkX;40VB|IsUM2z~?Jw^~ZcB%J#pl;JQqPxKFGJ77WBqkf;z2sp~DN`>n zqSPAY+xIzc`{0?ur>ZFk@FjWn_jY|W%f*!tv$YL7)!H|V6UmU_jels>63nNesbnDO zP>|3`^A0$f4B?4Fa%UU7Xj`vdZgZ$+M)n?}b9gYv7_lX_Gm8bl)K_LNe-@ASSf^#zDC z`MViMULA6!pEiaLVw0@_t&NzF`3be$0^U*NgfUmjdq z!#nG&@zMnoruz?=``&{GZbV*)ha4{1gg$_-^V6h! zT@|@E|1G?0hb*Uha%BGy;ChL87Rp#fSKjTzH=C^82Cpv)s`<9tl)Lrw=jdZYH`%u@ zR>D#FBD?*y5vuvn(~a$n&Z9MExobEaxv-4y$hSlMry5=V;aCayU*ixz00shWt>SQ- zvY7ig^sd}x4f5(wIPy-+J|X_t_*`(bT!}F7_u*xG$%)JuSe)^Ae{4ZyCryE#CKEUk z9nbAYeNaZbT?b=$_ozp$(v%3Bw>dDyP#QPDbJ(TyYc-b5ShhCeYijbf8W5r#`7&3s zpH#zSo=;)+$LN$6`EsJ?TA(EHElK#KP-L1m)ys%2AP3v-32{TQF@hrOvVI|G_< z83(#@zKvHuc+BEpI^U1VSnkjZIJ*3{4f-JFN_W&fB+0T)egYg`+cwA-*vdI1=J`gQ zFjt|_$^z<~a^sPUTkxzFZtF0wv~?Z`6Mu2$K+^ZTZMk+ClA1l9r)@P<%A^ z-h|XU{!MD}=|37Hu_k(+Z~H(<<2HV3W)yf-JP-v>q@&Q&tNyYpxFCWa>i8`4u$M<_ z&z~T>Erb#}>GBH0S}(ga2)QKYw;A^!kvcHGcq1&#;(sVTA<$}N^Q48`$B+rep^|+s zv7B3%MPPqVTYkP&Rj6a4LsVo6ho;8b$$|U`$)Rq~7~~q|T+;hnZPEQutPnS2D+keD}JtX<2Dv?9K+B;w>d%AZO^N$ZG7qSrBmKI?`i zHf%w8*_Q@+@_z}w9X_!!>S{SpD-o-LFEk++@f#j6^foJok`=nIil6X*vGpIz*-b?{ za>V}^q!HZ5-;qPZF{{}L_^rbh{4zCyOse)g8p<*awg8sjT0QaXV7~UyJRoGX?fpHZ znlAlbYBV}O>LmJ(L>foxfye)50Vwfs@tRgSe-wMDPm_! zvmKt}Yk!>tjPPnyHW^|Vd-}T5d6yTix%^EB@V?f0ZBC^2xzqRE+gUX?i+Cv{PXb+9 zCO~-e7ZDDAXy?9TcMabu$2P^E=d_7ju$VkfZ+lRBT;$o@{nCN2`o_lB=4M`^+N^9v z>PrLdE2=-=zgyokl}e)@tkoiL9_mFWYMSLs_&|Pds|42Z>APB5QKaxhoV94rP4ZGJ zjMOtTx^2R}s0YjS0_J_VgZHo1YiFj5#y7|-AzP|ng<*A+4sxz_QJtu?DBtT^>joXn zh2{EO&6ydOX~XVNj(6sk$C=@ycF(=aPMjFy408IoSuAB!~R)>i@K~J4L?RmN=86{?YUk{bRBy~DQdrxc&GtB3=;?VPb zyMi4;Zxrg%VL-CX-0 z-HvNKW$x-dYKqzU?1kBlaau+XO69lQ8N&a7-mB@~?T*d|O)^g@MbOZJr$nR5eh+Xk zKoijWQ^A|govy_0Zl8<=ZPvu-UKM5v0=hjedE?O!4?U{};SY|PriKLi?wRWiqoHXP zQY=qP^F|J0mCFj4=75M|eMWV+wR@{dg)}DZHNW&+dV5fW)y!kwPK@R3+Ee#odT*71 zY7YgTDMTNu*`39H%BUd75AK*mAC<(>7)T096aB2c6D&T_pekm}y2^cH1#~00ToieKAh&oW=vCAcv=BPx7SKSPrwaL%vo2Nh@4=zfW>@!c;APs|%NUbdVL`lAyuSaC33+*XKD{QOR2lE2}QNY!*Bg?ewgf1bES z`O%>j;UG1M+@43x*v`?Pu#P7*=Z*ux&X()s$@8BDItbGP?bVIBI(R?Iq)W{b91(o} zMN?*BFKI#k9@r`qI4cw~x+s=F6MU9|y6wCH|H+PC<#?n=Dnz&SIFRkSff>WwTEu@@ zHIm7BboAQ?8uvwN=}(=El#by`IyVSp{l0~I)RlV`_HLiX@$=7@bsqNStIhs9XB;<5*8YEx z2rP)gOTqT@1CHLbrA)liB>K zw^{arW?8aEvv%^5npyq?<=xb`#aG~{Ot!I#jD+^w?RJ)Z{VbNFzsuBS+1N$i!Ee1` zprcW1dcwE}=CY#*Q-k$X&O8d_=Jx^4+WRq|C9g&w92=0t%(fm1i4CzHS1VY06Y97a zZYHkt-_hm&e$ua2E8mUgfZCtetlue)GoFn;8u0Iwdr_q*Xd?f)T?z$Qh)NnM$zA;5 zy6j=lkW_jjPM-H6jE%^j1BLN7y?xT0NcG64GZ*Kft{W%LcsA59Phraf(#n{l1u}nW zOgf);wc|(5(F0-BcVGzB)7m#KKQ>((dnStG_JG4Yywbm7!;m9d1BppfZT28uBmJn- zQ%rvfMx6r*U;1l~CwfsYCwvrIF2J(`p%2DH zix!ox*ndR>YE7-EPt^Ko4R=W9RD3`R;G^Uqi^B;gJ`V3nqf?`VO?U)d&pZ&u`3n#zRVetH8l8WzuiUn7}cL;l2?Qls$!W6@pzlN^!o|zk`fO(pAVxhMeLall1 z+UoqaykEqRbZ)ln=s({$#QXu&2fyO0?NY8w);O#I1KEUzqt!a@;p8MCJ0k_+W_@*% z#UG?5(vPYLHp?Pu=q#GSnoZ5L2(iH6F)*8#rn=*Zs9CYwRr4PBB@r!}dC__x%O{ z@+vHc#`D030!d=O{MV) z2`6_Iy0UrH&KWR*^u~vXD!q37a~%dAOI_zW)OATg$qLKK&oA2_0)jsUofn8|C+wJq zRpUH~Y<@T6QRX+(nmvzuB5!fm=D1D#%z4LY8+<>ZX#ZaeMhI%gHsQ#>9zXZ}f4SR7 zT#!#B*H`(MpOHt7dDr`0$Kf7O{Q0^3(%+`XLyruVSLW{MB9jR1dJWE&Ze6Kao2Du7 zB;BSyEanL!IDe9$|5i7IMZ4Mtr4&EMn% z>slcrGowv$Uy7(dLz<(WiwgpQdjnhytB}K;F$HVvE5d9MLLY~vN>WIK*iaeklt0bvM1FJYhgZ63g}SO|r13zL!f%J2k~0nwy@7AHhHX*x@`*Ul z_`i7Cwbh5!jVorRO&qi-m1x&e_3!cRo~7~A z_kCs|d4j7Mon%ewU-P<1nZxey&FGZm_gKdJ)$MWQ?&%lrx>Yw{72%S!?3*G!2iIAr zGNzSd322nZ&kuG7R8F(~XAq17~hCz_- zZU#`gyF=;jj>Eb3ch3I)zQ3Pqz4y9n9c1jHiV?dOa{MI+yHW~RHQ)srR*b7K&6AGrYJ#bIZb){*BSmj6VxH4M>cVL~GP`WF6C2^{X()x`y(Pt%Q?y!nKF zJegVT?!kbA<~r8*sZ_B~ZT2)o@U;XP>IWv~6+Rc94S|om3#tr5n_-D0czNlC%i)G1 zXW`(SvOttqSvK?_Bzk3<)<;4{T8Y)peefm46@$pBWQC=|R*IpibjV^eKZoNjMg z9*^%6>5k4ojjdUwIv1r`&0ZPX5e4vZ}>@9 z>pyB?3;6ul_i3X2?(T74-TywW{fzbK=}^cZYLvKWL4r?woFS#h0e8P1cQPX8QklZ@ z!w=>^VpM(4y@KH8u}%e{s|wx6urUw!&ll&djhX}e<^p1#i#o9HPDK{PTjuTKL(khncW>E1Tp{66Lq&+x;cl~Ck*}a*-n4aM0*~gZn>iHd^uxpnkNl-nLwA%-hu8k zTYIr^5#?K^C{CB?*Y;r(95oxI!8lO@EN@+434`pJvqrZ6hFC!;g3qmyOM>YCwCF&brouziU!G#NGs~ zyIL$iq^>a8*7wCC+gQTvB;l@4$F>pVL6@+S`q7fC+b^;O=NR z(AC z@!~MCWRxq33+`7I5m!Ho|5SvQw5HO19v^c4oH@aLm7G>_VX5)CDtCM?^YGZ~@yp0_ zTkdJxi2oGs6WYo};?Z5GFx}n1|4Bdm*(X?*{;Q<(|5WJlfP}DCo+feqp0d0Tq(p87 zRxYz~F93^3SJE0$zoJ?XOMCt-FrLS*5FbR{d!N>&tbi?9UIchN>=?hkG*}|I0>?;M z=WI>ir0%w&9e}qeFXA{jZGX+GCuCi82jI7MLH>ZghWn!nZPMV{yho13!|ug00melC zsXmwP@AZCT$Yp;~&_IG7jzD@X!tIzAx%+2zlF2v-L9Y;Iz5@BC5x!+2z@FF6$(YI} z03Q&qXemz5l?d5N`PFvT9C3e`cSzIo_sbb3;qLoX{2%=b7t6QqmrM3%U4u-GbHr1| z41dI_-xUwu%@3den%;h%jUT%*Gy9Rz|__X9RF1+y7@%;#A*gUJyyAuKupECUmndjvH$Zk4_ z2<#=p3YC#MeU2+u1f`Gn$|pC`II9lmSH5gY5OJCkVd1WRKI|DdtNgGJv;4Xq=BBS< z2xO~PX2B+YTq~H&P-5isD0AG3$)%8?bGbXeLxQ4zVmOw~1H>DZL;(AJ;7fH{WQHrV2qev7N?vm!`<-~<&TMsf zr5#;p95|B3hz4H0WI9y?Bv_PYpzGv1BPuii_5C13Q1X_ckd<3YseVR*K(*)fX3WTlkfdeI*tYBc&_ zyJzpMH1QLUxV*8eWI_B89!>w2nk6%_<{FSHms2t{mT<~EvuycRk@}aGu^nM zVUl5$ro-c*wis#Q#5K9MYlD=lGabl4E);ELlVAM4BL^gan$vy!7{HLg3S-6GN?uxA z6U7X(6!)Km1CX5e15E_U&1=u+s0Q{rOJOU`X?G-*6C4S+;>oS?-QY~{J@16Q-uG2Y z9`2S;jsohubuKg+x1-aeP+o0Tq-53#Ii(cqGp+p^wZ^npcmQ*LU(?f@FP1C>+3Z|7 z*(q%E#<@PEBWbjpY#EjYi!LUZSr-JplsfB{`7RySm(I0*M$SL>46{i;8&|JNrp2{T^rymGpGtM)l=+O4e zAo{5|f(iANRUEUSI5g@<8u9ny5-=VjU`>@c%aHKdTMa^Vt)y*YnzHKJq_l zKTCVOBzl@)2IEQpXSqB+`wnX#{ddzmgCRy@p4v|Y?3SN=$vAAuop7I8E7(Df)0tPl zmXOXFWR+IyP1f9qpGxYF3|m64gnW*k4W>K7QkOrE49QA&kE4$a{qi?ltME632BmUu zOOZ;(elE}Lr)I`{6YtM`8P@p@)X23)!;{d(L>a%FiHb|r;?nC7 zYje7(W+6>{7cFi*GZ#K8Bre@g7MEfQmVTL8{jY$E+)Xdyq$k{Da)P(1(7|rDIH7EAyXSzTFIvSaTF&1NisX3J! z$1UV=2L1RKNn^`Vu=$E&DZk-%Az{zSu z=B>jwBDw5;8(6No@ZOnB?X#pvw))-P*@P;U_@=(iykBq|xBuySpO22;>2#7h&rb@m zDaU#1=L=LU0duu&31$81es01uI6jU)mY~Cf6c<}!kp=xwefI&?nl1^bSyR%vfQa|O z5AH*>&6tRds(2u!KFi@R!M=B2jM1m|JAk8kZmtdFDDIC zKFhs2zdc-bKN319J-RD(eku9$BX`KHl>O1&q0n7P>$HyZFxQpe8PAN4wR1#q-j%aj z>du#LVdqIhH4GgUo(`4)0VF@&?McRmxX}J-ny6tm->n`you-Z7xMM%~NU`6MTD%*z zSbajnJ|?z{lthX^{oilbX4U}uriWiqK3mOn{wGu`vyC@5Uu=Kx2~5cNzXJ2#S%8`? ziYY3}s}J1E_7G>~!ybF0d&!tSHepDmT?!}^&O%4m(~lQauAJ89*gMiJNXF(< z4~B`_a0qyYBT3fm9k6?vU=%reE(qE3+Q9KT zpW%Z2Z27i;a<8b8Gq+biMyYHk3k_Dd=3+R&k>7VC9|^s2!Edl-k$-iXa~Fh_IAM6c zR15gHQC#;$*z0o{?DfS!BTQ2W44(RiQJO*=$syPrBIx7stq#03=+G^bvaQ6A5uM_N z7Ib=BB;^(On0z}SQ_OM!hh zD}O}nNPxM{J2)-V<3~E5mxJ3*x$k=363@!bD{F44oPd8`qK`9|a@L;}omA}Fe?Fwo zkmB7_-F6VQ?CmEV`TmVG2R=HwES#kb=1%{8XP>rA7D`1#EG0DTd)m(oD~Gc@x|XSj zQYn#2X@@SH+jP8=M%PuR7k*IAo1lpPaW?EOCIP3$X=J>btV0(C0)91FjAV3Np?%lG zMmXY0?W?>saB~12f*6s>`LFm70Qn!t$Tpi`-}Vq39>GNx`9>%tVT*x&cdtxlv-E9H zJAW2I2pTM)ZDhrC-~>*+<>KDGp0feX(wCV=FNb@<~=PW+FB>~W0ijN2fcgdQLgzlvp@%x4a8?`Wxldx zlQL%SK!r~eW<3**OM>_mUQ~?!*cGB*_zQCN@>}b&yk{V&mkHtINUFP;9Q{s&7q;fk zzCy2h;e%Kq$b^kVFA&KK&>@MO!!QE_CCV}C*S|MohDv#MCBJQ(=3!5IBO+La*uI^r zq#JK%Css}Nl^;JhK7m&vU%Rt&_qD$7v8~1%jOO>u4X1ptYCNUz_vsoRVz&|;>@gaCV!A7)dc?~|9x1zS9uuNAs_1ewVonhM>Gbz161bF>DZ6` z)}^Ur#SGOQl?glf)zn(y4{@ETOj3N;8`8FQ|`^Ivh)f12H2B zHxzlhFadO;_QC=(JT*W;)Styg{UvD+jpVvooW(`ZI9dNlxddEMmf80rAd#IePSFt< z`n^n$brCT&)a{hG^~MeL_Iw@-l0@Qd#*4&l%Pz9}?WE*3)@dru*c{gD;=9*)*WBFd zo{K~UqPw{$>Dh7tm9n{R`6z$^$&QupMGfd*C87LM-EVtA12_I9I@bLrNnoI zNBmX!A`bWgYNIve|1D`DU=Y_wAy-{x{g#=1X^E-4-Qbg6n|txT&d&*z<`QEGdcghz z^;n>A(`qx^Aq_5J84=xsO+_K0xYjd>B+egi>5Lj#kVk2NaONt|nNKsu<-*LNab449 zCl?N48H2jn`vY@#Gb*<@dvr#&m3J+X7zag-Na8+FETl5NMkvySy!-L=1v|Ksk3GSQ z!Z?6ANbX_Ksw;G`H%$yJNZHMzJBX)O)tC;Q%~T2FNXWwE{S?Xrlc>19j}^0#c^Jxy z1uqaFBb{>y*S|};3a7c9Ty8C^)8&t0K$86`c_UvD@bO?$RK~(PQ`ojB!!jolP$xkc z;q>;6(oS~?I@<>2aRfRv@!lo9F*M2qItlzx5A)0<5mtRUyaf~2$b_M9T^759!J@9h zHIWJQ1~e6^7$-uh*pePkvz8mq)02EjUJs4^^K2!NR^B{g1N;BN1{Q#xriW{7z0<=3 zcE8O#x{T;4f<0?srx43IvPBy`Qp#=usyo8Y&FnuR3J2TJguYyrdR?W`aQw_& zrKw`ugaASy6>JKIuf%h`qh#NqSZU53q+RxG6BRKg1a4RX6H% zAtQz9&-lkUVOH6GkESr6D9t;SIk;c_61#v_nyLHBvo_WL*Bo^tDKhc&k$`z)AU_)! zaRg2Cr$#v7LIy?qWziPiCnCR(cAgL9aH&_+C*Z^!#xvlBazi@8Ik+#=GnP(q*@Sc- zyG{RAk?AVdsrNJPdt3kdaJ|pM7ZxD|T&+P68gR;qZ5N|vg4OvHXO%M4Q1f!Y2SeI4 zbftdIe{?$XD*3323tF-R(L68QsqtRjE7@n_L^IWg=xeK-sjt;3D@yf#}7rnM<)0HL5_?4uG zN;`A@t@Zm|kO;R7QHU+_1ghQvrAB>5E}{nGYEBAqHl3*So}p>Lz%D; z;ebYqdcHA8@@y-C#^iInCdyAChJ#vTQ?KoBRaYyI%L>hQw{`449nbRrcj*2vYG^aW zzP9-UbTxfVH3OltG~8=&N`|76B}p9TzYh=z9I@TLvO(d5_U^m@1VZ@#3q zIhRcw;JWJc$iJd{_W=_?HM<9VDK7HxF^O~UPRR0%yN9Ta2H7R!^5k)XVbii}-CxQoR=IOWihosW%RxtPh)P8@@2r>tO? z=_&Zv>ZBO%E`YDt3&1DV8DA`3r0oKIV2tmA{k2LAWn?zzNY6)(k9{1Kum38W-=X-S z>LEK=eP7X0&q8JDME==3tmFd6R_Tqkc zND#k$9HK|v*rKvcP|DCoIaeI`9rW>%Gp!w|Xd)3ZH0kRFxmZC=CeK;(;inGugCWB> z2fGpcb39_rKe80euAU=~om|g(9>Z|GT6-U)>YFN}2`XBNFH z=Rs4&%LPd=BIDS#%0f($leKv)$b^8uc9cKUi$8!&HDh8>Y=TJ zbp-n>55-Kx*dNEUlsWFUHy<=YXOJLYd2}*NnEynh5j!>BUhhyWnpR?ZXiJegw5AkJ)8N_ds-c*w$91T7M$N?KH zGtWWU%89Y~cUOY0aMCALZPYl4kFBR%Juz2j1PLGbJ|6v82UkCdKy={dwqgWDv1*v_ zbUa9o2wCcwVOAy@q_;RB3ZRLKNl`M-Dx{ptI8o!jt0;xMU6sYF2mFa7n3+t23_7>> zefPJT7R^{9{5mx>yh_(G4K&z^E?@n8T$Q}Yo%(j@>59lWyU6J*2J~scRNY>OO*13mr?9;- zG3PC+2%MXSfeZ3GOKo9o0-FS-djaN-B#&j*J>WTGd)7(S6Hc9WY3VqAh1n(1 zD2ud9wXEus5U6g;iy(ZOma2^X?cMM5yBiiEr>4l|liipv5CoTZ2Mt^us>r z?UVw{=Ki!}%`ae*&7f_A-G~h$j+VWI{Uz14B6@d)y8?X-cQ!kKzQJMQG|D;sTT<^P z>MlscJ7qW4Y`iD*YQn)Jf>?QFgDx`Er`OEu17Xjy<`sTG)@=xeOR=5PP!Z_*RuHd5 z+b$ottcCx+&f zn|YtX12X87fBTl;taEwA5d}M8Rgr(`Y-u%UOAjpg$S6_f`pqDN?~`N{6+_aqE6Hxz zb59p{RM+_*?g2iA;DH05wygd|7}i#R=uy8@`}SiYvZ%$UrVTPXW}D36b^2;6-d}Az zLWSobVE>6rz#rZPuZ5=NVeN-fFpeO=eu>7jI00n$8vU$9wjOAm|#P_;r#dy&`BVKxQ}&L*dI{ zr@sOK(R4|qSD^0Mi*CCrqf9$0VRbXO&&!XWUV!-ppXbw{u`V&{q8b1j7o?V4NOm

zxH#=c^Wq({`il*3Kvrij?X6??$4F~HAVK@cf+^icUqpVzfQ#I2* zJO|Pn@i0zO{_ko*)5fg6QM%_#`*^7-0U>%QM(0tKlcp$^JJWu#pO5M`r?N+p&3 zR;Mo_d#PvcGlzuGT+~BNYAVBAZR$WB2zYuctzD+nhrB&rPu3Ozh7n_VI902<8K6Dw zrcP`e>D22cYHOQ1x9Vq_CFUVB)trP;dAx(g~s~07W2LtVp44Vi#sdWw^dT8bqNT(7P>oN zs-)~BO8?0vF4apE7VGN1K~Y}M15!cJx^r}PJTZlfi{P_}L*lVhC19`OA~_viCLE7%Hnkni@7|Dn^$3xUtI zn*WcW{jsrE1?zDi5zZ@6zdt84wdJiic+7Bu{Z&BPBa6jo+!Y=f&4 zc3(&1aJiz3kJ*5#5>e(QuxhmHW~BI*cWR|B4Dku(;<{LXCohu!wNv^flOHX%Si0M?>hF`KcX{#%m=vf{TjQ@V3_W%q&`NIpyV z`gOV}ZTVLTBCfY^@>g(ViC!WKFKpB?G%UvW?e7wP48WNwZo=#NMx5238^o|?-P;OY zAN$t6L(MeYw{h`>OF*W=H_=5tGR%cT{U6*9ZB{l(KUt#bQ)}N;l!=faeb3#C-1_A& zuAf2_fMl)&C9_g3E5=%od@89OVG;Z&H{m)roZKwX)OEPe;(cbi^!UZ5dyDj;{Q_}# zDu8xp>gugiM*V7K<24O`H`V}#uL59iGoqm-p#8ooL{J4XbC*Uh=6S7DYN8kph}R7S z_s0#PQAk`zgEohc;%Siq-Y$zYtYWK06d91O4i?4Qmw1963lUwXId?N+I~h(U6B|He z2{2tl4a`H#2k-Tf80jnqmXp(|{`N&Ru0OcbvP^>@j%)LNzGJ0sdX&jO?%+c_RlVKC|J@`(cC zYg?y)k4HKEUJqGN(;Q~tFwp=``cBdnGF~pT&_?zm$@RCJ>we=NPJn)7;7Ay9+GZ9O z=M~X|$_zlNin3tFJYmHE^yFBeB+O-r8CKsgsX~1NwY8DYK*boMQQgdwu&Nkk^Run1fLdhp5nmPIr%i9wO z3P`I?8oW@mh$q!P5!-bIYGipVcU`B=T3RgzZQ>~ ztXs^23#9#o$6&@PVjxiM^A1*BGnCc%l(~xHgPD$8LJ4|9;WcA!&aFM?)SCl^ZGS+0 zUwg=@_|)G?bz1|@3>E?oyiP4DwSh=d1nA%*pmbyqL?`z#l>w%xiz>$j>c(;UoD4$l zTxu!z^TfjsMYBIK6DMFYAXRUFlEX074R!-vYfI0drKmx-!ZLhgkj~hw|JDQJx{~{E z*>XnZ5bR8|CpZ(H0#SzH-NNnYmTv4Q1cImTZ|B<>{posLf3qciK2IEI7aC=L+Rj#- zd((R|sP^#@=uI$vu7q+6=y^rApFg_@*1beS5>4g@A~WMx6=lqEui?3O%lQYsJuhOd zC|m_AH>_(|#?33c9hsAWR)^rfxS@B4+efFcOt(l~Y`949$X~#ppq!sh9jBjfYOQ(t zmy!tHt_}gEu74L{6eEMNAg^0)_$8AADE~@?h?frtV8#etA;}Jew@7BQt&51pz;XYU zQ1p5I5hKarGx#KF35jCdWs_1_11SNkI{1(jP>oxNLR)IHm(6GMfjA(t7YTMvbx}U~ z*mXc>5_S?E_~#XjwLzYH$2qQZALMuHO-@REiR` zInFzG9UnT6BY{J+*f+iONT`16G5S~gXQjBO>XsiBD8N%zYT|uOdb=Bzb2=VVCwRCE4f+aHAn1z6n8GIwJthP%g@^RW$ zEe{PadFA~_2HRcXaheFg48JwKfLn92<*Rc!wPTflVEqJl9G~=Z9bc2jOf(t;b>#1{&kt zr;7zIl6JQVZ;(PJqwdL&*DNaS-p8cBR004DYOh&$euaTg%#69+2>e!$Aze#A&Bc(CJ=%I`hnd9&>&@zo~8A zr^Ge)X_5pPYnY!ct^$DOXAS7j^Xqo6=2o^$4vllkI(L1^59EveLJ45pF1w0JpfF7p z?cxY4)%@de_P2`Ym8mdVm=SpPI72>UmX?G7$}L-StIBv7o&t<)+R0e2WVEoU2Y+rz z3s`?&>QegPWkC?Aam0!Nr3byZR;O|9SPekHKIvbl3_eJ@#?ie3+bFDjGr+C)<0Q7~UW0KS(lp~H5gHxcJJpPh0$`l4f& z&Yx+w{9Y^6Ni4;(o$#|zuM|pJKRJYEy8@%Bx`;ofanQ)S&xzxeG?olr_Hb&G82qhT z%4Ar}^qk}t4N!-{v!j~v(2Yzv*asvHjAJqc2FYzAy`Q8?H)E|Q`-OfPDd%FrfB7s1WuZWG}Ggso$YD}@+xb&(d z?Hdd6cAujCQMkqfibrR#CaMs-L+g?jlfG#+qI&=FQFSJ=f1!*^E}$Nzggt?FnHTXG zJa+ZcY>BCZ<7|0b!kGp8mIIm{6)_ijmGrl)wY#lhbFdmRgN+?mM-@<8Oe)HWi1+5; zi7Ta0k}AKf9~!(07iM+N8H8DzC}3Y}mNd>pBInr!&aPd24V&BFXI~Wpw1~0F8Q|L9Aw)K>z1&M`RIfjoSLN?S4BAi+yb&w{ZEt#ZLhS&Ku5l76yZFK<_LkWo7i&oQflP~;$@@u=77~G7f{38Oo!tqsX#rrkn4W^ zyv2Br_k!scQ(!*2mXE7#^J0ay&f|97kkdwg4Y_F?f;D*uy$a+xqp_^r+nL zypCc<_=&w?^1r6@C~Rc>UpUhK9x3oCPUQakRi^K1T=~J$wcxl~21n1?6#mRkPvNDS ztwHbL<}Mx@i_?&%udceUR>mFgIe)!J&G6yQHpb_Y)o@7epI^;~LWo7TK!Q6Y3pInt zY6Yr>!FWtmz63Y3?T1eGhWGgkRKSepUGoffT{`Sce!o;E_Gpe)Ept5_q-0(Kh#=P) zdwMVPF4J{@k!YCH8?`L9Y7PkJSA%pdZ}GF~hFv6iN1a%R6!Fq#W|1GIE>gWW*k9dOP9X~_Q zNk|UNNwWw#-4^*#c(-9b7u9T3XppX!N^8C80qrS>?%3cqD9n>5_xjPO%3b1mpzl^>!u<%}%62>6B0-2+OQ-rcfX5BB_ zRu>^(Klt%S`i*laj3&9gfBUm7CBP}Z+-p7U8iP}Y9l5X^buH1#)ie113`Ky`Ta?T_ z3VCng%VifHBIlscI*X)1wtSiAR3>efDM=_PG74O5d=+m(&T4U%n6Oq!FSobd;WX9$ zbZ=YAoHd0ER95>B9k|Lqfw-4>Oj5HhtK3f=)!QZ`RK;%3$m>Mr8$CBViV%n32DWQlFtYDuUc^*By=yRhs^f#dI>*8A( z-+@|iVoTn$%qxGI+y`{&`9a=+pgHV7(}ff*@@O1e!w466I;S}i3JK`t#$~E$v_#bQ zfbO>IZH(9>mZ%AVsHf}nyC#Crfo{Kd0D-qTMOev2m0g zm)Q)*$9@)IlzI!xP$n~h-g|yIjC~kOnxee|AI+vU#0qQ zkO)bOtaGJkP+>ZR@ywA+eVvsM8FuoSEAX1M)*F7QB_IJm% zu)Jxd7lIPz+|}suOYrgP{R}+LMb-OB^%q6@```VrUKnwWeeq?AyR&GJF6+ zQjpCzytMp9iGp+1DIU+EGvXON5>A`tIn5#2zrax(Bq~Xvz?74;9V2|Y*jJ6>r`*C6 zCOCc?&oIE9rc*ad>~Me}*!X_svwul3v*^g4^skEZDDrLEHFdFDQ5LGw}q#2#GybwzxVbfBC1`V^Y z!VF7PDa=1_P3xx{kuUKM*AzlXl(h5bNaj73oZ(giuneeodUqktSJctZFg;*kP5RF= zS7f3<4RR|_q){_BZN9){WWCc8vXRDGklViKQ|9gcdV&{But|7HRW{T-P92z3EYjZWgseIG9v~=1NYQ7;L(wK9uzOXTG zT17pHf*(dX7)719G+{}j94y~m5y-S}m&sk;koT>5j*7l78m8uPH}Cj`4GUcs8&Ipj z3?C<6Rk8t&q9o^1y)mZ{wkLoef_$vnBa7?o;W-01kI?g77+=UK6zSZ3Rzs(+4oqG>{m^iezW!sGs$ z3mu5jm9p`TV5NFSpx&?XXYHLQt7`oY$>t{-13uXHdpAkAeG#OG#{zVw z0x~wSaTDh<+69{@o5uy(v@Cpoz?rwTM|W}hx39&x(FC>1e6~U}C)zhX_2F9o>OcNs zNWw$^hv6eoAN8Nfy?Now&8>&-xlk%kg)Pkywu~`6shQeh-Z9>OpaK6BZyx``ZI2m9 zLwHJtQ27|z6@XT!(&x|Hy1n9j!W zfU7Lk>Ol&B@mZZLSp-;b39%^rER(m|BsALY3;U$b%BkPguRQD zvtaXW4DqR;=jgG#DL{!6uq_44C1V$%ab6>YsH(@W#@-e`SYi_t@5O$2RF}ka)aORMtiX$H%|}Q|isd{b4ejKneIO8I=MpgJM2KMFMZ30p z;i7?3BXHK<2`P_e9S`ZbbV~k7QHSEF&(&wSjWgP30Hf3RQxSnZ7k9})a@EgYW#l^8 zN$?VucWHcV5J&;Rxxel4KV?fIpGT=uPB6d^W|+}?%@J~dbGIC%X@-RVbJQ*uN~_ud ziK@}j&T@N!jm`ZkSj3iogr0QPn3JYLq~|><%Ixr=w?8o?9{=Ldmre1`Y=l^mFdl$*$P%(~pY-Qmgd#Df~e@#pk`H%m4ge&^V`|<2g zUhe)T^j9a&j;Q8 z^^_RkarUBj#B-*)oj_k89RS$sTij7D8yiZwIt2^b0y3N%a$Phi$X34qzl&SO5iNi( zG{HP>S0F}AV30)8;? z3`nHf;%yKDE{y1Q)O(RVCd}QE^hH{A%a)hen!)DDnycMjdCArUAu%SCb7rSy*1I)s zNhGEpE3#RmCx(#~zVA!=8N0-;qRgp-f7cxa9kAMJLQ#}cIBTw%f1%g!UQa7PWHwY&j%NAQS;1k64z2ntB(Bd z5YAW2$FU<4+5f_&r)*$m`oChUelak8{xZA1W!ra8|F-jrt#U2P@{iXX|8Kut$R6C? z;jwx+4HIO8pQUL1Q8i`5sos-f?tXx)gTywQ<4oWk@*e-6=|XGk9nA7Z{&xPBz#g4p z76Z3&#XK&Yw=?7UiuJ=j7x6cA4LR(j)AE3H5Asdzjx8I)QO zZ>p*!UlryllWlwc0Po7MxT56*RRu{>^(gP5L-2D;)5goM7}6+{b58)uYOmC~LOK18 z-RbX#FS7{DTW=ieJO;n?CC5MhMBnQb$n6iBFAUt$r!)<{6cLzWzN%DNmPlJVy>9Hp z+RshTW6gNcU?`bHv3DhAZ||?ghEgJA|CWt?fy-Fx!EtWIoZRzhF+AlG8lJMVleTS@ zqCPtY{VO5M59!Lz!uNRV0H60hHmS%7q@3;3P?o6(YD0c#tFi~M0%HvH6I*r{@F$19 zhJPRE*51FEVJg3$JUm^i&T#57C}vR+wv0&>qWMA*y&V$Fdc^??1}KqR7(kjA$T|Y( zBPO^GGiWzVyzIYmo3k;b?jWosu8$0{nBYmyX%)}GF36-#oTDf!S5Ng^r{h+IGH*w9nKBV8 z1j=_GuCfXA9qE+Hv1-^T*VW~1Otj=3yDJ?rQ3-N0;FjSo9pc`R#F7|cgJ>Ck-~E)E ze*#1omDYfDdMD;TH`{P7qv}qhTh(ZYJC602w0PO)-{&wZCJ3;dA6)qA1@SV|R}9hG z2E$WZpzpo{)XA-1QV4gb+^bAF5V^caB~)LVwI*V?*F-#-H`VU zFEN?x2Skr(VDTBn(Am%*(k0^Ym z`Ak32`)#8fkuAADUE$dIu`L%x78d67PQF_HwH8iKHlm43D)n+S&H$!Z7s;QMa`Pht zk;^}IJHvbJal-ZUm2yH8cVT4B8`m<|-He@S>O_-^ao1T_*xENL;RabbCUEp`UC-JS zy*k!4p_Pk*4>;!;n&PlBMX!vp9Af^!z`+Lbfh?O$9$eIIhk-y?7hD2_>jo5cc78j9 zYd)#hfY;FDJQRrNSikE}-)meG| zoPH&eIvN>f76l-^cBxxl_eP@yzM3y4;>umF13o6vOpusmw_oHm540jP+3AxeQUi)H z5v~Wm8OP6!iW6kUq5s3vS^q^Dc3Xc2hHj8fK?J0PA%_}32}wn|1%~eK0R&W9N~A?f zx*G;jVrc0e8iwwMm*<@Gyg%K4!T#)huWPOE%2G0zVN8nrH%(!R}ml|GHgdD=`e2E?J?bC5DH&StA#gFlvcSO(<<#qd-pVw;kZ0c zeF6U>Dbg#qhuM=g_!uQV1*#dk%>Rn`!aO$IvNbV z>l@%z&rEp0M<-RC4&Tk6w_W`l>u1!DC2ibW^t)aeLTADz*;7xs%@Dg~{4w;TDPH(Nix$Q(?>#=<2g z7E5Vgk3<>%R7miA`Mz;yBq~M)whQuGqib6^Z}N>!DhL#xcxM{`H4phv#i7@b*Btm06}y2qs37WE9Ke{ zonaDTqVSVSb??5XU} zr`HO^J+HKBOUF_&etGx3>HdBIqr9Yp#vp|6eFO6#b?qUsAbjy;Tt!6n?jd)FjcN^a zXF}SZG_D2V|If7CH<<06H0Ehrb^!KIV^!V@h^d9vjDLuG$EJQHqfKOdJQ*Kn&u_sU zFl)s_9>tA7)a(7*&AYU9#zhVgWo>dZLoWdHSbIZ$av&0fonzjzTk~5gn%IShKVixCn|7%VRGJHha+>* zwzreb7&(__)OLb(_~qh@g)@2=#4@t_9j>D&22ZyS#SY0SK9T|?Ozq^>#Dskb%g_fy zD~9|SoL@)^ufCQwX?V@7oWJhRG%nWfcLpQ9+@d<1^3eOTEpNSat>YCjFm7OtCd8d? zhwMz|mY=PK9hWNigj4`QNI7Pf&m39$5_HI#oOi04srUf5c(qwR@7@BFQ1+X*&yhwD zl!3`;3f((=t3ii)A#v|>otK+DoV1sRgf14&;ZZmMQdshV%mlBDuUXUW`DY-sFo_^d zc%iF~o$dnAA9_!wTC5xPlAJOl{fon6ABw#VuwYj=^SP#c@F;cQ=xdg*&I9yp7y9t~ zM0lz&x|#2$h0iH9yFDOpUj2o4`hA>(DiXrgqhiU(X#jidfFvFX!wUMrc})xuHG5UH zlX!x!be#bWen9()<4m`mY26_400%@Z-Bw}en66~Sd#H?P#t-kIBsn4ee1hq5Y7pY` z{#ahk2AES3&YDL+@$6Hm;QTy~A_)U3ptu#4y!3Y8=dX8Ce|g*I@dxu6Jqg3f;VkGj z^c4mz9y_9tzy2aQBJ_5mjruvJ8H6sm;{Go+a`Ry;Y&~Q+AmjOJweu3YLsE|*@YzJx z0(}^dZ#U!fUc@&#y?-z8lyFZMTswXTd&u6kevf~l4E7EHT>TmuJZ2KpMy6NTC7U++ z<~e+I3XXl;P5zuMCnh9>svpGi zHx$^7vtZjpu{%h6BfSR!F%xb`s$V}858C?PS>+w?&xzof5F$SlRZD%_JIEC}X7~XX zB~GebA|kZu(uaiR{?OhxEJJpM6gWw9O`X4#gsVQhkDMf*gtHXIZt0@H!VnlqBV zKaK8H9*(X`8Wyh7u;>S^|2LsCWKDF)`QK;zj3qk6_Orc*p^F%%$B%vkrh-B%`GE1- znT}^tChcF^?ro|sfAz5(#4Pe}(la+UiL0PY&J4kZIKtAkCT>{$V*empX|i3m`S_=I zk%lDkE|asU5P+9}p{aH4i*Hj$lsP>!`NjLLnST>C@F20m{w$qXR~6w#Db8a)#s_LL zuGOAJnYoya5VLQ@*$h5bMIm7Hda%te$Q;h=*nhRsac{f|a7g91)f6Sgpg>Yp z_H-4*`@{->S1|KB$iQoNQOj$0))2cyqDBbC)^V0~d`0qLPMZh`US1#OY-3OPg?kBf z$Kx#4m6aYZL=4_wk88=>$KtD%=A9CaD zMg~Mq-Y^bkz@irLeoG3xan7r8N)P8H68}+Ny{^6n*4phgGwaTMdBU={W%@(9BjEYZ zxZXE1vtUa*c-V|5#ESu(l2k}^H}-ZtxyF(Xx^!P7{&N`Q8`|^Q>ud3SviH>^KV}e7 zK*)z|&SAy^W5ak}5!&>MLf%~@O&~B^p%Q|*B#scG>Cw)0Kq5ut8}Un*rWM_X-K#t6 zwo*I{vG@O@l^}e}fK1u{l}%1`F~zF(!X5@sg6wY(yDl7-JlwZm(%Zdof9LR4B||eq zt8IP2YrVMmW)H8!ZAr6_rJYG<3C z=Edko;Q7%r-qoqo)^!Nnuef7Ld}y0}i5w57LI@JK3fZO#H(iboMeH!)*!(u~x}ttE z((&P^z3&g6irdhs?*@`MqF1p_r^6IvE?y0x{+NVJp*^1{g-6tbE)#~EEup;4Rm^^X zQ@YbefKP2=+DzBaxrdQEiT;CfB0+-d=zP~1tl#DOc(r(>W={NwFF`-dJXck@S;(<) zQ2{aO0$(gY00a%T+W0(k;&;#;SkvFJL8DYzgXb6c*ZO`vu$%Pb(6|RI45&4SR{k`w;GfN`@EX`T z4_oMi8d6xxb!PliNwf1jj z=?N7J*?taC`)K3CTKbC2mgS-LAR%xNGQw}y)P-5%c*BAs=IJ#-FgG4p-eK5W>PJD>5>AaOx4*rB+(ng;1n9;VV3!T)ocMKMH-pW?i_R@(E`;a=9M?bQy?P~83 z<1QZJhl>9VQ9PBla%w1uWFsf}`4cTXjrk|HVwrp#Us7`4N_feWz@F z2awWZZFDJ{U3#@i`)aetSd}9))8#4T?5iz2ESnwI1GIk}<9Ud=bO;NrtB{`m(MJqj z3@>r8Q_Rfvaqzxs!rZI=bEVB~iSsgBdanWy%9*nde`8Sy%iTU)a#n!rGeg7=&%gO)`f&e4bc&@1CdBcQH64>K0i6&YgUS7ZuqZN0|1 zce)x9y>k)wN52xsx{N!nO4YH4_J0Sma(eOOd+s!11(Xo5=uc*7@qG)AD)p}LQk_Z4 zr_Pkt2eu%wQcbkmuQ!>wA2#QL>oX+$qouIQb9qH#CHHfjN%Q1jEh8|N!l!=NV|x%P#|bhW*Kw%%0nG$ z-B~9aW=ZZ#;^KrIS8t{emM-+~#T~um`(Gf<2tv@$g^Di!ztU^`DpEPi>5KtP&)7o0 zOy+PlS7!o~dBjoo%9`X-w470nTKfL6yR~7ev67}jKG?EpJBGSB+JCiPt^M+>dE`yM z>W=qU_nl}-!{9kISFP+#ba3!Jgw9;31S^oD^3_OlewF`Eas}aA6mpe!BAL`m*7Toe zv=al&xw(h-lgsp=jk`IGfUB%YwP7I3Aw*A5YPVZSLBx^ zR^U3cS#Cc$fzJx~nifMP<+8=Fb2~RM*p=Z+GFj_N%&;M@X1tk!_KS+%qeY;2>Y>ky z`$MC}5o+$4K{ieI!u=GSPgoiN@9|h&X57HQuW~96!s}ElfH;iLh-ja&WNO)w4_>2i zd7o`bh_)5y)kvfYMz!sCtJ9}63Bx=p zIWajrKaNq15D`?u|?-$Y|4i)~X6EEkiY5OK{IX;qWo%okUvB|u-Dg8M4KaTnuKzrXSXosU9z)ZMi zi@xKmxux|WH7GaWT0>gz-1I*BpLGp%P`(@UT@wdJS0$eHK#AmcVGH!N zmxFBAQJv4(nR}}Nsmc6dg$82Vz00fVo1dxQ{dTo=vIEw?KSUV;$2JwWVLe_+8rh3{ zEqK2qEgDuo?pbgcZvBXh#-4$kCe|JSj6FKJ$>-+f9krBkS=6q|E}B9p8wr?`Y=iBR z?a*)f`=ykMzkh&MYV3&V{3~|*W$!e+rS%*8@>449T$qUdlh*GjhD}ogL%xgMS)Puo z&^pi`^>T_FbG;WX3L%wWPXlb^znXf;>8t&Xq{a#BlA<9z_x0as59b#be2K^&G1KG? zHT|gx3k&ry8&U4tg%-aon{U7tC*Oh&*GA9p`!0+s-i%mK>+Zu;$Ib7B;lRIz`IG;rS&A(Qp-vk9PqK6|v4tK! zdiH`=?rIV__VvvNA3jcHieJF6;X^Hazxdc5{Vv?ZlIkzQT?OYbL>N>VAA1n--?*A= zjzoL8+K)l@#bX^{9T}q(mTzYcj*OnNu}~L1Pfpg5H359Hs-?8VMG&%%5G|z@cU7rr zKK1-oWo_J=BdeiDs=Kg+hLc2Ez^HJ5y5(WiN|s%M*Xr1zy{ZU+1||Hd@K6h)c8F(~ z@e(&Is*K6<55>9;FJJGDf$F4uYmhW1cdXoL(n%?c?EM?z?3BBc89^j^xw4pnlbqM zo-&4q#aV!Wr*wo3~w34ydGCqim9xKrvLK9WhPaY z>FQkr%EUu0aOcQa%fm|yh;L)V-NO{zxZCVv>f5Dpt2)#1Q0;b#T2;O)zhTUg@QWgv zQ_6i-@rZ2ZBg>6V#rW0-?PHl6@{4BWz$?IQMDcp5&T(~qrEQ)LJi4#m{1Mg95p>Xi z#92BzudZz_*`4(l2w}2Lrlr0Vy|ip`fN-EJ0;&f>1YX8lq^5=I;t=YcJ0M~|IU=TV z0*=NN^jS|(m<R+Z4>@&X46g7OQG#J@kzQBofokkjijKLqEyH78TY>**)7{e>iBl_xVR@Ht{K^v60AR*f7o$@biiGz>TMrlHA60 zongc97o4xr#swRSjC7z>>i**I5lBa4n&j_R;F{Fwc{jgXvl&UBBBSey#gpF)6^(^> z7z3U&0sn~>yWHELWTajXGpErj(?4?h#NveE?lZo(XQFMvK9`45Vf0yyq${t?7=mw= zGVSKkVsWnOzHjiKoN;@y6Os5>?s0EU&`$If81*F6f*G9yM+buR^_y?8rm@#@K8*P6tuc%L|GnoR{A73xCw^3j`G?`aH0PGBV^x zb&t@}qC@`M)_gq7#-@Bze88_<%s}ZLz*Z@BJz3758Ff)f=r9hB}G6!!|-uCZ^vYvG1tyf!!@lfwu6a?oPp5KkCdrercc4*I57U$+N z2=CItW<1oIKY}TK86!S>S*6athO^zKnZIi)W${vi+#mHY@lHuy3>|krEN27%6s$jK z$x45#3D*3Uk9C^1w|v+nZow!jBKL|pR6#b)4{z&xuoo~cC2pFqX30XvfBK|Z(ynb; zt1b7H>E8&=){UTiqtj@6Wa33&`z?C-{-a!S6ki(y#0IY&Yh5-_PfigNp+5iA)Yk}q z)V$3P&en>(MLzyj=<@5h7yPAaX`;F7Hz{J+G!kE*PM80vSqafFvkji~rJr*NY`J;H zLZ^?>D=R}G__&q^5KWydly)81I5e1@<*Rhtz0Ix>MiQ(El2hZ!k>0^LE>d~z*LCgS zW#Opb&LiO(J(OHyB%%tZ+F_tcC=R#fT8kjrxkaKhJ%ndksV|>pC-nrE@Tel0OnN1oVHX&gf0&S>NM06xbt; zmhdc6WxjjUgbKdTq~5zvIk-xC_Fu(+GYb27UeffVNP?)!qaPUK<=|%lT1*43I z#)F^8Ed_Mvq%}(hQrV4NRHS-l#WY*J5eS6%gyhLg%id*P7p6IsSAj%$G+N_ zXG9ItfTf#Sb{z&+#+*^SNq$8tTG)CS#EcPaT2Z)~>2V?Ss%`QE8pAcLx6dSTNa!eV#-`)02;0aZ)1?+3clos&g z9VaV_zLk9BVCd%9f$pJp!opp+{N!31H>Ll)JT$Z^09oBclRf#e%n z{PI^Cm1x_sdSI^yXk^ws0^aH|lHC7tnKI8~3ZiAV^ho=C-Du1Ni-X%2ofLX!a_jD! zr}!Zk0h{&x>kgMaK^}MkMKYf18V)8s5rL;;*1Mn(w29F?o+hObm~9->RAE_AFI}b2dj4af!mI$K-;e z*--)&BB$*xfZLz=ygy83G8u=tS@1+&O~qnLHqHN0BfKyT(iRU~={t_izV0b?TzWxm zdQUjZ7Uq{sb7#LaDswF)Ry8fA5kGx!a_?omT8uwHtoHuxa~_~=E=%W!Y-8$%?O;y% z=|@UArXvIM*=JrnRjxt3w|KtW9Vzc63b|r_M=11+oM=NlBKExTkkL7L##|K_nHN4H z8n1?ao^jJc1oLus0{E2K@13g-;%#ijYUWtDPD*d}gDmu`A6#_jDuM+o;=}agt z+vggPw$(2tMQ-M`Tn6rOV!er2%n~25^DTOPgjYNgEF;U8klIg0wejKgIMp-89zSnS zAMQt`z#DQ1FfL8{34NPO#^9QE<*`)vy8Dkb@E>9`bfCO|E&U zaMeoWwNGd4Y#5_el;{VK4!7W$lgGZO%ofx0h3uqP|5Y^tM&J*B|C=(+I{y!{({FE1 z`lY1jp}*hMB2`ZdMbG=uRcQqr$Z(W1@IkD8NOi?qr$;yPT_x1f`j4P|iB{~1-4{pL z1At2h*QM+AB<4iO#7=pQzS!i5XF)0C@0p*8exX(@MJae+-)pm=EY{%?WHViH5Te12 z^h8O4UO?LFqvhkmcB`@bZ}alXv?^GxGE({53HBv1LN8UdZL}l;XQNoSYq~L1&BKd9 zkb^I2^}SfM+9NPspQW9B$U(oCYCkpcDY7ivm`ncMlCza@hcgBZ=3*-7eeaeuj&HcZ z>7dexI*Vp7fOQgYctjx>gNVdB&>fL(u}ZwjgceB;JK|yyp~wkUL63?QqfSdDF)YSf zuBhYF)>)LEm6H{TB@zS6$EbYwIQv04V=H&ZsfoYtw;D}@?x7t#VEY>o^sq&yrN%*E zHFyu%OV&3$K(uWp!86CaNo#-h$A>7*Rd^1;g1z!+FaN9$--dy3>x)msP!E(Bw`Iqo z_btIjv5b!3 z_zpHDKaFQPW84AB6m8Pjwby$qhg!T1GwH>h7WVmJz*-@K-%-`X*;!R0lC+5GLA}*j zz?z?Z;y(eqEN(4sKzmtng{TOA%IN!@AEtaY##YyH&}gHoS?uI6qgA{$*8uGGhczz` zwmVw$$EE?1O^pdEEiq~Tj4{|o>n?~qmnYVxT#^NZxDifrM69!)nqwG`7Mf>^h8aC= zU)G%SF$$`h&Be$|ZHd&c6s}q?W$4oxp3GZoOjI<7V(UunYUL(z(^73yG;3?VY2)9x z)$(>-x}5(PyAC)nS}j~<%VxO!Y^;eB;x03OpW5$%Gn{7{d}A1dUg&thk-4!ykhVGd zKW7zU%osCjbAQZuNTK~dw7MY+BG7HeGKY-I{%Kzej;={h%O88XD*6vro1P4IttPFn zGDp#7=w}2@7#vw{P|s(sE3*7Ey!4wQ>fFtP5-px)o`RU)JbZGCIikV8x=bHgv8wFJ z%CtCly0jJwT?&BWi-%hk)&9fBO$Y!KVR;WFtrO&RRN>f z0Ht&C5r7zbe!zVP6n5fLzRsm7r|1{L`ZIJMn{iE+G_xKdEt` zdO{k3n~t^JrorW!E*ji#0c;4aYGAkFm>>(Mi?|9?2A76h6K3(iVLYumIxeB1>!KBh z36P%lzFmU&CC1`v2IP2e|0Z!+$M?93Kh=4YGPok3E4{z7hlwk3kjQfVEQpQ_s-5mi z_$PHXf3puGfzPwHVqooeayG^XtutyXKK8?r`Zc4#BE=pf34MT~BJ$MD)7nMhXkf&J z=VGq|bhDe<@GxzN?0z(e^id82SWbvvoy))pPdC7;Ki+p5T!)dI<=y8t>3Jmps3ltj ztV!C&^7dLOC6KBM{4%U1arVd6$=~i?`4L7PrSZO&sQ&f1L(`2 zikeDgvA%c9VLN5V9IdQ}>#1a#kcAIRnB%K1Hjgc+hi_APeNr_ecrYA&Js9La6Z{%M zgiEeBSwz6km$5w7%2vgC2IMkQDtD*z!Q~B=M-CBhp1%Kp`8{6bJ@`jFqw(h1Pd9J_ zcW2A<^s1tT(PuhJWqNA6MUN27Z>5=_*8%0o4#oki<83SN*{pSBu37=n)OfhxNmV|r z)hC`v^%THNx;{f~A2()MrA^NWH17W6br_<(7WRsb$Nrg7b9C3{%1-kelY?H0tBepYmwo zq}B;(>tX{*J-JhXlsW^lgsBvyIk9T?FC0A$PWb%VbkW#<=5Vrp?cA}`y1X_WqC>wl z+$#O$^Ey(bbUJ-Kw0z{(uAV4Yr7dPv(*=EHWFpTN*?{;C4T?=l7L@&oNHN20|GSMf zPub4S-TZ5r+N~-4(Xcb|3l6Aiw-_t;W^MT&)L)@BI0JMMw=l2{%yZ+d-XAPB%e!Yvw%s-Ct@?BINhEd~K>LCbN^+}^mlV!4RuLPQ{+HcCelF1p z$Q;_6*Uu0^PrrV-tk{2X+s4exf3<(WAE{)T)u<7IQA~hAK{?KaiHOYZ?OFdsToGIR z%N#Jqv%2Li?uHBUD<5%o9tJG6YUFsMiJp~^{l!smkLKHv_`aJu_OzJ z0md)|h}o1mEhbuL@!-SYOrwv~2Ps z4-)79YCyr$s03Y&^8!QC^@WHnIeOx)?ucV5EC(af?4jD%?P65XDe_^_hdh^s^HzA+ zddH2Q-d%Q4JIZNa8l5op=I)JlEd48~k5d&6%bn$-CJhns`qR<-EOK#}lUtUrSyT7e zg5(%>2jWKcvkOOU#tFHZ3bfLlZ8fywMcleRLtt@MP^*O4xj~;)k zLPz}%=JjlRvw1)g*>z&)o9zrS6BtQw70*N5LD13t!R>wAoXUSMwe4TPhYS1vBkxJ_ zKH8mvSA-wdFvsfHyobx%C^z+b;%DSwhaSX7)Tby{7Kp5K9w%8}TPgI!^lN*bWEt|TopR*{>Cu2AM?oAuPV{$E+J)oU}~$Oo0#e|ODhxVV#;Tfd9+N;!#YGdmn~G1#~1ZOpoL-^2woQ6!Y1TI6&LDSgYR-8z`w9X@6FiFk)WN!F~yE&wQPgLy_WDvnCsF)bsRXuJH5xrK+lI+8hOXTKf36ccYij}bfV{Y~Q(lgPLzd88+#*b+!hI3-Fb&;3PiUzVs&?!0| z^b$%VVf@jW*P=G8(_@o@U{x7x@2xU4pP#E&vLJFnNWeJ;o;oiL!cb?B>~%U1I}UqT zq3%Z`hul_1WWCM~tOF>1R{QVANvp`!J`Cu|mpGcv@&)=jN4&K>+#?B6Mgdz+7TuhI zzpUqt@mEUS7vIP>J#iy3!xYT_p7a=I;kBvlI+lIfP_x-I2--~EBIQf(Tb%Ym zu|~S~NxX>GFYuY;<3=8~RVrs$CH7r$=fCijKs>KHTgUgI2HJi{64ceE*qhSM175Ci z5vL_@jKe~uiYRQ~4^GEoSZ&O}{>2~%-LS4zp@fVxDvRGc^|SoX-$?j#d! zFtQxW2?gnohowo?socL?5S4xw&p|Z1No#v(RemzCsHM@>ANbC&t0Ayh#b?czuI)F$ z2N(kkyK_s-!s#ib(sbPusC|CL@@>qjYiPTCA>Z>(&1%ol`FeV0>CW_^y5avHbK01` z*fPf9_G@v`e{k31#xk@)RE680V8Vch5^#MOJMk25NHd}uzBm&ahPl|##;V(k4J8>$(wNF%C zR4cIq#q+kYgNktOG=YanfKRne3Qw1S%BWvYE#Oo>%z@b&K<<{AuA)PT>N^xUD5Npx zjXpz2=}|!tNxXwgFXHdO8AUTiO66iJBQ0}qyJe&BJ=V#y`>0lE~1&S0*0CCY2@AbW;m9eD;@B z0%se~LmkiWOqXa<@~nrG!S?B==J7-QPWKHT9c44?7Yi4Xtt_*W@2K~ABy^`QLT>Pd zQ;LUa*Pwz9z~-$F(3gLLi2QKh1?~Xn7(WzhJF{iWj|c*)qt!*K9^drNkQIxX$ffpc zRdK{SfMWx%jUvgYlmkI~Tg5^N6p#@J{6W%F4Wp+8oJ_gCr@9$7VSd|4_il5Z4Y>g( z@vC}jGdb?xJYdtu*7*X%37c3-_jxw8ulB~2q&(pOJEv@ z%i!qI2|-}%UZ))`vxI>NvtN$U?McV+R|34%?ePU^2aFg?eTa+1beb9J~==;1nHJA4-48XjtN@q*Yc!!<+S zc57e<1rrU(aL&9ELu6ADE95sT4AM}Xc3R+#)S)K zN1-7+QaKto)J2o}m$TW$4PcmsVQY%xKO8-vUjc=QF*ZNNy@_k*jGLKzzT}BK_u~zC zf5DSTS7EZ;GlhvSt#~W=#C2$)P6`}O`)uCt^u^11Cd!qX1#ZgM|78J`#DRdQiE*dt zkB-o{8NNC6W{oB86(ffoe+STnD5iMDb&;WVfVTv=9w5<8G5;kXx)2eW5~}w!f{i`D zIV)2HpyoYAEvp6^JLP&#R@<+e*#sjbG;;Z4g6c$t(-9czu!{+L4uS&=`Q8wHTAt5| z3n}7DXZ!I2p6AbZi2hSUKk!pVXYq70o3EjDS9_fW^)aQF1gpDHBUS!dSs@f6ACFM> zux8=VXCnRiV%;4N%O*t`*N)a=i=8G{dKuaL+u5owP}W!pS~#i8%$J8d9cr>DpmB(L zfE}nYNJ;$iTk_m+_uE$=R)#2ZY=3+fPl|gIO=?4%#fi+pel?zh%gXxcqR$h6b!5B@ z6y!9)k|i6b8t-SxBTW+|74(q%n$vHe zkiY(*3nscUiyrmAR3a6o1{#6WO?77iB)=jZX7qM+h;^4fgbIS%3My|}yco;&ymyO( zZ=QEN`1a^a?dk z8eI(RdPM-&jGXa3YmKL+NDqN^=dOOdW@;PB40EFUfM{<0EkDBmj+N~(T(fi#E8&X) zeXS(J40qIfk-t87`9@+=3-Bq8Hi4agepry}jeVTXv2T(Yr6V#JLwnrSHficaBynpJ zJ6?teDOmrZGTe>UU0RWd!B#j)IVZ7dVN>jenKQf-z`e2(#TI2;E!S`$T4lQRcFAk%0M2Lyv#$!r^Bj zJ4Wq<^a_eG^TE>ZP7Rxoc(J@RfgX;(IK+)3sj9+AS70Os2YI9*5EEf3vPz+>FJmS@ z928WaI<|3FKL`2g%OPsDI*-lZ6Kml-HnQxAy-s$0tgwo5;%{^e3@`uli0aHPT!)eFzJw0gD=wnY^%P2$f3gDiOriwO*Od)Wl zxK^avCP$~j;CB$H%K<|n_*h!p8WZa~n)jsPiRjDG>>0xlzK@O6wpiSPUD}=NzXu9- zrj5~0mHw)-#;J~}F_ax-GE$XFaHoGGZ%qqjGS*ZW$QEc| zYVTQZK9~UBINpL>MrMGyuzpu!}a`)7Q zF)c%l{oMeP)2+9={`FLE??KRmb16kTr+{iEx0#LW3FfvR_Z4Nj=G zCoP2uuAxRoZ&F4+z#f(vpV~*{L%oCU%Kdf}J9L82ww>8LgQaXvuF>?}`^AspZG5K> zIH9Lxq1vIweb<35@w*sn?yBi&Ic?|W6rxOqM*LDc@9+MyN7@Z<;XWr4dw%mXG9O1O z8WSS7%_h2bwXYY!G@Q@F|5$kVOsYG(x0rH0Mu6cTs2l-? zI4mC#I4e*zinP^zG7+&AWyz=+>$GB1U)ZKrGtMs3HSPIKoNmv%Bt7)@J67_QFrcfs`spiGm~Oa8mC#RUnA z6vFS)DOjpY$9o3X!5y2fC0YJ^!J5?)5TgGbLBL?PX3R;cdvp!$()7%0Mw3{85PTK`J|Y`a^GmVs zDWmLHs1*2JT5`|RVFwxyn}5xaDh#ww&-K5P(yfdgO^KUH*nFET5V_H|Sg?fl*m-5x zS5Ig((k_IhlYxR8#-4)`Qo0(FRb_}vSp@eAT^S7fG;!j@1W!ag=xfGLvWNxMy~DIu ztTLRoH5)WgFEmj`9JG^|fPlR#7OUqt;vbtjqU#N8lq7x7ngkymjmT3oicXH8?w~W z5)LC*b*ZBt;GF@_e*3HM$q2$~a#**I)WZ7(zp4A{I0@oO>keOyK#QB8fBzJLZYp+n z*RShfeYoIl(sz-dPv3eh>&Ix-X378LiOS0TE0)qV-j4GnyV?(&+UFPpH1SfHgTBOj zeFg-Jd$(1ih|WgsLcE6$C69Dsw4Zp*7fMMUu$wVW*Sh2Ct(qij0nvtr$q(+H4FP%4-sn7k(Nt#JJ zz~22A)BC{`swRHb7hMIUYA0x}#(O?>1IW|LOLT~yhHlMJn;Mv2M|PA4KOExNt#_;W zdgf9ozTIWSPUs{$9XAgpNSLa^s_kB+R}yN?d3NZ$FkO8NeuwwFaTn1g%5zA$ph=fb z2IZssRzgv@fsU2J8L=?Ey9F~DIQwj~p#Bf;JCIQwul}7o?ARCQU4^c>NdP;#2KX=$PUSE zU&b+Rq7Dhbi%kp(9qg6R-J%ZFs$3OM9ebE51Q=EYTqks>pOnaE`$=~YK2KX%Ir-93 zh3P2z3e_1yM{mvr?cc=pG$0-LJ zvjT%FiGydjhe$r$oW+*^naT%pxxl8xKLB}Uw-X|W)`F;wfb1s$s5;WOK|npQBFt-?b5pcOk{wRU9_ z`wxK*{B0|%D$cvY#Acs1NM;$ZU2AG^PgU{2>fCSkY;qt4pWGVeYuW-{gFI^YwzfUF z1r8$AA5*r=LuAA%9eFGEw&u~hB84X6-+Oqu+Qk{mx)^6O`pK4z`45IrzLW<0JBRdQ zl>@C|yo5RT3?{9`h<9(Z@f0evOjBoO2BZ;V3L{opSElu;A|8;-t+yz!gB@DcJ^DewV1E@*0nBpbFV6O zE9)3zX&^_g!BG(k4S9Zp%VOhIgWUvpImiNf^=pd0c92Wd)|6ftA^Xt9N+++dxYPsZniIgF6Sk;KjYSm7DQj0rcK;1xVsy1# z91QTqX^R72XVA4SPf76AW$Mmr=iB#cBo|W~H9DM6I?x#!p1p-EzJ4$ayY^(zO_He! zIil|b@V!-_#>tW&-qV=f%@#Kvo5z=Lt`E3jY3zel(~S!_Dr)q8W2YIZzNzC6iwWJQ zae?q>W)6JcGUnoCvp;-tv-a-_MD4F zKTIfzP0ZXS$M%oHEZKcis=&(0YZG>yJsa#an-|s3>=FD7i<=*YYB(?)XD`s=XSEy> zL-w4=&7wR3AipK@BuV3@C*|4BKk_gxJtF5tG3~L21wHPi)5V?&zjOW|b|TN<|687b zDX71lG$MR!`ao#J78Pmuh*V&d@ja?Vq@UiVuYTXE0}FtaD6Q zVd7j)6xaY#Ef$p2B|QA}+wcHQtR3Gw*-c}PiEN(&NP{2hh`vdI?Hy8v!CBUuyX2tn z;<5&S4S0=~*T^1E6Sl_gN~A^^27wGAb3^0>_i`;l?6~+cV)ZGXYjy*#MA~TDzd{D{ z0c}_QnmtF(;N0Va#C=ujf9{bQnO0ZhPwOkK0IWL0b)5g`kx)8miCm44@9=cb$wR%s z{a#JuyFGT##g$@*=nVt=iB+DWTK^f&GRH|A+1z|f=qO~t=RWOBcrOTUYd8fg3A&<% zs$URK*Bt0Ewp{o~?S66J8I*bW=yyHFU#1Tf-F|S7jGerEtOy}>0Yc@=TUWTNSyE@F zx29$;f>OA6Oq+gQPnDO74{02T8ywvH@jQ!=dHA4~mGLWT*i;vjhveIHc)SC^3!j>B zApY%FTJtj!aa!ttCbs6gc<3k8Sj+!o>Ma|hY@@c(p*s`=X^>WWkcI(Ky1PSaU}zY6 zNC}mc?(R>d&@?qh+B>lm9WO#!?pfFD+Z|bdKKz@uP?*rk3@l-oI%%US~!m^f@=b4H>K4c zMs{opKKEWT_UQN8zYBjg#a;Jd$f_aTcchGcyUqzky&{S^RR}mo^0~FYiHm}5{>RFT z^S{QDu}B}qEFs=^wPFK$KTq|pSGL}`<&JW8Wo%~2_s$}(y>{y9^y|E7FBy!?(y?IK zs~X8xd9{{|;mD#^IGhQ7Lq#LyML7`ps**^i+Q}{y6$2T~AT(3L)#?1!W2JsmTy(2j z@#=+=O>2%Odu}3PhF`AI>+(eB^O~c7f$XWRD5^ziy$0~g?C8`~Qh5XSWZNKlvWn7$ zg-D}6rM)0nJjeH|8D9U!p2rrQ_EZeLDpIL)IOmV(QRuAqKii|`viyhyHvZ!wyM0qP z<<_woc$tE=n&Y@Dfs7O-q?Q=2FfIB*&xgO?WNX@I?%XMBa$Kx`YM%u@Vk>UqM)0}% zP%q&6@$BrY^rfw(u4YNBSxYQH0)UG1w8k}D0ylR%Vg#~}(in?SWZJ#9m5kpqNd!eC zuJl0*NDp748X}tar2pYY_b83$3dJW}!lc0Q5g2=CRPgV%k#tM5N-!p!zf5({lm>NT zKf>|r4ew<928Dxhg&GQ2m|sChLdT}A(;QsyQad*o z-~#bZOp@xmYFZ5&>3ah2))Ih}N1;Np5Y4nTC*?-#dWKg|f{5`r+47n&k1}Da{p&sV(j*coeWd&x>VNd}&}eMq>fL zGVhNDj4$-?(OXFjI<4^$&`^{bww#p9k1o74Z#9>~&y-^t~eTd6qQO*`tKm$ zJcw>AA>rC2_9DB1m%A-Sh?n`&+%LV_KG)_ObA3POy3&gP6w81+2`Hc}T!}+T`BnGj zo9eTYA%9uBP1gfE8lsl3n;yAkh&us8Bf{5ns1%Q|(~o0CiLIBiw%9^ig#=Nv^Lxa? zm-Glesg}XXe^Z`Z=5{l#|*LYUxjI20c-k?tVwlVBV@Q1$uK(ZJRtbeb1MfEJC{hXKf96{e z+7|+I&2J=rsrP2NseZRr-U$$($02}5A}9|=Z+-#?l^KvuqZGIzLvJrHTrXYUZbqMf z>;iNeMRn3D0qvPAS~D*FY_NrDHd4s|ue)PsHom=EyPHVmIYpvykVCYeJ7k+aaMr1)#nI;2W>oEsqu*qgBumsSCWfCzpuZcw7AViJugDwG0L7wD=teTNb)}< ze~!Od1dHx*UNb!JjkPCM9FfUXm7!xh=;E6`0u+OkaezgD7tX$8&zHI$2frTa=x+^~ zG;eV^Rx>U?!{#^0k8O`CrCbT)P*I2Zg4_VTG<~-f!QJU<6mNL015EvB1*U8#;O^1_ zGVVOvS$$K>#+b|#gw`_7FwLqM8bUg3-aicdY>5BqRU`=;X0(L^7Js3OPh>_~+0h}w z@vP~?OFn|n7dsILGsTs*(q50h#?Rw~@P`S}Foot^^2X+t9@>jes}zrB_Iw%Z;=sUrjsLykS~y3AnEjqSpyFZt09A zO9)^n#Y$)2OSM}Ef)#e_Dtt*ripCH$rFrcuz&fsIU9MfW0p&#pFOZzOwA&M|dZVbAT1I2aQ00{}xWs`<3 zfq%TJ8`bCq5#3#!LwRyQrs)=K=9TYW)i#*Z5Qf_zbY1Xd4w?ITWJ6w3)Oo}4%yjqO z*VBVNqJOj73boijMsd!CK3^&hQxfdr0kj6BJX}+}Vlm(>L1xM=q|;6923!!P zFL0^*1n>PIG||O|O;zz9zJ_v6HvvRY^XKaO?OjmK>Rka%so*LxcQfKG66GF}3<5A- zEgv9!q@3+wK@4uD24%&V(2baB&&TcWPDs{%faWOyIkw_Y2ENk$T>}g*iZD2HFW0`_zKUEOHUbbZ?WIZLNZL?{7|zYGH;*3Mgz=@ri>B3J6pGa;XyN+ zCB}zA{n`R8<%Mlyv?6cox-1eeIenw-$cfKDqT6a%KSOQLu0MtDC&Bw4qNVQOlHK54 z9Y}l!VJrcnCz9uOt8kl&6#uh@dXy(#shPi(Qih!tR;XiV;RMokj+EwgM`Q-iNw6f<+c4x@a(|67@Of#l0|79$Pahs0g_f6lb& z=+r7NROyM&e*BW<@ze2a_67BislGBA>a^72Wal#XWy-n6p8}o&-X`I#I0jW&7h#eo zEB@kCI%!(z&Xsp_?wyFm_bU=sRJ9~VSy-@uY5*tvp{c+OzBV1-pv^)*&Q;_OqOf`s zCoZ@+nR-ngN>uLT{&tiz?5(V?_ z&-Rz&U}u%tZ1l8)+a+^L7dy#952N`6%{Jt#p^zH0exo<~l_1*2Va56$`y-3YW|Yfr3J@X77r?q58WoBBbW&t|KhQS^ z&Gdn?8`qa9!Q8DPfb<~TTT-Q43i7>?`lnI162pLRvb}+-9i08PDt~1aW>(X@mOcuY zZUVdk1MBa^1<@i`nsd>mb`K;So)^4!KV%rWFV`nd!?E_7Hz> z*p?6%rs;eIw)~E^jT+A@+ky3GTaosijA@%7+3Q^+Uqk<)hefrjy z_Y0<=d-|XL@BmHn@YfKUx{cvd;DcL*ysVz%PYMaOl(%y;uk0vj_pK72$ec$>6HsM7 z0+gxLn7($`>ba%+1xkj$O6=sKMAGWd$76n-RjwIPW~2@o6Z|dqsO_gp^UyOlGnxMZ z!X7|bl4p=WHScg*fk%-Rb_^cBe8zHp2U>VT<4rD}P$#@LSKDxOn+>|pc{%F3IW%7Y z5c~>rh0jS(-b>1J%M(*j^S)PJQQUTZ;keZb-Rr^Uu~2budsni>Ypi8DoBJWBOgz+A zBh26WRp7NW@e{gUcXQOa@`;U&wV*3J6Uqf>-0-hA(3KV=wOov-In~w37_Yb!x;^tO zhsFCrbH@8Qr`;vo5TBrz1a@Z9@Zo9bCVf4@X@{v}POs&Fo(XHf!UwE0y#9}&V=q-m zhXxDZq%mxf$qm4p0dVxKhmH0ukRrYR7~zeU47wDi8r8~tNUFb-Z&>r6?)w7?L=Jop zn2EO+)QN`26#X@t`MTI=5hSEKwwMsWXmyisN*EbsFa#VpkHazxC#_#YmdsADinDsj z(469{Pwz)!x4xYv4619lW1vXx{(Zd#>^;kJu0wiTXy+%uIBz~1n~a6UBQAeOD=y5& zsqZ9(XW!I#3_FT~oo!uLf&$+E|FK!(_8&I6$T4p_uCbPO?Ax5+r(d)?e`hf7*9m}y z5=OiKa!(U&Va|6?T$He$3uXB>7{kPmJ4ozuUN1ASE>Eq!Lr)So{x$6PxaxJ1c0 zQC#I*J*6s>h3ZKIA!Dp`v@9KbQtx}sp z=tl~DTt50OEo!TqQUFpp(Gy(F_yQs(b$R`AarT3Y>YD6da`^Mv^Ob-UrLjkEo{@N# zl}%U9o9_48v+rxE^%VkSHs&yi4q ze@~}pVZZ!+u#CV2|AWzkPgM#xqLjP35Em=2Lxb0AGy@*S*o?k@}WsJHaLXL8B}qv%s`mnTnq2mB4MiOrS%5_aD zI*_=n6B%1AAgze0v8`-#1h<^#T`x~3Z)Z%W zkVxjSDP5(Yr>*o=Zqt1$MjgYW3PLZH1DHeD0QrKtmk8w2I(pRVYPla-sw*}yMx8+F_5$ah8Foo6GmEkte@qX?sI;!YhAW;r>Ox1N^h&%jBkkR(w_QlW=k{ePuE5r+9Y( zjqruwJVw&BW*AGS?y6`@)ZE!-=mGrX`ET?28A17!`(Y85${+uJaSYI-t?@#=63(T!W4A3H66ysnc@b73gmLt1Ag$_D-$w4)tp$#P@D|?@{g$B6?UK5 zp7W_vdQIGTxvcq7b`VBmBA)&!VP{`>G2(Brm=G%fEf`x1rEw~=0mq-e<+B7>IRNGCAb*FPpNXlPsnG(mdrIv{xs zUH1Z%n#|(=B6cmP8lY2qx~bvan$I@7YT@*=X?vQhs1U4SS>9NSoMqan8ltv*hDrJd z(4$b`Gc?%?@3jnf!pIhNWE~}izw2!f^rD69M&T>o0h72L!pr@rBq#s$9_G#mp=JSF zZHq!i4K%ey5y}S%>7npIMO!Xb*yYi?I3pgbufo&r&#(F4ejZ^v>+Hpnid1nUsD0W* z1suaBu~t1MjHUN+J|WKs+o`BrvFiJakRjVA^*2to*V?|b=}EcewT;z)?U7$%HHJps zuYWkdZMEj5Dn0U@N)%s!N!zNE4QtU_`&WadFw+%QQ1hqB?Ur_tmc)Xmg~RVzfLXi| z(MJnIZ=EQ|^Y{{XHO+|0>I~n%Wr#__a2D$ETl0uqzAmMpd@Yje_bcDbvyW_ycUwdA z*A-VM01+MdK2wZyLaNu-JXaxu>;S2nZMU6=xVR~MBW20OU6Dpa2M%(Zij^8|Km9p* z_}^iNkayj$@4wd)(T0xvR0&&dnBwu+{x@7-x3)v@?{+^ANy9ZTRkApgRRE$S z`eaHeZgt87EZ;o%f}gGg=?j>pBMxw(+h1*>cSXb1;}@6Xj5dBkdnn|&bY#K%)R>{S zt93Hxx|*jpl~C!MdQlrseBLG|H^f(=v6=`Fuk}cbx@dka$V9v%>;ISIlvJ^@Yiw z{(iq>{N!wS)+m2)OC=l-JG}hGp{`t*6%Ejd~7tw z@}GgRBz?E>xO*^v0ewKA5fAssR*pW+~B|OD|8Z**k4e`Sw zQ36VJug~3WbcjfC4@n%QnVvy9ToP`-!#|C9oG58#W`ucJ8eMnG91B|(|3(3>`ATLh_Eh_I^JEdCmD&>m(hSFx=Udr#Oh*(xS zMNO7W)DOdL5$cd(j5@biO4xY9=D#&NI1}VAt7L@b)`uVZ>n17;b9sly9)~xqD~{8F ze-YH%zih&Lo*aaR!v)sTN+Z*&RH5+F6Ax9iwS?)Gc?#!vU`^?N6{(_J1+{s&0QdFiHGRQH5D zjW=_dfv42UZMNCC*uKExTaS*BLrvbxA9ku+582-hcVK_PmC-ylV^e-#?=S_ z+y3le29sd)dd92u@ZYt+M<&OA&)uD=c-e`#Ra5}9kd6DKY~O}>8TR3`7&lu=mg_V% zH?$$juNIhwIM@ zY&kwA3yA9ehPi9owH^FxKF;mXfR7re_nj>2!eXzJAJ-e1_i|UK>+e7DDa4!lbKHKB zztbR{2)I!(3uHU^2``cKj^4ElwJBN%zfnm^k!zZs+53vp3Yg}|j_7(v5rVhHXV8@Y zlHB%mKZxf(yI4O|{6pb&K#1_&P*6<^E&zh$-3{`}*qFoPBZwrZ5nNYjTTe?Cf~LSl zZcxkd6s9;D79myE8OHoG#KXdFwHo55sba3f;n&Wq<7{69_pe7*hvlH9jDXC31SrMXvmLPw_um@=q}uo;LPX( zWn3AFGCL{jj&bt3!^UfJnbC=ufDpEpPwgUOlP|015o?l&&9+Ze{S=4mA=-^a=Z|xu zmS{iUT>r=6kmS-ZpYHqinIjU!`lRgr=pxzVK`82F#-t|fQgeNM-Zp*dh=a%HBWd`C zHmFr;r8!;K*lmQ=Hdxs_8(%?S4C_>qQ|MuEsOdh1r#{^UQ57INx*@Ct>TXz2VChtb z_Z56Vy5ohWGuML-F+R$&VyhE)qL?gz%QI>Fz8i+x9Bjqh-+EURYlEK8phNB_B~E-O zNoG^B?r}Goj-nD%qvp;Wj9_$;?x;$?+GiL9^{-u+vK0*JcR{R+;a|JfyV#D~Syr^&SD9PNUL_$GJhYDF%(LIv7 zihlfrmSRD3RKn=2HLq4g{028sq80*>7V*qWDw_LC1qlj#Ef9D<4_TAgK+B9mhIrFVJm9|YN zfx!djVqmk=^_tubRE;>Sg$;?$On&|%l?p}Ya@ud-aQtciF@dxx#7UuUOj@It1IY3~!=QFnI( zGk0by`ib*=$oU}6qg6o^8PL*W;bY0zAUg|2;`ooeee()+sV99?_R(rH6}f!pD5Waa zOd2wZItP;wy1vO@11W-5W>@USdZE4t=VMV+tq9qM+5Z3vg829SUpc{3@k{69v9ZU$ zhT;>Wj`|Y`ZFGeL!hdAF#qO(26wARdDiKP)r)}7{07NLGG1cj_i?Tx;{0w84YI3LX zA7GR5pwTkKkT9#XbZ!^={U5IW7&Jdnpesq52ffi$6$kZ@%;5CH8k!6qk5hXmL1tjP zIjxFpp9tLdO2b;8t}K<;tX)C_lwRu8q_6Lk2YuR(?4AtaZ@QE-@9UXez~el{MJMpI za!x0EBcfdE3kn~b(xU!yg7HnB{s!DbX3zhTf~1i^aqg$RftDGYidZb!1M6*MF8j%8 zNd=0{gk&K30hI}@pdT93L0cm6w!Zy}E+?WobS~BRqR+;8u5Cfb0sre=yvrAy&MdsE zV@67sAbzArgY`+|jq$4|pUQ2`uyTTOX&79!2O(>xJ#osZqoU3mLvPZpW{^Ze>4IOf%rYePl5Q3>)iiwMV^Jq_~@wwAjupEI*O-mW1f!ApR9Ea0*EH%nKWPT{iw+HTrd448&ql?a} zEB9BG(-?j?njiT-8o@`!FhZ6ijC-eb<)stn(9h$OO)w|2ERWBNoP;ULqcD^E8S}&BNUfPaj;vCeJ~-8!b{7a z9=YD2XnGSU-J(gRPaFNoXp?zvE2zgQWBXN;qHcxY(>6E#&oQ4}FI%49>r{)8F!f6! z6?N*s53#wM_5Zq|&>_4Qc(cCSbjU|}EbTh0Z(Y4oIFC|q%G>61?gRE{d5)=1N~Jkd z%P=_8OC)1=Nc!Vg68LyIx5cGUzMway9obVj4l-Em*{(U~usvdZbtbu^ys>*&v~ad_o9pi**j}j9{cdgc4s=z_QQv_ok-LPJox=yn&aRP!^Zv})e97`6n8 z1Dc3)w-1q;X|@TEy2L;x>x`X$pCx34wB`_@OJvX-^ji5Jd49{=#e}xwZDi6eqjVLy3Wks8H8r2r?=!e{oq06_sXPn+PG}LOIa`y zOaDG?t#ArhQw(ho{JGk5hkAIB=iL|(hhguCh#|gowAlO%2Or?{#x&qjTBd6t#fO@3 z>H@gPc1h*h@y8|G*_k;TPLfXq=Kd^e2($>@2$kQA9B;nVtc@(# zHAiElSsd&&q7O^T8*RFxglR-n0@S;Ac=>6W0JY%2Hv%IU2jHuBiv|(ZXDdIx)YdO29VidK4{D+zH46`IQ8wot&_>F99IdID+Igz@Q*b{V#H%F{lDR$5k}cek|9ql-U9>TpuRpHev% z!*d?V#6Ng!Xou4(yM@57RUs%S%Q8QBy$Bb(z>E3L{vkqXT2kW6f56HSD^6Jzu&deo z7Jg8vTg}wN*`{q{$mFnxilLn+79ey%<_PjuWf5m@M&Yn0OAS;PJD;>jTJ+HoI5hk( z;%#5*-mzn0>*!uIn^vz|{uS8Dq@tgdiTq7KTWTqSYKdSn?Rg-alP{(L%vmY) zQ;{qTDa!@V0}D*O+v0lESM(-1tu28^3x0LkW6o~aE>d}kn7e7O6}v@r7|Cm8=vt*! ze;0daCgrs^ugC?=<+MT{&N@muEWB8Fvmy3~xJIt8P_kVU`-M1-hL1kf4uOQ8jtyJj zf>BLHZjVEiGmHdlY8V~Aa|?7LML)Oc&Q1*N4+~Hz)Kq@%Wckb`eHc~5bJqJL4djmDT$+9THuR}=S0_Hi$`hSV zKhP;A)5V;am-FydK=1^*gZai(d!16?he;WtOU{uy+pi2u63MFC$|WN<3A>zy*Mi2o*zA? z?8kXTbbHq^q+)4*UM)1_qI;~ePIaOtlUNz6)SDN%J^aZ9ff^8_%#zLj>p5}knD$rh z{!eW1D2F280P~hXfF2_%ZI3!`v5orB#WScevbdK5e{U<~n|$W1Y6DSlrWYo2P*T$X zWVMy8<_W~0tGC3M8zX-QAi{-XK`d0Q0^QL_ZN$I z_PsDy7seczUYnJp(IkN#!}hy+Dp3V|z!ZQKI-|?le{N`5oDLtH@)#c&*@29|(YV?X zIvgz9#co8Qpibf;xS@WR2j+M%MBRn{)K6hz3*V?({mlpp_XZq{Ie( zAwU)RK{05d>1|!NErUgy(iagEaf2#`dqN+lHx7bGZ#;1^gGht8===Hj#Pp?asLIFM z?$Bm{%f@|?X$<8n5l9oPHTNZ=FB*0`zHxOam0w@wm9EHN8e3}rr+i^Q^ z_4lT&%ngXs2Jie%&h0Ou^2dUL8io>7$3DOHx^r|G8y7bvu3A*K6r^uFZgGiqT9B!o z38hQzQ=EH7P;{tZxUY^BcoAUJAp10KXm1-!zB!j=w z`S+z?hOV!kOQ|sx;x(R5PmGTj2A~qy=}uMo-Uo3fJ-%9B=@g&MR5!{>2`WJE_Y(A6 zS4qF98iC&Rj8;-1lx7J{mJj_=qqri>$>^ds=_Ejx0sv8Zwb=Qor|z??sVm-W(NCdI+q-01Io#K4J*<-3tl!>95; zAqfQi*He6wofdSLPRKZmZ?q&=8jLc9Jhk*Pg_dJ0eEx_}B+`!%Kkmiqqm#UjHjxFO zzxCBL<2%f)F!1PDs1%Wxml8M&GR`DDC-l5K^&}ByKp7myEZriLHWjQ=${?##Oe)!z z5%vf9O-1<3X)%`iT1Kw{hS)^zufw~pcBckJ>n|9io^GmFev2kE{pSk15yl&Su5|6# zEHx|oA0+~f+KVFShWi5aH1fPG)VSRxpetl1;3beCWM$V&ib2#@I^yOwsPiDA)aR*oWUraoi5BeK%rCllkL4@JRD9{#qE zcCFf5gC{LB;XAkLRE&dxlqu2h7Z#$uohH0mv^~Qr=2L^hXC9mbZDn@Ie zPWOySWLg6_TQL$UIcAHNT`8M3Pyv{8z3i3Wk7^`kmS6N^m+38VERdJx%5Apx^j@_Y z6h121>XPBTH!fz4z>N+jtjNZBxePUP`z=cO?xS($tsM$4xhZ4wpX)bl43~NP-B47N zr?%gpKu6IMWAq|dB?jAdKZ(-GUF$k3b_4(r=8oX7Cor}&s?bkk<*(`*om$g9pVq;q zBultx`$dJUTiZb{i?sc<_7{Kacdt*T5x!Se2N_G1W3K_mnnhIjgd*SDHv|{nO!`aD zWivmf+mc#^5uN&DSUuGmpk@q{#8morKCp?jD6P#cDc1CLyLWi=*9_0xi22yHJtQ{F zvc9OVpeJYKCY%67fYQ(fZFq0hHcG}TEqKy)eA*xtp?pV?%aORZ_8iHq)}gU+J-Fj; zv1uM~gIBJC^m_4|S+~Dh>4){-?eZ~kD<7|qbm=?mjH74ad*n66!oDf~$iN4OhwmRC zhr|mUk@~KdS!lsi*gguKj`wojAqgcK6}j`Rs>>RSXx^Pp?JdOl@;}Kd)h{H|CpjKv3xGJZA^)4T*DIt%SZ4*$Oa?wetz)2Q%zBZIJ$#1wj9U?@&JR^L&D?;^NO; zyI6^gjyem9^H7_2ncVLvcw=#J!d62@+loR+3Fg{38-LJtiYga;{*Mjy%}1g!{J(rl zFuEfb!ma(hc&YdKLjLgDkF{2>aTV}0FASL>?Iq?S$?45Xl5(Z`OX=q4eOqic*F5O> z>B_%hY|FMvU>_r;z%p-I-;1261&MYUr*rP^ZvZjozOkOzb)<4?8 zo^D(wW5+PN&}N~ZMpcyfx#Hr|3!sKdm!oE{eJpWgrdD?I{NXZ4ppzW56$QO5$Y-P{ z41<72oXmfl==`DV7k^(hk0J{X=~1?|J)U9&hL}%y$CtkDo`Ai?n4zYyQ-KIZQH@m zz!v8Z1G3V_L!JU4dqAs$EI|V5Gid^aheIgPKVHhMz%>044Y0+5c82hkHFeJ zTxlcET;`!}h!=Li`68#R4bg;pE~6o&=->4sS4Gd*G%B!}f5k9S#7o}pdC9o^@8w*% zIm+b--lX1%l% z&;i0m(=9ArOgvQWM0Q*6&zYZ^pB@w|u~m%5+)=F2U)>uvi=z|=`QrVNVeNd~WI4>D zD&zTO44s2gp4t~|WiMoPs=!VFn2n^SE=_glD9yN;mxrubt*WHbIBQYSzvUVd0|d45 zD2p0Y&$L%thKH`rcl(ct zqF`K_L8h6Ktat1H{bB>oNpSp|>aH~t#rL@l*fi>`Fp*02>#bAl3>S+G!k;rN5P5IP>4icGQ_ru^m_btApBKFe4A{sp(JQ&on za2_O9Yc;SXYbkZ05;7+8a}W4sGK0i+z{~NM?;#!Vn?9XQgFn)TkKhF5nx-wza(dvi z1KWI1b99JiPn<~SPYa^ui}p=E#&y*SQ=|6na%)*A-QN8E0q=sK^K19q@mpYz-~H zS9MEQ>5p<+=leC&>16Yd-YMeZYiutrEWnc&s5Y#wEv`l#lZvay{$h3?x+(7K0e+l!UG;=23_&0FMgr$C3<=xb5;`t78h>`(g_4hFP{w+4 z%(M6~(q2aGi`(4QFT5Rcpaxn;)dos z(85Kcxv-yknLg)5(aSqgUNc%vNiZth(yoafg%tJLl|8g+A+631(!>{gky_?W>R<}rz?KJw#nuKwe8eMeMkY%Vf*2Aq~5<5|r zMJ(6B-t&a`;)nv*8bwi^sVPU4^3Z}f*i*4kQ=BJL>4X0yeI4zyLTQ_W)T=`6akfev zCG#}H%)!8I!a3EMfj>=i$?<-RKQ_zoZ#mW-$AZ`hvdSXMBkJo+E#lip`RC%XsG&w^ zeV%JVKE(>^YjlFfOz(J>ihw8RkTN`Ny0X%zt?UiGz+Bh3~F z!eZS(&>LW`KDZ~?A#J~a$7Q7D{s6C>+u0sED9~@88yw(<-%eDu#XL#sjp}z``lr~| z6^cAC)Pw#_YByjQk9Kny)r61SjF$U7t$QC3o%nj&2|3`b`;gHRF3HpSDbOyK?dED5)_vmGf{G@x131YI84=EzLfrJ0}hrcOrt5>o^q@{En z2>jFoKiT(N%|dfYtp$V1k85-p{+j8}N8RUJ2iw+({3i1oPu)~gwH>0U=CAn7zwGFT zB~gVG;B=UMUjUb`5U70V_Kl>So{eH}9>{25&pOJF@;OfS66;BQWAMj8pI3w4_Pyr{ z?+GdcuuqYRxsiVeIJO>UCtPrZk%?ic%6J;2L>arGO#qnF zD=KDBvD;Se@pX@EUDvJK!AUwLg{(N}k??d+pRtuGYq6ZWJG#ORLU!4(HrvlHV+E&b_XEjw_|#f_kAIA% zAMzk+!2Zwc>IfPa&$zfj5fdW$A9waG-Ai_#*4n7C?_@)@gO4vf=O;BXEqL_(lU~~U zHr1QIQ~Q%hQxn)C(}-!ozk;)Z(*biaKk18dhdd{xi*wZ-&KfJy>K16z3>PQKliK3G@DUxrlq@ zdjM!(1}_6`3kNA`_^T?P$v5R8>=866doGy?r3VZRt%VInpj|J!5E1}Q&+NVbw%PA@PFevw&m^RUBd zo@U#8>dY6K_D%UVLECSq&seRStcX3SQ}i~8FP_>f@(r%w7Lh_V=#Ugy4jrM;VvGt9 z^RTV4Z{9R%vxQ3@jE=Rpk1o_zMCNo@1GH!$kLlF}{=FRMgCd`~`k8eUqA`4l2l-hV zeex`VzR9->BbIo$rh~jO-V&-BT``5Zh!j?4Z;;;~f}=){Nc~>-tL@;vO{p;)ayCZ% zJ}Qd0dPxaM_7qn%bl}P`p`s$g+=^W|F6Gcw76OTh1 zN;}b|fB)+Q%w^9X7C_XggqZ9p2q2VJf<~gwckq(vZGX53Ogt(Ww8S@V>32(n*iBvd zf|azW-5;Z^l|wGfw!oYARi`TdF~>Vu(mjUC?c&?kRA)+8VC(yF60VwpO&!24Wm7=~ zt2B*b59rMX&5FmEOVIB@A%{{d4`-VAf{vOU8fdB0Gr7i(l`gFe$;5S}&!^JniLb1pi;3o>DX23^$(wj{Np$~~XLe_XP@T3E~128;K0@X_(NeCto zYHwK}nZXNAQ?wfVXR9{S(D+4^N*;kOt-Y)5Kpkq>ehSY5ohTxITC%lqF+pq?3Z(K$ zq6uw4kqpGsd#|{cY(LH+@txCl#)jqoWnts%mxzL2FP1P45#91B`$OWU z1mC>f=u9o4Y)&>zlwRzPb>nL(|6V9!#{vz+8PCVO9Ou#3FHK|x;{v|kC|}QD-G||= zA>H9MN=NRIh~tA_6Vr)8i^oQ+!&=`eBF}Pazob1F$;n=;<}O<9DAN{% z=XvhdhmDW;sZ9?x8||slKUUl#rDv$Tl%odDbJmp(Be_^-LIQc^(9B&x{xR)DTk7fO z01JId_g{`99l*E=EYePO?ClPJUliiOZyGigUbDU4-Gjmg zu^jtWU%&MKhpD%UiX+grb{o2};1YsM&;$q?r19YH!7WIm!QCB#OK{f^+=IKjyL;mf zjs5I%&c5S5)?-zTHP&1n0wu{Yw+yoU)^R zfuUTEnt2c$OIOX8CFS*pJ@q4IpGUP?-Y$msTvJ83In4CIRkhoF0ktcpudM@ICkro% zAxn*ZaLXy_>3>Wt=jMVV8Na&jYaiLHzZ7Z>-W8OL8?*;hadxAT|3N33*hz064W3ZK zWS?x46QZEKXBYBSo?Px)fV;$8EO-8x?RZtY*!0#sMM ziY$;`ClIzOG;@Gf<#5ex9YkF8#tD>CZc+JC#+WD^>ji5%SJ(`;9YkVW*GtY7F>xe_ z@iuD~1Kr7~zpjCYu$u$g;1EpAj8w-+=M!*$YniXDq0v%XA_x>B?0D8Q(!8M;K=KoE z$H6JDO#9`^v2G=uconejzxNg~2*iagoIJgkm~E~h7X+3iV!pFV@bpEr!IoHy$D0dC zjW`&&L{zA&BeK;UA3MuAIo%tRg~-j+Jh-;IAtJ8(TH<7E=6Oq$uOBN+t{4jt zDhLrPnXiJPj~|8G^GTj3qVUa*DJQnC)IBb;#uIA;(j7poGiA{9lPL%A=1$Md)fINs{3JALCv%bdc-EeV>#P%VMQ2iutJ3T&#$~~S;E;1a z0etwJ#brN_lUKNdP7h+hsoJKBSgX>oFPZ-%qf`2Fzq2U0k%hr_A(U808A;!D77~53 zexXY5_F`QBq+TbHP*~+}Mi8MbEuw6G z{D*a%e${@SPd(f}t&_a23w=Va3h4HE4>ES&J06&gQzZbfJt5Eo!Yz%h?8lAioA&XC zZEtO&>~X2Iv7TOrpF0^rE`1Y=TyTLkd*Gpzg8fv%i)*v4$m2^=y*M11W<=yd+09v= zeEOa1+3k_Lt74I5zT|9brK$^Xx3MTxgr5i4J#=8Uw?ihDZ^-Khwf0B*=dhD`2 z0CI!B04vnQzR)2e$orkz7!$ZoUvMb9$g*<0c~zp~8E@YCz|k3O@t;-d+1Ovx40eDh zXZ{geh_MEMbA?ZF%@pouZe4s4oal4+%?QJI`5|sU;0xl933RWIwHd-Z;Hl|aV#NqP zRKTLM-^Z6!e1 z6-O7BZ_-RzJ|JI*jgAqi-E(_3WC9leA-$I*U3RjOJLXj-_c~LUANJmgt$W_no$U_x z>lRh0wh3}7K1{W|A(${sx{O~mKBc1fG;lefH;2~l(k6O6i@Q3bKnDG`6Pb5A4W_KzZEn zJ86clydSoBrPJ5d_Ibi~N-e;P4^fz9@kCuQg6U!v9N>ZaYQ&Xr`7Dp^tDR(s* z#gvl@X+5H~A-sOKPf-}&p#=Dy#)bKMnMk~fMPRF(1ReQ{!N>6*Z?jBrg$kscBpISj z0Rm+Jh=l5h*1@i%8%jc#<}jChB>w3(W?tKA<<6@F=W!mJyM6RyW=WA4l7x2;F;rrT9zQnSQ%Xpz<5hwG?4F2To-&R{hzh8-9&T@>_WAng0D& z?jtER!AI*p@9f%^P_eP}j-uKoS!y&WS63D^fyB)A2wp@L+ye($Tj?TjbIEhP3 za2iadkf`W5+1ib$MC4l2N{6WKTdfs$Z#p0%Rn)*?4oOKEyU9DpeVl{*zfcYVF(@vdL3i$ zd4zXHhV*njg2729>Ss6cplEB}VFMJHFah#SsO_B3MubF1&hTF63!pV+A6}8w?G_)*mwG{|u z52*ogh@++G&_a5=*0tT)pC!}ay8+CONn}+5H#1qVuUPL5;5?oJ5Wh=4wi?Tz#TEKM z>Di$!B!4hlwh?Y5D%|D09_yQr*5XT1X@Mq0#&c_w7;-0Yqy*=2F4IYM*n|lX6BZ$n zTh95GD8?n+J9oe$#Cl0bLV=`Q@bN@_?r^)vVsvreVchJ6F}iWYzr&%{1rk8EJ3*RX#Nki;JGr~a#mG?2zzyC3}X zoKvno07eAeo{c&fM*AR~brv>mPu!POA^NPqR(X zo3063AVU}b00<}8Y|NFoe52%Exl01jQp{Xkj}PjVIj|291HU~bx7VVHY={7#V{ z-lEE-KdqB4OJ)!>+2qNo(YFt(PNRvDMGebSPy6-$M-2xNzk-TMBI#pDu_cKtmY_(z zCZW1vNICkGiLtAPVopj zx&14#yoFf3?-ZEB>VvK~!g0~|ib<%0E_fT(zQVp>bsJb{c!a`%+v-dx2E$nXW{KiI z^myKgnXBh>;(b9S$UD!3WcED!eDa@!{8;XH>-gHnwfuGAKSmFjC5WKc(_6tew>4|h zCcN{CtFP>S4xc7~rJHl8itzV#mFc}RHSf4*FXk#PabtFqMlcR*;gCU8b}hDVW``jv z6d!~lu7Z+6*n{H}Wdj}vDIs3A8(PGp!gY~*8+L?6s#XR|&XR$Enq|O8U4;x@u?ea9 zL4=nLSrrAML*oo35>YH;9RGZ_ zz0e|=nh`-94jc@{Ez%2F+4yGKtA;CU>Kr))@1>-gg(ia<_;JAQ`;2D!h^j-lxpBi& zMH&XN>?W@V;NPjf0rYVR>985_!#BfTg3`SQyo+_3gNbAdQ;3wCqat&{pomBrym&MF zb=(Icjb)=C1{zQO{<{02ve@Sn!V}z3y726UjR8o2o-xh2<6BduudqSR_Nl2uU=V$P z+&Puq{LvU(EkaL@wZ|CzSO7_9co{7^K@)UHU=ybu%3(YadzG5=u0m%wi;y%IUHGm? zYO3jMMZLmf+rjeWZ>Rg=nNN%R*pgyN@`bz>J4lx{mQeY)I;0et%O}lGaPWbcLJZIw zd9*?;C-hO$!t)L|0kNPte5J!YE)n#)89qu~cayPpn|NOb*yfL5z5Gv&vGrdLN!vaH%mlKcN?!VytC}N#N5`< z+Ce7Ry9M}#;Gbka+Eh94wYqvIaX2!^17HNGm$Wo3~vmLdZ!#U$dKZa~D%CHT7jo*g(8tplh zH~2``1^p@*qYnT0y$O*1BCy_|~tlT*yFaG9#bh5(59pj8$Hq>YH(Ttjk(rA38&o;mO4;w*)$fcCW-Ea3<>(3Gi{# zPNjLyzIb9-I`})E2#i|{CFfv~!ua-e(ke+Ji^x9Q7s;upH{M4qvLs%;N=iQ@e8YfA zHL8Tb=FD#c(k>y6rfA?ssH5B?IK&ZiwwMK`6q`!)1A|E;vW zrhOIG{@cpF69aN9dOdo39o1J=c-tLq6kx(#Z-ck7jzr{+B2awqC&Ri{t@pXVlfiAk zj-QY(@zdp}l@Wqp4sf9fW3hdQvT-K+tql`VN%BVJL9@l$+*>du=BRdz+^^d=qYb1@ zwqhw(xrhp|U9cz4&~d_8W9Ao(eEA&TWsciN&eU8_(?$wHMXATJ2*eo%o2AfoWR^mv zC9HcIO8}j-B9@=dlrw(TXIN=%fCGxO{4cv}A^r{}c&dY>9(SS8kf^_H)$+w-%=$Uu z!{p!&1{Nh$^Nq5tr*|dylWrl=HHq?bBJFie&gsde4)~~JwtpYwEcmZM=&`-;nwIN( zQz}5JAHo6D`mcR!?ytm|y3CJ3MKc$~&a)&!EHVrUAzedT!4SBzi9D^PL=U{M^nuT3 zIGIW0yH~wO2Q1$vS)TDENH%aNFwbr0lyYYEm1E_;a+*w{td@y-!V=PLXt)kv#>=M#RZ+}`=# z(7JYgOt)iPi~S52W4`OrSlY3Xyr*b(Q`uI|>`M0=*x$`f*v#Wge%r%?!fZ-fy(%;B zInu}!d~e!QJ)-^+QPIE(Y{ZMPR$})icmso}r?1X1z&@(`8cR6h@M3VO&C4dk<+KSl z#H*)s)S#o0$LkFE607N!yrw|TDo(0*TO!NNyDU#^4cTXcyf*9y@#Q-X6<9lN(czpc zfHRf*WR&;Vb-FzS8ll{mO*d@yE#mr&2c2KN7Ye~ zkjJF00=kWcQk|!g*OkNk{MFjELS49Qvdow^rrJ(G1OCoNBW3$jyu7w@HlhlMml`Yo zxHjl!hV^z2EB)=oR~XN!t$Td|*Q$k6s%6J%e~0n!W^mu;s?+l$vs6j4SF(iNe~>H^ zm=L3~`#%XmePuMw2KPgFABnNp*Qs~}1&#=0PDLh*bY3WQ;7P7SNWd6NM|hjsx8~~? zIr8rZAc04Fvr>*@&p{W7AECau?9K_zH-6*xCy{o4TgRidK521BZ;D4c{3&EL-Voo8DKj>h1~t=TBU#VYo9+6>3AtqZ`D-Q{NSbTyj1h< zAPq8JJ~dPPqvjp?IXc#riq-{!6X$-0AipvOsk&ih_6T9)h^t*D=}==9p7)TXMA2B^ z*%bqSXVr90;J_3A5>Rne{#z0!$b5`Xg?_B~gSATkcL;k;1GuZu|0p>(e1v-xmm_;q z{=6`WIlmh5DHXp01I?D6yj>~KJ`88Ke;t6YwbkVAP(Sj~ViJYjMP8zHvfxIp7(YMt zQm`B54e9uZ32?W6HxWt#VJ5F&Z~uq?Ij_zl25|)cZMq}9i;Qe7g5*Zjfo)qDHL*@z z^Y%NBp2}>F|5W&#?>fyIHOzEs-^~NkI%%Fi@DObXbHVc`%e+oTcu|*0b*LVFc>GFA z9P->|5bE_&xyEB+880mp#hx{CLfW>A?YkQ8E&2)UDA;=v)4I-MCa3fkOGrFprUr<> zzH;@_6~UrT@%cXJOOrg21MIywa{fQF9>Sr;urMvRU4)y+H(pCLET!GJrnSK7wCOjT z(6sD_fOQ}RNU1G|!dXb4?vd=A%r+pZMlb!^eY$Hl{s%FJEp8unB3T3(uh!jKb48}h z$QiXB6tV=w;GJ@!}M1sRg7H{a6 zS-T7HIH85ha1+Q0`G}`$6|4&n|B%_hNnulCogZ@7%i(=CsZwWomILeE7pQ(Y9u<_= zAD<07BQ z^D!rh!Ug&cEO0)k2rNyG)$Tvs26l3864;|e3RTuEW}<4vwzHxfPMcN(CngzN?nG3? z6y#XE7kX?CA4*E*%1hG(+gtVS6Mg=q*(_-?aF&>BEJ-qpL zQjAEwNkpVlBnl%mBaA4Gy8Dakxh3>PP%_}q$_-1QEt-Aok8W*V6~jJ1?YKhfDfD$l91{0&azmn8 z%u9FT@esNPP4KGi-h z|3|dni2wyq{_D>6+HN6q?sI@XzT~`BqQA7%zKi3M(e<9FPt$}J7oyU?IPZzF!4~dc zGpmO(KeuP<{60h-iBFygBgsH=q9TBY&OPV{i2w=Hv?8#_am_KI%-D;xb?=*mp389- zo0u9F75^#f{g!Lr;Y^hcU~DvJCDxM?;ky=`I11LrjFKJ~sn2ghFc$tkkb8Tq`dwk% zT2#6n36+G7TX>zSms@vddSQzJ&Adqvu3rJ*`w}>>o{42H%=+EtyQj27bkX60$1S*o zEK_GSK9fr0zLf9EX0vl7)ikYqd=pFnDlQG;jz*j2Qr_+bealA)OaGLIulgEFY2vh& z)YjV_sI-Ud5K3MDOZm6VBM z8=^dKxVa{S0P@bLv1ay>OL~4kU%6ts$LU{-1-jI^MNAs!w6)*HeSX z>S95fj!*>3!5J*ZCBXRapjnx2YP)^syRWtx?dAT%$y;78m{rDlF=#W<&@Tfc!)DM zSj79DJxG^7GLuj5(fQ;L)tXL&_XFw;*O@!R zeBmpXhYeZ9qS~xm1@HP_Z3hcUwK!>I!chPv7B&_Zb}l8U(qSlDs5ArpyVd(8f7}+% zUuFTnvL`5_e1$1Mk!+}v6lgdDLWpeN3zV-skH+q9?;e-ORVuuX=bby+?K8EVvK(#~ zJw`p&>*mPh%ho+VvjOR>*_X#QO=1PBt8{j@Y%cr6W31iLg7>x+C6YGm9&-Ymo(5u@_SDqp?*#S-zczdM$dPhKkoEcf3Y^g0=+LiM1_*l&!6Wn_YWWAf z8|Zr3bHK}nHy`GDot4@-6M+`Lrr&k8W>?z}Y{+{q6!`s#nQ?+)J`s&*kKcCHoi#2| zZHIEla)pW#dxct{@ZMB%-96NRv)DN*iT%&Q>V_@O6W%*Ly?J|7>pvT`J_m4JiU-Zs zISoU#5J!yqA(jaNl<1$k1s(HWsc?a7*!6PUU%;84kW%LAC4@2;P20b|v-P-a?MF!^ zAjn&flOI^9>LK8jW$Re9#q3D;YY3nwx+Nw4yFCFO8wxDp9Gfi}&nUl2;?+Cvi_Sa8 zXls$jO1|n)RK9h>4W(78{cf^JaF|@eqC-O!Tdra8*0T9Rxqq!YWSw_U$@*^aAA>G` zYn>X&8^bkxbXH-3L%rsD9xkpV^LLJ30Irb5c=Y9!`m(*DzwagAmio~`PIe?i)L?Cd zSHlHD;SZpy^fEQZ#(0f@G4nI2E=StPK@4Om*C(6>ZU-d0#K4Pdrb^NIxqD*oyi=O` z^ew{Q53aWconX#9ja-0FNVx>8pROGQhqh0r-zYvpbbhajD78vgf_P#`E&q88sR7wm z2j8|{{yMt#f!b6gbDzN{in6l@QHAUWU9CTT49Ikq;7){@!=z#I-Z+j0KhoT$m8^Eb zVc--**U>7D4QU~i748$nSng2kPsLHW=YLRj~k*JkBy?l~25E=%N z@P{actaMj+s--78@sY~ja5>@A=z+WNS$fiZ6}4;=cNO>9YxLJ*Sr}=b8=xJ4uVY`NrAR2NKIT1J+3B~3Sn{{>g<&my zMgpn>J(B2_$ApRz@Vt1Mh{N2)X2!**LhEq(>Qm3c^@NYvFVyEJ;IO6^qt1~z?F}#x~@0G(2f~TUDr7&4iSuj z78(-dUyXM{9h9a6=n1tsBpb*dsw{oeW(J3l-ZL^y^{t%>Cs~Y-%mv)7Xht`0H6IZQ zK5di8{`<^;D$c!fVzYKp2%AA#)3sDsQp7!)`{-j#ysY$LgUwgz1NBitRdrGA1!f*KqXAr|7lsAvTaX@;3Y!ZTA4j;SxUo z;RNk5M5Q*1hRZlP40-CQUOyqwF zO&6HCZ+5im-TxHw(8qqqAz$KubJ5Mum;ym-+?=vpx{O=4d8u&brvwnEf^Y)}uN}(P z@bGz1t>oOK;-7(IpBe-)(1}Zx$zessKFRNiFyqiPwipxXWJl(S$yl|M?3_D}CkvKP z`7=LuVq}98ofT1zW767!*F+JoD#;1|)Lf&Qkhl7VzfgG5(&Ue;eVmi(V9cm30G|{G zd`UlSs2og0{kfb7+L7m#_)XnM@1h&XkY<*-InIFV@X(xFE`^W0+#^))e6iA$SlqA> zU&~%-Hw+B$Zd0Yd{#DXWN@-O2h7~Fi2pp|rsN*{_u53_7!UyU%ljKL;rk^6TE~fgD z=}2wzPzU7YeQkg2)Z%NY;C$}_} z`73uxNnc~(;?qQR)0x5SNq_JWY6w15Mun;_-m6C?9gb_5VGs?DwrFDf-nNW4gXG`ex7R zRHCKI+@JRc>PI{kFoV^*j!f|L2s+7=WU4isz~V8s=g=;V01 zhtNgH0)rsxx8Hxv)yA&rDmy2Cbw^PZ;)XFN6Izq9X9#Z|-lOPCaKYs`nUP9FLC81` z7(GeA8GKpO@{mdMrJVGxy;9m*MPq|~#+c#9?LW)3QRLC+3)h_KIH?JEk51&cVC#&;+M1~QzHU&k2 zHI57Uqtdh2})$wD0)^ujsIoZnFIWIdqB5+Uz^n%IN;+1)&C{XAzIg%ziz+H22S zP3LhcM;-H>p#e6^kjdxX%Xsw+RuyDid!hw;o+5jR4yYs~%lx~Uzu^l5UBzxj6IKz) zDmc3mmr-**8m0^fegUuQ^#63tN0$!Jc=YoN3)IsYV!xS&rx*#i_w_hQG8kGE&v1n> zX=nfJSTgYUg=8ntn^I)Z;GJ!d)c1CV;-)FU&spg{#Lv%!2sp{;+7A+LI{y5LPi!TV zh0fudEC5H?QONW!D9?I-^@xH4pmT7MNHbFkATUK~^kBj`T~|>F!4&DTjg*a;ht3}5 zi2aVA@wXXNi3nKYZK_caeX;l!`&I~9Sj}2K(hQ=&G~tCGN!edS#fn|d*1Eqoo=HB> z$z|f4Tj{#)Di^qR9<&;r6 zI6~xL{`(5=)DkC;pN-lH$)>w265FYwAaH zD?L?&&<4&BjRf6Z>m9JtJF{Y^@19_i-4~OohOxPXwZNcA7el&)W=TW6py>Iz$t@1i z8;jT4Oy`|e4l@_cXCeMwVm`fPqRi?Qf%_hYRcR@YbDJRRDhNz%?6aaEh4V^c5;cC0 zwU;-ZvzY^0hu$=&R~`-FM`GLJ421rQr%|90vmxD2Oj44Z)~4w%LVa)FVQ#CSPWt(M{@{mQwW~J?mtRICq!(M=3COO#6d^g!Oza?|?y&6p#2jgE{f!iL`FRHM z2|7xVmlOEW{FbbZfB2hw&F3xy70Hf0e?D}_Deu|BFe07S`Y%4GY0y0Ve|cXTH)PQ~ z!`|ba11HDFMoX(_&a|&vq!9jMkx31J|YhB(20CT^UawB&0Qa( z?XzQ@Q|LT=jUfa|$e++zILK=eqwDARiDF$7Q;#nuB>*n#$!P}yzwG};s_fK06ZBT^BaHP^hJd`6Urc|0u z(ddpSJw;-kESW~%Ztpt|#rDmzO;fq|-YB{J$Gu!@x_DdR549KBQkp+YY(ZgOO4-M7 z_;ALLVf8s0_ZNH!PDeTRf9Rg1UiqYatyHqd3C@Wpn(aHAyfoZaGrZti+;(ZWkJF+E z5nFi(@HC`8e!Y$z#R`=jN_7N_+aI+V0iBi(l%G%XqGkwj)p+R^@dJ(LkwH+4H z=z{LSLhGO7jLTc6s_>fdYMW-AXN#I)=qsdLwPFcNX?{uiC!>J?j>mKXka^Ar1c`pB z+=cdCB$zHG_QH7uIz2mP_}5Q#_D4G`0-EZDL!dPs-GrW04iM_~1K-WPmEfu_cWr}7?}6^Pd-1OK1YuS$S+KYv|k?|nF`*jt4E~Y zNv2D!ehI)=+)&@7>1EDmK|t&g7!j~y*wjcto4{6Bu<@eY&^XLr9ucC(;2*aa_x*`C zZy=R6(xY6}Xgf2`p484s$NgyNHyPRm*WGya3{?dQ&X2@3@~O~GFMhJyMbgstRjBma z-dBDe5!#+{<3}EawIC+^)HOruImD8#nAxEIHj6w)C$^~>wbk(%F|%Hib$7!mgOZEs z8poq%2b}Rsio1nTZ)-ZrHHPh#{irBj+Mv;J)-j{bITg3H=!lC>GsXT zpx;t$DKxk4%ITAg7Z*CNnezH{I|SvW&~6dp+vLj_W!H3%HXe+O;S}W*|GTKhJ2Z$l z!!5(O-J~t(`K2!!bCoQV#s;}S;HCEjq(}llIp#hR5avWo6c)k_u#M@a8y8B=hj((U zHpiFHYV5_{Uyg1X;{PWL0;R)*i@dl|xE<%zaO^oYh8PCSFq?waDK7`vbPXPjltxtb z*CBYwmUGX|8&^4g(VRboe)vnK&66!1ld;rl_5w4$RE?XTOblAwgXB*p7Mcz%?`9bH;UkzVTZ>3xMP(980|7$1{txtviU@>m@68HGi z^g%?(Im5}6na|vq@_T;j3z3vg^#hUDp-&zg#m2lnxV81zNnEr5xtHSMIY{hhuW`^8 z%dT&Dx{f*3nX@e}ADJ>&OXBlIQo8=~*@DuC*SB`;@S3fc^-fH?%-EWwhhDM-X|tc> z&~!Emx{#|uw#j7pi0`nd0Sqm0(2dwfXK~_KELF}wP>|r7iSp`NP91_4-!p*OLu6nX zX4#PMp9hH%j zSR(^usyAD#?FZteh_1B`4<-GEUxX#KG;g~$%}FrMDDAy=qmg=z5rgRpz~H4#gFJ=X zba}v=fy0SlQ!>IxE~2ZiD@fc*PA3XAZpxU6Nf?X7e_)+yNLChs&6kF$!dOkzp(Wl9 zSmMuVRUDFeRYsoKb~UU}qkDJwma*Rob1r50sO0}D_;oCljmo!SR6$8a+Vg}*1;M|2 z)_a-OJBe*P8u~6_3#4D0e|cb7qbUH}V1<2Nb`7wKyURZbJD8KQQv|&YM)r+e{e4yB zskP~j8ySQJgW?5@k-7_pfG-i}5X-$C*#i8Qxn0~>XTD<1R?Qn;!$gH}ipUAfPth>G zq;Z4+i}*X}Yg!QcCg=sH$nK(;zYy0=8QVD!6=<$&tl63eEYmVg8szo;My4#DWb!(% z_1(tI(cwi6z51d#;JA7(Yi&@`hC9&i*$;)a@y^ZOG=H!ld~8?PwykDLZxa+Z;24Mc zx#3}>4}^ynh&|j6Bz&eOac7e`vo|C$0DfZ7=Io+$YFmUCrocKQ{>612s?66$DjOc$~p&w+{Y!_6dAsk{$=Gft9b<10ok&&wXUNq9HoGT-eE-lHSA+Z;IGHsbPi>p!#RlR^e7%L8gS${QLnpR|_5g1;DLz3)>lTdHpirV~Gc=s&kL!S>hGLJsgg zsMOo1Pv5)!gfGj$-O!-npW1buDSt0!`W%~cd-FP&bMtV`4vqSEEeMVjCCW&U(S}#( zX#7D3%2gTu*2=vpT#u7(pYvqI+QFVeW!Q!;wz^Qj&&Ni|em&A1ZG)yU_%6qUT6FEc zViNBE86M9g3HM;%G+j2$#PuqwO!`JTnwj7wCtZa_4n{BgHj3T$f<<)DoOjf)kv1K z)}H5?3Q$frZZeH-N`Y2>kVSvjR+4`~?9;V6;lClKSn5ftu| z5DnMk<-qZYU%#&-gTR*%8`rfG!G{!Ly~kyn=8&QPU&L}JIRB3r2ctYS)A+KpJD$&u zH~xIpZ#()mDdB_q#=!Rd(X##h`sKJXs=3_swq`rRjU~ClWhhPxz6Z3*^dnn7K=_DT z7HrF*0LWF@?N8a6q2jKT3|a05;ZiI_X>#*dQN!8WOc?lvs1(y-V31b)^9MsF_Bsw2 z%g)n#hYcOMQ^-CBo#AVF6#{K6fu94$xT`ykk)*+)DR9ANn@1gB-V6gAk}sJ0#=#TL zh#z?5(k@Bh3HDh=3Rh7yeN|H2Kep=KPH|u`*Ob%@7}ChZ&PS5c{UNW=|7Y3aeUy2T z+G!~0U{yXxB-z!Sa7h$zd-wCG9lC>KKrn!k^ooL?|J$Hz7H>#dbJJqmIB%RAHWu|) z1{Y-{u=<-2oo?g7MibsD#o$5P=p~^U^PH~BX(_+Y^Cj5)3I;yk=+uhB3M0j_VnbSn zzWZHht${MZ(}xTen7S<=9}q{cr^GizM2&gaq`;ej~RBV|5%n45D${4YxftZ z1mSP%!J>FRyX}>Fso>zETLb6=uA+{Kmz78d9cGTmY`nGGA_)Rzy zndB3a=P|uZdd8{=VRNcAgoK{!B72_t(>L=t(!XPu*mpP6T^rK^Y5AdO@E+co>T`DI zIexjE>$m%uvtzCO&;dWAn@;`LHCTB`mLmJzSuvFd#KOOfuC17o!;qbJ^Y|_R6c0Q< z0^S@p5U>G<9m?&q2)(T7#h&8kopEoLR5{c6e_DH77V5>}A@_Uppp7mH0LaVQf8nec zymP%i`V0sVYw%jwck7b)O-h@M2Gb7YV)AJd>jJf?A<`bmIV?MX%)+N!9uY`(2Q?#}|ZVa47< zXC`U~m1{IM0W3_N;o<+TE?O;PJfF5oxYa85Ycl%1rB*($D)8YVm;7!5Lfiwe^uzDB z@Y~s3x&E;_ng*w5*Qfdnb(?kyWrwFd(dSvujzp+^=Z!1!6Jug8KxC0h;&GrdMCg*# zn9s3=wb4lbS6mfKKaJp_3h0j3Te)9)fVO_pBJigM026$@Y!CdoE3JJLE<;@9fBVC} zTa92T(|)+rN5PcUWoT)g5hi9_6ll)KJ|M5-@8lH4ARMQIf&Bzuul7v5{SKXp!bc>R zH;W;p4+x9~iM>oQVLWD;xET#+KBs4OI{U7_rWHl&KUuFj1DuxsM}XhE$O!pVJpMl3+vcE5;~3Tc;(*A6JwUER{bosxW>VrpQ;I|AFJr z88y&>+1{dwE`5f>)Z50zl-F@^?aehpGVmHA1DH(wLU8R$sVjbU zdik^LxhV;vn@YW=!fi7*2*vH#m*Bzmn{MG`$}%b}hjx1; z&K7W${ZTk3|1(;Gbkwrj;k(XrK0@SJmF@xv93wClmjk=fo{=zQ@iz@ksgo3zgJ-7Y z2q~M`hbN5KM7{AE{UqTT5A64JGK}3g)kK&~5YL9)`tQqu{fo;2s_IYs{WDvqA|oGh z=nWVEvhRzOMKhIzy4~i_zcC$^f^OIDOAeV~dt-|{r3Z&VT3P-39uY<=>%%S;uPZJr-Fi+e8~`dlTBPt15BU(vBb1jVVP737Ac*X{0s$!AtPXEUFZxJb{UW zK0MKNDpQBd+JoG!7l9mC=6ga?A<|jPJVt6;zHSWS@vWU9s(@oQFkr*`9NDR?RguOI zMyNgWVg7mdrQR+m%%)DmWoe0MwWUh$G3~63LGR_KX}bh8_lnCQv+IXkHMEnJ=`w)! zFd>9Q@&nN~>xjM$WnOa#o+Np1&U@axFI-O+CYm>ZvRihbw7LzoSufernu8Oi4fVI$ zH*clu;=HFRl+78RR{hOsu)V?Wn@On^z#9-XLRcERrX<^ZACAGGetSH zvOh(c98y2tJ+S-UQ(5iyoK3t_t8zmk$g+5Sr{&G^Ypy>(+UKt-*iD+@@q=eRy4E-O zUsM%n`LZNS&KSS~eA7gQxMb%64%N2IO-hBS0vJtcXGig=9Lj6Ngtdcd`#)`7An4AhVsr(vZYJA0qB$=s3gE#~ z`?OjSje$-Ft2Ul%6*@lM=oQbc4Xe|i9ou>Tx1hF3^6fVMuMlt7gy&`zLDF-&aqRuNb-LlL@x51B1715 zE12g|ogHPbCUt8G@21YG7x8SvC6*JtMcS^nns4qrw|GRpIBvC!UJ2MN*ZWE{f1tzV zqw_ZwQkL{En+@ytP#3pLj*X2LJB!Fg%62nLu`Jrh7kB-=W}LxUtr2oD<#S$A0);&X z)TMAqTT`&I1c+3mmkPqKAeh?9(PL4~u)IPt8eKS}vK97cDY|GLC^iM}b^!T~QHY4- z;OWgI_cm(EFksRzDqi!%yAfv;CQvt~NgINYX)rQgQPlW6zf0A-4I6z;x-u=Lcn=Ju zsLqetJsvPhEb+dvAsX%wOvt4y8Z|*kqPQt)wN^*Lu{r3WX+r8;NCgM9a^wlYbghWm zvT7laH3A;c$%A)Qe>$7#z5+SGN&+jrv+A;QV&97?^$vca#l*M#X$Jx2SBHtSxL-ZP zmpf=}dkww38^=90G^46>w^wSQ{AZ7%y3f^u6>{41GsVQ;=Vv%zTz0`Db)PWtWLSRK zu4xNoXu2P-lO^Y4w-k{NIOYd1w#>~{LV$fB3d$*vs>c`RIramNcSOesVThtvpkV#x zlXCYHm|9J$o)1CexxqD)p;+2Jh}jh^qbuiX-Xs1C|zj!ilvX`{-TC+-tX~t)}?hv0gB4CJ_?PPw%mPZ99o3~iw7wN z&`PZ6E7(Wf0%{;vHaYwGZh%7txKUhE~zc5eT9P zz$J-LENf&_AMCRs{p=se%xARyIL7*!YfO2h0zZbvQ-$orux2R+rgLRW_oCRM<@QnlkwhXad9M~n3W)0R) zhlf!RLiIm%Eshts?tw_YcEm03!hK?ccCGokUv_X?N2_uzcMeX87HV3*x4!TvRk)4# zz*uIR75+0L&j7uQ;+PpNwl})XSN`7?4BCrJ%jM$ysOKe&p>M1;hEO(x2B@1(0P%8! zqLE$yzPJB=O6~<4``imta#w#A${D41i0)2Y)FMm8ns_^VQv=&gjUT#@}c3!>T#?ju>@nZi)}b^Nl#E0dpCT zXRCJdFVBM)oqQ4Y69tl}zgC74sblLmw>c>cp|H+HosR=apnsiyqz1u}gdYB(15tl3 z|LR18j|7LNy!B38j%Hx)m+FYnfr}up&HD;(DuT4_uMXmbnNa>{k>gLR)f-!T*r!Oy zTC(!U!(8}`8#^*-PYhWg)v00exKS(yHyfn zm)kmT{q_f9N| zmzDKjcFLR!``z%QI$$Zw#ELyT~BF5Yo9 zMAK`V{N^8yVdSquGT#<>mdFzmMJ%%4_PgIcxFD$b&=UUqQgOdYH&@XHwOG>^P?K;b zEfv0&z!S6GIl9;xPBC!xmjE`2mG3rMdze4-)ci}3z!(Bb*OEV?mwlT@AuZOvp$g+m z$~qru@bf(O|K3eq;3?vd#b-P1oocWIo9X_yiOS!lw_absu#L1{J$eQ*aF}MV+ncHT z+Vaz>^-4iNZQN(H?yEpk>D!tiKMKbIOBx~>iXj~Ob3_L^I8WxdbQJcDOM2`9_h3<> z1{X_7J#8cnz52O>rTIn-=mWH{^hh=^4Hu)y8yH}fB@D6&tEWA$qf42ltqo~m!{+Oh zO=0*et7c4$C~oCTDhXg~r0`rGif2&8_nbzKKMa1Y;}99n0gr5xO7ubVq8HT_7P%F9 zqcG0c-OdW!9_f*T+PpXzqI0P&B$KVH1hxOYm&lB133A(Gek|&aFL6ZVUKbPC z!#v(P0W=@YtUqk*Zb!RWB!Ld3S{|YQk?s1-erU0;FjL*||3p98>Hp*DE!W}-x29dR zfdmT#_uxT;yK8Vra1HL-xHRtW?iSn~8VMTQ8*AJ(xPGj6?X`c-1DN9)�=quvqUm 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

y20Vg6{sTksm<~ATxUe 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 z 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

ysvfLUq89AW^!V6Y&6jzGVb0<)VA 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 z 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ϧ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 m_-_RM8-f472$-sXk7c)RB", "content": "" }, - { "commit_sha": "", "content": "" } - ] -} -``` - -| Field | Type | Required | Description | -|-------------------|-----------------|----------|----------------------------------------------| -| `entries` | array of object | yes | The notes to write. May be empty. | -| `entries[].commit_sha` | string | yes | Hex commit SHA. See §4.1. | -| `entries[].content` | string | yes | Opaque UTF-8 note content. Any length ≥ 0. | - -**Semantics**: - -- For each entry, the server **upserts** the (commit_sha → content) pair. - Any prior value for that key is replaced. -- The operation is **idempotent**: replaying the exact same request - yields the same final state. -- Atomicity across the batch is **not** required. Partial success is - allowed (see `failure_count` below). -- Order within `entries` is not significant; the server may apply writes - in any order. - -**Successful response** (`200 OK`): - -```json -{ - "success_count": 2, - "failure_count": 0 -} -``` - -| Field | Type | Description | -|-----------------|---------|-------------------------------------------------------| -| `success_count` | integer | Number of entries that were stored. | -| `failure_count` | integer | Number of entries that could not be stored. | - -`success_count + failure_count` should equal `entries.length`. - -**Error responses**: - -| Status | When | Body | -|--------|--------------------------------------------------------------|-------------------------------------| -| `400` | Body is not valid JSON, or does not match the schema above | `{ "error": "" }` | -| `401` | Authentication required and missing/invalid (see §5) | `{ "error": "" }` | -| `5xx` | Internal failure | `{ "error": "" }` | - -The client treats any non-`200` response as a retriable failure (with -backoff) **except** `400`, which it treats as a permanent failure for -that batch. - -### 3.2 `GET /worker/notes/?commits=,,...` — bulk read - -Looks up notes for a list of commit SHAs. - -**Query parameters**: - -| Name | Type | Required | Description | -|-----------|--------|----------|------------------------------------------------------------| -| `commits` | string | yes | Comma-separated list of hex commit SHAs. No whitespace. | - -The server should accept up to **100 commit SHAs per request**. Behavior -on more than 100 is implementation-defined (truncation, `400`, or fully -honoring the request are all permitted), but a compliant server should -not crash. - -**Successful response** (`200 OK`) — at least one requested SHA is known: - -```json -{ - "notes": { - "": "", - "": "" - } -} -``` - -| Field | Type | Description | -|-------------|--------|-------------------------------------------------------------| -| `notes` | object | Map from commit SHA (string) to note content (string). | - -Only SHAs that exist in the store appear as keys. Unknown SHAs are -silently omitted from the map; the client treats their absence as -"no note for that commit". - -**Empty result** (`404 Not Found`) — none of the requested SHAs are known: - -```json -{ "notes": {} } -``` - -The client treats `404` as success-with-empty. Servers may alternatively -return `200` with an empty `notes` map; both are acceptable. (The -reference server returns `404` to exercise the cold-miss path; production -servers may pick whichever they prefer.) - -**Error responses**: - -| Status | When | Body | -|--------|-------------------------------------------------|-------------------------------------| -| `400` | `commits` parameter is missing or malformed | `{ "error": "" }` | -| `401` | Authentication required and missing/invalid | `{ "error": "" }` | -| `5xx` | Internal failure | `{ "error": "" }` | - ---- - -## 4. Validation rules - -### 4.1 Commit SHA format - -A `commit_sha` is a string consisting of lowercase or uppercase -hexadecimal characters: `[0-9a-fA-F]`. Servers should accept any length -from 4 to 64 characters; in practice clients always send 40-character -SHA-1 hashes, but the spec does not constrain length so future hash -algorithms are accommodated. - -A server **must not** treat two SHAs that differ only in case as the -same key. Clients always normalize to a single case before sending, so -servers can perform exact-string comparison. - -A server **may** reject a request with `400` if any provided SHA -contains non-hex characters. - -### 4.2 Content size - -A single note is typically a few KB but may grow into the low MBs in -extreme cases. Servers should accept individual note content of at -least **8 MB**. Servers should accept upload batches with a body of at -least **64 MB**. Servers exceeding their limits should respond `413` -with an error body. - -### 4.3 Empty inputs - -- `entries: []` is a valid upload request. The response is - `{ "success_count": 0, "failure_count": 0 }`. -- `commits=` (empty value) on read may return either `200` with - `notes: {}` or `404` with `notes: {}`. Both are conforming. - ---- - -## 5. Authentication - -Authentication is **optional at the protocol level** but expected in -production. When required, servers authenticate the client via one of -two HTTP request headers (the client always sends one of these when -configured with credentials): - -| Header | Format | Notes | -|-----------------|-----------------------|------------------------------------| -| `X-API-Key` | `` | Long-lived, per-account API key. | -| `Authorization` | `Bearer ` | Short-lived access token. | - -Servers that require authentication must respond `401 Unauthorized` for -unauthenticated requests, with a JSON error body. Authorization (which -keys a given principal may write to) is out of scope for this document. - -A server that does not require authentication ignores both headers. - ---- - -## 6. Concurrency, ordering, and durability - -- **Last-writer-wins**: if two upload requests arrive concurrently with - conflicting values for the same key, either value may win. Clients do - not depend on a specific resolution rule, but the server must not - produce a value that was never sent (no merging, no truncation). -- **Read-after-write**: a successful response to `POST /worker/notes/upload` - implies the written entries are visible to subsequent - `GET /worker/notes/` requests on the same logical store. -- **Durability**: by the time `200` is returned, written entries should - be durable across server restarts. Clients treat successful uploads as - permanent; replaying them after a server restart is allowed but not - required. -- **No deletes, no list, no enumeration**: this spec does not define a - delete or list-all endpoint. Clients never need to enumerate all keys - or remove a key. - ---- - -## 7. Versioning and forward compatibility - -This document defines version 1 of the contract. There is no version -header. Clients and servers should ignore unknown JSON fields they do -not recognize so that fields can be added later without a hard break. - -Future versions will either: - -- Add new optional fields that older servers ignore (no break). -- Add new endpoints under `/worker/notes/...` (older clients won't call - them, no break). -- Or, if a breaking change is needed, ship under a new path prefix - (e.g. `/worker/notes/v2/...`) so v1 clients continue to work. - ---- - -## 8. Worked examples - -### 8.1 Upload two notes - -Request: - -```http -POST /worker/notes/upload HTTP/1.1 -Host: notes.example.com -Content-Type: application/json -X-API-Key: sk_live_abc123 -Content-Length: 178 - -{ - "entries": [ - { "commit_sha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "content": "note-a" }, - { "commit_sha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "content": "note-b" } - ] -} -``` - -Response: - -```http -HTTP/1.1 200 OK -Content-Type: application/json -Content-Length: 41 - -{"success_count":2,"failure_count":0} -``` - -### 8.2 Read three notes (one missing) - -Request: - -```http -GET /worker/notes/?commits=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,cccccccccccccccccccccccccccccccccccccccc HTTP/1.1 -Host: notes.example.com -X-API-Key: sk_live_abc123 -``` - -Response (the third SHA is unknown and is omitted): - -```http -HTTP/1.1 200 OK -Content-Type: application/json - -{ - "notes": { - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": "note-a", - "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb": "note-b" - } -} -``` - -### 8.3 Read against an empty store - -Request: - -```http -GET /worker/notes/?commits=cccccccccccccccccccccccccccccccccccccccc HTTP/1.1 -Host: notes.example.com -``` - -Response: - -```http -HTTP/1.1 404 Not Found -Content-Type: application/json - -{ "notes": {} } -``` - -(`200` with `{ "notes": {} }` is equally acceptable here.) - -### 8.4 Malformed upload - -Request: - -```http -POST /worker/notes/upload HTTP/1.1 -Host: notes.example.com -Content-Type: application/json -Content-Length: 8 - -not json -``` - -Response: - -```http -HTTP/1.1 400 Bad Request -Content-Type: application/json - -{ "error": "invalid request body: expected value at line 1 column 1" } -``` - ---- - -## 9. Conformance checklist - -A server is considered compliant when all of the following hold: - -1. `POST /worker/notes/upload` with a valid body returns `200` and - `success_count == entries.length` (in the absence of partial - failures). -2. After a successful upload, `GET /worker/notes/?commits=` returns - `200` with `notes[sha]` equal to the uploaded content, byte-for-byte. -3. `GET /worker/notes/?commits=` returns either `404` with - `{ "notes": {} }` or `200` with `{ "notes": {} }`. -4. A bulk `GET` containing a mix of known and unknown SHAs returns - `200` and includes only the known SHAs in the `notes` map. -5. Re-uploading the same `commit_sha` with new content overwrites the - prior value (last-writer-wins). -6. A request with malformed JSON or a missing required field returns - `400` with a JSON error body. -7. `POST /worker/notes/upload` and `GET /worker/notes/` both accept the - path with and without a trailing slash. -8. Unknown paths return `404`. - -A reference, in-memory implementation that satisfies this checklist is -maintained alongside the client in this repository for use as a local -test target. diff --git a/server/Cargo.toml b/server/Cargo.toml deleted file mode 100644 index 895e4ae..0000000 --- a/server/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "autter-server" -version = "0.1.0" -edition = "2021" -description = "Open-source Autter platform backend: receives authorship notes and prompt (CAS) uploads from the autter CLI and persists them to PostgreSQL." -publish = false - -[[bin]] -name = "autter-server" -path = "src/main.rs" - -[dependencies] -axum = "0.7" -tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "signal", "sync"] } -sqlx = { version = "0.8", default-features = false, features = [ - "runtime-tokio", - "tls-native-tls", - "postgres", - "json", - "macros", - "migrate", -] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -# JWT verification against Better Auth's JWKS (autter.dev is the identity/control plane). -jsonwebtoken = "9" -reqwest = { version = "0.12", features = ["json"] } -base64 = "0.22" -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } -anyhow = "1" diff --git a/server/README.md b/server/README.md deleted file mode 100644 index 3ef41d9..0000000 --- a/server/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# autter-server - -The open-source Autter platform **data plane**. It receives uploads from the -`autter` CLI and persists them to **each organization's own PostgreSQL -database**. Keeping it in this repo means the data contract — exactly what gets -stored when you connect — is visible and auditable. - -## How identity + routing works - -``` -CLI ──(Authorization: Bearer )──▶ autter-server - │ - verify JWT signature against autter.dev's JWKS (stateless) - │ - read claims: sub, email, org_id, org_db_url - │ - connect to that org's Postgres (org_db_url) - ▼ - write authorship_notes / cas_objects -``` - -- **autter.dev** runs Better Auth and is the identity/control plane. Its JWT - plugin signs tokens and publishes a JWKS endpoint. -- **autter-server** (this crate) is the data plane. It verifies the JWT against - the JWKS (no per-request call to autter.dev) and routes storage to the org's - own database using the `org_db_url` claim. Pools are created lazily per org - and cached. - -### Required JWT claims - -Configure Better Auth's JWT `definePayload` so tokens include: - -| Claim | Meaning | -|-------|---------| -| `sub` | user id (recorded as `uploaded_by`) | -| `email`, `name` | identity (optional) | -| `org_id` | the caller's organization id | -| `org_db_url` | Postgres URL of that org's database | - -## What it stores (per org database) - -See [`migrations/0001_init.sql`](migrations/0001_init.sql) — applied to each org -database on first connect: - -| Table | Contents | -|-------|----------| -| `authorship_notes` | Serialized authorship note per commit (same text the CLI writes to local `refs/notes/ai`). | -| `cas_objects` | Content-addressed prompt transcripts, deduplicated by hash. | - -There are no user/org/token tables here — identity lives in the autter.dev -control plane; the database boundary is the tenant boundary. - -## Endpoints (match the CLI wire contract) - -| Method & path | Purpose | -|---------------|---------| -| `GET /health` | Liveness check. | -| `POST /worker/notes/upload` | Upsert a batch of authorship notes. | -| `GET /worker/notes/?commits=sha1,sha2` | Read notes by commit SHA. | -| `POST /worker/cas/upload` | Store a batch of prompt-transcript objects. | -| `GET /worker/cas/?hashes=h1,h2` | Read prompt objects by hash. | - -Auth: `Authorization: Bearer ` on every request (plus the CLI's `X-Distinct-ID`). - -## Run locally - -```bash -# 1. Start a Postgres to act as an org database -docker compose -f server/docker-compose.yml up -d - -# 2. Run in dev mode (decodes the JWT without verifying its signature, so you can -# hand-craft a token whose org_db_url points at the docker Postgres). -export AUTTER_SERVER_DEV_AUTH=1 -cargo run -p autter-server -``` - -In production, set `AUTTER_SERVER_JWKS_URL=https://autter.dev/api/auth/jwks` -instead of dev mode. - -## Layout - -``` -server/ - migrations/0001_init.sql # per-org storage schema (what we keep) - src/ - main.rs # startup: verifier, pools, serve - auth.rs # Better Auth JWT verification (JWKS) → identity + org_db_url - state.rs # per-org pool manager - routes/{notes,cas}.rs # storage endpoints - models.rs # wire types (mirror the CLI's src/api/types.rs) - error.rs -``` diff --git a/server/docker-compose.yml b/server/docker-compose.yml deleted file mode 100644 index 0aad516..0000000 --- a/server/docker-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -services: - postgres: - image: postgres:16 - environment: - POSTGRES_USER: autter - POSTGRES_PASSWORD: autter - POSTGRES_DB: autter - ports: - - "5432:5432" - volumes: - - autter_pgdata:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U autter -d autter"] - interval: 5s - timeout: 5s - retries: 10 - -volumes: - autter_pgdata: diff --git a/server/migrations/0001_init.sql b/server/migrations/0001_init.sql deleted file mode 100644 index 100a2a3..0000000 --- a/server/migrations/0001_init.sql +++ /dev/null @@ -1,33 +0,0 @@ --- Autter platform backend — per-organization schema. --- --- Each organization has its OWN PostgreSQL database. The backend learns an --- org's database URL from the verified Better Auth JWT (the `org_db_url` claim) --- and connects to it, then ensures this schema exists (these migrations run on --- first connect to each org database). --- --- Because every database belongs to exactly one org, rows are not org-scoped: --- the database boundary IS the tenant boundary. Identity (which user uploaded --- what) comes from the JWT, so there are no user/org/token tables here — those --- live in the autter.dev control plane. - --- Authorship notes: the serialized note text the CLI also writes to the local --- git ref refs/notes/ai, keyed by commit. Re-uploads upsert. -CREATE TABLE IF NOT EXISTS authorship_notes ( - commit_sha TEXT PRIMARY KEY, - content TEXT NOT NULL, - uploaded_by TEXT, -- Better Auth user id (JWT `sub`) - distinct_id TEXT, -- CLI X-Distinct-ID - created_at TIMESTAMPTZ NOT NULL DEFAULT now(), - updated_at TIMESTAMPTZ NOT NULL DEFAULT now() -); - --- Content-addressable store for prompt transcripts. `hash` is the CLI-computed --- content hash; `content` is the canonicalized transcript JSON. Deduplicated by --- hash — re-uploading the same content is a no-op. -CREATE TABLE IF NOT EXISTS cas_objects ( - hash TEXT PRIMARY KEY, - content JSONB NOT NULL, - metadata JSONB NOT NULL DEFAULT '{}'::jsonb, - uploaded_by TEXT, -- Better Auth user id (JWT `sub`) - created_at TIMESTAMPTZ NOT NULL DEFAULT now() -); diff --git a/server/migrations/0002_cli_audit_log.sql b/server/migrations/0002_cli_audit_log.sql deleted file mode 100644 index 18f437b..0000000 --- a/server/migrations/0002_cli_audit_log.sql +++ /dev/null @@ -1,23 +0,0 @@ --- Dedicated CLI / Personal Access Token activity log for this org. Separate from --- any general-purpose audit_log. Tracks three event types: --- 'pat.created' a new PAT was minted (written by the control plane) --- 'pat.signin' a PAT was exchanged for a JWT (written by the control plane) --- 'data.push' a device pushed data with a PAT (written by this worker) --- --- Also provisioned by the control plane (`bootstrap-org-tables`); created here --- IF NOT EXISTS so the worker is self-contained against a fresh org database. -CREATE TABLE IF NOT EXISTS cli_audit_log ( - id TEXT PRIMARY KEY, - event_type TEXT NOT NULL, -- 'pat.created' | 'pat.signin' | 'data.push' - actor_id TEXT, -- Better Auth user id (JWT `sub`) - actor_email TEXT, - token_id TEXT, -- cli_token id (master DB), when known - token_name TEXT, - resource_id TEXT, -- e.g. the commit SHA for data.push - detail JSONB, - created_at TIMESTAMPTZ NOT NULL DEFAULT now() -); - -CREATE INDEX IF NOT EXISTS cli_audit_log_eventType_idx ON cli_audit_log (event_type); -CREATE INDEX IF NOT EXISTS cli_audit_log_tokenId_idx ON cli_audit_log (token_id); -CREATE INDEX IF NOT EXISTS cli_audit_log_createdAt_idx ON cli_audit_log (created_at); diff --git a/server/src/audit.rs b/server/src/audit.rs deleted file mode 100644 index 949b393..0000000 --- a/server/src/audit.rs +++ /dev/null @@ -1,44 +0,0 @@ -//! Append-only CLI activity logging into each org database's `cli_audit_log`. -//! -//! Every time a device pushes new data to the cloud with a Personal Access Token -//! (authorship notes on a commit, prompt/transcript CAS objects), we record a -//! `data.push` event — attributed to the user and, when present, the specific PAT -//! (`token_id`, carried as a JWT claim). The companion `pat.created` / `pat.signin` -//! events are written by the control plane. -//! -//! The table is shared with the control plane (`bootstrap-org-tables`); a worker -//! migration also creates it `IF NOT EXISTS` so the worker is self-contained. -//! -//! Audit writes are best-effort: a failure is logged but never fails the request. - -use sqlx::PgPool; - -use crate::auth::Identity; - -/// Record a `data.push` event into the org's `cli_audit_log`. `resource_id` is -/// optional (e.g. a CAS batch has no single resource). Never returns an error. -pub async fn record_push( - pool: &PgPool, - identity: &Identity, - resource_id: Option<&str>, - detail: serde_json::Value, -) { - // `id` is generated in SQL (gen_random_uuid() is built into Postgres 13+); - // `created_at` defaults to now() in the schema. - let result = sqlx::query( - "INSERT INTO cli_audit_log - (id, event_type, actor_id, actor_email, token_id, resource_id, detail) - VALUES (gen_random_uuid()::text, 'data.push', $1, $2, $3, $4, $5)", - ) - .bind(identity.user_id.as_deref()) - .bind(identity.email.as_deref()) - .bind(identity.token_id.as_deref()) - .bind(resource_id) - .bind(&detail) - .execute(pool) - .await; - - if let Err(e) = result { - tracing::warn!("cli audit write failed: {e}"); - } -} diff --git a/server/src/auth.rs b/server/src/auth.rs deleted file mode 100644 index 926f700..0000000 --- a/server/src/auth.rs +++ /dev/null @@ -1,222 +0,0 @@ -//! Better Auth identity verification. -//! -//! autter.dev runs Better Auth and is the identity/control plane. Its JWT plugin -//! signs tokens and publishes a JWKS endpoint. The CLI sends one of those tokens -//! as `Authorization: Bearer `; here we verify the signature against the -//! JWKS (stateless — no per-request call to autter.dev) and read the claims. -//! -//! The JWT payload must include these custom claims (configure Better Auth's JWT -//! `definePayload` accordingly): -//! - `org_id` — the caller's organization id -//! - `org_db_url` — the Postgres URL of that organization's database -//! -//! Standard claims used: `sub` (user id), `email`, `name`, `exp`. -//! -//! Dev mode (`AUTTER_SERVER_DEV_AUTH=1`) decodes the token WITHOUT verifying the -//! signature, so the data path can be exercised with a hand-crafted JWT before -//! autter.dev is reachable. Never enable it in production. - -use std::time::{Duration, Instant}; - -use axum::http::HeaderMap; -use jsonwebtoken::jwk::JwkSet; -use jsonwebtoken::{decode, decode_header, DecodingKey, Validation}; -use serde::Deserialize; -use tokio::sync::RwLock; - -use crate::error::AppError; - -/// JWKS are refreshed at most this often (and on an unknown `kid`). -const JWKS_TTL: Duration = Duration::from_secs(3600); - -/// Claims we read out of the Better Auth JWT. -#[derive(Debug, Deserialize)] -struct Claims { - sub: Option, - email: Option, - #[allow(dead_code)] - name: Option, - org_id: Option, - org_db_url: Option, - // Present only for PAT-minted tokens: the cli_token id, used to attribute - // pushed data to the specific Personal Access Token in the audit log. - token_id: Option, - // `exp` is validated by jsonwebtoken; we don't need to read it here. -} - -/// The authenticated caller and where their data lives. -pub struct Identity { - pub user_id: Option, - #[allow(dead_code)] // surfaced for future logging/attribution - pub email: Option, - #[allow(dead_code)] // tenant is selected via org_db_url; org_id kept for logs - pub org_id: String, - pub org_db_url: String, - pub distinct_id: Option, - /// The cli_token id, when the access token was minted from a PAT. - pub token_id: Option, -} - -pub struct JwtVerifier { - jwks_url: Option, - issuer: Option, - audience: Option, - dev_no_verify: bool, - http: reqwest::Client, - cache: RwLock>, -} - -impl JwtVerifier { - pub fn new( - jwks_url: Option, - issuer: Option, - audience: Option, - dev_no_verify: bool, - ) -> Self { - Self { - jwks_url, - issuer, - audience, - dev_no_verify, - http: reqwest::Client::new(), - cache: RwLock::new(None), - } - } - - /// Verify the request's bearer token and return the caller's identity. - pub async fn authenticate(&self, headers: &HeaderMap) -> Result { - let token = extract_bearer(headers) - .ok_or_else(|| AppError::Unauthorized("Missing bearer token".to_string()))?; - - let claims = if self.dev_no_verify { - decode_claims_unverified(&token)? - } else { - self.verify(&token).await? - }; - - let org_id = claims - .org_id - .filter(|s| !s.is_empty()) - .ok_or_else(|| AppError::Unauthorized("Token missing org_id claim".to_string()))?; - let org_db_url = claims - .org_db_url - .filter(|s| !s.is_empty()) - .ok_or_else(|| AppError::Unauthorized("Token missing org_db_url claim".to_string()))?; - - let distinct_id = headers - .get("x-distinct-id") - .and_then(|v| v.to_str().ok()) - .map(|s| s.to_string()); - - Ok(Identity { - user_id: claims.sub, - email: claims.email, - org_id, - org_db_url, - distinct_id, - token_id: claims.token_id, - }) - } - - /// Verify a token's signature against the JWKS and return its claims. - async fn verify(&self, token: &str) -> Result { - let header = decode_header(token) - .map_err(|e| AppError::Unauthorized(format!("Invalid token header: {e}")))?; - let kid = header - .kid - .clone() - .ok_or_else(|| AppError::Unauthorized("Token missing kid".to_string()))?; - - let jwk = match self.find_key(&kid, false).await? { - Some(jwk) => jwk, - // Unknown kid: keys may have rotated — force a refresh and retry once. - None => self - .find_key(&kid, true) - .await? - .ok_or_else(|| AppError::Unauthorized("No matching signing key".to_string()))?, - }; - - let decoding_key = DecodingKey::from_jwk(&jwk) - .map_err(|e| AppError::Internal(format!("bad JWKS key: {e}")))?; - - let mut validation = Validation::new(header.alg); - validation.validate_exp = true; - if let Some(iss) = &self.issuer { - validation.set_issuer(&[iss]); - } - if let Some(aud) = &self.audience { - validation.set_audience(&[aud]); - } else { - // No audience configured: don't require/validate the `aud` claim. - validation.validate_aud = false; - } - - let data = decode::(token, &decoding_key, &validation) - .map_err(|e| AppError::Unauthorized(format!("Token verification failed: {e}")))?; - Ok(data.claims) - } - - /// Look up a JWK by `kid`, optionally forcing a JWKS refresh first. - async fn find_key( - &self, - kid: &str, - force_refresh: bool, - ) -> Result, AppError> { - if !force_refresh { - if let Some((fetched_at, jwks)) = self.cache.read().await.as_ref() { - if fetched_at.elapsed() < JWKS_TTL { - return Ok(jwks.find(kid).cloned()); - } - } - } - - let jwks = self.fetch_jwks().await?; - let found = jwks.find(kid).cloned(); - *self.cache.write().await = Some((Instant::now(), jwks)); - Ok(found) - } - - async fn fetch_jwks(&self) -> Result { - let url = self - .jwks_url - .as_ref() - .ok_or_else(|| AppError::Internal("AUTTER_SERVER_JWKS_URL not configured".to_string()))?; - let jwks = self - .http - .get(url) - .send() - .await - .map_err(|e| AppError::Internal(format!("JWKS fetch failed: {e}")))? - .json::() - .await - .map_err(|e| AppError::Internal(format!("JWKS parse failed: {e}")))?; - Ok(jwks) - } -} - -fn extract_bearer(headers: &HeaderMap) -> Option { - let auth = headers.get("authorization")?.to_str().ok()?; - let token = auth - .strip_prefix("Bearer ") - .or_else(|| auth.strip_prefix("bearer "))? - .trim(); - if token.is_empty() { - None - } else { - Some(token.to_string()) - } -} - -/// Decode the JWT payload WITHOUT verifying the signature (dev mode only). -fn decode_claims_unverified(token: &str) -> Result { - use base64::Engine; - let payload = token - .split('.') - .nth(1) - .ok_or_else(|| AppError::Unauthorized("Malformed token".to_string()))?; - let bytes = base64::engine::general_purpose::URL_SAFE_NO_PAD - .decode(payload) - .map_err(|e| AppError::Unauthorized(format!("Bad token payload: {e}")))?; - serde_json::from_slice::(&bytes) - .map_err(|e| AppError::Unauthorized(format!("Bad token claims: {e}"))) -} diff --git a/server/src/error.rs b/server/src/error.rs deleted file mode 100644 index 06c1932..0000000 --- a/server/src/error.rs +++ /dev/null @@ -1,44 +0,0 @@ -//! Error type that renders to the JSON error shape the CLI expects. - -use axum::http::StatusCode; -use axum::response::{IntoResponse, Response}; -use axum::Json; - -use crate::models::ApiErrorResponse; - -#[derive(Debug)] -#[allow(dead_code)] // BadRequest is part of the API surface, not yet used by a handler -pub enum AppError { - Unauthorized(String), - BadRequest(String), - Internal(String), -} - -impl IntoResponse for AppError { - fn into_response(self) -> Response { - let (status, message) = match self { - AppError::Unauthorized(m) => (StatusCode::UNAUTHORIZED, m), - AppError::BadRequest(m) => (StatusCode::BAD_REQUEST, m), - AppError::Internal(m) => { - // Don't leak internals to the client, but do log them. - tracing::error!("internal error: {m}"); - ( - StatusCode::INTERNAL_SERVER_ERROR, - "Internal server error".to_string(), - ) - } - }; - - let body = Json(ApiErrorResponse { - error: message, - details: None, - }); - (status, body).into_response() - } -} - -impl From for AppError { - fn from(e: sqlx::Error) -> Self { - AppError::Internal(e.to_string()) - } -} diff --git a/server/src/main.rs b/server/src/main.rs deleted file mode 100644 index e7c878e..0000000 --- a/server/src/main.rs +++ /dev/null @@ -1,99 +0,0 @@ -//! Autter platform backend (data plane). -//! -//! Receives authorship-note and prompt (CAS) uploads from the autter CLI and -//! persists them to each organization's own PostgreSQL database. Identity comes -//! from a Better Auth JWT issued by autter.dev (verified against its JWKS); the -//! token's `org_db_url` claim tells us which database to write to. -//! -//! This is the open-source record of exactly what the platform stores — see -//! `migrations/0001_init.sql`. -//! -//! Configuration (environment): -//! - `BIND` listen address (default 0.0.0.0:8787) -//! - `AUTTER_SERVER_JWKS_URL` JWKS endpoint that publishes the CLI token -//! signing keys, e.g. -//! https://autter.dev/worker/oauth/jwks (required unless dev) -//! - `AUTTER_SERVER_JWT_ISSUER` optional expected `iss` (autter.dev sets it to APP_URL) -//! - `AUTTER_SERVER_JWT_AUDIENCE` optional expected `aud` (autter.dev sets it to `autter-cli`) -//! - `AUTTER_SERVER_DEV_AUTH` set to `1` to decode tokens WITHOUT verifying -//! the signature (development only). - -mod audit; -mod auth; -mod error; -mod models; -mod routes; -mod state; - -use std::net::SocketAddr; -use std::sync::Arc; - -use anyhow::Context; -use sqlx::migrate::Migrator; -use tracing_subscriber::EnvFilter; - -use crate::auth::JwtVerifier; -use crate::state::{AppState, PoolManager}; - -/// Per-org database schema, applied to each org database on first connect. -pub static MIGRATOR: Migrator = sqlx::migrate!("./migrations"); - -#[tokio::main] -async fn main() -> anyhow::Result<()> { - tracing_subscriber::fmt() - .with_env_filter( - EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")), - ) - .init(); - - let bind = std::env::var("BIND").unwrap_or_else(|_| "0.0.0.0:8787".to_string()); - let dev_auth = std::env::var("AUTTER_SERVER_DEV_AUTH").as_deref() == Ok("1"); - let jwks_url = non_empty_env("AUTTER_SERVER_JWKS_URL"); - let issuer = non_empty_env("AUTTER_SERVER_JWT_ISSUER"); - let audience = non_empty_env("AUTTER_SERVER_JWT_AUDIENCE"); - - if dev_auth { - tracing::warn!( - "AUTTER_SERVER_DEV_AUTH is on: JWT signatures are NOT verified. Do not use in production." - ); - } else if jwks_url.is_none() { - anyhow::bail!( - "AUTTER_SERVER_JWKS_URL must be set (e.g. https://autter.dev/worker/oauth/jwks), or set AUTTER_SERVER_DEV_AUTH=1 for local development" - ); - } - - let verifier = JwtVerifier::new(jwks_url, issuer, audience, dev_auth); - - let state = AppState { - pools: Arc::new(PoolManager::default()), - verifier: Arc::new(verifier), - }; - - let app = routes::router(state); - - let addr: SocketAddr = bind.parse().context("invalid BIND address")?; - let listener = tokio::net::TcpListener::bind(addr) - .await - .with_context(|| format!("failed to bind {addr}"))?; - - tracing::info!("autter-server listening on http://{addr}"); - axum::serve(listener, app) - .with_graceful_shutdown(shutdown_signal()) - .await - .context("server error")?; - - Ok(()) -} - -/// Read an env var, treating empty/whitespace as unset. -fn non_empty_env(key: &str) -> Option { - std::env::var(key) - .ok() - .map(|v| v.trim().to_string()) - .filter(|v| !v.is_empty()) -} - -async fn shutdown_signal() { - let _ = tokio::signal::ctrl_c().await; - tracing::info!("shutting down"); -} diff --git a/server/src/models.rs b/server/src/models.rs deleted file mode 100644 index 900cdac..0000000 --- a/server/src/models.rs +++ /dev/null @@ -1,89 +0,0 @@ -//! Wire types for the storage endpoints. -//! -//! These mirror the structs the `autter` CLI serializes/deserializes in -//! `src/api/types.rs`. Keep them in sync — the field names and shapes are the -//! contract between the CLI and this server. - -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; - -/// Error body returned to the CLI. The CLI reads the `error` field. -#[derive(Debug, Serialize)] -pub struct ApiErrorResponse { - pub error: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub details: Option, -} - -// ---- Notes ---------------------------------------------------------------- - -#[derive(Debug, Deserialize)] -pub struct NoteEntry { - pub commit_sha: String, - pub content: String, -} - -#[derive(Debug, Deserialize)] -pub struct NotesUploadRequest { - pub entries: Vec, -} - -#[derive(Debug, Serialize)] -pub struct NotesUploadResponse { - pub success_count: usize, - pub failure_count: usize, -} - -#[derive(Debug, Serialize)] -pub struct NotesReadResponse { - pub notes: HashMap, -} - -// ---- CAS (prompt transcripts) --------------------------------------------- - -#[derive(Debug, Deserialize)] -pub struct CasObject { - pub content: serde_json::Value, - pub hash: String, - #[serde(default)] - pub metadata: HashMap, -} - -#[derive(Debug, Deserialize)] -pub struct CasUploadRequest { - pub objects: Vec, -} - -#[derive(Debug, Serialize)] -pub struct CasUploadResult { - pub hash: String, - pub status: String, // "ok" | "error" - #[serde(skip_serializing_if = "Option::is_none")] - pub error: Option, -} - -#[derive(Debug, Serialize)] -pub struct CasUploadResponse { - pub results: Vec, - pub success_count: usize, - pub failure_count: usize, -} - -/// Single result from a CAS batch read. Mirrors the CLI's -/// `CAPromptStoreReadResult`. -#[derive(Debug, Serialize)] -pub struct CasReadResult { - pub hash: String, - pub status: String, // "ok" | "error" - #[serde(skip_serializing_if = "Option::is_none")] - pub content: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub error: Option, -} - -#[derive(Debug, Serialize)] -pub struct CasReadResponse { - pub results: Vec, - pub success_count: usize, - pub failure_count: usize, -} diff --git a/server/src/routes/cas.rs b/server/src/routes/cas.rs deleted file mode 100644 index 833bb9c..0000000 --- a/server/src/routes/cas.rs +++ /dev/null @@ -1,167 +0,0 @@ -//! CAS (prompt-transcript) storage endpoints (written to the caller's org database). -//! -//! - `POST /worker/cas/upload` — store a batch of content-addressed objects. -//! - `GET /worker/cas/?hashes=h1,h2` — read objects by hash. - -use axum::extract::{Query, State}; -use axum::http::HeaderMap; -use axum::Json; -use serde::Deserialize; -use std::collections::HashMap; - -use crate::error::AppError; -use crate::models::{ - CasReadResponse, CasReadResult, CasUploadRequest, CasUploadResponse, CasUploadResult, -}; -use crate::state::AppState; - -pub async fn upload( - State(state): State, - headers: HeaderMap, - Json(req): Json, -) -> Result, AppError> { - let identity = state.verifier.authenticate(&headers).await?; - let pool = state.pools.get(&identity.org_db_url).await?; - - let mut results = Vec::with_capacity(req.objects.len()); - let mut stored_hashes: Vec = Vec::new(); - let mut success_count = 0usize; - let mut failure_count = 0usize; - - for obj in req.objects { - let metadata = - serde_json::to_value(&obj.metadata).unwrap_or_else(|_| serde_json::json!({})); - - // Dedup by hash: re-uploading the same content is a no-op. - let result = sqlx::query( - "INSERT INTO cas_objects (hash, content, metadata, uploaded_by) - VALUES ($1, $2, $3, $4) - ON CONFLICT (hash) DO NOTHING", - ) - .bind(&obj.hash) - .bind(&obj.content) - .bind(&metadata) - .bind(&identity.user_id) - .execute(&pool) - .await; - - match result { - Ok(_) => { - success_count += 1; - stored_hashes.push(obj.hash.clone()); - results.push(CasUploadResult { - hash: obj.hash, - status: "ok".to_string(), - error: None, - }); - } - Err(e) => { - tracing::warn!(hash = %obj.hash, "cas upsert failed: {e}"); - failure_count += 1; - results.push(CasUploadResult { - hash: obj.hash, - status: "error".to_string(), - error: Some(e.to_string()), - }); - } - } - } - - // One audit row per upload batch summarizing the prompt/transcript objects - // pushed to the cloud (per-object would be far too chatty). Best-effort. - if !stored_hashes.is_empty() { - crate::audit::record_push( - &pool, - &identity, - None, - serde_json::json!({ - "kind": "cas", - "stored_count": stored_hashes.len(), - "failure_count": failure_count, - "hashes": stored_hashes, - "distinct_id": identity.distinct_id, - }), - ) - .await; - } - - Ok(Json(CasUploadResponse { - results, - success_count, - failure_count, - })) -} - -#[derive(Debug, Deserialize)] -pub struct HashesQuery { - hashes: Option, -} - -pub async fn read( - State(state): State, - headers: HeaderMap, - Query(q): Query, -) -> Result, AppError> { - let identity = state.verifier.authenticate(&headers).await?; - - let hashes: Vec = q - .hashes - .unwrap_or_default() - .split(',') - .map(|s| s.trim()) - .filter(|s| !s.is_empty()) - .map(|s| s.to_string()) - .collect(); - - if hashes.is_empty() { - return Ok(Json(CasReadResponse { - results: Vec::new(), - success_count: 0, - failure_count: 0, - })); - } - - let pool = state.pools.get(&identity.org_db_url).await?; - - let rows = sqlx::query_as::<_, (String, serde_json::Value)>( - "SELECT hash, content FROM cas_objects WHERE hash = ANY($1)", - ) - .bind(&hashes) - .fetch_all(&pool) - .await?; - - let found: HashMap = rows.into_iter().collect(); - - let mut results = Vec::with_capacity(hashes.len()); - let mut success_count = 0usize; - let mut failure_count = 0usize; - - for hash in hashes { - match found.get(&hash) { - Some(content) => { - success_count += 1; - results.push(CasReadResult { - hash, - status: "ok".to_string(), - content: Some(content.clone()), - error: None, - }); - } - None => { - failure_count += 1; - results.push(CasReadResult { - hash, - status: "error".to_string(), - content: None, - error: Some("not found".to_string()), - }); - } - } - } - - Ok(Json(CasReadResponse { - results, - success_count, - failure_count, - })) -} diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs deleted file mode 100644 index 4cad85d..0000000 --- a/server/src/routes/mod.rs +++ /dev/null @@ -1,24 +0,0 @@ -//! HTTP routing. Paths match exactly what the autter CLI calls -//! (`{api_base_url}/worker/...`). - -pub mod cas; -pub mod notes; - -use axum::routing::{get, post}; -use axum::Router; - -use crate::state::AppState; - -pub fn router(state: AppState) -> Router { - Router::new() - .route("/health", get(health)) - .route("/worker/notes/upload", post(notes::upload)) - .route("/worker/notes/", get(notes::read)) - .route("/worker/cas/upload", post(cas::upload)) - .route("/worker/cas/", get(cas::read)) - .with_state(state) -} - -async fn health() -> &'static str { - "ok" -} diff --git a/server/src/routes/notes.rs b/server/src/routes/notes.rs deleted file mode 100644 index 51dcd16..0000000 --- a/server/src/routes/notes.rs +++ /dev/null @@ -1,116 +0,0 @@ -//! Authorship-note storage endpoints (written to the caller's org database). -//! -//! - `POST /worker/notes/upload` — upsert a batch of notes. -//! - `GET /worker/notes/?commits=sha1,sha2` — read notes by commit SHA. - -use axum::extract::{Query, State}; -use axum::http::HeaderMap; -use axum::Json; -use serde::Deserialize; -use std::collections::HashMap; - -use crate::error::AppError; -use crate::models::{NotesReadResponse, NotesUploadRequest, NotesUploadResponse}; -use crate::state::AppState; - -pub async fn upload( - State(state): State, - headers: HeaderMap, - Json(req): Json, -) -> Result, AppError> { - let identity = state.verifier.authenticate(&headers).await?; - let pool = state.pools.get(&identity.org_db_url).await?; - - let mut success_count = 0usize; - let mut failure_count = 0usize; - - for entry in req.entries { - if entry.commit_sha.trim().is_empty() { - failure_count += 1; - continue; - } - - let result = sqlx::query( - "INSERT INTO authorship_notes (commit_sha, content, uploaded_by, distinct_id) - VALUES ($1, $2, $3, $4) - ON CONFLICT (commit_sha) - DO UPDATE SET content = EXCLUDED.content, - uploaded_by = EXCLUDED.uploaded_by, - distinct_id = EXCLUDED.distinct_id, - updated_at = now()", - ) - .bind(&entry.commit_sha) - .bind(&entry.content) - .bind(&identity.user_id) - .bind(&identity.distinct_id) - .execute(&pool) - .await; - - match result { - Ok(_) => { - success_count += 1; - // Audit the per-commit push so we know when authorship data for a - // given commit reached the cloud (best-effort; never fails the call). - crate::audit::record_push( - &pool, - &identity, - Some(&entry.commit_sha), - serde_json::json!({ - "kind": "notes", - "distinct_id": identity.distinct_id, - }), - ) - .await; - } - Err(e) => { - tracing::warn!(commit = %entry.commit_sha, "note upsert failed: {e}"); - failure_count += 1; - } - } - } - - Ok(Json(NotesUploadResponse { - success_count, - failure_count, - })) -} - -#[derive(Debug, Deserialize)] -pub struct CommitsQuery { - commits: Option, -} - -pub async fn read( - State(state): State, - headers: HeaderMap, - Query(q): Query, -) -> Result, AppError> { - let identity = state.verifier.authenticate(&headers).await?; - - let commits: Vec = q - .commits - .unwrap_or_default() - .split(',') - .map(|s| s.trim()) - .filter(|s| !s.is_empty()) - .map(|s| s.to_string()) - .collect(); - - if commits.is_empty() { - return Ok(Json(NotesReadResponse { - notes: HashMap::new(), - })); - } - - let pool = state.pools.get(&identity.org_db_url).await?; - - let rows = sqlx::query_as::<_, (String, String)>( - "SELECT commit_sha, content FROM authorship_notes WHERE commit_sha = ANY($1)", - ) - .bind(&commits) - .fetch_all(&pool) - .await?; - - let notes = rows.into_iter().collect::>(); - Ok(Json(NotesReadResponse { notes })) -} diff --git a/server/src/state.rs b/server/src/state.rs deleted file mode 100644 index ad1358e..0000000 --- a/server/src/state.rs +++ /dev/null @@ -1,58 +0,0 @@ -//! Shared application state: per-org database pools + the JWT verifier. - -use std::collections::HashMap; -use std::sync::Arc; - -use sqlx::postgres::PgPoolOptions; -use sqlx::PgPool; -use tokio::sync::RwLock; - -use crate::auth::JwtVerifier; -use crate::error::AppError; - -/// Lazily-created, cached connection pools keyed by org database URL. -/// -/// Each organization has its own PostgreSQL database (the `org_db_url` from the -/// verified JWT). The first time we see an org's URL we open a pool and run the -/// per-org migrations against it; subsequent requests reuse the pool. -#[derive(Default)] -pub struct PoolManager { - pools: RwLock>, -} - -impl PoolManager { - /// Get (or lazily create + migrate) the pool for an org database URL. - pub async fn get(&self, db_url: &str) -> Result { - if let Some(pool) = self.pools.read().await.get(db_url) { - return Ok(pool.clone()); - } - - // Upgrade to a write lock and re-check (another task may have created it). - let mut pools = self.pools.write().await; - if let Some(pool) = pools.get(db_url) { - return Ok(pool.clone()); - } - - let pool = PgPoolOptions::new() - .max_connections(5) - .connect(db_url) - .await - .map_err(|e| AppError::Internal(format!("connect to org database failed: {e}")))?; - - // Ensure the org database has the schema. Idempotent. - crate::MIGRATOR - .run(&pool) - .await - .map_err(|e| AppError::Internal(format!("org database migration failed: {e}")))?; - - pools.insert(db_url.to_string(), pool.clone()); - tracing::info!("opened pool for a new org database"); - Ok(pool) - } -} - -#[derive(Clone)] -pub struct AppState { - pub pools: Arc, - pub verifier: Arc, -} diff --git a/src/api/cas.rs b/src/api/cas.rs index ab33f22..e2cff35 100644 --- a/src/api/cas.rs +++ b/src/api/cas.rs @@ -1,76 +1,46 @@ +//! CAS (prompt-transcript) storage, written directly to the org's own Postgres. +//! +//! The connection URL comes from the `org_db_url` claim in the context's access +//! token (see [`crate::api::org_db`]); there is no intermediate backend. + use crate::api::client::ApiClient; -use crate::api::types::{ - ApiErrorResponse, CAPromptStoreReadResponse, CasUploadRequest, CasUploadResponse, -}; +use crate::api::org_db; +use crate::api::types::{CAPromptStoreReadResponse, CasUploadRequest, CasUploadResponse}; +use crate::config; use crate::error::AutterError; /// CAS API endpoints impl ApiClient { - /// Upload CAS objects to the server + /// Store CAS objects in the org's database (dedup by hash). /// /// # Arguments /// * `request` - The CAS upload request containing objects to upload /// /// # Returns - /// * `Ok(CasUploadResponse)` - Success response - /// * `Err(AutterError)` - Error response + /// * `Ok(CasUploadResponse)` - Per-object results plus counts + /// * `Err(AutterError)` - When not authenticated or the DB write fails pub fn upload_cas(&self, request: CasUploadRequest) -> Result { - let response = self.context().post_json("/worker/cas/upload", &request)?; - let status_code = response.status_code; - - let body = response - .as_str() - .map_err(|e| AutterError::Generic(format!("Failed to read response body: {}", e)))?; - - match status_code { - 200 => { - let cas_response: CasUploadResponse = - serde_json::from_str(body).map_err(AutterError::JsonError)?; - Ok(cas_response) - } - 400 => { - let error_response: ApiErrorResponse = - serde_json::from_str(body).unwrap_or_else(|_| ApiErrorResponse { - error: "Invalid request body".to_string(), - details: Some(serde_json::Value::String(body.to_string())), - }); - Err(AutterError::Generic(format!( - "Bad Request: {}", - error_response.error - ))) - } - 500 => { - let error_response: ApiErrorResponse = - serde_json::from_str(body).unwrap_or_else(|_| ApiErrorResponse { - error: "Internal server error".to_string(), - details: None, - }); - Err(AutterError::Generic(format!( - "Internal Server Error: {}", - error_response.error - ))) - } - _ => Err(AutterError::Generic(format!( - "Unexpected status code {}: {}", - status_code, body - ))), - } + let identity = self.org_identity()?; + org_db::upsert_cas( + &identity, + &request.objects, + &config::get_or_create_distinct_id(), + ) } - /// Read CAS objects by hash from the server + /// Read CAS objects by hash from the org's database. /// /// # Arguments - /// * `hashes` - Slice of CAS hashes to fetch (max 100 per call) + /// * `hashes` - Slice of CAS hashes to fetch /// /// # Returns /// * `Ok(CAPromptStoreReadResponse)` - Response with results for each hash - /// * `Err(AutterError)` - On network or server errors + /// * `Err(AutterError)` - On invalid input, auth, or DB errors pub fn read_ca_prompt_store( &self, hashes: &[&str], ) -> Result { - // Validate all hashes are hex-only before building the URL to prevent - // injection via crafted hash values in the query string. + // Validate all hashes are hex-only to guard against malformed input. for hash in hashes { if !hash.chars().all(|c| c.is_ascii_hexdigit()) { return Err(AutterError::Generic(format!( @@ -80,33 +50,7 @@ impl ApiClient { } } - let query = hashes.join(","); - let endpoint = format!("/worker/cas/?hashes={}", query); - let response = self.context().get(&endpoint)?; - let status_code = response.status_code; - - let body = response - .as_str() - .map_err(|e| AutterError::Generic(format!("Failed to read response body: {}", e)))?; - - match status_code { - 200 => { - let cas_response: CAPromptStoreReadResponse = - serde_json::from_str(body).map_err(AutterError::JsonError)?; - Ok(cas_response) - } - 404 => { - // All hashes not found — return empty response gracefully - Ok(CAPromptStoreReadResponse { - results: Vec::new(), - success_count: 0, - failure_count: hashes.len(), - }) - } - _ => Err(AutterError::Generic(format!( - "CAS read failed with status {}: {}", - status_code, body - ))), - } + let identity = self.org_identity()?; + org_db::read_cas(&identity, hashes) } } diff --git a/src/api/client.rs b/src/api/client.rs index 6b2d60a..0ca44bb 100644 --- a/src/api/client.rs +++ b/src/api/client.rs @@ -446,6 +446,16 @@ impl ApiClient { self.context.auth_token.is_some() } + /// Decode the org routing identity (`org_db_url` + uploader identity) from the + /// context's access token. Used by the notes/CAS data path, which writes + /// straight to the org's own database. Errors when not authenticated. + pub fn org_identity(&self) -> Result { + let token = self.context.auth_token.as_deref().ok_or_else(|| { + AutterError::Generic("not authenticated: no access token for org database".to_string()) + })?; + crate::api::org_db::identity_from_token(token) + } + /// Check if an API key is configured pub fn has_api_key(&self) -> bool { self.context.api_key.is_some() diff --git a/src/api/mod.rs b/src/api/mod.rs index e8de28e..eccc79f 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -3,6 +3,7 @@ pub mod cas; pub mod client; pub mod metrics; pub mod notes; +pub mod org_db; pub mod types; pub use client::{ApiClient, ApiContext}; diff --git a/src/api/notes.rs b/src/api/notes.rs index 30f5e63..0235dd8 100644 --- a/src/api/notes.rs +++ b/src/api/notes.rs @@ -1,65 +1,49 @@ -//! Notes API endpoints for the HTTP notes backend. +//! Authorship-note storage, written directly to the org's own Postgres. //! -//! Authentication is handled automatically by `ApiContext`: the existing -//! `X-API-Key` / Bearer token headers are attached on every request. -//! The daemon flusher should skip uploads when neither `is_logged_in()` nor -//! `has_api_key()` is true (matching the CAS pattern). +//! The connection URL comes from the `org_db_url` claim in the context's access +//! token (see [`crate::api::org_db`]); there is no intermediate backend. Callers +//! should still gate on `is_logged_in()` / `has_api_key()` so we only attempt a +//! write when the user is authenticated (matching the CAS pattern). use crate::api::client::ApiClient; -use crate::api::types::{ - ApiErrorResponse, NotesReadResponse, NotesUploadRequest, NotesUploadResponse, -}; +use crate::api::org_db; +use crate::api::types::{NotesReadResponse, NotesUploadRequest, NotesUploadResponse}; +use crate::config; use crate::error::AutterError; impl ApiClient { - /// Upload a batch of authorship notes to the remote backend. + /// Upload a batch of authorship notes to the org's database. /// /// # Arguments /// * `request` - The notes upload request containing entries to upload /// /// # Returns /// * `Ok(NotesUploadResponse)` - Success response with counts - /// * `Err(AutterError)` - On network or server errors + /// * `Err(AutterError)` - When not authenticated or the DB write fails pub fn upload_notes( &self, request: NotesUploadRequest, ) -> Result { - let response = self.context().post_json("/worker/notes/upload", &request)?; - let status_code = response.status_code; - - let body = response - .as_str() - .map_err(|e| AutterError::Generic(format!("Failed to read response body: {}", e)))?; - - match status_code { - 200 => serde_json::from_str(body).map_err(AutterError::JsonError), - 400 => { - let err: ApiErrorResponse = - serde_json::from_str(body).unwrap_or_else(|_| ApiErrorResponse { - error: "Invalid request body".to_string(), - details: Some(serde_json::Value::String(body.to_string())), - }); - Err(AutterError::Generic(format!("Bad Request: {}", err.error))) - } - _ => Err(AutterError::Generic(format!( - "Notes upload failed with status {}: {}", - status_code, body - ))), - } + let identity = self.org_identity()?; + org_db::upsert_notes( + &identity, + &request.entries, + &config::get_or_create_distinct_id(), + ) } - /// Read authorship notes by commit SHAs. Max 100 per call. + /// Read authorship notes by commit SHAs. /// - /// Returns an empty map for any SHAs not found (404 is treated as success). + /// Returns an empty map for any SHAs not found. /// /// # Arguments /// * `commit_shas` - Slice of hex commit SHAs to fetch /// /// # Returns /// * `Ok(NotesReadResponse)` - Response mapping commit_sha → note content - /// * `Err(AutterError)` - On invalid input, network, or server errors + /// * `Err(AutterError)` - On invalid input, auth, or DB errors pub fn read_notes(&self, commit_shas: &[&str]) -> Result { - // Validate that all SHAs are hex strings before making the request + // Validate that all SHAs are hex strings before querying. for sha in commit_shas { if !sha.chars().all(|c| c.is_ascii_hexdigit()) { return Err(AutterError::Generic(format!( @@ -69,25 +53,8 @@ impl ApiClient { } } - let query = commit_shas.join(","); - let endpoint = format!("/worker/notes/?commits={}", query); - let response = self.context().get(&endpoint)?; - let status_code = response.status_code; - - let body = response - .as_str() - .map_err(|e| AutterError::Generic(format!("Failed to read response body: {}", e)))?; - - match status_code { - 200 => serde_json::from_str(body).map_err(AutterError::JsonError), - 404 => Ok(NotesReadResponse { - notes: std::collections::HashMap::new(), - }), - _ => Err(AutterError::Generic(format!( - "Notes read failed with status {}: {}", - status_code, body - ))), - } + let identity = self.org_identity()?; + org_db::read_notes(&identity, commit_shas) } } diff --git a/src/api/org_db.rs b/src/api/org_db.rs new file mode 100644 index 0000000..4b2fa7f --- /dev/null +++ b/src/api/org_db.rs @@ -0,0 +1,474 @@ +//! Direct writes to an organization's own PostgreSQL database. +//! +//! The autter CLI used to POST authorship notes and prompt-transcript (CAS) +//! objects to a hosted data-plane backend, which re-decoded the caller's JWT and +//! connected to the org database on the CLI's behalf. That backend was a pure +//! pass-through: the access token the CLI already holds carries the org's +//! database URL in its `org_db_url` claim. So we cut out the middle tier — the +//! CLI reads `org_db_url` straight from its token and writes to the org database +//! itself, using the machine's own resources. +//! +//! Identity (who uploaded what) comes from the same token: `sub` (user id), +//! `email`, and `token_id` (the PAT, when present). Because every database +//! belongs to exactly one org, rows are not org-scoped — the database boundary +//! IS the tenant boundary, exactly as the old backend's schema documented. +//! +//! Connections are cached per `org_db_url` for the life of the process (the +//! daemon is long-lived, so this avoids a TLS handshake on every flush). A query +//! that fails on a dropped connection transparently reconnects once. + +use std::collections::HashMap; +use std::sync::{Arc, Mutex}; +use std::time::Duration; + +use base64::Engine; +use once_cell::sync::Lazy; +use postgres::Client; + +use crate::api::types::{ + CAPromptStoreReadResponse, CAPromptStoreReadResult, CasObject, CasUploadResponse, + CasUploadResult, NoteEntry, NotesReadResponse, NotesUploadResponse, +}; +use crate::error::AutterError; + +/// Identity + routing decoded from the caller's access-token JWT. +#[derive(Debug, Clone)] +pub struct OrgIdentity { + /// Postgres connection URL for the org's database (`org_db_url` claim). + pub org_db_url: String, + /// Better Auth user id (`sub`), recorded as `uploaded_by`. + pub user_id: Option, + /// User email, recorded in audit rows. + pub email: Option, + /// PAT id (`token_id`), recorded in audit rows when the session used a PAT. + pub token_id: Option, +} + +/// Decode the (unverified) payload of a JWT and pull out the org routing claims. +/// +/// The token is the CLI's own access token — it was minted and signed by +/// autter.dev and verified there at issue time, so we only need to *read* its +/// claims here, not re-verify the signature. +pub fn identity_from_token(token: &str) -> Result { + let payload = token.split('.').nth(1).ok_or_else(|| { + AutterError::Generic("access token is not a well-formed JWT".to_string()) + })?; + + // JWT uses base64url without padding; tolerate padding just in case. + let trimmed = payload.trim_end_matches('='); + let bytes = base64::engine::general_purpose::URL_SAFE_NO_PAD + .decode(trimmed) + .map_err(|e| AutterError::Generic(format!("failed to decode token payload: {e}")))?; + let claims: serde_json::Value = + serde_json::from_slice(&bytes).map_err(AutterError::JsonError)?; + + let org_db_url = claims + .get("org_db_url") + .and_then(|v| v.as_str()) + .filter(|s| !s.is_empty()) + .ok_or_else(|| AutterError::Generic("token missing org_db_url claim".to_string()))? + .to_string(); + + let str_claim = |key: &str| { + claims + .get(key) + .and_then(|v| v.as_str()) + .filter(|s| !s.is_empty()) + .map(|s| s.to_string()) + }; + + Ok(OrgIdentity { + org_db_url, + user_id: str_claim("sub"), + email: str_claim("email"), + token_id: str_claim("token_id"), + }) +} + +/// Process-wide cache: `org_db_url` → live Postgres client. +static CONNECTIONS: Lazy>>>> = + Lazy::new(|| Mutex::new(HashMap::new())); + +/// Per-org schema, created on first connect (idempotent). Mirrors the old +/// backend's `migrations/0001_init.sql` and `0002_cli_audit_log.sql` so a fresh +/// org database is fully provisioned by the CLI alone. autter.dev's +/// `bootstrap-org-tables` may also create these; `IF NOT EXISTS` keeps both safe. +const SCHEMA: &str = "\ +CREATE TABLE IF NOT EXISTS authorship_notes ( + commit_sha TEXT PRIMARY KEY, + content TEXT NOT NULL, + uploaded_by TEXT, + distinct_id TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT now() +); +CREATE TABLE IF NOT EXISTS cas_objects ( + hash TEXT PRIMARY KEY, + content JSONB NOT NULL, + metadata JSONB NOT NULL DEFAULT '{}'::jsonb, + uploaded_by TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); +CREATE TABLE IF NOT EXISTS cli_audit_log ( + id TEXT PRIMARY KEY, + event_type TEXT NOT NULL, + actor_id TEXT, + actor_email TEXT, + token_id TEXT, + token_name TEXT, + resource_id TEXT, + detail JSONB, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); +CREATE INDEX IF NOT EXISTS cli_audit_log_eventType_idx ON cli_audit_log (event_type); +CREATE INDEX IF NOT EXISTS cli_audit_log_tokenId_idx ON cli_audit_log (token_id); +CREATE INDEX IF NOT EXISTS cli_audit_log_createdAt_idx ON cli_audit_log (created_at);"; + +/// Open a new TLS connection to `org_db_url` and ensure the schema exists. +fn connect(org_db_url: &str) -> Result { + let tls = native_tls::TlsConnector::new() + .map_err(|e| AutterError::Generic(format!("failed to build TLS connector: {e}")))?; + let connector = postgres_native_tls::MakeTlsConnector::new(tls); + let mut client = Client::connect(org_db_url, connector) + .map_err(|e| AutterError::Generic(format!("failed to connect to org database: {e}")))?; + client + .batch_execute(SCHEMA) + .map_err(|e| AutterError::Generic(format!("failed to ensure org schema: {e}")))?; + Ok(client) +} + +/// Get the cached client for `org_db_url`, connecting (and provisioning) lazily. +fn get_or_connect(org_db_url: &str) -> Result>, AutterError> { + { + let map = CONNECTIONS.lock().expect("connection cache poisoned"); + if let Some(client) = map.get(org_db_url) { + return Ok(client.clone()); + } + } + let client = Arc::new(Mutex::new(connect(org_db_url)?)); + let mut map = CONNECTIONS.lock().expect("connection cache poisoned"); + // Another thread may have connected while we were dialing — keep theirs. + Ok(map + .entry(org_db_url.to_string()) + .or_insert(client) + .clone()) +} + +/// Run a DB operation against the org's client. +/// +/// Before using a cached connection we validate it with a cheap round-trip and, +/// if it has been dropped (idle timeout, server restart, network blip), discard +/// it and dial a fresh one. We can't rely on the operation itself surfacing the +/// failure: the notes/CAS closures count per-row errors internally rather than +/// propagating them, so a dead socket would otherwise look like an all-rows +/// failure instead of triggering a reconnect. +fn run( + org_db_url: &str, + op: impl FnOnce(&mut Client) -> Result, +) -> Result { + let arc = get_or_connect(org_db_url)?; + { + let mut guard = arc.lock().expect("org client mutex poisoned"); + if guard.is_valid(Duration::from_secs(5)).is_err() { + // Cached connection is stale — drop it so the next get reconnects. + drop(guard); + CONNECTIONS + .lock() + .expect("connection cache poisoned") + .remove(org_db_url); + let fresh = get_or_connect(org_db_url)?; + let mut guard = fresh.lock().expect("org client mutex poisoned"); + return op(&mut guard).map_err(map_db_err); + } + op(&mut guard).map_err(map_db_err) + } +} + +fn map_db_err(e: postgres::Error) -> AutterError { + AutterError::Generic(format!("org database operation failed: {e}")) +} + +/// Best-effort `data.push` audit row. Never returns an error (mirrors the old +/// backend, where audit failures were logged but never failed the request). +fn record_push( + client: &mut Client, + identity: &OrgIdentity, + resource_id: Option<&str>, + detail: &serde_json::Value, +) { + let result = client.execute( + "INSERT INTO cli_audit_log + (id, event_type, actor_id, actor_email, token_id, resource_id, detail) + VALUES (gen_random_uuid()::text, 'data.push', $1, $2, $3, $4, $5)", + &[ + &identity.user_id, + &identity.email, + &identity.token_id, + &resource_id, + detail, + ], + ); + if let Err(e) = result { + tracing::warn!("cli audit write failed: {e}"); + } +} + +/// Upsert a batch of authorship notes, auditing each successful push. +pub fn upsert_notes( + identity: &OrgIdentity, + entries: &[NoteEntry], + distinct_id: &str, +) -> Result { + run(&identity.org_db_url, |client| { + let mut success_count = 0usize; + let mut failure_count = 0usize; + + for entry in entries { + if entry.commit_sha.trim().is_empty() { + failure_count += 1; + continue; + } + + let result = client.execute( + "INSERT INTO authorship_notes (commit_sha, content, uploaded_by, distinct_id) + VALUES ($1, $2, $3, $4) + ON CONFLICT (commit_sha) + DO UPDATE SET content = EXCLUDED.content, + uploaded_by = EXCLUDED.uploaded_by, + distinct_id = EXCLUDED.distinct_id, + updated_at = now()", + &[ + &entry.commit_sha, + &entry.content, + &identity.user_id, + &distinct_id, + ], + ); + + match result { + Ok(_) => { + success_count += 1; + record_push( + client, + identity, + Some(&entry.commit_sha), + &serde_json::json!({ "kind": "notes", "distinct_id": distinct_id }), + ); + } + Err(e) => { + tracing::warn!(commit = %entry.commit_sha, "note upsert failed: {e}"); + failure_count += 1; + } + } + } + + Ok(NotesUploadResponse { + success_count, + failure_count, + }) + }) +} + +/// Read authorship notes by commit SHA (`commit_sha` → content). +pub fn read_notes( + identity: &OrgIdentity, + commit_shas: &[&str], +) -> Result { + if commit_shas.is_empty() { + return Ok(NotesReadResponse { + notes: HashMap::new(), + }); + } + let owned: Vec = commit_shas.iter().map(|s| s.to_string()).collect(); + run(&identity.org_db_url, |client| { + let rows = client.query( + "SELECT commit_sha, content FROM authorship_notes WHERE commit_sha = ANY($1)", + &[&owned], + )?; + let notes = rows + .into_iter() + .map(|row| (row.get::<_, String>(0), row.get::<_, String>(1))) + .collect::>(); + Ok(NotesReadResponse { notes }) + }) +} + +/// Store a batch of content-addressed prompt objects (dedup by hash). +pub fn upsert_cas( + identity: &OrgIdentity, + objects: &[CasObject], + distinct_id: &str, +) -> Result { + run(&identity.org_db_url, |client| { + let mut results = Vec::with_capacity(objects.len()); + let mut stored_hashes: Vec = Vec::new(); + let mut success_count = 0usize; + let mut failure_count = 0usize; + + for obj in objects { + let metadata = + serde_json::to_value(&obj.metadata).unwrap_or_else(|_| serde_json::json!({})); + + let result = client.execute( + "INSERT INTO cas_objects (hash, content, metadata, uploaded_by) + VALUES ($1, $2, $3, $4) + ON CONFLICT (hash) DO NOTHING", + &[&obj.hash, &obj.content, &metadata, &identity.user_id], + ); + + match result { + Ok(_) => { + success_count += 1; + stored_hashes.push(obj.hash.clone()); + results.push(CasUploadResult { + hash: obj.hash.clone(), + status: "ok".to_string(), + error: None, + }); + } + Err(e) => { + tracing::warn!(hash = %obj.hash, "cas upsert failed: {e}"); + failure_count += 1; + results.push(CasUploadResult { + hash: obj.hash.clone(), + status: "error".to_string(), + error: Some(e.to_string()), + }); + } + } + } + + // One audit row per batch (per-object would be far too chatty). + if !stored_hashes.is_empty() { + record_push( + client, + identity, + None, + &serde_json::json!({ + "kind": "cas", + "stored_count": stored_hashes.len(), + "failure_count": failure_count, + "hashes": stored_hashes, + "distinct_id": distinct_id, + }), + ); + } + + Ok(CasUploadResponse { + results, + success_count, + failure_count, + }) + }) +} + +/// Read CAS objects by hash, reporting a per-hash found/not-found status. +pub fn read_cas( + identity: &OrgIdentity, + hashes: &[&str], +) -> Result { + if hashes.is_empty() { + return Ok(CAPromptStoreReadResponse { + results: Vec::new(), + success_count: 0, + failure_count: 0, + }); + } + let owned: Vec = hashes.iter().map(|s| s.to_string()).collect(); + run(&identity.org_db_url, |client| { + let rows = client.query( + "SELECT hash, content FROM cas_objects WHERE hash = ANY($1)", + &[&owned], + )?; + let found: HashMap = rows + .into_iter() + .map(|row| (row.get::<_, String>(0), row.get::<_, serde_json::Value>(1))) + .collect(); + + let mut results = Vec::with_capacity(owned.len()); + let mut success_count = 0usize; + let mut failure_count = 0usize; + for hash in &owned { + match found.get(hash) { + Some(content) => { + success_count += 1; + results.push(CAPromptStoreReadResult { + hash: hash.clone(), + status: "ok".to_string(), + content: Some(content.clone()), + error: None, + }); + } + None => { + failure_count += 1; + results.push(CAPromptStoreReadResult { + hash: hash.clone(), + status: "error".to_string(), + content: None, + error: Some("not found".to_string()), + }); + } + } + } + + Ok(CAPromptStoreReadResponse { + results, + success_count, + failure_count, + }) + }) +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Build a JWT-shaped string (header.payload.signature) with the given JSON + /// payload, base64url-encoded without padding — just like a real token. + fn fake_jwt(payload: serde_json::Value) -> String { + let enc = |v: &serde_json::Value| { + base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(v.to_string().as_bytes()) + }; + format!( + "{}.{}.{}", + enc(&serde_json::json!({"alg": "RS256", "typ": "JWT"})), + enc(&payload), + "sig" + ) + } + + #[test] + fn decodes_org_routing_claims() { + let token = fake_jwt(serde_json::json!({ + "sub": "user_123", + "email": "dev@example.com", + "org_db_url": "postgres://u:p@host/db", + "token_id": "pat_abc", + })); + let id = identity_from_token(&token).unwrap(); + assert_eq!(id.org_db_url, "postgres://u:p@host/db"); + assert_eq!(id.user_id.as_deref(), Some("user_123")); + assert_eq!(id.email.as_deref(), Some("dev@example.com")); + assert_eq!(id.token_id.as_deref(), Some("pat_abc")); + } + + #[test] + fn missing_org_db_url_is_error() { + let token = fake_jwt(serde_json::json!({ "sub": "user_123" })); + assert!(identity_from_token(&token).is_err()); + } + + #[test] + fn malformed_token_is_error() { + assert!(identity_from_token("not-a-jwt").is_err()); + } + + #[test] + fn optional_claims_default_to_none() { + let token = fake_jwt(serde_json::json!({ "org_db_url": "postgres://x/y" })); + let id = identity_from_token(&token).unwrap(); + assert!(id.user_id.is_none()); + assert!(id.email.is_none()); + assert!(id.token_id.is_none()); + } +} diff --git a/src/commands/autter_handlers.rs b/src/commands/autter_handlers.rs index 9d248bf..1e97038 100644 --- a/src/commands/autter_handlers.rs +++ b/src/commands/autter_handlers.rs @@ -237,19 +237,13 @@ fn handle_notes_subcommand(args: &[String]) { "migrate" => { commands::notes_migrate::handle_notes_migrate(&args[1..]); } - // Hidden: in-memory reference implementation of the notes backend HTTP - // contract. Intentionally not advertised in `--help`; it is for - // developers, tests, and benchmarks, not end users. - "serve" => { - handle_notes_serve(&args[1..]); - } "--help" | "-h" | "help" => { eprintln!("autter notes - Notes backend management commands"); eprintln!(); eprintln!("Usage: autter notes [options]"); eprintln!(); eprintln!("Subcommands:"); - eprintln!(" migrate Bulk-upload existing git notes to the HTTP backend"); + eprintln!(" migrate Bulk-upload existing git notes to your org's database"); eprintln!(); eprintln!("Run 'autter notes --help' for details."); } @@ -261,50 +255,6 @@ fn handle_notes_subcommand(args: &[String]) { } } -/// `autter notes serve` — run the in-memory reference notes backend. -/// -/// This is a developer/test tool. The server stores everything in process -/// memory and accepts any auth header. See -/// `crate::notes::reference_server` for the wire contract. -fn handle_notes_serve(args: &[String]) { - let mut bind: String = "127.0.0.1:0".to_string(); - let mut i = 0; - while i < args.len() { - match args[i].as_str() { - "--bind" if i + 1 < args.len() => { - bind = args[i + 1].clone(); - i += 2; - } - "--port" if i + 1 < args.len() => { - bind = format!("127.0.0.1:{}", args[i + 1]); - i += 2; - } - "--help" | "-h" => { - eprintln!( - "autter notes serve - Run the in-memory notes backend reference server\n\ - \n\ - Usage: autter notes serve [--bind ] [--port ]\n\ - \n\ - This is a reference implementation. All notes are stored in process\n\ - memory; auth headers are accepted but not validated. It exists to\n\ - document the HTTP wire contract and to enable local testing of the\n\ - `notes_backend.kind = http` code path without a real backend." - ); - return; - } - other => { - eprintln!("Unknown argument to `autter notes serve`: {}", other); - std::process::exit(1); - } - } - } - - if let Err(e) = crate::notes::reference_server::run_blocking(&bind) { - eprintln!("notes reference server failed: {}", e); - std::process::exit(1); - } -} - fn print_help() { eprintln!("autter - git proxy with AI authorship tracking"); eprintln!(); diff --git a/src/commands/notes_migrate.rs b/src/commands/notes_migrate.rs index 796e751..5ffae67 100644 --- a/src/commands/notes_migrate.rs +++ b/src/commands/notes_migrate.rs @@ -1,4 +1,4 @@ -//! `autter notes migrate` — bulk-upload existing git notes to the HTTP backend. +//! `autter notes migrate` — bulk-upload existing git notes to the org's database. //! //! This command reads all notes stored in `refs/notes/ai` via `git notes --ref=ai list`, //! fetches their content using `git cat-file --batch`, uploads them to the remote HTTP @@ -45,7 +45,7 @@ pub fn handle_notes_migrate(args: &[String]) { "error: `autter notes migrate` requires notes_backend.kind = http.\n\ Current backend: {}\n\ \n\ - To enable the HTTP backend, run:\n\ + To enable cloud sync, run:\n\ \n\ \x20 autter config set notes_backend.kind http", cfg.notes_backend_kind() @@ -396,7 +396,7 @@ fn cat_file_batch( } fn print_help() { - eprintln!("autter notes migrate - Bulk-upload existing git notes to the HTTP backend"); + eprintln!("autter notes migrate - Bulk-upload existing git notes to your org's database"); eprintln!(); eprintln!("Usage: autter notes migrate [options]"); eprintln!(); diff --git a/src/commands/onboard.rs b/src/commands/onboard.rs index 63df4d4..4c8d9cb 100644 --- a/src/commands/onboard.rs +++ b/src/commands/onboard.rs @@ -114,10 +114,12 @@ fn setup_connected(cfg: &mut config::FileConfig, already_logged_in: bool) { } } - // Upload prompt/usage data to the platform while keeping local git notes. + // Connected mode: upload prompts (CAS) and authorship notes to the hosted + // data plane. `backend_url: None` resolves to DEFAULT_NOTES_BACKEND_URL + // (cli.autter.dev) via Config::notes_backend_url(). cfg.prompt_storage = Some("default".to_string()); cfg.notes_backend = Some(NotesBackendConfig { - kind: NotesBackendKind::GitNotes, + kind: NotesBackendKind::Http, backend_url: None, }); diff --git a/src/config.rs b/src/config.rs index 7058d2e..55cf74c 100644 --- a/src/config.rs +++ b/src/config.rs @@ -17,7 +17,11 @@ use crate::mdm::utils::home_dir; use std::sync::RwLock; /// Default API base URL for comparison -pub const DEFAULT_API_BASE_URL: &str = "https://autter.dev"; +pub const DEFAULT_API_BASE_URL: &str = "https://api.autter.dev"; + +/// Default data-plane (notes/CAS) endpoint used when the HTTP notes backend is +/// enabled but no explicit `backend_url` is configured. +pub const DEFAULT_NOTES_BACKEND_URL: &str = "https://cli.autter.dev"; /// Which backend to use for storing authorship notes. #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default)] @@ -615,12 +619,19 @@ impl Config { self.notes_backend.kind } - /// Returns the configured notes backend URL, or `None` if unset. + /// Returns the notes backend URL. /// - /// Callers must handle `None` explicitly — typically by skipping the operation when the HTTP backend - /// is enabled but no URL has been configured. + /// Precedence: an explicit `backend_url` wins; otherwise, when the HTTP backend + /// is active, falls back to [`DEFAULT_NOTES_BACKEND_URL`] (the hosted data plane). + /// Returns `None` only when the HTTP backend is not enabled and no URL is set. pub fn notes_backend_url(&self) -> Option<&str> { - self.notes_backend.backend_url.as_deref() + if let Some(url) = self.notes_backend.backend_url.as_deref() { + return Some(url); + } + if self.notes_backend.kind == NotesBackendKind::Http { + return Some(DEFAULT_NOTES_BACKEND_URL); + } + None } /// Returns true when the HTTP notes backend is active. diff --git a/src/daemon/telemetry_worker.rs b/src/daemon/telemetry_worker.rs index 4212808..c4ed85d 100644 --- a/src/daemon/telemetry_worker.rs +++ b/src/daemon/telemetry_worker.rs @@ -699,12 +699,23 @@ pub fn flush_notes() { } fn flush_cas(records: Vec) { - let context = ApiContext::new(None); - let api_base_url = context.base_url.clone(); + // CAS (prompt transcripts) is data-plane traffic. When the HTTP notes backend + // is active, send it to the same hosted data plane as notes (cli.autter.dev); + // otherwise fall back to the API base URL (legacy behavior). + let cfg = Config::fresh(); + let dataplane_url = + if cfg.notes_backend_kind() == crate::config::NotesBackendKind::Http { + cfg.notes_backend_url().map(|s| s.to_string()) + } else { + None + }; + let context = ApiContext::new(dataplane_url); + let target_url = context.base_url.clone(); let client = ApiClient::new(context); - let using_default_api = api_base_url == crate::config::DEFAULT_API_BASE_URL; - if using_default_api && !client.is_logged_in() && !client.has_api_key() { + let using_hosted = target_url == crate::config::DEFAULT_API_BASE_URL + || target_url == crate::config::DEFAULT_NOTES_BACKEND_URL; + if using_hosted && !client.is_logged_in() && !client.has_api_key() { tracing::debug!("telemetry: skipping CAS flush, not logged in"); return; } diff --git a/src/notes/mod.rs b/src/notes/mod.rs index 254f44c..c697a39 100644 --- a/src/notes/mod.rs +++ b/src/notes/mod.rs @@ -1,11 +1,7 @@ //! Notes backend module. //! //! `notes::db` provides the dedicated `~/.autter/internal/notes-db` SQLite store -//! used by the HTTP notes backend as both a write queue and a local read cache. -//! -//! `notes::reference_server` is an in-memory reference implementation of the -//! HTTP wire contract — used for local testing, benchmarking, and as -//! documentation of what a real backend must implement. +//! used as both the write queue and the local read cache for authorship notes +//! that sync to the org's own database (see `api::org_db`). pub mod db; -pub mod reference_server; diff --git a/src/notes/reference_server.rs b/src/notes/reference_server.rs deleted file mode 100644 index f384560..0000000 --- a/src/notes/reference_server.rs +++ /dev/null @@ -1,521 +0,0 @@ -//! In-memory reference implementation of the notes backend HTTP server. -//! -//! This module exists to make the wire contract between `autter` and a -//! third-party notes backend self-documenting and locally runnable. It is NOT -//! intended for production use: -//! -//! - All notes live in an `Arc>` for the lifetime of the -//! process. -//! - Authentication is accepted but not validated. -//! - Concurrency is "thread-per-connection" with no rate limiting. -//! -//! What it IS good for: -//! -//! - Demonstrating exactly which endpoints a real backend must implement, -//! what the request and response bodies look like, and which status codes -//! `autter` distinguishes between. -//! - Driving local end-to-end tests and benchmarks without a real server. -//! - Serving as a starting point for a real implementation. -//! -//! # Wire contract -//! -//! The client side lives in `src/api/notes.rs`. The two endpoints are: -//! -//! ## `POST /worker/notes/upload` -//! -//! Request body (JSON, [`NotesUploadRequest`]): -//! -//! ```json -//! { -//! "entries": [ -//! { "commit_sha": "", "content": "" }, -//! ... -//! ] -//! } -//! ``` -//! -//! Response body (JSON, [`NotesUploadResponse`]): -//! -//! ```json -//! { "success_count": , "failure_count": } -//! ``` -//! -//! Status: `200` on success; `400` on a malformed body. -//! -//! ## `GET /worker/notes/?commits=,,...` -//! -//! Response body (JSON, [`NotesReadResponse`]): -//! -//! ```json -//! { "notes": { "": "", ... } } -//! ``` -//! -//! Status: `200` if at least one of the requested SHAs is known; `404` -//! otherwise (the client treats `404` as "no notes found" — equivalent to an -//! empty map). -//! -//! [`NotesUploadRequest`]: crate::api::types::NotesUploadRequest -//! [`NotesUploadResponse`]: crate::api::types::NotesUploadResponse -//! [`NotesReadResponse`]: crate::api::types::NotesReadResponse - -use crate::api::types::{NotesReadResponse, NotesUploadRequest, NotesUploadResponse}; -use crate::error::AutterError; -use std::collections::HashMap; -use std::io::{BufRead, BufReader, Read, Write}; -use std::net::{SocketAddr, TcpListener, TcpStream}; -use std::sync::atomic::{AtomicBool, Ordering}; -use std::sync::{Arc, Mutex}; -use std::thread::JoinHandle; - -/// In-memory, thread-safe note store. -#[derive(Default, Clone)] -pub struct NotesStore { - inner: Arc>>, -} - -impl NotesStore { - pub fn new() -> Self { - Self::default() - } - - /// Insert / overwrite a single note. Returns `true` if a previous value - /// was overwritten. - pub fn put(&self, commit_sha: String, content: String) -> bool { - let mut guard = self.inner.lock().expect("notes store poisoned"); - guard.insert(commit_sha, content).is_some() - } - - /// Look up a single commit SHA. - pub fn get(&self, commit_sha: &str) -> Option { - self.inner - .lock() - .expect("notes store poisoned") - .get(commit_sha) - .cloned() - } - - /// Look up many commit SHAs at once. Missing SHAs are absent from the map. - pub fn get_many(&self, commit_shas: &[&str]) -> HashMap { - let guard = self.inner.lock().expect("notes store poisoned"); - commit_shas - .iter() - .filter_map(|sha| guard.get(*sha).map(|c| (sha.to_string(), c.clone()))) - .collect() - } - - pub fn len(&self) -> usize { - self.inner.lock().expect("notes store poisoned").len() - } - - pub fn is_empty(&self) -> bool { - self.len() == 0 - } -} - -/// Handle to a running reference server. The server runs on a background -/// thread; dropping the handle (or calling [`ReferenceServer::shutdown`]) -/// stops the accept loop. -pub struct ReferenceServer { - addr: SocketAddr, - store: NotesStore, - shutdown: Arc, - join: Option>, -} - -impl ReferenceServer { - /// Bind to `bind_addr` (e.g. `127.0.0.1:0`) and spawn the accept loop on a - /// background thread. The returned handle exposes the bound address (so - /// callers binding to port `0` can discover the chosen port) and the - /// shared [`NotesStore`]. - pub fn start(bind_addr: &str) -> Result { - let listener = TcpListener::bind(bind_addr) - .map_err(|e| AutterError::Generic(format!("bind {}: {}", bind_addr, e)))?; - // Short read timeout so the accept loop can periodically observe the - // shutdown flag without needing a separate wakeup mechanism. - listener - .set_nonblocking(false) - .map_err(AutterError::IoError)?; - - let addr = listener.local_addr().map_err(AutterError::IoError)?; - let store = NotesStore::new(); - let shutdown = Arc::new(AtomicBool::new(false)); - - let store_clone = store.clone(); - let shutdown_clone = shutdown.clone(); - let join = std::thread::Builder::new() - .name("notes-reference-server".into()) - .spawn(move || accept_loop(listener, store_clone, shutdown_clone)) - .map_err(AutterError::IoError)?; - - Ok(Self { - addr, - store, - shutdown, - join: Some(join), - }) - } - - pub fn addr(&self) -> SocketAddr { - self.addr - } - - pub fn base_url(&self) -> String { - format!("http://{}", self.addr) - } - - pub fn store(&self) -> &NotesStore { - &self.store - } - - /// Signal the accept loop to stop and wait for the thread to exit. - pub fn shutdown(mut self) { - self.shutdown_inner(); - } - - fn shutdown_inner(&mut self) { - self.shutdown.store(true, Ordering::SeqCst); - // Wake the accept loop by connecting to ourselves. - let _ = TcpStream::connect(self.addr); - if let Some(handle) = self.join.take() { - let _ = handle.join(); - } - } -} - -impl Drop for ReferenceServer { - fn drop(&mut self) { - self.shutdown_inner(); - } -} - -/// Run the server on the current thread until `Ctrl-C`. Used by the -/// `autter notes serve` CLI entry point. -pub fn run_blocking(bind_addr: &str) -> Result<(), AutterError> { - let server = ReferenceServer::start(bind_addr)?; - eprintln!( - "notes reference server listening on http://{}\n\ - (in-memory; not for production)\n\ - press Ctrl-C to stop.", - server.addr() - ); - // Block until the spawned thread exits — which only happens via shutdown, - // which the CLI never triggers, so this is effectively `park forever`. - if let Some(handle) = server.join.as_ref() { - // Park the main thread; the OS will deliver SIGINT to the process and - // tear everything down. We park in a loop because spurious wakeups - // would otherwise cause this to return early. - while !handle.is_finished() { - std::thread::park(); - } - } - Ok(()) -} - -fn accept_loop(listener: TcpListener, store: NotesStore, shutdown: Arc) { - for stream in listener.incoming() { - if shutdown.load(Ordering::SeqCst) { - break; - } - match stream { - Ok(stream) => { - let store = store.clone(); - std::thread::spawn(move || { - if let Err(e) = handle_connection(stream, &store) { - eprintln!("notes-reference-server: connection error: {}", e); - } - }); - } - Err(e) => { - eprintln!("notes-reference-server: accept error: {}", e); - } - } - } -} - -// ---------------------------------------------------------------------------- -// Minimal HTTP/1.1 request handling -// ---------------------------------------------------------------------------- - -struct Request { - method: String, - path: String, - query: String, - body: Vec, -} - -fn handle_connection(mut stream: TcpStream, store: &NotesStore) -> Result<(), AutterError> { - let request = read_request(&mut stream)?; - let response = dispatch(&request, store); - write_response(&mut stream, &response) -} - -fn read_request(stream: &mut TcpStream) -> Result { - let mut reader = BufReader::new(stream.try_clone().map_err(AutterError::IoError)?); - - // Request line. - let mut request_line = String::new(); - reader - .read_line(&mut request_line) - .map_err(AutterError::IoError)?; - let mut parts = request_line.split_whitespace(); - let method = parts.next().unwrap_or("").to_string(); - let target = parts.next().unwrap_or("").to_string(); - - // Split target into path + query. - let (path, query) = match target.split_once('?') { - Some((p, q)) => (p.to_string(), q.to_string()), - None => (target, String::new()), - }; - - // Headers (read until empty line, only `Content-Length` matters here). - let mut content_length: usize = 0; - loop { - let mut line = String::new(); - let n = reader.read_line(&mut line).map_err(AutterError::IoError)?; - if n == 0 || line == "\r\n" || line == "\n" { - break; - } - if let Some((name, value)) = line.split_once(':') - && name.trim().eq_ignore_ascii_case("content-length") - { - content_length = value.trim().parse().unwrap_or(0); - } - } - - // Body — cap at 50 MB to prevent OOM from malformed Content-Length. - const MAX_BODY: usize = 50 * 1024 * 1024; - if content_length > MAX_BODY { - return Err(AutterError::Generic(format!( - "Content-Length {} exceeds maximum {}", - content_length, MAX_BODY - ))); - } - let mut body = vec![0u8; content_length]; - if content_length > 0 { - reader.read_exact(&mut body).map_err(AutterError::IoError)?; - } - - Ok(Request { - method, - path, - query, - body, - }) -} - -struct Response { - status: u16, - body: Vec, -} - -impl Response { - fn json(status: u16, value: &serde_json::Value) -> Self { - Self { - status, - body: serde_json::to_vec(value).unwrap_or_else(|_| b"{}".to_vec()), - } - } - - fn error(status: u16, message: &str) -> Self { - Self::json(status, &serde_json::json!({ "error": message })) - } -} - -fn dispatch(req: &Request, store: &NotesStore) -> Response { - // Tolerate the trailing slash variant the client sends (`/worker/notes/`) - // as well as the bare path. - let path = req.path.trim_end_matches('/'); - match (req.method.as_str(), path) { - ("POST", "/worker/notes/upload") => handle_upload(&req.body, store), - ("GET", "/worker/notes") => handle_read(&req.query, store), - _ => Response::error(404, "not found"), - } -} - -fn handle_upload(body: &[u8], store: &NotesStore) -> Response { - let request: NotesUploadRequest = match serde_json::from_slice(body) { - Ok(r) => r, - Err(e) => return Response::error(400, &format!("invalid request body: {}", e)), - }; - - let mut success_count = 0usize; - let failure_count = 0usize; - for entry in request.entries { - store.put(entry.commit_sha, entry.content); - success_count += 1; - } - - let response = NotesUploadResponse { - success_count, - failure_count, - }; - Response::json( - 200, - &serde_json::to_value(response).expect("serialise upload response"), - ) -} - -fn handle_read(query: &str, store: &NotesStore) -> Response { - // The client sends `commits=sha1,sha2,...`. We accept either form. - let commits: Vec<&str> = query - .split('&') - .filter_map(|kv| kv.split_once('=')) - .filter(|(k, _)| *k == "commits") - .flat_map(|(_, v)| v.split(',')) - .filter(|s| !s.is_empty()) - .collect(); - - let notes = store.get_many(&commits); - - if notes.is_empty() { - // The client treats `404` as success-with-empty; we mirror that here - // (rather than returning `200` + empty map) to exercise the cold-miss - // path of the wire contract. - return Response::json(404, &serde_json::json!({ "notes": {} })); - } - - let response = NotesReadResponse { notes }; - Response::json( - 200, - &serde_json::to_value(response).expect("serialise read response"), - ) -} - -fn write_response(stream: &mut TcpStream, response: &Response) -> Result<(), AutterError> { - let reason = match response.status { - 200 => "OK", - 400 => "Bad Request", - 404 => "Not Found", - _ => "Error", - }; - let header = format!( - "HTTP/1.1 {} {}\r\n\ - Content-Type: application/json\r\n\ - Content-Length: {}\r\n\ - Connection: close\r\n\ - \r\n", - response.status, - reason, - response.body.len() - ); - stream - .write_all(header.as_bytes()) - .map_err(AutterError::IoError)?; - stream - .write_all(&response.body) - .map_err(AutterError::IoError)?; - stream.flush().map_err(AutterError::IoError)?; - Ok(()) -} - -// ---------------------------------------------------------------------------- -// Tests -// ---------------------------------------------------------------------------- - -#[cfg(test)] -mod tests { - use super::*; - use crate::api::client::{ApiClient, ApiContext}; - use crate::api::types::{NoteEntry, NotesUploadRequest}; - - fn client_for(server: &ReferenceServer) -> ApiClient { - // `ApiContext::without_auth` still picks up an API key from the - // environment if one is set. The reference server ignores headers, so - // either way is fine. - ApiClient::new(ApiContext::without_auth(Some(server.base_url()))) - } - - #[test] - fn upload_then_read_round_trip() { - let server = ReferenceServer::start("127.0.0.1:0").expect("start server"); - let client = client_for(&server); - - let entries = vec![ - NoteEntry { - commit_sha: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".to_string(), - content: "note-a".to_string(), - }, - NoteEntry { - commit_sha: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb".to_string(), - content: "note-b".to_string(), - }, - ]; - let upload = client - .upload_notes(NotesUploadRequest { - entries: entries.clone(), - }) - .expect("upload"); - assert_eq!(upload.success_count, 2); - assert_eq!(upload.failure_count, 0); - - let shas: Vec<&str> = entries.iter().map(|e| e.commit_sha.as_str()).collect(); - let read = client.read_notes(&shas).expect("read"); - assert_eq!(read.notes.len(), 2); - assert_eq!( - read.notes.get(&entries[0].commit_sha).map(|s| s.as_str()), - Some("note-a") - ); - assert_eq!( - read.notes.get(&entries[1].commit_sha).map(|s| s.as_str()), - Some("note-b") - ); - } - - #[test] - fn read_unknown_sha_returns_empty() { - let server = ReferenceServer::start("127.0.0.1:0").expect("start server"); - let client = client_for(&server); - - let read = client - .read_notes(&["0000000000000000000000000000000000000000"]) - .expect("read"); - assert!(read.notes.is_empty()); - } - - #[test] - fn upload_rejects_malformed_body() { - let server = ReferenceServer::start("127.0.0.1:0").expect("start server"); - - // Bypass `ApiClient` so we can send invalid JSON directly. - let mut stream = TcpStream::connect(server.addr()).expect("connect"); - let body = b"not json"; - let request = format!( - "POST /worker/notes/upload HTTP/1.1\r\n\ - Host: localhost\r\n\ - Content-Type: application/json\r\n\ - Content-Length: {}\r\n\ - Connection: close\r\n\ - \r\n", - body.len() - ); - stream.write_all(request.as_bytes()).expect("write head"); - stream.write_all(body).expect("write body"); - - let mut response = String::new(); - stream.read_to_string(&mut response).expect("read response"); - assert!(response.starts_with("HTTP/1.1 400"), "got: {}", response); - } - - #[test] - fn store_is_shared_across_connections() { - let server = ReferenceServer::start("127.0.0.1:0").expect("start server"); - let store = server.store().clone(); - - let client = client_for(&server); - client - .upload_notes(NotesUploadRequest { - entries: vec![NoteEntry { - commit_sha: "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".to_string(), - content: "x".to_string(), - }], - }) - .expect("upload"); - - // The store handed back by `server.store()` reflects writes that came - // in over the socket — proving the in-memory store really is shared. - assert_eq!( - store.get("deadbeefdeadbeefdeadbeefdeadbeefdeadbeef"), - Some("x".to_string()) - ); - } -} From a4d5b9ccea2b5da3ae5990b767fde80688cc4af7 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 16:51:36 +0530 Subject: [PATCH 08/10] Route usage metrics directly to the org database Metrics previously POSTed to a `/worker/metrics/upload` endpoint that no longer exists. Write them straight to each org's own Postgres instead, matching the notes/CAS data path: - New `cli_metrics` table (auto-created on connect) stores each event with its sparse `values`/`attrs` as JSONB, plus a content-hash `dedup_key` so re-flushing the local SQLite queue after a partial failure can't duplicate. - `org_db::insert_metrics` writes the batch and returns per-event errors. - `ApiClient::upload_metrics` decodes `org_db_url` from the access token and calls into `org_db`; the daemon flush and `flush-metrics-db` now gate on being logged in (an API key alone can't carry `org_db_url`). Generated-By: PostHog Code Task-Id: 257180bd-77bd-4424-a821-2c67c3a3fa8a --- src/api/metrics.rs | 64 ++++++++-------------------- src/api/org_db.rs | 71 +++++++++++++++++++++++++++++++- src/commands/flush_metrics_db.rs | 9 ++-- src/daemon/telemetry_worker.rs | 7 ++-- 4 files changed, 96 insertions(+), 55 deletions(-) diff --git a/src/api/metrics.rs b/src/api/metrics.rs index aeab03c..f24ce84 100644 --- a/src/api/metrics.rs +++ b/src/api/metrics.rs @@ -1,7 +1,8 @@ //! Metrics API endpoints use crate::api::client::ApiClient; -use crate::api::types::ApiErrorResponse; +use crate::api::org_db; +use crate::config; use crate::error::AutterError; use crate::metrics::MetricsBatch; use crate::observability::log_error; @@ -100,59 +101,30 @@ pub fn upload_metrics_with_retry( /// Metrics API endpoints impl ApiClient { - /// Upload metrics batch to the server (max 1000 events) + /// Write a metrics batch directly to the org's database. + /// + /// The destination database comes from the `org_db_url` claim in the + /// context's access token (see [`crate::api::org_db`]); there is no + /// intermediate backend. /// /// # Arguments - /// * `batch` - The metrics batch to upload + /// * `batch` - The metrics batch to write /// /// # Returns - /// * `Ok(MetricsUploadResponse)` - Response with errors (empty = all success) - /// * `Err(AutterError)` - Request failed + /// * `Ok(MetricsUploadResponse)` - Response with per-event errors (empty = all success) + /// * `Err(AutterError)` - When not authenticated or the batch can't run pub fn upload_metrics( &self, batch: &MetricsBatch, ) -> Result { - let response = self.context().post_json("/worker/metrics/upload", batch)?; - let status_code = response.status_code; - - let body = response - .as_str() - .map_err(|e| AutterError::Generic(format!("Failed to read response body: {}", e)))?; - - match status_code { - 200 => { - let metrics_response: MetricsUploadResponse = - serde_json::from_str(body).map_err(AutterError::JsonError)?; - Ok(metrics_response) - } - 400 => { - let error_response: ApiErrorResponse = - serde_json::from_str(body).unwrap_or_else(|_| ApiErrorResponse { - error: "Invalid request body".to_string(), - details: Some(serde_json::Value::String(body.to_string())), - }); - Err(AutterError::Generic(format!( - "Bad Request: {}", - error_response.error - ))) - } - 401 => Err(AutterError::Generic("Unauthorized".to_string())), - 500 => { - let error_response: ApiErrorResponse = - serde_json::from_str(body).unwrap_or_else(|_| ApiErrorResponse { - error: "Internal server error".to_string(), - details: None, - }); - Err(AutterError::Generic(format!( - "Internal Server Error: {}", - error_response.error - ))) - } - _ => Err(AutterError::Generic(format!( - "Unexpected status code {}: {}", - status_code, body - ))), - } + let identity = self.org_identity()?; + let failed = + org_db::insert_metrics(&identity, &batch.events, &config::get_or_create_distinct_id())?; + let errors = failed + .into_iter() + .map(|(index, error)| MetricsUploadError { index, error }) + .collect(); + Ok(MetricsUploadResponse { errors }) } } diff --git a/src/api/org_db.rs b/src/api/org_db.rs index 4b2fa7f..a4a5130 100644 --- a/src/api/org_db.rs +++ b/src/api/org_db.rs @@ -24,12 +24,14 @@ use std::time::Duration; use base64::Engine; use once_cell::sync::Lazy; use postgres::Client; +use sha2::{Digest, Sha256}; use crate::api::types::{ CAPromptStoreReadResponse, CAPromptStoreReadResult, CasObject, CasUploadResponse, CasUploadResult, NoteEntry, NotesReadResponse, NotesUploadResponse, }; use crate::error::AutterError; +use crate::metrics::MetricEvent; /// Identity + routing decoded from the caller's access-token JWT. #[derive(Debug, Clone)] @@ -122,7 +124,20 @@ CREATE TABLE IF NOT EXISTS cli_audit_log ( ); CREATE INDEX IF NOT EXISTS cli_audit_log_eventType_idx ON cli_audit_log (event_type); CREATE INDEX IF NOT EXISTS cli_audit_log_tokenId_idx ON cli_audit_log (token_id); -CREATE INDEX IF NOT EXISTS cli_audit_log_createdAt_idx ON cli_audit_log (created_at);"; +CREATE INDEX IF NOT EXISTS cli_audit_log_createdAt_idx ON cli_audit_log (created_at); +CREATE TABLE IF NOT EXISTS cli_metrics ( + id BIGSERIAL PRIMARY KEY, + event_id INTEGER NOT NULL, + event_ts TIMESTAMPTZ NOT NULL, + event_values JSONB NOT NULL DEFAULT '{}'::jsonb, + event_attrs JSONB NOT NULL DEFAULT '{}'::jsonb, + uploaded_by TEXT, + distinct_id TEXT, + dedup_key TEXT UNIQUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT now() +); +CREATE INDEX IF NOT EXISTS cli_metrics_eventId_idx ON cli_metrics (event_id); +CREATE INDEX IF NOT EXISTS cli_metrics_eventTs_idx ON cli_metrics (event_ts);"; /// Open a new TLS connection to `org_db_url` and ensure the schema exists. fn connect(org_db_url: &str) -> Result { @@ -419,6 +434,60 @@ pub fn read_cas( }) } +/// Insert a batch of usage-metric events. Each event is stored as one row, with +/// its sparse `values`/`attrs` kept as JSONB. A content-hash `dedup_key` makes +/// the write idempotent, so re-flushing the local queue after a partial failure +/// can't create duplicates. +/// +/// Returns the `(index, error)` pairs for any individual rows that failed; the +/// call itself only errors if the whole batch can't run (e.g. connection lost). +pub fn insert_metrics( + identity: &OrgIdentity, + events: &[MetricEvent], + distinct_id: &str, +) -> Result, AutterError> { + run(&identity.org_db_url, |client| { + let mut errors = Vec::new(); + + for (index, event) in events.iter().enumerate() { + // Canonicalize so the dedup hash is stable regardless of map order. + let canonical = serde_json_canonicalizer::to_string(event) + .unwrap_or_else(|_| serde_json::to_string(event).unwrap_or_default()); + let mut hasher = Sha256::new(); + hasher.update(distinct_id.as_bytes()); + hasher.update([0u8]); + hasher.update(canonical.as_bytes()); + let dedup_key = format!("{:x}", hasher.finalize()); + + let values = serde_json::to_value(&event.values).unwrap_or_else(|_| serde_json::json!({})); + let attrs = serde_json::to_value(&event.attrs).unwrap_or_else(|_| serde_json::json!({})); + + let result = client.execute( + "INSERT INTO cli_metrics + (event_id, event_ts, event_values, event_attrs, uploaded_by, distinct_id, dedup_key) + VALUES ($1, to_timestamp($2), $3, $4, $5, $6, $7) + ON CONFLICT (dedup_key) DO NOTHING", + &[ + &(event.event_id as i32), + &(event.timestamp as f64), + &values, + &attrs, + &identity.user_id, + &distinct_id, + &dedup_key, + ], + ); + + if let Err(e) = result { + tracing::warn!(event_id = event.event_id, "metric insert failed: {e}"); + errors.push((index, e.to_string())); + } + } + + Ok(errors) + }) +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/commands/flush_metrics_db.rs b/src/commands/flush_metrics_db.rs index 13fad65..03a471c 100644 --- a/src/commands/flush_metrics_db.rs +++ b/src/commands/flush_metrics_db.rs @@ -11,14 +11,13 @@ const MAX_BATCH_SIZE: usize = 1000; /// Handle the flush-metrics-db command pub fn handle_flush_metrics_db(_args: &[String]) { - // Check conditions: (!using_default_api) || is_logged_in() || has_api_key() + // Metrics are written to the org database via the access token's + // `org_db_url` claim, so a write requires being logged in. let context = ApiContext::new(None); - let api_base_url = context.base_url.clone(); let client = ApiClient::new(context); - let using_default_api = api_base_url == crate::config::DEFAULT_API_BASE_URL; - if using_default_api && !client.is_logged_in() && !client.has_api_key() { - eprintln!("flush-metrics-db: skipping (not logged in and using default API)"); + if !client.is_logged_in() { + eprintln!("flush-metrics-db: skipping (not logged in)"); return; } diff --git a/src/daemon/telemetry_worker.rs b/src/daemon/telemetry_worker.rs index c4ed85d..4556b15 100644 --- a/src/daemon/telemetry_worker.rs +++ b/src/daemon/telemetry_worker.rs @@ -317,11 +317,12 @@ fn flush_telemetry_batch(batch: TelemetryBuffer) { fn flush_metrics(events: &[MetricEvent]) { let context = ApiContext::new(None); - let api_base_url = context.base_url.clone(); let client = ApiClient::new(context); - let using_default_api = api_base_url == crate::config::DEFAULT_API_BASE_URL; - let should_upload = !using_default_api || client.is_logged_in() || client.has_api_key(); + // Metrics are written straight to the org database, which we reach via the + // `org_db_url` claim in the access token — so a write is only possible when + // logged in. Otherwise the events fall back to the local SQLite queue. + let should_upload = client.is_logged_in(); let mut upload_failed = false; let deadline = std::time::Instant::now() + std::time::Duration::from_secs(30); From a5e57d84a9f5113bff55e9d1492b46d31f8273b7 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 17:49:57 +0530 Subject: [PATCH 09/10] Install the editor extension via Open VSX .vsix fallback `autter onboard` installs the extension by ID (`autter.autter-vscode`), which only resolves if the editor's marketplace carries it. Cursor and VS Code resolve IDs against the Microsoft Marketplace, where the extension isn't published, so the install failed with "Extension not found" even though it's on Open VSX. Add a fallback: when the ID-based install fails, download the .vsix from Open VSX and install from the local file (every VS Code-family editor accepts a local .vsix), so onboarding works regardless of which gallery an editor uses. Wired into the Cursor, Windsurf, and VS Code installers. Also fix the publish workflow to derive the extension version from the `vscode-v*` tag (the tag and package.json had drifted: tag 0.1.23 but package.json 0.1.22, so the "0.1.23" release published 0.1.22), and bump package.json to 0.1.23 to match. Generated-By: PostHog Code Task-Id: 257180bd-77bd-4424-a821-2c67c3a3fa8a --- .../workflows/publish-vscode-extension.yml | 10 ++ agent-support/vscode/package.json | 2 +- src/mdm/agents/cursor.rs | 10 +- src/mdm/agents/vscode.rs | 7 +- src/mdm/agents/windsurf.rs | 10 +- src/mdm/utils.rs | 94 +++++++++++++++++++ 6 files changed, 124 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-vscode-extension.yml b/.github/workflows/publish-vscode-extension.yml index 30d1ef9..34f4d15 100644 --- a/.github/workflows/publish-vscode-extension.yml +++ b/.github/workflows/publish-vscode-extension.yml @@ -40,6 +40,16 @@ jobs: - name: Install dependencies run: npm ci + # When triggered by a `vscode-v` tag, the tag is the source of truth + # for the version. Sync package.json to it so the packaged/published .vsix + # can't drift from the tag (e.g. tag vscode-v0.1.23 must publish 0.1.23). + - name: Sync version to tag + if: startsWith(github.ref, 'refs/tags/vscode-v') + run: | + VERSION="${GITHUB_REF_NAME#vscode-v}" + echo "Setting extension version to $VERSION (from tag $GITHUB_REF_NAME)" + npm version "$VERSION" --no-git-tag-version --allow-same-version + - name: Package extension (.vsix) run: npm run package diff --git a/agent-support/vscode/package.json b/agent-support/vscode/package.json index c9bead3..aa241d4 100644 --- a/agent-support/vscode/package.json +++ b/agent-support/vscode/package.json @@ -2,7 +2,7 @@ "name": "autter-vscode", "displayName": "autter", "description": "Keep track of code generated by AI.", - "version": "0.1.22", + "version": "0.1.23", "icon": "autter.png", "publisher": "autter", "repository": { diff --git a/src/mdm/agents/cursor.rs b/src/mdm/agents/cursor.rs index 8436b36..1fd28cd 100644 --- a/src/mdm/agents/cursor.rs +++ b/src/mdm/agents/cursor.rs @@ -3,8 +3,9 @@ use crate::mdm::hook_installer::{ HookCheckResult, HookInstaller, HookInstallerParams, InstallResult, }; use crate::mdm::utils::{ - MIN_CURSOR_VERSION, generate_diff, get_editor_version, home_dir, install_vsc_editor_extension, - is_vsc_editor_extension_installed, parse_version, resolve_editor_cli, + MIN_CURSOR_VERSION, generate_diff, get_editor_version, home_dir, + install_vsc_editor_extension_with_vsix_fallback, is_vsc_editor_extension_installed, + parse_version, resolve_editor_cli, settings_paths_for_products, should_process_settings_target, version_meets_requirement, write_atomic, }; @@ -346,7 +347,10 @@ impl HookInstaller for CursorInstaller { } else { println!("Installing extensions..."); println!("\tInstalling extension 'autter.autter-vscode'..."); - match install_vsc_editor_extension(&cli, "autter.autter-vscode") { + match install_vsc_editor_extension_with_vsix_fallback( + &cli, + "autter.autter-vscode", + ) { Ok(()) => { results.push(InstallResult { changed: true, diff --git a/src/mdm/agents/vscode.rs b/src/mdm/agents/vscode.rs index 5f496f9..ad4d2b5 100644 --- a/src/mdm/agents/vscode.rs +++ b/src/mdm/agents/vscode.rs @@ -3,7 +3,7 @@ use crate::mdm::hook_installer::{ HookCheckResult, HookInstaller, HookInstallerParams, InstallResult, UninstallResult, }; use crate::mdm::utils::{ - MIN_CODE_VERSION, get_editor_version, home_dir, install_vsc_editor_extension, + MIN_CODE_VERSION, get_editor_version, home_dir, install_vsc_editor_extension_with_vsix_fallback, is_github_codespaces, is_vsc_editor_extension_installed, parse_version, resolve_editor_cli, settings_paths_for_products, should_process_settings_target, update_vscode_chat_hook_settings, version_meets_requirement, @@ -143,7 +143,10 @@ impl HookInstaller for VSCodeInstaller { message: "VS Code: Pending extension install".to_string(), }); } else { - match install_vsc_editor_extension(&cli, "autter.autter-vscode") { + match install_vsc_editor_extension_with_vsix_fallback( + &cli, + "autter.autter-vscode", + ) { Ok(()) => { results.push(InstallResult { changed: true, diff --git a/src/mdm/agents/windsurf.rs b/src/mdm/agents/windsurf.rs index 5bd59cf..be627ed 100644 --- a/src/mdm/agents/windsurf.rs +++ b/src/mdm/agents/windsurf.rs @@ -3,8 +3,9 @@ use crate::mdm::hook_installer::{ HookCheckResult, HookInstaller, HookInstallerParams, InstallResult, UninstallResult, }; use crate::mdm::utils::{ - generate_diff, home_dir, install_vsc_editor_extension, is_autter_checkpoint_command, - is_github_codespaces, is_vsc_editor_extension_installed, resolve_editor_cli, write_atomic, + generate_diff, home_dir, install_vsc_editor_extension_with_vsix_fallback, + is_autter_checkpoint_command, is_github_codespaces, is_vsc_editor_extension_installed, + resolve_editor_cli, write_atomic, }; use serde_json::{Value, json}; @@ -348,7 +349,10 @@ impl HookInstaller for WindsurfInstaller { } else { println!("Installing extensions..."); println!("\tInstalling extension 'autter.autter-vscode'..."); - match install_vsc_editor_extension(&cli, "autter.autter-vscode") { + match install_vsc_editor_extension_with_vsix_fallback( + &cli, + "autter.autter-vscode", + ) { Ok(()) => { results.push(InstallResult { changed: true, diff --git a/src/mdm/utils.rs b/src/mdm/utils.rs index 857dd65..b2d7a76 100644 --- a/src/mdm/utils.rs +++ b/src/mdm/utils.rs @@ -651,6 +651,100 @@ pub fn install_vsc_editor_extension( ))) } +/// Open VSX is the editor-independent fallback source for the extension. Every +/// VS Code-family editor (VS Code, Cursor, Windsurf, VSCodium) can install from +/// a local `.vsix` file, but they don't all share one marketplace: Cursor and +/// VS Code resolve extension IDs against the Microsoft Marketplace, while +/// VSCodium uses Open VSX. So when an ID-based install fails (the editor's +/// gallery doesn't carry the extension), we download the `.vsix` from Open VSX +/// and install from the file instead — which works everywhere. +const OPEN_VSX_API: &str = "https://open-vsx.org/api"; + +/// Fetch a URL and return its body bytes (follows redirects; Open VSX serves the +/// `.vsix` via a 302 to blob storage). +fn http_get_bytes(url: &str) -> Result, String> { + let agent = crate::http::build_agent(Some(60)); + let request = agent.get(url).set( + "User-Agent", + &format!("autter/{}", env!("CARGO_PKG_VERSION")), + ); + let response = crate::http::send(request)?; + if response.status_code != 200 { + return Err(format!("HTTP {} from {url}", response.status_code)); + } + Ok(response.into_bytes()) +} + +/// Download the latest `.vsix` for `publisher.name` from Open VSX into a temp +/// file and return its path. The caller is responsible for deleting it. +fn download_extension_vsix(extension_id: &str) -> Result { + let (publisher, name) = extension_id.split_once('.').ok_or_else(|| { + AutterError::Generic(format!( + "invalid extension id '{extension_id}' (expected publisher.name)" + )) + })?; + + // Look up the latest version to find its download URL. + let meta_url = format!("{OPEN_VSX_API}/{publisher}/{name}/latest"); + let meta_bytes = http_get_bytes(&meta_url) + .map_err(|e| AutterError::Generic(format!("Open VSX metadata fetch failed: {e}")))?; + let meta: serde_json::Value = + serde_json::from_slice(&meta_bytes).map_err(AutterError::JsonError)?; + + let download_url = meta + .get("files") + .and_then(|files| files.get("download")) + .and_then(|url| url.as_str()) + .ok_or_else(|| { + AutterError::Generic(format!("Open VSX has no .vsix download for '{extension_id}'")) + })?; + let version = meta + .get("version") + .and_then(|v| v.as_str()) + .unwrap_or("latest"); + + let vsix_bytes = http_get_bytes(download_url) + .map_err(|e| AutterError::Generic(format!("Open VSX .vsix download failed: {e}")))?; + + let path = std::env::temp_dir().join(format!("{publisher}.{name}-{version}.vsix")); + fs::write(&path, vsix_bytes).map_err(|e| { + AutterError::Generic(format!("failed to write .vsix to {}: {e}", path.display())) + })?; + Ok(path) +} + +/// Install an extension, falling back to a direct Open VSX `.vsix` download when +/// the editor's marketplace can't resolve it by ID. This makes onboarding install +/// the extension regardless of which gallery a given editor is wired to. +pub fn install_vsc_editor_extension_with_vsix_fallback( + cli: &EditorCliCommand, + extension_id: &str, +) -> Result<(), AutterError> { + let id_err = match install_vsc_editor_extension(cli, extension_id) { + Ok(()) => return Ok(()), + Err(e) => e, + }; + + tracing::debug!( + "{}: marketplace install of '{extension_id}' failed ({id_err}); trying Open VSX .vsix fallback", + cli.program + ); + + let vsix_path = download_extension_vsix(extension_id).map_err(|dl_err| { + AutterError::Generic(format!( + "marketplace install failed ({id_err}); could not download .vsix from Open VSX: {dl_err}" + )) + })?; + + let result = install_vsc_editor_extension(cli, &vsix_path.to_string_lossy()); + let _ = fs::remove_file(&vsix_path); + result.map_err(|vsix_err| { + AutterError::Generic(format!( + "marketplace install failed ({id_err}); .vsix fallback install also failed: {vsix_err}" + )) + }) +} + /// Strip the Windows extended-length path prefix (`\\?\`) if present. /// On Windows, `std::fs::canonicalize` returns paths prefixed with `\\?\` /// (e.g. `\\?\C:\Users\...`). This prefix causes problems when the path is From f4d4b64d34f134ead92831340c60a2243e93ee18 Mon Sep 17 00:00:00 2001 From: Sagnik Ghosh Date: Wed, 17 Jun 2026 18:36:15 +0530 Subject: [PATCH 10/10] Drop Devin PR-review-bot step from agent PR workflow The repo doesn't use Devin (CodeRabbit is the active review bot), so the "wait for and address Devin feedback" instruction no longer applies. Keep the CI-monitoring guidance; remove the Devin-specific parts. Generated-By: PostHog Code Task-Id: 257180bd-77bd-4424-a821-2c67c3a3fa8a --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 5d9e8e9..9301263 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,7 +34,7 @@ cargo insta accept # accept all pending snapshots Before opening a PR, make sure to run `task lint` and `task fmt` and resolve any formatting/lint issues as they will fail in CI. -When opening a PR, make sure to monitor the ubuntu-based CI jobs first. They are the fastest (roughly 15mins) and if they fail, you should quickly iterate based on those failures and update the PR -- iterating there until those jobs are all green. Additionally, while you're checking on the ubuntu-based jobs, our automated PR review bot, Devin, should have had time to leave feedback. Make sure to read all of Devin's PR review feedback commits and address them. Address them means review, understand, evaluate, and fix if necessary or comment with your thoughts if you don't the feedback is a real issue. Once the lint, fmt, and Ubuntu-based tests have passed and you have addressed all Devin PR review feedback, you can stop monitoring CI for the Mac (~35mins) and Windows (up to 3.5 hours) checks unless the user has explicitly asked for you to wait for those or you're working on a specific OS-based bug. +When opening a PR, make sure to monitor the ubuntu-based CI jobs first. They are the fastest (roughly 15mins) and if they fail, you should quickly iterate based on those failures and update the PR -- iterating there until those jobs are all green. Once the lint, fmt, and Ubuntu-based tests have passed, you can stop monitoring CI for the Mac (~35mins) and Windows (up to 3.5 hours) checks unless the user has explicitly asked for you to wait for those or you're working on a specific OS-based bug. ## Architecture