File summaries for cgh behind a confidentiality egress gate: agent CLIs, Ollama or any OpenAI-compatible endpoint, plus corpus-level insights
Project description
cgh-summarize
Prose summaries of indexed files for cgh, produced by whatever model you already have, behind a confidentiality egress gate.
pip install cgh-summarize
cgh summarize status # detected backends, gate posture, coverage
cgh summarize run # summarize what the gate clears
cgh findings --key summary
cgh insights # cross-file patterns from the summaries
Backends
| Backend | Runs | Egress |
|---|---|---|
cli:claude |
claude -p, light model |
cloud |
cli:gemini |
gemini -p, flash tier |
cloud |
cli:codex |
codex exec |
cloud |
cli:bob |
bob -p, IBM BobShell routes the model itself |
cloud |
ollama |
local Ollama daemon, model is a config line | none |
openai |
any OpenAI-compatible endpoint (vLLM, LM Studio, watsonx, ...) | cloud |
structural |
cgh's own outline, no model at all | none |
backend = "auto" (default) picks the first available in that order.
Third-party plugins add backends through the summarize.backend
extension namespace without touching this plugin.
The egress gate
Before any cloud backend sees a file, its findings are checked: a
confidential flag or any block-severity finding (private keys, cloud
credentials) stops it, PII findings stop it unless allow_pii = true.
With mode = "secure" in the cgh config, the gate switches to
allowlist: only files explicitly labeled non-confidential go out.
Local backends (ollama, structural) bypass the gate since nothing
leaves the machine. Every cloud call is logged to
.codegraph/activity.log.
Configuration
[plugin.summarize]
# backend = "auto" # or cli:claude, ollama, openai, structural...
# min_kb = 4 # skip files smaller than this
# allow_pii = false
# language = "en"
# claude_model = "haiku"
# gemini_model = "gemini-2.5-flash"
# ollama_model = "qwen2.5:1.5b"
# ollama_url = "http://127.0.0.1:11434"
# openai_base_url = "" # e.g. http://localhost:8000/v1
# openai_model = ""
# openai_api_key_env = "OPENAI_API_KEY"
Re-summarize policy: unchanged content is never re-scanned (blob SHA); when content changes, the old summary is carried forward while the drift stays under 30% of lines and fewer than 5 changes accumulated, then a fresh summary is produced.
Project details
Release history Release notifications | RSS feed
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 cgh_summarize-0.2.0.tar.gz.
File metadata
- Download URL: cgh_summarize-0.2.0.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abe920cb755de2bc7462b3a2aaff575a0b4e274dfa802174bd362119c2035455
|
|
| MD5 |
97612f52ef66553a7e3c053d24b19088
|
|
| BLAKE2b-256 |
fed5f36a139c86e183096e18746ddd0f9731fd89fa874d95942e9c3f5fd7889f
|
Provenance
The following attestation bundles were made for cgh_summarize-0.2.0.tar.gz:
Publisher:
release.yml on altikva/cgh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cgh_summarize-0.2.0.tar.gz -
Subject digest:
abe920cb755de2bc7462b3a2aaff575a0b4e274dfa802174bd362119c2035455 - Sigstore transparency entry: 2287038580
- Sigstore integration time:
-
Permalink:
altikva/cgh@3069c70efd20d40703959c978d0cb6241301a813 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/altikva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3069c70efd20d40703959c978d0cb6241301a813 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cgh_summarize-0.2.0-py3-none-any.whl.
File metadata
- Download URL: cgh_summarize-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1cf350a4922e3e8e7511e62896aed9c458ede67c70b53d60027518206155422
|
|
| MD5 |
0c37eaea4e7d7257d1fb5cf56cdacbb0
|
|
| BLAKE2b-256 |
3a7e61e61d6a8036dfa0f1f85ea4d1aad5b8d264ded1a7a049ac745c7cf38e1e
|
Provenance
The following attestation bundles were made for cgh_summarize-0.2.0-py3-none-any.whl:
Publisher:
release.yml on altikva/cgh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cgh_summarize-0.2.0-py3-none-any.whl -
Subject digest:
d1cf350a4922e3e8e7511e62896aed9c458ede67c70b53d60027518206155422 - Sigstore transparency entry: 2287038613
- Sigstore integration time:
-
Permalink:
altikva/cgh@3069c70efd20d40703959c978d0cb6241301a813 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/altikva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3069c70efd20d40703959c978d0cb6241301a813 -
Trigger Event:
push
-
Statement type: