diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 00000000..124c8a8b --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "ivygrep", + "interface": { + "displayName": "ivygrep" + }, + "plugins": [ + { + "name": "ivygrep", + "source": { + "source": "local", + "path": "./plugins/ivygrep" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Development" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..9ff2368a --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,18 @@ +{ + "name": "ivygrep", + "owner": { + "name": "Bruno Volpato" + }, + "metadata": { + "description": "Local code search and task context for coding agents" + }, + "plugins": [ + { + "name": "ivygrep", + "source": "./plugins/ivygrep", + "description": "Build bounded local context packs before coding agents explore a repository", + "category": "Development", + "tags": ["code-search", "context", "mcp", "local-first"] + } + ] +} diff --git a/.github/workflows/publish-crates.yml b/.github/workflows/publish-crates.yml new file mode 100644 index 00000000..0c2e0ad6 --- /dev/null +++ b/.github/workflows/publish-crates.yml @@ -0,0 +1,70 @@ +name: Publish crates.io packages + +on: + workflow_dispatch: + inputs: + bootstrap: + description: Use CRATES_IO_TOKEN for first publication + required: true + type: boolean + default: false + +permissions: + contents: read + id-token: write + +jobs: + publish: + name: Publish dependency forks and ivygrep + runs-on: ubuntu-latest + environment: release + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable + + - name: Authenticate to crates.io + if: ${{ !inputs.bootstrap }} + id: auth + uses: rust-lang/crates-io-auth-action@c6f97d42243bad5fab37ca0427f495c86d5b1a18 # v1 + + - name: Require first-publication token + if: ${{ inputs.bootstrap }} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} + run: test -n "$CARGO_REGISTRY_TOKEN" + + - name: Publish packages in dependency order + env: + CARGO_REGISTRY_TOKEN: ${{ inputs.bootstrap && secrets.CRATES_IO_TOKEN || steps.auth.outputs.token }} + run: | + publish() { + local manifest=$1 + local package=$2 + local version=$3 + if curl -fsS -A "ivygrep-release/${GITHUB_RUN_ID}" \ + "https://crates.io/api/v1/crates/${package}/${version}" >/dev/null 2>&1; then + echo "${package} ${version} already published" + return + fi + cargo publish --locked --manifest-path "$manifest" + for _ in $(seq 1 30); do + if curl -fsS -A "ivygrep-release/${GITHUB_RUN_ID}" \ + "https://crates.io/api/v1/crates/${package}/${version}" >/dev/null 2>&1; then + return + fi + sleep 10 + done + echo "${package} ${version} did not become visible" >&2 + exit 1 + } + + publish vendor/hf-hub/Cargo.toml ivygrep-hf-hub 0.3.2-ivygrep.1 + publish vendor/candle_embed/Cargo.toml ivygrep-candle-embed 0.1.4-ivygrep.1 + publish vendor/usearch/Cargo.toml ivygrep-usearch 2.24.0-ivygrep.1 + publish vendor/tree-sitter-haskell/Cargo.toml ivygrep-tree-sitter-haskell 0.23.1-ivygrep.1 + VERSION=$(sed -n 's/^version = "\([^"]*\)"/\1/p' Cargo.toml | head -1) + publish Cargo.toml ivygrep "$VERSION" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b35eba8c..ee6b971b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -525,6 +525,21 @@ jobs: path: artifacts merge-multiple: false + - name: Install uv for MCP bundle packaging + uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2 + with: + enable-cache: false + + - name: Build MCP bundle and Registry metadata + run: | + VERSION="${GITHUB_REF#refs/tags/v}" + mkdir -p release-assets + uv run scripts/package_mcpb.py \ + --artifacts artifacts \ + --version "$VERSION" \ + --output "release-assets/ivygrep-mcp-v${VERSION}.mcpb" \ + --server-json release-assets/server.json + - name: Collect release assets run: | mkdir -p release-assets @@ -553,6 +568,31 @@ jobs: files: release-assets/* fail_on_unmatched_files: true + mcp-registry: + name: Publish MCP Registry metadata + needs: release + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - name: Download Registry metadata from release + env: + GH_TOKEN: ${{ github.token }} + run: gh release download "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --pattern server.json + + - name: Install pinned MCP Registry publisher + run: | + curl -fsSLo mcp-publisher.tar.gz \ + https://github.com/modelcontextprotocol/registry/releases/download/v1.8.0/mcp-publisher_linux_amd64.tar.gz + echo "1370446bbe74d562608e8005a6ccce02d146a661fbd78674e11cc70b9618d6cf mcp-publisher.tar.gz" | sha256sum --check + tar xzf mcp-publisher.tar.gz mcp-publisher + + - name: Publish to MCP Registry + run: | + ./mcp-publisher login github-oidc + ./mcp-publisher publish + homebrew: name: Update Homebrew Tap needs: release diff --git a/CHANGELOG.md b/CHANGELOG.md index b96830ae..08c8d7a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ All notable changes to ivygrep are documented in this file. ## [Unreleased] +## [1.2.6] - 2026-07-19 + +### Added +- Codex and Claude Code marketplaces now install one ivygrep plugin containing MCP configuration and a focused task-context skill. +- Release archives now include a cross-platform MCPB package and MCP Registry metadata. GitHub OIDC publishes each tagged release to registry. +- Dedicated integration guides cover Codex, Claude Code, Cursor, Gemini CLI, OpenCode, and generic MCP clients. + +### Distribution +- ivygrep and four behavior-critical dependency forks have publishable crates.io manifests without consumer-side `[patch.crates-io]` configuration. +- Windows users gain a portable WinGet package backed by release archive checksum and nested executable validation. + +### Testing +- Distribution contracts cover marketplace versions, plugin MCP configuration, crate dependency aliases, cross-platform MCPB contents and digest, WinGet metadata, agent pages, and publication workflows. + ## [1.2.5] - 2026-07-18 ### Performance diff --git a/Cargo.lock b/Cargo.lock index 9fd6df4d..1c14e297 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -552,19 +552,6 @@ dependencies = [ "ug-metal", ] -[[package]] -name = "candle_embed" -version = "0.1.4" -dependencies = [ - "anyhow", - "candle-core 0.10.2", - "candle-nn", - "candle-transformers", - "hf-hub", - "serde_json", - "tokenizers 0.19.1", -] - [[package]] name = "cast" version = "0.3.0" @@ -2171,25 +2158,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hf-hub" -version = "0.3.2" -dependencies = [ - "dirs 5.0.1", - "futures", - "indicatif 0.17.11", - "log", - "native-tls", - "num_cpus", - "rand 0.8.6", - "reqwest", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "ureq", -] - [[package]] name = "htmlescape" version = "0.3.1" @@ -2571,13 +2539,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "ivygrep" -version = "1.2.5" +version = "1.2.6" dependencies = [ "anyhow", "arboard", "assert_cmd", "candle-core 0.11.0", - "candle_embed", "clap", "colored", "criterion", @@ -2590,9 +2557,12 @@ dependencies = [ "grep-regex", "grep-searcher", "hex", - "hf-hub", "ignore", "insta", + "ivygrep-candle-embed", + "ivygrep-hf-hub", + "ivygrep-tree-sitter-haskell", + "ivygrep-usearch", "libc", "notify", "num_cpus", @@ -2626,7 +2596,6 @@ dependencies = [ "tree-sitter-dart", "tree-sitter-elixir", "tree-sitter-go", - "tree-sitter-haskell", "tree-sitter-java", "tree-sitter-javascript", "tree-sitter-kotlin-ng", @@ -2644,13 +2613,60 @@ dependencies = [ "tree-sitter-typescript", "tree-sitter-zig", "tui-input", - "usearch", "uuid", "windows-sys 0.61.2", "xxhash-rust", "zstd", ] +[[package]] +name = "ivygrep-candle-embed" +version = "0.1.4-ivygrep.1" +dependencies = [ + "anyhow", + "candle-core 0.10.2", + "candle-nn", + "candle-transformers", + "ivygrep-hf-hub", + "serde_json", + "tokenizers 0.19.1", +] + +[[package]] +name = "ivygrep-hf-hub" +version = "0.3.2-ivygrep.1" +dependencies = [ + "dirs 5.0.1", + "futures", + "indicatif 0.17.11", + "log", + "native-tls", + "num_cpus", + "rand 0.8.6", + "reqwest", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "ureq", +] + +[[package]] +name = "ivygrep-tree-sitter-haskell" +version = "0.23.1-ivygrep.1" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "ivygrep-usearch" +version = "2.24.0-ivygrep.1" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -5497,14 +5513,6 @@ dependencies = [ "tree-sitter-language", ] -[[package]] -name = "tree-sitter-haskell" -version = "0.23.1" -dependencies = [ - "cc", - "tree-sitter-language", -] - [[package]] name = "tree-sitter-java" version = "0.23.5" @@ -5884,14 +5892,6 @@ dependencies = [ "serde", ] -[[package]] -name = "usearch" -version = "2.24.0" -dependencies = [ - "cxx", - "cxx-build", -] - [[package]] name = "utf8-ranges" version = "1.0.5" diff --git a/Cargo.toml b/Cargo.toml index 6a27aa8b..e7bbaaf9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ivygrep" -version = "1.2.5" +version = "1.2.6" edition = "2024" description = "Local code search and relationship-aware context packs for coding agents" license = "MIT" @@ -9,6 +9,19 @@ repository = "https://github.com/bvolpato/ivygrep" readme = "README.md" keywords = ["grep", "search", "semantic", "code-search", "mcp"] categories = ["command-line-utilities", "development-tools", "text-processing"] +include = [ + ".cargo/config.toml", + "assets/query_aliases.toml", + "assets/windows/ivygrep.manifest", + "benchmarks/public/reranker_model.json", + "build.rs", + "Cargo.lock", + "Cargo.toml", + "LICENSE", + "README.md", + "src/**", + "web/dist/**", +] [[bin]] name = "ig" @@ -74,7 +87,7 @@ tree-sitter-c = "0.24.1" tree-sitter-cpp = "0.23.4" tree-sitter-scala = "0.26.0" tree-sitter-bash = "0.25.1" -tree-sitter-haskell = "0.23.1" +tree-sitter-haskell = { package = "ivygrep-tree-sitter-haskell", path = "vendor/tree-sitter-haskell", version = "=0.23.1-ivygrep.1" } tree-sitter-ocaml = "0.25.0" tree-sitter-lua = "0.5.0" tree-sitter-dart = "0.2.0" @@ -87,11 +100,11 @@ tree-sitter-zig = "1.1.2" streaming-iterator = "0.1.9" xxhash-rust = { version = "0.8.15", features = ["xxh3"] } zstd = "0.13" -candle_embed = { version = "0.1.4", default-features = false, optional = true } +candle_embed = { package = "ivygrep-candle-embed", path = "vendor/candle_embed", version = "=0.1.4-ivygrep.1", default-features = false, optional = true } candle-core = { version = "0.11.0", optional = true } -hf-hub = { version = "0.3.2", optional = true } +hf-hub = { package = "ivygrep-hf-hub", path = "vendor/hf-hub", version = "=0.3.2-ivygrep.1", optional = true } tokenizers = { version = "0.23.1", optional = true } -usearch = { version = "=2.24.0", default-features = false, features = ["fp16lib"] } +usearch = { package = "ivygrep-usearch", path = "vendor/usearch", version = "=2.24.0-ivygrep.1", default-features = false, features = ["fp16lib"] } [dev-dependencies] assert_cmd = "2.2" @@ -107,7 +120,7 @@ tempfile = "3.27" openssl = { version = "0.10", features = ["vendored"] } [target.'cfg(target_os = "macos")'.dependencies] -candle_embed = { version = "0.1.4", default-features = false, optional = true, features = ["metal"] } +candle_embed = { package = "ivygrep-candle-embed", path = "vendor/candle_embed", version = "=0.1.4-ivygrep.1", default-features = false, optional = true, features = ["metal"] } candle-core = { version = "0.11.0", optional = true, features = ["accelerate", "metal"] } [target.'cfg(target_os = "windows")'.dependencies] @@ -125,9 +138,3 @@ strip = "symbols" [[bench]] name = "indexer_bench" harness = false - -[patch.crates-io] -hf-hub = { path = "vendor/hf-hub" } -candle_embed = { path = "vendor/candle_embed" } -usearch = { path = "vendor/usearch" } -tree-sitter-haskell = { path = "vendor/tree-sitter-haskell" } diff --git a/README.md b/README.md index 04c47419..066f7e9f 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,14 @@ curl -fsSL https://raw.githubusercontent.com/bvolpato/ivygrep/main/install.sh | irm https://raw.githubusercontent.com/bvolpato/ivygrep/main/install.ps1 | iex ``` +```powershell +winget install BrunoVolpato.ivygrep +``` + +```bash +cargo install ivygrep --locked +``` + Installers select a compatible archive, verify its SHA-256 checksum, install `ig`, and report the selected backend. Apple Silicon uses Metal. NVIDIA Linux hosts use the Linux x86_64 CUDA build when CUDA 13 and compute capability 8.0 or newer are available. Other systems use portable local inference. Run `ig hardware` to see detected hardware, compatibility limits, and the matching reinstall command. Build from source: @@ -90,6 +98,16 @@ Useful controls include `-n` for result files, `-C` for context lines, `--type` ## Connect coding agents +Codex and Claude Code packages install MCP configuration plus focused task-context skill: + +```bash +codex plugin marketplace add bvolpato/ivygrep +codex plugin add ivygrep@ivygrep + +claude plugin marketplace add bvolpato/ivygrep +claude plugin install ivygrep@ivygrep +``` + Automatic setup detects the client, preserves existing configuration, writes the absolute `ig` path, verifies the MCP handshake, and runs a search: ```bash @@ -123,6 +141,8 @@ Agents call `ig_search` for discovery. Set `output=context_pack` and `budget_tok Context packs can include definitions, callers, references, dependencies, dependents, tests, configuration, and docs. +Setup guides: [Codex](https://bvolpato.github.io/ivygrep/integrations/codex.html), [Claude Code](https://bvolpato.github.io/ivygrep/integrations/claude-code.html), [Cursor](https://bvolpato.github.io/ivygrep/integrations/cursor.html), [Gemini CLI](https://bvolpato.github.io/ivygrep/integrations/gemini-cli.html), [OpenCode](https://bvolpato.github.io/ivygrep/integrations/opencode.html), and [MCP](https://bvolpato.github.io/ivygrep/integrations/mcp.html). + Recommended agent instruction: ```text diff --git a/docs/benchmarks/evidence-dashboard.html b/docs/benchmarks/evidence-dashboard.html index fbc9f66f..51b1114c 100644 --- a/docs/benchmarks/evidence-dashboard.html +++ b/docs/benchmarks/evidence-dashboard.html @@ -19,7 +19,7 @@

Index footprint

57.0% smaller

Index throughput

109,006 chunks/s
-

Benchmark artifacts

ArtifactKindPublicationSHA-256
Frozen public retrieval baselinequality14efc6643aad6c855c4308b45f1c
Current public retrieval matrixquality83e32213c58af8c1907ec42bc57c
Current challenge retrieval matrixquality83e32213c58a531bc5985d4f3313
Compact-index public retrieval matrixquality14efc6643aad0a939ed959689bd9
Portable embedding model selectionmodele80163aa82d2ff4aeb3e5d11db05
Held-out learned rerankerquality14efc6643aade9ba2fee6fe5bb3e
Public million-chunk benchmarkscale14efc6643aadf4ba8051b2c7cf88
Release artifact acceptance gateportability68d730fc4c644476837a1f498b69
Release artifact historyreleasefa1fe9d589ddaf7570f5f5768537
+

Benchmark artifacts

ArtifactKindPublicationSHA-256
Frozen public retrieval baselinequality14efc6643aad6c855c4308b45f1c
Current public retrieval matrixquality83e32213c58af8c1907ec42bc57c
Current challenge retrieval matrixquality83e32213c58a531bc5985d4f3313
Compact-index public retrieval matrixquality14efc6643aad0a939ed959689bd9
Portable embedding model selectionmodele80163aa82d2ff4aeb3e5d11db05
Held-out learned rerankerquality14efc6643aade9ba2fee6fe5bb3e
Public million-chunk benchmarkscale14efc6643aadf4ba8051b2c7cf88
Release artifact acceptance gateportability68d730fc4c64a585b6c0ec05d2ff
Release artifact historyreleasefa1fe9d589ddaf7570f5f5768537

Versioned histories

Every point carries unit, context, variance status, and immutable source metadata in the raw JSON.

Metric familyPointsUnavailable
quality20
latency20
indexing20
memory20
index size20
binary size570570
archive size5700

History points

FamilyComparable seriesRevision/tagValueVarianceArtifact
qualitysemantic-retrieval/neural/ndcg_at_102c735847d43e0.2620sd 0.0002source
qualitysemantic-retrieval/neural/ndcg_at_102c7629e18d400.2666sd 0.0016source
latencymillion-chunk/warm-distinct-p954b24c627d9bd53.77 msratio CI95 0.247-0.318source
latencymillion-chunk/warm-distinct-p95c1442ebb68f515.07 msratio CI95 0.247-0.318source
indexingmillion-chunk/chunks-per-second4b24c627d9bd4963.32 chunks/sunavailablesource
indexingmillion-chunk/chunks-per-second2c7629e18d40109005.50 chunks/sunavailablesource
memorymillion-chunk/peak-rss4b24c627d9bd468.74 MiBunavailablesource
memorymillion-chunk/peak-rss2c7629e18d40284.58 MiBunavailablesource
index sizemillion-chunk/final-index4b24c627d9bd1090.48 MiBunavailablesource
index sizemillion-chunk/final-index2c7629e18d40468.82 MiBunavailablesource
binary sizerelease/linux-aarch64-muslv1.1.9unavailablenot-applicablesource
binary sizerelease/linux-x86_64-cudav1.1.9unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.9unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.9unavailablenot-applicablesource
binary sizerelease/macos-aarch64-metalv1.1.9unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.9unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.9unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.8unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.8unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.8unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.8unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.8unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.7unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.6unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.5unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.4unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.3unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.2unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.1unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.1.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.1.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.1.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.1.0unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.1.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.7unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.6unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.5unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.4unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.3unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.2unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.1unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv1.0.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv1.0.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v1.0.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v1.0.0unavailablenot-applicablesource
binary sizerelease/windows-x86_64v1.0.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.21unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.21unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.21unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.21unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.21unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.20unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.20unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.20unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.20unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.20unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.19unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.19unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.19unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.19unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.19unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.18unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.18unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.18unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.18unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.18unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.17unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.17unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.17unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.17unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.17unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.16unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.16unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.16unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.16unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.16unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.15unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.15unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.15unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.15unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.15unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.14unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.14unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.14unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.14unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.14unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.13unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.13unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.13unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.13unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.13unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.12unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.12unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.12unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.12unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.12unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.11unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.11unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.11unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.11unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.11unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.10unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.10unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.10unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.10unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.10unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.9unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.9unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.9unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.9unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.9unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.8unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.8unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.8unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.8unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.8unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.7unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.6unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.5unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.4unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.3unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.2unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.1unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.12.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.12.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.12.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.12.0unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.12.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.11.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.11.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.11.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.11.2unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.11.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.11.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.11.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.11.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.11.0unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.11.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.10.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.10.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.10.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.10.1unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.10.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.10.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.10.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.10.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.10.0unavailablenot-applicablesource
binary sizerelease/windows-x86_64v0.10.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.9.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.9.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.9.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.9.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.8.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.8.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.8.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.8.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.8.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.8.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.8.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.8.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.7.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.7.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.7.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.7.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.20unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.20unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.20unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.20unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.19unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.19unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.19unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.19unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.18unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.18unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.18unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.18unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.17unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.17unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.17unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.17unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.16unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.16unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.16unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.16unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.15unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.15unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.15unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.15unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.14unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.14unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.14unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.14unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.13unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.13unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.13unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.13unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.12unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.12unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.12unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.12unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.11unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.11unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.11unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.11unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.10unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.10unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.10unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.10unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.9unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.9unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.9unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.9unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.8unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.8unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.8unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.8unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.6.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.6.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.6.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.6.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.56unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.56unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.56unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.56unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.55unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.55unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.55unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.55unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.54unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.54unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.54unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.54unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.53unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.53unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.53unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.53unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.52unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.52unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.52unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.52unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.51unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.51unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.51unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.51unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.50unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.50unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.50unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.50unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.49unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.49unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.49unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.49unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.48unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.48unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.48unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.48unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.47unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.47unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.47unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.47unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.46unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.46unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.46unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.46unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.45unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.45unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.45unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.45unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.44unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.44unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.44unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.44unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.43unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.43unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.43unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.43unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.42unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.42unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.42unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.42unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.41unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.41unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.41unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.41unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.40unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.40unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.40unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.40unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.39unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.39unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.39unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.39unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.38unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.38unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.38unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.38unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.37unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.37unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.37unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.37unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.36unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.36unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.36unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.36unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.35unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.35unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.35unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.35unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.33unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.33unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.33unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.33unavailablenot-applicablesource
binary sizerelease/linux-aarch64-gnuv0.5.32unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.32unavailablenot-applicablesource
binary sizerelease/linux-x86_64-gnuv0.5.32unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.32unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.32unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.32unavailablenot-applicablesource
binary sizerelease/linux-aarch64-gnuv0.5.31unavailablenot-applicablesource
binary sizerelease/linux-aarch64-muslv0.5.31unavailablenot-applicablesource
binary sizerelease/linux-x86_64-gnuv0.5.31unavailablenot-applicablesource
binary sizerelease/linux-x86_64-muslv0.5.31unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.31unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.31unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.19unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.19unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.19unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.19unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.18unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.18unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.18unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.18unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.17unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.17unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.17unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.17unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.16unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.16unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.16unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.16unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.15unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.15unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.15unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.15unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.14unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.14unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.14unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.14unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.13unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.13unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.13unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.13unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.12unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.12unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.12unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.12unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.11unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.11unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.11unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.11unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.10unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.10unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.10unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.10unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.9unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.9unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.9unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.9unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.8unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.8unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.8unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.8unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.5unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.4unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.4unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.4unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.4unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.3unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.3unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.3unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.3unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.2unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.2unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.2unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.2unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.1unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.1unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.1unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.1unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.5.0unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.5.0unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.5.0unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.5.0unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.4.7unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.4.7unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.4.7unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.4.7unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.4.6unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.4.6unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.4.6unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.4.6unavailablenot-applicablesource
binary sizerelease/linux-aarch64v0.4.5unavailablenot-applicablesource
binary sizerelease/linux-x86_64v0.4.5unavailablenot-applicablesource
binary sizerelease/macos-aarch64v0.4.5unavailablenot-applicablesource
binary sizerelease/macos-x86_64v0.4.5unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.3.2unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.3.2unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.3.2unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.3.2unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.3.1unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.3.1unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.3.1unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.3.1unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.3.0unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.3.0unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.3.0unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.3.0unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.2.0unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.2.0unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.2.0unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.2.0unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.1.1unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.1.1unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.1.1unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.1.1unavailablenot-applicablesource
binary sizerelease/aarch64-apple-darwinv0.1.0unavailablenot-applicablesource
binary sizerelease/aarch64-unknown-linux-gnuv0.1.0unavailablenot-applicablesource
binary sizerelease/x86_64-apple-darwinv0.1.0unavailablenot-applicablesource
binary sizerelease/x86_64-unknown-linux-gnuv0.1.0unavailablenot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.913.36 MiBnot-applicablesource
archive sizerelease/linux-x86_64-cudav1.1.914.93 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.914.16 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.913.38 MiBnot-applicablesource
archive sizerelease/macos-aarch64-metalv1.1.913.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.913.63 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.913.02 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.813.45 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.814.26 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.813.47 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.813.74 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.813.09 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.713.45 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.714.26 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.713.47 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.713.74 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.713.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.613.45 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.614.26 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.613.45 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.613.73 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.613.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.513.45 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.514.26 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.513.45 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.513.72 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.513.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.413.44 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.414.25 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.413.46 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.413.72 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.413.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.313.44 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.314.25 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.313.45 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.313.72 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.313.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.213.41 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.214.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.213.21 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.213.40 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.213.03 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.113.40 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.114.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.113.19 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.113.42 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.113.02 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.1.013.40 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.1.014.18 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.1.013.20 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.1.013.40 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.1.013.00 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.713.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.713.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.712.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.713.14 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.712.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.613.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.613.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.612.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.613.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.612.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.513.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.513.91 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.512.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.513.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.512.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.413.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.413.90 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.412.92 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.413.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.412.71 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.313.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.313.89 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.312.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.313.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.312.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.213.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.213.90 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.212.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.213.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.212.71 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.113.15 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.113.94 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.112.97 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.113.14 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.112.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv1.0.013.15 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv1.0.013.94 MiBnot-applicablesource
archive sizerelease/macos-aarch64v1.0.012.96 MiBnot-applicablesource
archive sizerelease/macos-x86_64v1.0.013.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v1.0.012.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.2113.15 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.2113.94 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.2112.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.2113.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.2112.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.2013.14 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.2013.93 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.2012.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.2013.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.2012.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1913.14 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1913.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1912.96 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1913.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1912.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1813.15 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1813.93 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1812.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1813.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1812.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1713.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1713.91 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1712.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1713.11 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1712.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1613.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1613.93 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1612.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1613.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1612.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1513.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1513.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1512.95 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1513.13 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1512.74 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1413.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1413.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1412.75 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1412.95 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1412.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1313.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1313.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1312.75 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1312.95 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1312.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1213.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1213.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1212.75 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1212.95 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1212.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1113.12 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1113.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1112.75 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1112.95 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1112.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.1013.10 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.1013.89 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.1012.73 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.1012.93 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.1012.70 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.913.10 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.913.90 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.912.74 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.912.92 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.912.70 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.812.53 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.813.29 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.812.12 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.812.33 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.812.12 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.712.53 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.713.30 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.712.11 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.712.34 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.712.13 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.612.37 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.613.12 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.611.96 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.612.16 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.611.95 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.512.36 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.513.09 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.511.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.512.14 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.511.93 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.412.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.413.09 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.411.95 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.412.14 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.411.93 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.312.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.313.09 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.311.94 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.312.14 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.311.93 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.212.33 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.213.06 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.211.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.212.12 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.211.92 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.112.33 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.113.06 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.111.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.112.12 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.111.92 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.12.012.31 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.12.013.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.12.011.91 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.12.012.11 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.12.011.90 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.11.212.32 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.11.213.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.11.211.91 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.11.212.11 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.11.29.73 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.11.012.31 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.11.013.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.11.011.91 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.11.012.11 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.11.09.72 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.10.112.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.10.112.82 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.10.111.69 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.10.111.88 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.10.19.61 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.10.012.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.10.012.87 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.10.011.69 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.10.011.88 MiBnot-applicablesource
archive sizerelease/windows-x86_64v0.10.09.61 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.7122.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.7124.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.712.72 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.712.83 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.6122.13 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.6124.18 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.612.71 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.612.83 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.5122.05 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.5124.18 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.512.71 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.512.81 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.4121.97 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.4124.15 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.412.71 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.412.82 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.3121.91 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.3123.95 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.312.69 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.312.80 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.2121.89 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.2123.94 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.212.68 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.212.79 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.1121.89 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.1123.94 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.112.68 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.112.79 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.9.0109.38 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.9.0111.23 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.9.012.58 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.9.012.69 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.8.1109.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.8.1110.99 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.8.112.55 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.8.112.65 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.8.0109.06 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.8.0111.01 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.8.012.53 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.8.012.65 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.7.0108.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.7.0110.39 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.7.012.30 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.7.012.40 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.20108.36 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.20110.37 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.2012.29 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.2012.40 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.19108.34 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.19110.37 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1912.29 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1912.40 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.18108.31 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.18110.35 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1812.28 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1812.39 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.17108.08 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.17110.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1712.27 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1712.37 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.16107.98 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.16109.99 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1612.25 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1612.35 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.15107.95 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.15109.92 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1512.24 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1512.35 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.14107.94 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.14109.88 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1412.24 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1412.35 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.13107.83 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.13109.90 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1312.25 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1312.35 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.12107.95 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.12109.97 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1212.27 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1212.37 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.11107.78 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.11109.87 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1112.25 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1112.35 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.10107.48 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.10109.55 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.1012.22 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.1012.33 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.9107.55 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.9109.62 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.912.22 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.912.32 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.8107.32 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.8109.38 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.812.19 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.812.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.7107.22 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.7109.28 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.712.17 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.712.27 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.6107.22 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.6109.28 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.612.17 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.612.27 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.5107.23 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.5109.27 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.512.17 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.512.27 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.4107.19 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.4109.25 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.412.17 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.412.27 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.3103.89 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.3105.72 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.312.12 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.312.23 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.2103.84 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.2105.72 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.212.12 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.212.22 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.198.72 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.1100.27 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.111.52 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.111.61 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.6.098.73 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.6.0100.26 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.6.011.52 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.6.011.61 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5696.23 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5698.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.568.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.569.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5596.21 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5598.23 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.559.00 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.559.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5496.25 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5498.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.548.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.549.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5396.25 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5398.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.538.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.539.30 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5296.26 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5298.19 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.528.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.529.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5196.24 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5198.20 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.518.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.519.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.5096.19 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.5098.23 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.508.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.509.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4996.20 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4998.13 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.498.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.499.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4896.21 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4898.14 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.488.99 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.489.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4796.21 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4798.21 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.478.98 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.479.29 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4696.19 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4698.14 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.468.98 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.469.28 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4596.16 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4598.16 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.458.97 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.459.28 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4494.55 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4496.58 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.447.89 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.448.28 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4394.41 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4396.42 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.437.88 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.438.25 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4294.41 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4296.37 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.427.86 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.428.25 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4194.39 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4196.41 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.417.86 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.418.25 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.4094.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.4096.39 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.407.86 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.408.25 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3994.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3996.82 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.397.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.398.39 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3894.34 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3896.82 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.387.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.388.39 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3794.29 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3796.74 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.377.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.378.39 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3694.29 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3696.74 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.367.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.368.39 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3594.30 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3596.74 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.357.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.358.38 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3353.35 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3354.59 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.337.93 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.336.11 MiBnot-applicablesource
archive sizerelease/linux-aarch64-gnuv0.5.3291.27 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3253.33 MiBnot-applicablesource
archive sizerelease/linux-x86_64-gnuv0.5.32102.83 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3254.58 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.3214.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.326.11 MiBnot-applicablesource
archive sizerelease/linux-aarch64-gnuv0.5.3191.28 MiBnot-applicablesource
archive sizerelease/linux-aarch64-muslv0.5.3153.33 MiBnot-applicablesource
archive sizerelease/linux-x86_64-gnuv0.5.31102.82 MiBnot-applicablesource
archive sizerelease/linux-x86_64-muslv0.5.3154.58 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.3114.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.316.11 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1953.24 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1954.55 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1914.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.196.11 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1853.25 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1854.58 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1814.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.186.10 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1753.22 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1754.50 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1714.37 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.176.10 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1653.20 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1654.53 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1614.37 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.166.09 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1553.17 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1554.50 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1514.38 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.156.10 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1453.07 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1454.37 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1414.37 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.146.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1353.07 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1354.45 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1314.36 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.136.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1253.04 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1254.42 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1214.36 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.126.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1153.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1154.41 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1114.34 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.116.06 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.1053.09 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.1054.40 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.1014.34 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.106.06 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.953.10 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.954.41 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.914.34 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.96.06 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.853.08 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.854.42 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.814.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.86.05 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.753.05 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.754.38 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.714.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.76.05 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.653.00 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.654.36 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.614.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.66.05 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.553.01 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.554.36 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.514.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.56.05 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.450.80 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.455.23 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.414.37 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.46.11 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.350.64 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.355.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.314.34 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.36.08 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.250.63 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.255.04 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.214.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.26.07 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.150.64 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.155.04 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.114.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.16.07 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.5.050.60 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.5.055.05 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.5.014.33 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.5.06.07 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.4.750.52 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.4.754.86 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.4.714.31 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.4.76.05 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.4.650.19 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.4.654.56 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.4.614.25 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.4.65.99 MiBnot-applicablesource
archive sizerelease/linux-aarch64v0.4.550.15 MiBnot-applicablesource
archive sizerelease/linux-x86_64v0.4.554.61 MiBnot-applicablesource
archive sizerelease/macos-aarch64v0.4.514.24 MiBnot-applicablesource
archive sizerelease/macos-x86_64v0.4.55.98 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.3.213.98 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.3.25.91 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.3.25.63 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.3.215.74 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.3.113.98 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.3.15.91 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.3.15.63 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.3.115.72 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.3.013.97 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.3.05.91 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.3.05.63 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.3.015.71 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.2.04.74 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.2.05.35 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.2.05.06 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.2.05.43 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.1.14.74 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.1.15.35 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.1.15.06 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.1.15.43 MiBnot-applicablesource
archive sizerelease/aarch64-apple-darwinv0.1.04.72 MiBnot-applicablesource
archive sizerelease/aarch64-unknown-linux-gnuv0.1.05.33 MiBnot-applicablesource
archive sizerelease/x86_64-apple-darwinv0.1.05.05 MiBnot-applicablesource
archive sizerelease/x86_64-unknown-linux-gnuv0.1.05.41 MiBnot-applicablesource
diff --git a/docs/benchmarks/evidence-dashboard.json b/docs/benchmarks/evidence-dashboard.json index f55387c3..9eef83d5 100644 --- a/docs/benchmarks/evidence-dashboard.json +++ b/docs/benchmarks/evidence-dashboard.json @@ -1004,7 +1004,7 @@ "label": "Release artifact acceptance gate", "path": ".github/workflows/release.yml", "publication_commit": "68d730fc4c64c6061044bdf3cc9b0d8b15d27c40", - "sha256": "4476837a1f498b69eb152584877349a009e86e4d8b13a5318a09c87cc53429f5", + "sha256": "a585b6c0ec05d2ff4dc3463ee71c172c39fa21bf53759a2af137d591bbedb5fa", "source_commit": null, "summary": { "artifact_acceptance": true, diff --git a/docs/index.html b/docs/index.html index 6d398348..1a84ed2b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -76,7 +76,7 @@
- v1.2.5 + v1.2.6
@@ -607,7 +607,14 @@

MCP search settings

Pass the absolute repository or worktree path to ig_search. Use a natural-language query for concepts, literal=true for identifiers, or output=context_pack with since=main and budget_tokens=8000 for implementation context.

The first search creates an index and starts incremental watching. Worktrees reuse one shared base index and store only divergent chunks and tombstones.

- Manual MCP setup +
@@ -765,7 +772,7 @@

Configure an MCP client

Changelog
diff --git a/docs/integrations/claude-code.html b/docs/integrations/claude-code.html new file mode 100644 index 00000000..e148f413 --- /dev/null +++ b/docs/integrations/claude-code.html @@ -0,0 +1,23 @@ + + + + + + ivygrep for Claude Code + + + + +
+ +
+

Give Claude Code focused code context.

Plugin installs ivygrep MCP server and shared Agent Skill. One task pack connects branch changes, definitions, callers, dependents, and tests.

+
+

Install

Install ig, then add marketplace and plugin:

brew install bvolpato/tap/ivygrep
+claude plugin marketplace add bvolpato/ivygrep
+claude plugin install ivygrep@ivygrep

Restart Claude Code after installation. Plugin invokes local ig --mcp.

Use

Use ivygrep context for refresh-token race. Fix it and run auth tests.
+ +
+
+ + diff --git a/docs/integrations/codex.html b/docs/integrations/codex.html new file mode 100644 index 00000000..75df1d1c --- /dev/null +++ b/docs/integrations/codex.html @@ -0,0 +1,28 @@ + + + + + + ivygrep for Codex + + + + + + +
+ +
+

Give Codex focused code context.

Plugin installs ivygrep MCP configuration and a skill that starts coding tasks with one bounded context pack.

+
+

Install

Install ig, then add repository marketplace and plugin:

brew install bvolpato/tap/ivygrep
+codex plugin marketplace add bvolpato/ivygrep
+codex plugin add ivygrep@ivygrep

Restart Codex after installation. Plugin invokes local ig --mcp; source and queries stay on machine.

Use

Use ivygrep to gather context for refresh-token race. Fix it and run auth tests.
+ +
+
+ + diff --git a/docs/integrations/cursor.html b/docs/integrations/cursor.html new file mode 100644 index 00000000..54f6615b --- /dev/null +++ b/docs/integrations/cursor.html @@ -0,0 +1,21 @@ + + + + + ivygrep for Cursor + + + +
+ +
+

Search local code from Cursor.

Automatic setup updates Cursor MCP configuration, preserves existing servers, verifies handshake, and runs one smoke search.

+
+

Install

brew install bvolpato/tap/ivygrep
+ig agent install cursor
+ig agent doctor

Restart Cursor after setup. For project-local configuration, add this to .cursor/mcp.json:

{"mcpServers":{"ig":{"type":"stdio","command":"ig","args":["--mcp"]}}}

Use

Use ig_search with output=context_pack and budget_tokens=8000 for this task.
+ +
+
+ + diff --git a/docs/integrations/gemini-cli.html b/docs/integrations/gemini-cli.html new file mode 100644 index 00000000..48001bc4 --- /dev/null +++ b/docs/integrations/gemini-cli.html @@ -0,0 +1,20 @@ + + + + + ivygrep for Gemini CLI + + + +
+ +
+

Bring repository context to Gemini CLI.

Connect one local stdio MCP server. ivygrep returns search results or bounded context packs without uploading repository indexes.

+
+

Install

brew install bvolpato/tap/ivygrep
+gemini mcp add --scope user --transport stdio ig ig --mcp

Confirm server after restarting Gemini CLI:

gemini mcp list

Use

Use ig_search to build one 8000-token context pack for this task, scoped to current repository.
+ +
+
+ + diff --git a/docs/integrations/integration.css b/docs/integrations/integration.css new file mode 100644 index 00000000..fedf1317 --- /dev/null +++ b/docs/integrations/integration.css @@ -0,0 +1,92 @@ +.integration-main { + min-height: calc(100vh - 80px); + padding: 7rem 0 5rem; +} + +.integration-header { + max-width: 760px; + margin-bottom: 2.5rem; +} + +.integration-header h1 { + font-family: var(--font-heading); + font-size: clamp(2.5rem, 7vw, 4.5rem); + line-height: 1; + margin: 1rem 0; +} + +.integration-header p, +.integration-card p, +.integration-card li { + color: var(--text-muted); + line-height: 1.7; +} + +.integration-grid { + display: grid; + grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.7fr); + gap: 1.5rem; + align-items: start; +} + +.integration-card { + padding: 2rem; + min-width: 0; +} + +.integration-card h2, +.integration-card h3 { + margin-bottom: 0.75rem; +} + +.integration-card ol, +.integration-card ul { + padding-left: 1.25rem; +} + +.integration-card li + li { + margin-top: 0.6rem; +} + +.integration-command { + overflow-x: auto; + max-width: 100%; + margin: 1rem 0 1.5rem; + padding: 1rem 1.2rem; + border: 1px solid rgba(52, 208, 88, 0.2); + border-radius: 8px; + background: rgba(0, 0, 0, 0.35); + color: #d8ffe8; + font: 0.88rem/1.65 var(--font-code); + white-space: pre; +} + +.integration-links { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + margin-top: 1.5rem; +} + +.integration-nav { + display: flex; + flex-wrap: wrap; + gap: 0.9rem; +} + +.integration-nav a { + color: var(--text-muted); +} + +.integration-nav a[aria-current="page"], +.integration-nav a:hover { + color: #fff; +} + +@media (max-width: 760px) { + .integration-main { padding-top: 5.5rem; } + .integration-grid { grid-template-columns: 1fr; } + .integration-card { padding: 1.4rem; } + .navbar .logo { display: none; } + .integration-nav { justify-content: center; width: 100%; } +} diff --git a/docs/integrations/mcp.html b/docs/integrations/mcp.html new file mode 100644 index 00000000..48e4db9a --- /dev/null +++ b/docs/integrations/mcp.html @@ -0,0 +1,24 @@ + + + + + ivygrep MCP server + + + +
+ +
+

One local server. Every supported agent.

Install checksum-pinned cross-platform MCP bundle from registry client or connect existing ig binary over stdio.

+
+

Server

ig --mcp

MCP bundle contains ivygrep binaries for macOS, Linux, and Windows. Registry metadata pins bundle SHA-256. Release workflow publishes metadata with GitHub OIDC.

Core request

tool: ig_search
+query: fix refresh-token races
+path: /absolute/repository/path
+output: context_pack
+since: main
+budget_tokens: 8000
+ +
+
+ + diff --git a/docs/integrations/opencode.html b/docs/integrations/opencode.html new file mode 100644 index 00000000..78a96f70 --- /dev/null +++ b/docs/integrations/opencode.html @@ -0,0 +1,27 @@ + + + + + ivygrep for OpenCode + + + +
+ +
+

Give OpenCode local task context.

Add ivygrep as a local MCP server. Same index serves CLI, Web, and agent requests.

+
+

Install

brew install bvolpato/tap/ivygrep

Add server to opencode.json:

{
+  "mcp": {
+    "ig": {
+      "type": "local",
+      "command": ["ig", "--mcp"],
+      "enabled": true
+    }
+  }
+}

Use

Use ivygrep to build one focused context pack before editing.
+ +
+
+ + diff --git a/docs/style.css b/docs/style.css index 7dc77872..d996bae2 100644 --- a/docs/style.css +++ b/docs/style.css @@ -586,6 +586,11 @@ tbody tr:hover { background: rgba(255, 255, 255, 0.02); } .agent-guidance .btn { justify-self: start; } +.integration-links { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; +} .mcp-flow { display: flex; align-items: flex-start; justify-content: center; diff --git a/packaging/crates/README.md b/packaging/crates/README.md new file mode 100644 index 00000000..1a9111b3 --- /dev/null +++ b/packaging/crates/README.md @@ -0,0 +1,27 @@ +# crates.io publication + +ivygrep depends on four behavior-critical forks. Their package names are +distinct so `cargo install ivygrep --locked` does not depend on local +`[patch.crates-io]` configuration. + +Publication order: + +1. `ivygrep-hf-hub` +2. `ivygrep-candle-embed` +3. `ivygrep-usearch` +4. `ivygrep-tree-sitter-haskell` +5. `ivygrep` + +First publication requires crates.io token because trusted publishing cannot +create a crate. Add token as repository Actions secret `CRATES_IO_TOKEN`, then +run `Publish crates.io packages` with `bootstrap=true`. + +After bootstrap, configure trusted publisher for each crate with: + +- GitHub owner: `bvolpato` +- repository: `ivygrep` +- workflow: `publish-crates.yml` +- environment: `release` + +Delete bootstrap secret after trusted publishing works. Future runs use GitHub +OIDC with `bootstrap=false`. diff --git a/packaging/mcpb/manifest.template.json b/packaging/mcpb/manifest.template.json new file mode 100644 index 00000000..c32d9195 --- /dev/null +++ b/packaging/mcpb/manifest.template.json @@ -0,0 +1,46 @@ +{ + "manifest_version": "0.3", + "name": "ivygrep", + "display_name": "ivygrep", + "version": "0.0.0", + "description": "Local code search and relationship-aware context packs for coding agents", + "long_description": "Search source by intent or exact identifiers and build bounded task packs from branch changes, definitions, callers, dependents, tests, configuration, and documentation. Source, queries, embeddings, and indexes stay local.", + "author": { + "name": "Bruno Volpato", + "url": "https://github.com/bvolpato" + }, + "repository": { + "type": "git", + "url": "https://github.com/bvolpato/ivygrep.git" + }, + "homepage": "https://bvolpato.github.io/ivygrep/", + "documentation": "https://bvolpato.github.io/ivygrep/integrations/mcp.html", + "support": "https://github.com/bvolpato/ivygrep/issues", + "icon": "icon.png", + "server": { + "type": "node", + "entry_point": "server/launcher.cjs", + "mcp_config": { + "command": "node", + "args": ["${__dirname}/server/launcher.cjs"] + } + }, + "tools": [ + { + "name": "ig_search", + "description": "Search local code or build one bounded task context pack" + }, + { + "name": "ig_status", + "description": "Inspect local ivygrep indexes and indexing state" + } + ], + "keywords": ["code-search", "context", "coding-agents", "local-first"], + "license": "MIT", + "compatibility": { + "platforms": ["darwin", "win32", "linux"], + "runtimes": { + "node": ">=18.0.0" + } + } +} diff --git a/packaging/mcpb/server/launcher.cjs b/packaging/mcpb/server/launcher.cjs new file mode 100644 index 00000000..12a9cdc6 --- /dev/null +++ b/packaging/mcpb/server/launcher.cjs @@ -0,0 +1,42 @@ +"use strict"; + +const { spawn } = require("node:child_process"); +const path = require("node:path"); + +const targets = { + "darwin-arm64": ["darwin-arm64", "ig"], + "darwin-x64": ["darwin-x64", "ig"], + "linux-arm64": ["linux-arm64", "ig"], + "linux-x64": ["linux-x64", "ig"], + "win32-x64": ["win32-x64", "ig.exe"], +}; + +const key = `${process.platform}-${process.arch}`; +const target = targets[key]; +if (!target) { + process.stderr.write(`ivygrep MCP bundle does not support ${key}\n`); + process.exit(1); +} + +const executable = path.join(__dirname, "bin", ...target); +const child = spawn(executable, ["--mcp"], { + stdio: "inherit", + windowsHide: true, +}); + +child.on("error", (error) => { + process.stderr.write(`failed to start ivygrep MCP server: ${error.message}\n`); + process.exit(1); +}); + +child.on("exit", (code, signal) => { + if (signal) { + process.kill(process.pid, signal); + return; + } + process.exit(code ?? 1); +}); + +for (const signal of ["SIGINT", "SIGTERM"]) { + process.on(signal, () => child.kill(signal)); +} diff --git a/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.installer.yaml b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.installer.yaml new file mode 100644 index 00000000..8a767916 --- /dev/null +++ b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.installer.yaml @@ -0,0 +1,16 @@ +# Created with https://aka.ms/winget-create +# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.12.0.schema.json +PackageIdentifier: BrunoVolpato.ivygrep +PackageVersion: 1.2.5 +InstallerType: zip +NestedInstallerType: portable +NestedInstallerFiles: + - RelativeFilePath: ivygrep-v1.2.5-windows-x86_64\ig.exe + PortableCommandAlias: ig +Installers: + - Architecture: x64 + InstallerUrl: https://github.com/bvolpato/ivygrep/releases/download/v1.2.5/ivygrep-v1.2.5-windows-x86_64.zip + InstallerSha256: 3AC86B349EDC45A2DD2361F9B7FB023E0A0CA4EED29989AA9C227C752FA92322 +ReleaseDate: "2026-07-19" +ManifestType: installer +ManifestVersion: 1.12.0 diff --git a/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.locale.en-US.yaml b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.locale.en-US.yaml new file mode 100644 index 00000000..67538818 --- /dev/null +++ b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.locale.en-US.yaml @@ -0,0 +1,28 @@ +# Created with https://aka.ms/winget-create +# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.12.0.schema.json +PackageIdentifier: BrunoVolpato.ivygrep +PackageVersion: 1.2.5 +PackageLocale: en-US +Publisher: Bruno Volpato +PublisherUrl: https://github.com/bvolpato +PublisherSupportUrl: https://github.com/bvolpato/ivygrep/issues +Author: Bruno Volpato +PackageName: ivygrep +PackageUrl: https://bvolpato.github.io/ivygrep/ +License: MIT +LicenseUrl: https://github.com/bvolpato/ivygrep/blob/v1.2.5/LICENSE +ShortDescription: Local code search and relationship-aware context packs for coding agents +Description: Search source by intent or exact identifiers and build bounded task packs from Git changes, definitions, callers, dependents, tests, configuration, and documentation. Source, queries, embeddings, and indexes stay local. +Moniker: ig +Tags: + - cli + - code-search + - coding-agents + - context + - developer-tools + - local-first + - mcp + - search +ReleaseNotesUrl: https://github.com/bvolpato/ivygrep/releases/tag/v1.2.5 +ManifestType: defaultLocale +ManifestVersion: 1.12.0 diff --git a/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.yaml b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.yaml new file mode 100644 index 00000000..a7c0fcdd --- /dev/null +++ b/packaging/winget/BrunoVolpato.ivygrep/1.2.5/BrunoVolpato.ivygrep.yaml @@ -0,0 +1,7 @@ +# Created with https://aka.ms/winget-create +# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.12.0.schema.json +PackageIdentifier: BrunoVolpato.ivygrep +PackageVersion: 1.2.5 +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.12.0 diff --git a/plugins/ivygrep/.claude-plugin/plugin.json b/plugins/ivygrep/.claude-plugin/plugin.json new file mode 100644 index 00000000..ec882187 --- /dev/null +++ b/plugins/ivygrep/.claude-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "ivygrep", + "version": "1.2.6", + "description": "Local code search and relationship-aware task context for coding agents", + "author": { + "name": "Bruno Volpato", + "url": "https://github.com/bvolpato" + }, + "homepage": "https://bvolpato.github.io/ivygrep/integrations/claude-code.html", + "repository": "https://github.com/bvolpato/ivygrep", + "license": "MIT", + "keywords": ["code-search", "context", "mcp", "local-first"], + "skills": "./skills/", + "mcpServers": "./.mcp.json" +} diff --git a/plugins/ivygrep/.codex-plugin/plugin.json b/plugins/ivygrep/.codex-plugin/plugin.json new file mode 100644 index 00000000..52887ca6 --- /dev/null +++ b/plugins/ivygrep/.codex-plugin/plugin.json @@ -0,0 +1,29 @@ +{ + "name": "ivygrep", + "version": "1.2.6", + "description": "Local code search and relationship-aware task context for coding agents", + "author": { + "name": "Bruno Volpato", + "url": "https://github.com/bvolpato" + }, + "homepage": "https://bvolpato.github.io/ivygrep/integrations/codex.html", + "repository": "https://github.com/bvolpato/ivygrep", + "license": "MIT", + "keywords": ["code-search", "context", "mcp", "local-first"], + "skills": "./skills/", + "mcpServers": "./.mcp.json", + "interface": { + "displayName": "ivygrep", + "shortDescription": "Focused local context for coding tasks", + "longDescription": "Search code by intent and give Codex one bounded task pack containing current changes, definitions, callers, dependents, tests, configuration, and documentation.", + "developerName": "Bruno Volpato", + "category": "Development", + "capabilities": ["Read"], + "websiteURL": "https://bvolpato.github.io/ivygrep/integrations/codex.html", + "defaultPrompt": [ + "Use ivygrep to gather context for this task.", + "Find the code related to this failure with ivygrep." + ], + "brandColor": "#73E2A7" + } +} diff --git a/plugins/ivygrep/.mcp.json b/plugins/ivygrep/.mcp.json new file mode 100644 index 00000000..dab41331 --- /dev/null +++ b/plugins/ivygrep/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "ivygrep": { + "command": "ig", + "args": ["--mcp"] + } + } +} diff --git a/plugins/ivygrep/skills/use-ivygrep/SKILL.md b/plugins/ivygrep/skills/use-ivygrep/SKILL.md new file mode 100644 index 00000000..fbd1d90f --- /dev/null +++ b/plugins/ivygrep/skills/use-ivygrep/SKILL.md @@ -0,0 +1,35 @@ +--- +name: use-ivygrep +description: Gather focused local repository context with ivygrep before implementing, debugging, reviewing, or explaining code. Use for coding tasks involving unfamiliar paths, branch changes, stack traces, architectural relationships, callers, dependents, tests, configuration, or documentation. Prefer one bounded context pack over broad filesystem scans. +--- + +# Use ivygrep + +Start with one context request. Pass absolute active repository or worktree path. + +When MCP tool `ig_search` is available, call it with: + +- `query`: concrete task, failure, or question +- `path`: absolute repository or worktree path +- `output`: `context_pack` +- `budget_tokens`: `8000` +- `since`: base branch when current changes matter + +CLI fallback: + +```bash +ig context "" --since main --budget 8000 /absolute/repository/path +``` + +Use returned selection reasons and relationships to choose files. Verify relevant +snippets against source before editing. Treat missing expected code as retrieval +evidence, not proof that code does not exist. + +Use one focused search only when context pack leaves a concrete gap: + +```bash +ig --literal "" -n 10 /absolute/repository/path +``` + +Do not repeat broad synonymous queries. Continue with normal code inspection, +implementation, and project validation after ivygrep identifies working set. diff --git a/plugins/ivygrep/skills/use-ivygrep/agents/openai.yaml b/plugins/ivygrep/skills/use-ivygrep/agents/openai.yaml new file mode 100644 index 00000000..652e4f7c --- /dev/null +++ b/plugins/ivygrep/skills/use-ivygrep/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Use ivygrep" + short_description: "Build focused local code context packs" + default_prompt: "Use $use-ivygrep to gather focused context for this coding task." diff --git a/scripts/package_mcpb.py b/scripts/package_mcpb.py new file mode 100644 index 00000000..c2527a2b --- /dev/null +++ b/scripts/package_mcpb.py @@ -0,0 +1,156 @@ +#!/usr/bin/env -S uv run --script +# /// script +# requires-python = ">=3.12" +# dependencies = [] +# /// +"""Build cross-platform ivygrep MCPB and matching MCP Registry metadata.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import shutil +import stat +import tarfile +import tempfile +import zipfile +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +MCPB_ROOT = ROOT / "packaging" / "mcpb" +REGISTRY_SCHEMA = ( + "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json" +) +SERVER_NAME = "io.github.bvolpato/ivygrep" + +TARGETS = { + "linux-x86_64-musl": ("linux-x64", "ig"), + "linux-aarch64-musl": ("linux-arm64", "ig"), + "macos-x86_64": ("darwin-x64", "ig"), + "macos-aarch64": ("darwin-arm64", "ig"), + "windows-x86_64": ("win32-x64", "ig.exe"), +} + + +def archive_for(artifacts: Path, version: str, suffix: str) -> Path: + extension = ".zip" if suffix.startswith("windows-") else ".tar.gz" + name = f"ivygrep-v{version}-{suffix}{extension}" + matches = list(artifacts.rglob(name)) + if len(matches) != 1: + raise ValueError(f"expected one {name} below {artifacts}, found {len(matches)}") + return matches[0] + + +def extract_binary(archive: Path, binary_name: str, destination: Path) -> None: + destination.parent.mkdir(parents=True, exist_ok=True) + if archive.suffix == ".zip": + with zipfile.ZipFile(archive) as source: + matches = [ + name for name in source.namelist() if Path(name).name == binary_name + ] + if len(matches) != 1: + raise ValueError( + f"expected one {binary_name} in {archive}, found {len(matches)}" + ) + with source.open(matches[0]) as reader, destination.open("wb") as writer: + shutil.copyfileobj(reader, writer) + else: + with tarfile.open(archive, "r:gz") as source: + matches = [ + member + for member in source.getmembers() + if member.isfile() and Path(member.name).name == binary_name + ] + if len(matches) != 1: + raise ValueError( + f"expected one {binary_name} in {archive}, found {len(matches)}" + ) + reader = source.extractfile(matches[0]) + if reader is None: + raise ValueError(f"could not read {matches[0].name} from {archive}") + with reader, destination.open("wb") as writer: + shutil.copyfileobj(reader, writer) + destination.chmod( + destination.stat().st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + ) + + +def write_bundle(stage: Path, output: Path) -> None: + output.parent.mkdir(parents=True, exist_ok=True) + with zipfile.ZipFile( + output, "w", compression=zipfile.ZIP_DEFLATED, compresslevel=9 + ) as bundle: + for path in sorted(stage.rglob("*")): + if path.is_file(): + bundle.write(path, path.relative_to(stage).as_posix()) + + +def registry_document(version: str, bundle: Path) -> dict[str, object]: + digest = hashlib.sha256(bundle.read_bytes()).hexdigest() + artifact = f"ivygrep-mcp-v{version}.mcpb" + return { + "$schema": REGISTRY_SCHEMA, + "name": SERVER_NAME, + "title": "ivygrep", + "description": "Local code search and task context packs for coding agents", + "version": version, + "websiteUrl": "https://bvolpato.github.io/ivygrep/integrations/mcp.html", + "repository": { + "url": "https://github.com/bvolpato/ivygrep", + "source": "github", + }, + "packages": [ + { + "registryType": "mcpb", + "identifier": f"https://github.com/bvolpato/ivygrep/releases/download/v{version}/{artifact}", + "fileSha256": digest, + "transport": {"type": "stdio"}, + } + ], + } + + +def build(artifacts: Path, version: str, output: Path, server_json: Path) -> None: + with tempfile.TemporaryDirectory(prefix="ivygrep-mcpb-") as temporary: + stage = Path(temporary) + manifest = json.loads( + (MCPB_ROOT / "manifest.template.json").read_text(encoding="utf-8") + ) + manifest["version"] = version + (stage / "manifest.json").write_text( + json.dumps(manifest, indent=2) + "\n", encoding="utf-8" + ) + shutil.copy2(ROOT / "assets" / "logo.png", stage / "icon.png") + shutil.copytree(MCPB_ROOT / "server", stage / "server", dirs_exist_ok=True) + + for suffix, (target_dir, binary_name) in TARGETS.items(): + archive = archive_for(artifacts, version, suffix) + extract_binary( + archive, + binary_name, + stage / "server" / "bin" / target_dir / binary_name, + ) + + write_bundle(stage, output) + + server_json.parent.mkdir(parents=True, exist_ok=True) + server_json.write_text( + json.dumps(registry_document(version, output), indent=2) + "\n", + encoding="utf-8", + ) + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--artifacts", type=Path, required=True) + parser.add_argument("--version", required=True) + parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--server-json", type=Path, required=True) + args = parser.parse_args() + build(args.artifacts, args.version.removeprefix("v"), args.output, args.server_json) + + +if __name__ == "__main__": + main() diff --git a/scripts/validate_winget.py b/scripts/validate_winget.py new file mode 100644 index 00000000..509d81de --- /dev/null +++ b/scripts/validate_winget.py @@ -0,0 +1,55 @@ +#!/usr/bin/env -S uv run --script +# /// script +# requires-python = ">=3.12" +# dependencies = [ +# "jsonschema", +# "PyYAML", +# "requests", +# ] +# /// +"""Validate a multi-file WinGet manifest against its declared schemas.""" + +from __future__ import annotations + +import argparse +import re +from pathlib import Path + +import requests +import yaml +from jsonschema.validators import validator_for + + +SCHEMA_PATTERN = re.compile(r"^# yaml-language-server: \$schema=(\S+)$", re.MULTILINE) + + +def validate_manifest(path: Path) -> None: + source = path.read_text(encoding="utf-8") + match = SCHEMA_PATTERN.search(source) + if match is None: + raise ValueError(f"{path}: missing yaml-language-server schema") + + response = requests.get(match.group(1), timeout=30) + response.raise_for_status() + schema = response.json() + validator = validator_for(schema)(schema) + errors = sorted(validator.iter_errors(yaml.safe_load(source)), key=str) + if errors: + details = "\n".join(f" {error.json_path}: {error.message}" for error in errors) + raise ValueError(f"{path}: schema validation failed\n{details}") + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("manifest_directory", type=Path) + args = parser.parse_args() + manifests = sorted(args.manifest_directory.glob("*.yaml")) + if not manifests: + raise ValueError(f"no YAML manifests in {args.manifest_directory}") + for manifest in manifests: + validate_manifest(manifest) + print(f"valid: {manifest.name}") + + +if __name__ == "__main__": + main() diff --git a/tests/test_distribution_packages.py b/tests/test_distribution_packages.py new file mode 100644 index 00000000..08207056 --- /dev/null +++ b/tests/test_distribution_packages.py @@ -0,0 +1,159 @@ +import hashlib +import importlib.util +import io +import json +import tarfile +import tempfile +import tomllib +import unittest +import zipfile +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +PACKAGE_SCRIPT = ROOT / "scripts" / "package_mcpb.py" + + +def load_package_module(): + spec = importlib.util.spec_from_file_location("package_mcpb", PACKAGE_SCRIPT) + if spec is None or spec.loader is None: + raise RuntimeError("could not load package_mcpb.py") + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +class DistributionPackagesTest(unittest.TestCase): + def test_agent_marketplaces_and_plugins_match_release_version(self) -> None: + package = tomllib.loads((ROOT / "Cargo.toml").read_text()) + version = package["package"]["version"] + codex_marketplace = json.loads( + (ROOT / ".agents" / "plugins" / "marketplace.json").read_text() + ) + claude_marketplace = json.loads( + (ROOT / ".claude-plugin" / "marketplace.json").read_text() + ) + + self.assertEqual(codex_marketplace["plugins"][0]["name"], "ivygrep") + self.assertEqual(claude_marketplace["plugins"][0]["name"], "ivygrep") + for manifest in [ + ROOT / "plugins" / "ivygrep" / ".codex-plugin" / "plugin.json", + ROOT / "plugins" / "ivygrep" / ".claude-plugin" / "plugin.json", + ]: + self.assertEqual(json.loads(manifest.read_text())["version"], version) + + mcp = json.loads((ROOT / "plugins" / "ivygrep" / ".mcp.json").read_text())[ + "mcpServers" + ]["ivygrep"] + self.assertEqual(mcp, {"command": "ig", "args": ["--mcp"]}) + + def test_crates_use_publishable_versioned_forks(self) -> None: + root = tomllib.loads((ROOT / "Cargo.toml").read_text()) + self.assertNotIn("patch", root) + expected = { + "candle_embed": ("ivygrep-candle-embed", "=0.1.4-ivygrep.1"), + "hf-hub": ("ivygrep-hf-hub", "=0.3.2-ivygrep.1"), + "usearch": ("ivygrep-usearch", "=2.24.0-ivygrep.1"), + "tree-sitter-haskell": ( + "ivygrep-tree-sitter-haskell", + "=0.23.1-ivygrep.1", + ), + } + for dependency, (package, version) in expected.items(): + with self.subTest(dependency=dependency): + config = root["dependencies"][dependency] + self.assertEqual(config["package"], package) + self.assertEqual(config["version"], version) + self.assertTrue((ROOT / config["path"]).is_dir()) + + def test_mcpb_builder_packages_each_target_and_pins_bundle_hash(self) -> None: + package_mcpb = load_package_module() + version = "9.8.7" + with tempfile.TemporaryDirectory() as temporary: + root = Path(temporary) + artifacts = root / "artifacts" + artifacts.mkdir() + for suffix, (_, binary_name) in package_mcpb.TARGETS.items(): + archive_root = f"ivygrep-v{version}-{suffix}" + payload = f"{suffix}-binary".encode() + if suffix.startswith("windows-"): + archive = artifacts / f"{archive_root}.zip" + with zipfile.ZipFile(archive, "w") as bundle: + bundle.writestr(f"{archive_root}/{binary_name}", payload) + else: + archive = artifacts / f"{archive_root}.tar.gz" + info = tarfile.TarInfo(f"{archive_root}/{binary_name}") + info.size = len(payload) + with tarfile.open(archive, "w:gz") as bundle: + bundle.addfile(info, io.BytesIO(payload)) + + output = root / "ivygrep.mcpb" + server_json = root / "server.json" + package_mcpb.build(artifacts, version, output, server_json) + + with zipfile.ZipFile(output) as bundle: + names = set(bundle.namelist()) + manifest = json.loads(bundle.read("manifest.json")) + self.assertEqual(manifest["version"], version) + self.assertIn("server/launcher.cjs", names) + for target_dir, binary_name in package_mcpb.TARGETS.values(): + self.assertIn(f"server/bin/{target_dir}/{binary_name}", names) + + registry = json.loads(server_json.read_text()) + self.assertEqual(registry["version"], version) + self.assertEqual( + registry["packages"][0]["fileSha256"], + hashlib.sha256(output.read_bytes()).hexdigest(), + ) + + def test_winget_manifest_targets_verified_portable_archive(self) -> None: + path = ( + ROOT + / "packaging" + / "winget" + / "BrunoVolpato.ivygrep" + / "1.2.5" + / "BrunoVolpato.ivygrep.installer.yaml" + ) + manifest = path.read_text() + self.assertIn("InstallerType: zip", manifest) + self.assertIn("NestedInstallerType: portable", manifest) + self.assertIn("PortableCommandAlias: ig", manifest) + self.assertIn( + "InstallerSha256: 3AC86B349EDC45A2DD2361F9B7FB023E0A0CA4EED29989AA9C227C752FA92322", + manifest, + ) + + def test_each_supported_agent_has_a_setup_page(self) -> None: + pages = { + "codex.html": "codex plugin add ivygrep@ivygrep", + "claude-code.html": "claude plugin install ivygrep@ivygrep", + "cursor.html": "ig agent install cursor", + "gemini-cli.html": "gemini mcp add", + "opencode.html": '"type": "local"', + } + for page, command in pages.items(): + with self.subTest(page=page): + document = (ROOT / "docs" / "integrations" / page).read_text() + self.assertIn(command, document) + self.assertIn("mcp.html", document) + + def test_release_workflows_publish_mcp_and_crates(self) -> None: + release = (ROOT / ".github" / "workflows" / "release.yml").read_text() + crates = (ROOT / ".github" / "workflows" / "publish-crates.yml").read_text() + self.assertIn("scripts/package_mcpb.py", release) + self.assertIn("mcp-publisher login github-oidc", release) + self.assertIn("id-token: write", release) + order = [ + "ivygrep-hf-hub", + "ivygrep-candle-embed", + "ivygrep-usearch", + "ivygrep-tree-sitter-haskell", + 'publish Cargo.toml ivygrep "$VERSION"', + ] + positions = [crates.index(package) for package in order] + self.assertEqual(positions, sorted(positions)) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_windows_manifest.py b/tests/test_windows_manifest.py index f97c3a62..db368ad9 100644 --- a/tests/test_windows_manifest.py +++ b/tests/test_windows_manifest.py @@ -1,3 +1,4 @@ +import tomllib import unittest from pathlib import Path @@ -7,13 +8,13 @@ class WindowsManifestTest(unittest.TestCase): def test_windows_usearch_portability_preserves_proven_backend(self) -> None: - manifest = (ROOT / "Cargo.toml").read_text(encoding="utf-8") + manifest = tomllib.loads((ROOT / "Cargo.toml").read_text(encoding="utf-8")) + usearch = manifest["dependencies"]["usearch"] - self.assertIn( - 'usearch = { version = "=2.24.0", default-features = false, features = ["fp16lib"] }', - manifest, - ) - self.assertNotIn('usearch = { version = "2.25', manifest) + self.assertEqual(usearch["package"], "ivygrep-usearch") + self.assertEqual(usearch["version"], "=2.24.0-ivygrep.1") + self.assertFalse(usearch["default-features"]) + self.assertEqual(usearch["features"], ["fp16lib"]) def test_msvc_binary_embeds_long_path_manifest(self) -> None: build_script = (ROOT / "build.rs").read_text(encoding="utf-8") diff --git a/vendor/candle_embed/Cargo.toml b/vendor/candle_embed/Cargo.toml index 702ae4dc..864188e8 100644 --- a/vendor/candle_embed/Cargo.toml +++ b/vendor/candle_embed/Cargo.toml @@ -1,21 +1,24 @@ [package] -categories=["cuda", "embeddings", "huggingface", "search", "vectors"] -description="Text embeddings with Candle. Fast and configurable. Use any model from Hugging Face. CUDA or CPU powered." +categories=["algorithms", "science"] +description="ivygrep-maintained Candle text embedding fork" edition="2021" -homepage="https://github.com/shelbyJenkins/candle_embed" +homepage="https://github.com/bvolpato/ivygrep" keywords=["cuda", "embeddings", "huggingface", "search", "vectors"] license="MIT" +name="ivygrep-candle-embed" +repository="https://github.com/bvolpato/ivygrep" +version="0.1.4-ivygrep.1" + +[lib] name="candle_embed" -readme="README.md" -repository="https://github.com/shelbyJenkins/candle_embed" -version="0.1.4" +path="src/lib.rs" [dependencies] anyhow="1.0.82" candle={version="0.10.2", package="candle-core", default-features=false} candle-transformers="0.10.2" candle_nn={version="0.10.2", package="candle-nn", default-features=false} -hf-hub={version="0.3.2", features=["tokio"]} +hf-hub={package="ivygrep-hf-hub", path="../hf-hub", version="=0.3.2-ivygrep.1", features=["tokio"]} serde_json="1.0.116" tokenizers="0.19.1" diff --git a/vendor/candle_embed/IVYGREP_PATCH.md b/vendor/candle_embed/IVYGREP_PATCH.md new file mode 100644 index 00000000..0ea4f3ad --- /dev/null +++ b/vendor/candle_embed/IVYGREP_PATCH.md @@ -0,0 +1,10 @@ +# ivygrep patch + +Fork of `candle_embed` 0.1.4 used by ivygrep transformer profiles. + +Changes upgrade Candle, add Metal selection and device reporting, batch inference, +and shared immutable model tensors for bounded parallel workers. Package name is +distinct so crates.io installs reproduce release behavior without relying on a +consumer-side Cargo patch. + +Upstream draft: [shelbyJenkins/candle_embed#2](https://github.com/ShelbyJenkins/candle_embed/pull/2). diff --git a/vendor/hf-hub/.cargo-ok b/vendor/hf-hub/.cargo-ok deleted file mode 100644 index 5f8b7958..00000000 --- a/vendor/hf-hub/.cargo-ok +++ /dev/null @@ -1 +0,0 @@ -{"v":1} \ No newline at end of file diff --git a/vendor/hf-hub/.cargo_vcs_info.json b/vendor/hf-hub/.cargo_vcs_info.json deleted file mode 100644 index f55ffd01..00000000 --- a/vendor/hf-hub/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "20ee14f9faebe0476871b0de681742f7a0c59633" - }, - "path_in_vcs": "" -} \ No newline at end of file diff --git a/vendor/hf-hub/Cargo.toml b/vendor/hf-hub/Cargo.toml index 1cbccb2c..7d83717b 100644 --- a/vendor/hf-hub/Cargo.toml +++ b/vendor/hf-hub/Cargo.toml @@ -1,24 +1,13 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. -# -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. - [package] edition = "2021" -name = "hf-hub" -version = "0.3.2" +name = "ivygrep-hf-hub" +version = "0.3.2-ivygrep.1" description = """ This crates aims ease the interaction with [huggingface](https://huggingface.co/) It aims to be compatible with [huggingface_hub](https://github.com/huggingface/huggingface_hub/) python package, but only implements a smaller subset of functions. """ homepage = "https://github.com/huggingface/hf-hub" -documentation = "https://docs.rs/hf-hub" +documentation = "https://docs.rs/ivygrep-hf-hub" readme = "README.md" keywords = [ "huggingface", @@ -26,8 +15,12 @@ keywords = [ "hub", "machine-learning", ] -license = "Apache-2.0" -repository = "https://github.com/huggingface/hf-hub" +license-file = "../usearch/LICENSE" +repository = "https://github.com/bvolpato/ivygrep" + +[lib] +name = "hf_hub" +path = "src/lib.rs" [dependencies.dirs] version = "5.0.1" diff --git a/vendor/hf-hub/Cargo.toml.orig b/vendor/hf-hub/Cargo.toml.orig deleted file mode 100644 index 4055375b..00000000 --- a/vendor/hf-hub/Cargo.toml.orig +++ /dev/null @@ -1,47 +0,0 @@ -[package] -name = "hf-hub" -version = "0.3.2" -edition = "2021" -homepage = "https://github.com/huggingface/hf-hub" -license = "Apache-2.0" -documentation = "https://docs.rs/hf-hub" -repository = "https://github.com/huggingface/hf-hub" -readme = "README.md" -keywords = [ - "huggingface", - "hf", - "hub", - "machine-learning" -] -description = """ -This crates aims ease the interaction with [huggingface](https://huggingface.co/) -It aims to be compatible with [huggingface_hub](https://github.com/huggingface/huggingface_hub/) python package, but only implements a smaller subset of functions. -""" - - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -dirs = "5.0.1" -rand = {version = "0.8.5", optional = true} -reqwest = { version = "0.11.18", optional = true, features = ["json"] } -serde = { version = "1.0.171", features = ["derive"] , optional = true} -serde_json = {version="1.0.103", optional = true} -indicatif = { version = "0.17.5", optional = true} -num_cpus = { version = "1.15.0", optional = true} -tokio = { version = "1.29.1", optional = true, features = ["fs", "macros"] } -futures = { version = "0.3.28", optional = true} -thiserror = { version = "1.0.43", optional = true } -ureq = { version = "2.7.1", optional = true, features = ["native-tls", "json"] } -native-tls = { version = "0.2.11", optional = true } -log = "0.4.19" - -[features] -default = ["online"] -online = ["dep:ureq", "dep:native-tls", "dep:rand", "dep:serde", "dep:serde_json", "dep:indicatif", "dep:thiserror"] -tokio = ["dep:reqwest", "dep:tokio", "tokio/rt-multi-thread", "dep:futures", "dep:rand", "dep:serde", "dep:serde_json", "dep:indicatif", "dep:num_cpus", "dep:thiserror"] - -[dev-dependencies] -hex-literal = "0.4.1" -sha2 = "0.10" -tokio-test = "0.4.2" diff --git a/vendor/hf-hub/IVYGREP_PATCH.md b/vendor/hf-hub/IVYGREP_PATCH.md new file mode 100644 index 00000000..b7e05702 --- /dev/null +++ b/vendor/hf-hub/IVYGREP_PATCH.md @@ -0,0 +1,10 @@ +# ivygrep patch + +Fork of `hf-hub` 0.3.2 used by ivygrep model downloads. + +Relative redirect locations are resolved against configured endpoint. Package +name is distinct so crates.io installs reproduce release behavior without a +consumer-side Cargo patch. + +Equivalent handling on current upstream API is tracked by +[huggingface/hf-hub#176](https://github.com/huggingface/hf-hub/pull/176). diff --git a/vendor/tree-sitter-haskell/Cargo.toml b/vendor/tree-sitter-haskell/Cargo.toml index a9ee2413..67038b74 100644 --- a/vendor/tree-sitter-haskell/Cargo.toml +++ b/vendor/tree-sitter-haskell/Cargo.toml @@ -1,18 +1,7 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. -# -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. - [package] edition = "2021" -name = "tree-sitter-haskell" -version = "0.23.1" +name = "ivygrep-tree-sitter-haskell" +version = "0.23.1-ivygrep.1" authors = ["Max Brunsfeld "] build = "bindings/rust/build.rs" include = [ @@ -21,12 +10,15 @@ include = [ "queries/*", "src/*", "tree-sitter.json", + "IVYGREP_PATCH.md", + "LICENSE", + "README.md", ] autobins = false autoexamples = false autotests = false autobenches = false -description = "Haskell grammar for tree-sitter" +description = "ivygrep-maintained Haskell grammar for tree-sitter" readme = "README.md" keywords = [ "incremental", @@ -39,7 +31,7 @@ categories = [ "text-editors", ] license = "MIT" -repository = "https://github.com/tree-sitter/tree-sitter-haskell" +repository = "https://github.com/bvolpato/ivygrep" [lib] name = "tree_sitter_haskell" diff --git a/vendor/tree-sitter-haskell/Cargo.toml.orig b/vendor/tree-sitter-haskell/Cargo.toml.orig deleted file mode 100644 index 1bb71d3d..00000000 --- a/vendor/tree-sitter-haskell/Cargo.toml.orig +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "tree-sitter-haskell" -description = "Haskell grammar for tree-sitter" -version = "0.23.1" -authors = ["Max Brunsfeld "] -license = "MIT" -readme = "README.md" -keywords = ["incremental", "parsing", "tree-sitter", "haskell"] -categories = ["parsing", "text-editors"] -repository = "https://github.com/tree-sitter/tree-sitter-haskell" -edition = "2021" -autoexamples = false - -build = "bindings/rust/build.rs" -include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*", "tree-sitter.json"] - -[lib] -path = "bindings/rust/lib.rs" - -[dependencies] -tree-sitter-language = "0.1" - -[build-dependencies] -cc = "1.1.15" - -[dev-dependencies] -tree-sitter = "0.23" diff --git a/vendor/usearch/Cargo.toml b/vendor/usearch/Cargo.toml index f7aa21f9..78043297 100644 --- a/vendor/usearch/Cargo.toml +++ b/vendor/usearch/Cargo.toml @@ -1,18 +1,7 @@ -# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO -# -# When uploading crates to the registry Cargo will automatically -# "normalize" Cargo.toml files for maximal compatibility -# with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. -# -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. - [package] edition = "2021" -name = "usearch" -version = "2.24.0" +name = "ivygrep-usearch" +version = "2.24.0-ivygrep.1" authors = ["Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>"] build = "build.rs" include = [ @@ -20,6 +9,9 @@ include = [ "/include/**", "/fp16/include/**", "/build.rs", + "/IVYGREP_PATCH.md", + "/LICENSE", + "/README.md", ] publish = true autolib = false @@ -27,11 +19,11 @@ autobins = false autoexamples = false autotests = false autobenches = false -description = "Smaller & Faster Single-File Vector Search Engine from Unum" -documentation = "https://unum-cloud.github.io/usearch" +description = "ivygrep-maintained USearch fork" +documentation = "https://docs.rs/ivygrep-usearch" readme = "README.md" license = "Apache-2.0" -repository = "https://github.com/unum-cloud/usearch" +repository = "https://github.com/bvolpato/ivygrep" [features] default = ["fp16lib"] diff --git a/vendor/usearch/IVYGREP_PATCH.md b/vendor/usearch/IVYGREP_PATCH.md new file mode 100644 index 00000000..8545664f --- /dev/null +++ b/vendor/usearch/IVYGREP_PATCH.md @@ -0,0 +1,14 @@ +# ivygrep patch + +Fork of `usearch` 2.24.0 used by ivygrep vector indexes. + +Changes disable bundled SimSIMD, preserve Cargo-selected Windows CRT linkage, +fix Windows allocation failure checks, prevent reserve-time capacity inflation, +keep reserve operations monotonic, and use renamed CXX bridge include. Package +name is distinct so crates.io installs reproduce release behavior without a +consumer-side Cargo patch. + +Upstream drafts cover reserve sizing in +[unum-cloud/USearch#777](https://github.com/unum-cloud/USearch/pull/777) and +Cargo-selected Windows CRT linkage in +[unum-cloud/USearch#778](https://github.com/unum-cloud/USearch/pull/778). diff --git a/vendor/usearch/rust/lib.cpp b/vendor/usearch/rust/lib.cpp index 40daef09..7633fa6d 100644 --- a/vendor/usearch/rust/lib.cpp +++ b/vendor/usearch/rust/lib.cpp @@ -1,5 +1,5 @@ #include "lib.hpp" -#include "usearch/rust/lib.rs.h" +#include "ivygrep-usearch/rust/lib.rs.h" using namespace unum::usearch; using namespace unum; diff --git a/vendor/usearch/rust/lib.rs b/vendor/usearch/rust/lib.rs index 3b97b830..6c63b260 100644 --- a/vendor/usearch/rust/lib.rs +++ b/vendor/usearch/rust/lib.rs @@ -957,12 +957,9 @@ impl VectorType for f16 { // Temporarily cast the closure to a raw pointer for passing. let trampoline_fn: usize = trampoline:: as *const () as usize; let closure_address: usize = &filter as *const F as usize; - index.inner.filtered_search_f16( - f16::to_i16s(query), - count, - trampoline_fn, - closure_address, - ) + index + .inner + .filtered_search_f16(f16::to_i16s(query), count, trampoline_fn, closure_address) } fn change_metric( @@ -1035,12 +1032,9 @@ impl VectorType for b1x8 { // Temporarily cast the closure to a raw pointer for passing. let trampoline_fn: usize = trampoline:: as *const () as usize; let closure_address: usize = &filter as *const F as usize; - index.inner.filtered_search_b1x8( - b1x8::to_u8s(query), - count, - trampoline_fn, - closure_address, - ) + index + .inner + .filtered_search_b1x8(b1x8::to_u8s(query), count, trampoline_fn, closure_address) } fn change_metric(