anveesa 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Cargo.lock CHANGED
@@ -54,7 +54,7 @@ dependencies = [
54
54
 
55
55
  [[package]]
56
56
  name = "anveesa"
57
- version = "0.3.1"
57
+ version = "0.3.3"
58
58
  dependencies = [
59
59
  "anyhow",
60
60
  "base64",
package/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "anveesa"
3
- version = "0.3.1"
3
+ version = "0.3.3"
4
4
  edition = "2024"
5
5
  default-run = "anveesa"
6
6
 
@@ -13,5 +13,5 @@ reqwest = { version = "0.12", default-features = false, features = ["json", "rus
13
13
  rustyline = "14"
14
14
  serde = { version = "1.0", features = ["derive"] }
15
15
  serde_json = "1.0"
16
- tokio = { version = "1.0", features = ["macros", "rt-multi-thread", "process", "time", "sync", "io-util"] }
16
+ tokio = { version = "1.0", features = ["macros", "rt-multi-thread", "process", "time", "sync", "io-util", "signal"] }
17
17
  toml = "0.8"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anveesa",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "A terminal CLI that wraps AI providers (OpenAI-compatible APIs and local CLIs) into a single unified command",
5
5
  "main": "bin/anveesa.js",
6
6
  "bin": {
package/src/cli.rs CHANGED
@@ -25,6 +25,26 @@ pub enum Command {
25
25
  Providers,
26
26
  /// Manage the Anveesa config file.
27
27
  Config(ConfigArgs),
28
+ /// Manage saved interactive sessions.
29
+ Sessions(SessionsArgs),
30
+ }
31
+
32
+ #[derive(Debug, Args)]
33
+ pub struct SessionsArgs {
34
+ #[command(subcommand)]
35
+ pub command: SessionsCommand,
36
+ }
37
+
38
+ #[derive(Debug, Subcommand)]
39
+ pub enum SessionsCommand {
40
+ /// List all saved sessions.
41
+ List,
42
+ /// Delete sessions. Without flags, deletes the session for the current directory.
43
+ Clear {
44
+ /// Delete all saved sessions.
45
+ #[arg(long)]
46
+ all: bool,
47
+ },
28
48
  }
29
49
 
30
50
  #[derive(Debug, Args)]
package/src/config.rs CHANGED
@@ -424,6 +424,10 @@ impl ProviderConfig {
424
424
  pub struct OpenAiCompatibleProviderConfig {
425
425
  pub base_url: String,
426
426
 
427
+ /// Inline API key. Prefer `api_key_env` to avoid storing secrets in the config file.
428
+ #[serde(default, skip_serializing_if = "Option::is_none")]
429
+ pub api_key: Option<String>,
430
+
427
431
  #[serde(default, skip_serializing_if = "Option::is_none")]
428
432
  pub api_key_env: Option<String>,
429
433
 
@@ -477,6 +481,7 @@ fn insert_openai_provider(
477
481
  name.to_string(),
478
482
  ProviderConfig::OpenAiCompatible(OpenAiCompatibleProviderConfig {
479
483
  base_url: base_url.to_string(),
484
+ api_key: None,
480
485
  api_key_env: api_key_env.map(str::to_string),
481
486
  default_model: None,
482
487
  headers: BTreeMap::new(),