28 files changed
+30
-30
Cargo.lock
+3
-3
@@ -1,6 +1,6 @@
1
# This file is automatically @generated by Cargo.
2
# It is not intended for manual editing.
3
-version = 3
3
+version = 4
4
5
[[package]]
6
name = "aho-corasick"
@@ -1260,7 +1260,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1260
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
1261
1262
[[package]]
1263
-name = "sigit-api"
1263
+name = "sigit-si-api"
1264
version = "1.0.0"
1265
dependencies = [
1266
"chrono",
@@ -1286,7 +1286,7 @@ dependencies = [
1286
"reqwest",
1287
"serde",
1288
"serde_json",
1289
- "sigit-api",
1289
+ "sigit-si-api",
1290
"tabled",
1291
"tempfile",
1292
"tokio",
Cargo.toml
+7
-7
@@ -1,17 +1,17 @@
1
[workspace]
2
resolver = "2"
3
-members = ["crates/cli", "crates/sigit-api"]
3
+members = ["crates/cli", "crates/sigit-si-api"]
4
5
-# The workspace exists for one reason: `sigit-api` is a standalone, typed
6
-# client for the sigit.si JSON API that the desktop app (sigit-app) and the
7
-# agent (sigit) can depend on without pulling in clap, dialoguer, and the rest
8
-# of the terminal surface. `cli` is the thin `si` binary on top of it.
5
+# The workspace exists for one reason: `sigit-si-api` is a standalone, typed
6
+# client for the sigit.si JSON API that the desktop app (sigit-app) can depend
7
+# on without pulling in clap, dialoguer, and the rest of the terminal surface.
8
+# `cli` is the thin `si` binary on top of it.
9
[workspace.package]
10
version = "1.0.0"
11
edition = "2021"
12
authors = ["Seto Elkahfi <seto@sigit.si>"]
13
license = "Apache-2.0"
14
-repository = "https://github.com/getsigit/sigit-si-cli"
14
+repository = "https://github.com/getsigit/si"
15
homepage = "https://sigit.si"
16
17
[workspace.dependencies]
@@ -29,7 +29,7 @@ reqwest = { version = "0.12", default-features = false, features = [
29
] }
30
serde = { version = "1", features = ["derive"] }
31
serde_json = "1"
32
-sigit-api = { version = "1.0.0", path = "crates/sigit-api" }
32
+sigit-si-api = { version = "1.0.0", path = "crates/sigit-si-api" }
33
tabled = { version = "0.20", default-features = false, features = ["std"] }
34
thiserror = "2.0"
35
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
README.md
+3
-3
@@ -53,15 +53,15 @@ CI authenticates without an interactive login.
53
54
## Workspace layout
55
56
-- **`crates/sigit-api`** — a standalone, typed Rust client for the sigit.si
56
+- **`crates/sigit-si-api`** — a standalone, typed Rust client for the sigit.si
57
JSON API. No CLI dependencies (clap, dialoguer, …); usable from any Rust
58
project that wants to talk to sigit.si, including the desktop app.
59
- **`crates/cli`** — the `si` binary: command parsing, terminal rendering, git
60
- remote resolution, and credential storage, built on top of `sigit-api`.
60
+ remote resolution, and credential storage, built on top of `sigit-si-api`.
61
62
Issues, pull requests, and code search have no REST surface on sigit.si yet —
63
they're served over the same MCP (Model Context Protocol) JSON-RPC endpoint
64
-the AI agent uses. `sigit-api` speaks that transport internally; it's not
64
+the AI agent uses. `sigit-si-api` speaks that transport internally; it's not
65
visible at the call site.
66
67
## Development
crates/cli/Cargo.toml
+1
-1
@@ -27,7 +27,7 @@ open = { workspace = true }
27
reqwest = { workspace = true }
28
serde = { workspace = true }
29
serde_json = { workspace = true }
30
-sigit-api = { workspace = true }
30
+sigit-si-api = { workspace = true }
31
tabled = { workspace = true }
32
tokio = { workspace = true }
33
tracing = { workspace = true }
crates/cli/src/cli.rs
+1
-1
@@ -1,6 +1,6 @@
1
//! The `si` command tree.
2
3
-use {clap::Parser, sigit_api::Environment, std::str::FromStr};
3
+use {clap::Parser, sigit_si_api::Environment, std::str::FromStr};
4
5
#[derive(Parser)]
6
#[command(name = "si", version, about = "The sigit.si command line interface.")]
crates/cli/src/commands/auth.rs
+1
-1
@@ -1,7 +1,7 @@
1
use {
2
crate::{cli::AuthCommand, config, context::Ctx, ui},
3
anyhow::{anyhow, Result},
4
- sigit_api::{account::incomplete_reason, models::AccountStatus},
4
+ sigit_si_api::{account::incomplete_reason, models::AccountStatus},
5
};
6
7
pub async fn run(ctx: &Ctx, command: AuthCommand) -> Result<()> {
crates/cli/src/commands/issue.rs
+1
-1
@@ -1,7 +1,7 @@
1
use {
2
crate::{cli::IssueCommand, context::Ctx, ui},
3
anyhow::{anyhow, Result},
4
- sigit_api::State,
4
+ sigit_si_api::State,
5
};
6
7
pub async fn run(ctx: &Ctx, command: IssueCommand) -> Result<()> {
crates/cli/src/commands/pr.rs
+1
-1
@@ -1,7 +1,7 @@
1
use {
2
crate::{cli::PrCommand, context::Ctx, git, ui},
3
anyhow::{anyhow, Result},
4
- sigit_api::State,
4
+ sigit_si_api::State,
5
};
6
7
pub async fn run(ctx: &Ctx, command: PrCommand) -> Result<()> {
crates/cli/src/commands/repo.rs
+1
-1
@@ -5,7 +5,7 @@ use {
5
ui::{self, prompt},
6
},
7
anyhow::Result,
8
- sigit_api::NewRepository,
8
+ sigit_si_api::NewRepository,
9
};
10
11
pub async fn run(ctx: &Ctx, command: RepoCommand) -> Result<()> {
crates/cli/src/config.rs
+1
-1
@@ -6,7 +6,7 @@
6
7
use {
8
anyhow::{anyhow, Context, Result},
9
- sigit_api::Environment,
9
+ sigit_si_api::Environment,
10
std::{
11
fs,
12
path::{Path, PathBuf},
crates/cli/src/context.rs
+1
-1
@@ -4,7 +4,7 @@
4
use {
5
crate::git::{self, RepoSlug},
6
anyhow::{anyhow, Result},
7
- sigit_api::{Client, Environment},
7
+ sigit_si_api::{Client, Environment},
8
};
9
10
pub struct Ctx {
crates/cli/src/main.rs
+1
-1
@@ -11,7 +11,7 @@ use {
11
cli::{Cli, Command},
12
console::style,
13
context::Ctx,
14
- sigit_api::Client,
14
+ sigit_si_api::Client,
15
};
16
17
#[tokio::main]
crates/cli/src/ui/render.rs
+1
-1
@@ -3,7 +3,7 @@
3
4
use {
5
super::{bold, dim, highlight, relative_time, state_badge},
6
- sigit_api::models::{
6
+ sigit_si_api::models::{
7
Billing, CloudSession, CodeHit, Comment, Hook, Issue, IssueSummary, PullRequest,
8
PullRequestSummary, Repository, RepositorySummary, User,
9
},
crates/sigit-si-api/Cargo.toml
renamed
+2
-2
@@ -1,6 +1,6 @@
1
[package]
2
-name = "sigit-api"
3
-description = "Typed client for the sigit.si JSON API."
2
+name = "sigit-si-api"
3
+description = "Typed client for the sigit.si JSON API. Not affiliated with the siGit Code agent."
4
version.workspace = true
5
edition.workspace = true
6
authors.workspace = true
crates/sigit-si-api/README.md
renamed
+3
-3
@@ -1,18 +1,18 @@
1
-# sigit-api
1
+# sigit-si-api
2
3
A typed Rust client for the [sigit.si](https://sigit.si) JSON API. Used by the
4
`si` CLI (`crates/cli` in this workspace) and usable standalone by any Rust
5
project — the desktop app included.
6
7
```rust
8
-use sigit_api::{Client, Environment};
8
+use sigit_si_api::{Client, Environment};
9
10
let client = Client::new(Environment::Production)?.with_token(token);
11
let me = client.user().await?;
12
let repos = client.repos().await?;
13
```
14
15
-See the crate-level docs (`cargo doc --open -p sigit-api`) for the full
15
+See the crate-level docs (`cargo doc --open -p sigit-si-api`) for the full
16
surface: accounts, repositories, webhooks, Cloud Sessions, billing, and
17
issues/pull requests/code search (served over an internal MCP JSON-RPC
18
bridge).
crates/sigit-si-api/src/account.rs
renamed
crates/sigit-si-api/src/billing.rs
renamed
crates/sigit-si-api/src/client.rs
renamed
crates/sigit-si-api/src/code.rs
renamed
crates/sigit-si-api/src/environment.rs
renamed
crates/sigit-si-api/src/error.rs
renamed
crates/sigit-si-api/src/issues.rs
renamed
crates/sigit-si-api/src/lib.rs
renamed
+2
-2
@@ -1,9 +1,9 @@
1
//! A typed client for the [sigit.si](https://sigit.si) JSON API.
2
//!
3
//! ```no_run
4
-//! use sigit_api::{Client, Environment, issues::State};
4
+//! use sigit_si_api::{Client, Environment, issues::State};
5
//!
6
-//! # async fn example() -> sigit_api::Result<()> {
6
+//! # async fn example() -> sigit_si_api::Result<()> {
7
//! let client = Client::new(Environment::Production)?.with_token("…");
8
//!
9
//! let me = client.user().await?;