This release is a pre-release and may not be stable for production use.
hol-cigar
hol-cigar provides local Rust context graphs and the compatible remote CIGAR SDK from HOL.org.
Beta:
0.10.0b1, Python 3.14. The platform wheel bundles the local context worker for macOS ARM64; it does not include the Honey daemon. Remote v1 APIs remain compatible with 0.9.4. Other native targets and production deployment are not qualified by this beta.
The Python 3.14 SDK exposes all 45 frozen CIGAR v1 operations through both
AsyncCigarClient and CigarClient. Both facades provide bounded deadlines,
typed problems, resumable streams, pagination, fixed idempotency keys, safe retry,
and local semantic bundle/delta verification.
The PyPI distribution is named hol-cigar; its stable Python import namespace remains cigar_sdk.
The exported cigar_sdk.CONTEXT_ABI constant is the exact string cigar.context.v1.
python3.14 -m pip install ./hol_cigar-0.10.0b1-py3-none-macosx_11_0_arm64.whl
Verify the signed GitHub release assets before installation. Registry publication is separate;
once listed on PyPI, use python3.14 -m pip install 'hol-cigar==0.10.0b1'.
Local context graph (no server or model required)
from cigar_sdk import LocalContextGraph
with LocalContextGraph("my-project") as graph:
graph.replace_source("src/auth.py", [
{"id": "authorize", "source": "src/auth.py", "text": "def authorize(user):\n return user.active\n"}
])
result = graph.compile({"query": "authorize", "max_tokens": 1024, "reserve_tokens": 128})
context_text = result["rendered"] # place in your prompt's DATA/context role
assert result["snapshot"]["stats"]["rendered_tokens"] <= 896
The persistent worker retains incremental indexes and its bounded exact o200k_base cache.
upsert, remove, link/unlink, atomic replace_source, line-preserving chunks,
compile, verify, delta, apply_delta, stats, and clear_cache expose the Rust core.
Input/request/snapshot types are exported as LocalDocument, LocalContextRequest,
LocalContextSnapshot, etc. Local methods are synchronous and thread-serialized; the existing
AsyncCigarClient remains the asynchronous remote client.
required IDs include their complete hard dependency/contradiction closure. Pass allowed
on every call when source permissions differ ([] authorizes none; omission permits the
whole caller-owned graph). excerpt_mode="query_windows" is opt-in; full text is the default.
Source withdrawal preserves hard edges, so missing required evidence fails closed. Snapshot
digests are integrity commitments, not signatures or authority. Deltas reduce transport/storage
bytes, not stateless model prompt tokens. Token budgets include Rust-rendered citations but
exclude the provider envelope; reserve that separately. This beta does not claim new answer-quality
or token-reduction gains beyond the underlying Rust selector.
Use with or close() to release the worker. Each graph owns one process and privacy-local
cache. Defaults: 30-second call timeout, 32 MiB request, 64 MiB response, 100k documents,
256 MiB indexed text, 1024 cache entries/8 MiB cached text. Customize limits and timeout.
Cache clearing drops strings but does not guarantee memory zeroization. A LocalContextError
has a content-free code; timeout/protocol/pipe failure closes the graph and never retries
mutations. Invalid wire fields also close it. A lock-wait Busy error leaves the active call alone.
The portable source distribution and wheels built without native staging retain all SDK APIs,
but local graphs require an explicit trusted absolute worker_path. Build it from the matching
0.10.0-beta.1 Rust source using Rust 1.92+:
cargo build --locked --release -p cigar-context --features bpe --bin cigar-context-worker
Pass the resulting executable to LocalContextGraph("my-project", worker_path="/absolute/path/to/cigar-context-worker").
No PATH discovery, install-time downloads, shell invocation, or automatic filesystem ingestion
occurs. Bundled worker bytes are checked against their package manifest before launch; this is
not a substitute for trusting the package publisher. The subprocess runs with your OS privileges
and inherits its environment; it is not a security sandbox. It adds startup/IPC/memory overhead
compared with embedding Rust directly. Reuse graphs to amortize initialization.
Compatible remote client
from cigar_sdk import AsyncCigarClient, TypedOperationRequest, create_idempotency_key, models
async with AsyncCigarClient("https://cigar.example", bearer_token=token_provider) as client:
result = await client.compile_context_bundle(
TypedOperationRequest(
models.CompileContextBundleRequest(plan_id=plan_id),
idempotency_key=create_idempotency_key("compile"),
)
)
Every nominal request and response is validated against the frozen payload schema. Mutating retries reuse the exact caller-provided key and bytes. Effect dispatch is always one attempt. Synchronous and asynchronous streams are explicit context managers so callers can close the underlying response deterministically.
Token providers accept the remaining call timeout in seconds. Injecting a custom
HttpTransport requires trust_custom_transport=True; the default transport ignores
ambient proxies and refuses redirects. The wheel and source distribution both include
the shared fixture, so cigar-qualify-bundle works from a clean installation.
Honey distributions also install cigar-agent-b-handoff. It accepts an existing recipient-bound
handoff, then records one typed, evidence-backed result with independent idempotency keys. The
Agent B bearer token is read only from CIGAR_AGENT_B_TOKEN, never a command-line argument. Run
cigar-agent-b-handoff --help for the required handoff, plan, base-commit, revision, claim,
evidence, and caller-generated acceptance/result idempotency keys. The example requests no
follow-up capability and never dispatches an effect.
Remote HTTPS construction requires an explicit bearer_token value or provider. The SDK never
discovers credentials from the URL, environment, project configuration, proxy settings, or a
redirect target. Explicit cleartext loopback mode remains available only for local development.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hol_cigar-0.10.0b1.tar.gz.
File metadata
- Download URL: hol_cigar-0.10.0b1.tar.gz
- Upload date:
- Size: 99.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1759dbcb3bb49b9b352e3d9f4604c6e5442ced032078537b161554f5bbad70f6
|
|
| MD5 |
c513889059099bdc06ee2c7eb2d16b7d
|
|
| BLAKE2b-256 |
8608177c8704ebb07b61c1b5d501bfdfa1b719296b4f9c8190d70b00aab62eee
|
Provenance
The following attestation bundles were made for hol_cigar-0.10.0b1.tar.gz:
Publisher:
publish-hol-cigar.yml on hashgraph-online/hol-cigar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hol_cigar-0.10.0b1.tar.gz -
Subject digest:
1759dbcb3bb49b9b352e3d9f4604c6e5442ced032078537b161554f5bbad70f6 - Sigstore transparency entry: 2760697200
- Sigstore integration time:
-
Permalink:
hashgraph-online/hol-cigar@11c38b0ba4fa00e1a03cad99ca316a875a03babd -
Branch / Tag:
refs/tags/v0.10.0-beta.1 - Owner: https://github.com/hashgraph-online
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hol-cigar.yml@11c38b0ba4fa00e1a03cad99ca316a875a03babd -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file hol_cigar-0.10.0b1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: hol_cigar-0.10.0b1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.1 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f0595ab1121b8a77fd07a76fc1cda7174fba4101853e67f166534849979e004
|
|
| MD5 |
74f561403c89bbfa65cefe09681f40f6
|
|
| BLAKE2b-256 |
bde78bfd23dc94ec63cab2df0742afb8b58e25ae441873801cd7de105e6ad10e
|
Provenance
The following attestation bundles were made for hol_cigar-0.10.0b1-py3-none-macosx_11_0_arm64.whl:
Publisher:
publish-hol-cigar.yml on hashgraph-online/hol-cigar
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hol_cigar-0.10.0b1-py3-none-macosx_11_0_arm64.whl -
Subject digest:
7f0595ab1121b8a77fd07a76fc1cda7174fba4101853e67f166534849979e004 - Sigstore transparency entry: 2760697266
- Sigstore integration time:
-
Permalink:
hashgraph-online/hol-cigar@11c38b0ba4fa00e1a03cad99ca316a875a03babd -
Branch / Tag:
refs/tags/v0.10.0-beta.1 - Owner: https://github.com/hashgraph-online
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-hol-cigar.yml@11c38b0ba4fa00e1a03cad99ca316a875a03babd -
Trigger Event:
workflow_dispatch
-
Statement type: