-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
148 lines (137 loc) · 5.25 KB
/
Copy pathCargo.toml
File metadata and controls
148 lines (137 loc) · 5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
[package]
name = "aicx"
version = "0.9.4"
edition = "2024"
rust-version = "1.91.1"
description = "CLI, MCP server, and library for harvesting AI agent session transcripts (Claude Code, Codex, Gemini) into a canonical corpus with optional semantic search"
authors = ["Maciej Gad <void@div0.space>", "Monika Szymanska <hello@vetcoders.io>"]
license = "BUSL-1.1"
repository = "https://github.com/Loctree/aicx"
homepage = "https://github.com/Loctree/aicx"
documentation = "https://docs.rs/aicx"
readme = "README.md"
keywords = ["ai", "context", "timeline", "claude", "codex"]
categories = ["command-line-utilities", "development-tools"]
exclude = ["*.html", "*.patch", "*.orig", ".ai-agents/", ".ai-context/", "scripts/", "skills/"]
autobins = false
default-run = "aicx"
[workspace]
members = [
".",
"crates/aicx-embeddings",
"crates/aicx-monitor",
"crates/aicx-parser",
"crates/aicx-progress-contracts",
"crates/aicx-retrieve",
]
resolver = "3"
[features]
# Stable, slim library profile for in-process consumers such as Loctree.
# Use with `default-features = false` to expose the store/read/session/intent core
# without CLI, dashboard, MCP, retrieval, embedder, or Lance surfaces.
loctree-consumer = []
default = ["app", "native-embedder", "cloud-embedder"]
app = [
"dep:aicx-monitor",
"dep:aicx-progress-contracts",
"dep:aicx-retrieve",
"dep:axum",
"dep:clap",
"dep:crossterm",
"dep:futures",
"dep:indicatif",
"dep:inquire",
"dep:ratatui",
"dep:rmcp",
"dep:tokio",
"dep:tower_governor",
"dep:tracing-subscriber",
"dep:which",
]
# Lance steer index + local BM25; opting out drops the lancedb C++ build deps.
lance = ["app", "dep:rmcp-memex"]
# In-process GGUF embeddings (offline / dev workstations).
native-embedder = ["dep:aicx-embeddings", "aicx-embeddings/gguf"]
native-embedder-metal = ["native-embedder", "aicx-embeddings/metal"]
native-embedder-openmp = ["native-embedder", "aicx-embeddings/openmp"]
# HTTP embedder against an OpenAI-compatible /v1/embeddings endpoint
# (production default; config in ~/.aicx/config.toml).
cloud-embedder = ["dep:aicx-embeddings", "aicx-embeddings/cloud"]
# Opt-in e2e pipeline test: cargo test --features e2e-aicx --test e2e_pipeline
e2e-aicx = ["native-embedder", "cloud-embedder"]
[dependencies]
aicx-embeddings = { path = "crates/aicx-embeddings", version = "0.9.4", optional = true, default-features = false }
aicx-monitor = { path = "crates/aicx-monitor", version = "0.9.4", optional = true }
aicx-parser = { path = "crates/aicx-parser", version = "0.9.4", features = ["json-schema"] }
aicx-progress-contracts = { path = "crates/aicx-progress-contracts", version = "0.9.4", optional = true }
anyhow = "1.0"
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4", features = ["derive"], optional = true }
dirs = "6"
getrandom = "0.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
siphasher = "1.0"
sha2 = "0.10"
shlex = "1"
hex = "0.4"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true }
regex = "1"
indicatif = { version = "0.18", optional = true }
inquire = { version = "0.7", optional = true }
globset = "0.4"
ratatui = { version = "0.30", optional = true }
crossterm = { version = "0.29", optional = true }
axum = { version = "0.8", optional = true }
futures = { version = "0.3", optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "sync", "net", "signal", "process"], optional = true }
tower_governor = { version = "0.8", default-features = false, features = ["axum"], optional = true }
rmcp = { version = "1.2", features = ["server", "schemars", "transport-io", "transport-streamable-http-server", "transport-streamable-http-server-session"], optional = true }
libc = "0.2.183"
rmcp-memex = { package = "rust-memex", version = "0.6.5", default-features = false, optional = true }
schemars = "1.2.1"
aicx-retrieve = { path = "crates/aicx-retrieve", version = "0.9.4", optional = true }
blake3 = "1.8.5"
which = { version = "8.0.2", optional = true }
toml = "0.8"
[dev-dependencies]
filetime = "0.2"
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
[[bin]]
name = "aicx"
path = "src/main.rs"
required-features = ["app"]
[[bin]]
name = "aicx-mcp"
path = "src/bin/aicx_mcp.rs"
required-features = ["app"]
[lib]
name = "aicx"
path = "src/lib.rs"
[profile.release]
lto = true
strip = true
# Debian package metadata. Built via `cargo deb --no-build` after the normal
# cargo release build on the linux runner. Used by the release.yml CI to ship
# `aicx_<version>_<arch>.deb` alongside the tar.gz archive for apt-install UX.
[package.metadata.deb]
maintainer = "Loctree Release <release@loct.io>"
copyright = "2024-2026 LibraxisAI"
license-file = ["LICENSE", "0"]
extended-description = """
Operator CLI + MCP server for AI sessions: canonical corpus first, optional \
semantic index second. Designed for Claude Code, Codex, and Gemini.\
"""
depends = "$auto"
section = "utility"
priority = "optional"
assets = [
["target/release/aicx", "usr/bin/", "755"],
["target/release/aicx-mcp", "usr/bin/", "755"],
["README.md", "usr/share/doc/aicx/README", "644"],
["LICENSE", "usr/share/doc/aicx/LICENSE", "644"],
["CHANGELOG.md", "usr/share/doc/aicx/CHANGELOG", "644"],
]