ckgraphify 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/PKG-INFO +1 -1
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/__main__.py +2 -22
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/business_map.py +0 -18
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/pyproject.toml +1 -1
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/skill/skill-codex.md +2 -2
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/skill/skill.md +6 -6
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/LICENSE +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/MANIFEST.in +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/README.md +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/ckgraphify.egg-info/SOURCES.txt +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/__init__.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/analyze.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/benchmark.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/bridge_mtop.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/build.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/cache.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/callflow_html.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/cluster.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/dedup.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/detect.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/export.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/extract.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/global_graph.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/google_workspace.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_backend.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_frontend.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_frontend_sdk.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_html.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_merge.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_trace.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/hooks.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/ingest.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/llm.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/manifest.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/repo_registry.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/report.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/security.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/serve.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/transcribe.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/tree_html.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/validate.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/watch.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/wiki.py +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/setup.cfg +0 -0
- {ckgraphify-0.2.0 → ckgraphify-0.2.1}/skill/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ckgraphify
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: AI coding assistant skill for Claude Code and Codex - graph-main boundary graphs, multi-repo call chains, business-map concepts, and business search
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/safishamsi/graphify
|
|
@@ -92,11 +92,6 @@ _PLATFORM_CONFIG: dict[str, dict] = {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
def _claude_plugin_root() -> Path | None:
|
|
96
|
-
raw = os.environ.get("CLAUDE_PLUGIN_ROOT", "").strip()
|
|
97
|
-
return Path(raw).expanduser().resolve() if raw else None
|
|
98
|
-
|
|
99
|
-
|
|
100
95
|
def _claude_project_dir() -> Path | None:
|
|
101
96
|
raw = os.environ.get("CLAUDE_PROJECT_DIR", "").strip()
|
|
102
97
|
return Path(raw).expanduser().resolve() if raw else None
|
|
@@ -106,9 +101,6 @@ def _default_repos_root() -> Path:
|
|
|
106
101
|
project_dir = _claude_project_dir()
|
|
107
102
|
if project_dir is not None:
|
|
108
103
|
return project_dir / "repos"
|
|
109
|
-
plugin_root = _claude_plugin_root()
|
|
110
|
-
if plugin_root is not None:
|
|
111
|
-
return plugin_root / "repos"
|
|
112
104
|
return Path.home() / ".graphify" / "repos"
|
|
113
105
|
|
|
114
106
|
|
|
@@ -126,11 +118,7 @@ def install(platform: str = "claude") -> None:
|
|
|
126
118
|
print(f"error: {cfg['skill_file']} not found in package - reinstall ckgraphify", file=sys.stderr)
|
|
127
119
|
sys.exit(1)
|
|
128
120
|
|
|
129
|
-
|
|
130
|
-
installing_to_plugin = plugin_root is not None
|
|
131
|
-
if plugin_root is not None:
|
|
132
|
-
skill_dst = plugin_root / "skills" / "ckgraphify" / "SKILL.md"
|
|
133
|
-
elif platform == "claude" and os.environ.get("CLAUDE_CONFIG_DIR"):
|
|
121
|
+
if platform == "claude" and os.environ.get("CLAUDE_CONFIG_DIR"):
|
|
134
122
|
_claude_base = Path(os.environ["CLAUDE_CONFIG_DIR"])
|
|
135
123
|
skill_dst = _claude_base / "skills" / "ckgraphify" / "SKILL.md"
|
|
136
124
|
else:
|
|
@@ -149,7 +137,7 @@ def install(platform: str = "claude") -> None:
|
|
|
149
137
|
(skill_dst.parent / ".ckgraphify_version").write_text(__version__, encoding="utf-8")
|
|
150
138
|
print(f" skill installed -> {skill_dst}")
|
|
151
139
|
|
|
152
|
-
if cfg["claude_md"]
|
|
140
|
+
if cfg["claude_md"]:
|
|
153
141
|
# Register in ~/.claude/CLAUDE.md (Claude Code only)
|
|
154
142
|
claude_md = Path.home() / ".claude" / "CLAUDE.md"
|
|
155
143
|
if claude_md.exists():
|
|
@@ -163,9 +151,6 @@ def install(platform: str = "claude") -> None:
|
|
|
163
151
|
claude_md.parent.mkdir(parents=True, exist_ok=True)
|
|
164
152
|
claude_md.write_text(_SKILL_REGISTRATION.lstrip(), encoding="utf-8")
|
|
165
153
|
print(f" CLAUDE.md -> created at {claude_md}")
|
|
166
|
-
elif installing_to_plugin:
|
|
167
|
-
print(f" plugin root -> {plugin_root}")
|
|
168
|
-
|
|
169
154
|
# Refresh version stamps in all other previously-installed skill dirs so
|
|
170
155
|
# stale-version warnings don't fire for platforms not explicitly re-installed.
|
|
171
156
|
_refresh_all_version_stamps()
|
|
@@ -485,7 +470,6 @@ def _clone_repo(url: str, branch: str | None = None, out_dir: Path | None = None
|
|
|
485
470
|
|
|
486
471
|
Clones into ~/.graphify/repos/<owner>/<repo> by default so repeated
|
|
487
472
|
runs on the same URL reuse the existing clone (git pull instead of clone).
|
|
488
|
-
In Claude Code plugin mode, the cache lives under ${CLAUDE_PLUGIN_ROOT}/repos.
|
|
489
473
|
"""
|
|
490
474
|
import subprocess as _sp
|
|
491
475
|
import re as _re
|
|
@@ -1887,10 +1871,6 @@ def main() -> None:
|
|
|
1887
1871
|
i += 1
|
|
1888
1872
|
else:
|
|
1889
1873
|
i += 1
|
|
1890
|
-
if repos_root is None:
|
|
1891
|
-
plugin_root = _claude_plugin_root()
|
|
1892
|
-
if plugin_root is not None:
|
|
1893
|
-
repos_root = plugin_root / "repos"
|
|
1894
1874
|
if repos_root is None:
|
|
1895
1875
|
print(
|
|
1896
1876
|
"Usage: graphify bridge-mtop --repos-root <path> [--graph-in in.json] "
|
|
@@ -300,9 +300,6 @@ def find_kg_banks_root(start: Path | None = None) -> Path | None:
|
|
|
300
300
|
|
|
301
301
|
|
|
302
302
|
def default_business_map_path(start: Path | None = None) -> Path:
|
|
303
|
-
plugin_root = os.environ.get("CLAUDE_PLUGIN_ROOT", "").strip()
|
|
304
|
-
if plugin_root:
|
|
305
|
-
return Path(plugin_root).expanduser().resolve() / "graphify-out" / "business-map.json"
|
|
306
303
|
root = find_kg_banks_root(start)
|
|
307
304
|
if root is not None:
|
|
308
305
|
return root / "graphify-out" / "business-map.json"
|
|
@@ -342,21 +339,6 @@ def resolve_bound_graph_path(map_path: Path, graph_ref: str) -> Path:
|
|
|
342
339
|
|
|
343
340
|
|
|
344
341
|
def default_business_graph_path(map_path: Path, start: Path | None = None) -> Path | None:
|
|
345
|
-
plugin_root = os.environ.get("CLAUDE_PLUGIN_ROOT", "").strip()
|
|
346
|
-
if plugin_root:
|
|
347
|
-
graphify_out = Path(plugin_root).expanduser().resolve() / "graphify-out"
|
|
348
|
-
graph = graphify_out / "graph.json"
|
|
349
|
-
if graph.exists():
|
|
350
|
-
return graph
|
|
351
|
-
legacy_graph = graphify_out / "graph-hc.json"
|
|
352
|
-
if legacy_graph.exists():
|
|
353
|
-
return legacy_graph
|
|
354
|
-
candidates = sorted(
|
|
355
|
-
p for p in graphify_out.glob("graph*.json")
|
|
356
|
-
if p.name != "business-map.json"
|
|
357
|
-
)
|
|
358
|
-
return candidates[0] if candidates else None
|
|
359
|
-
|
|
360
342
|
if Path(map_path).exists():
|
|
361
343
|
graph_ref = _business_map_graph_ref(load_business_map(Path(map_path)))
|
|
362
344
|
if graph_ref:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ckgraphify"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "AI coding assistant skill for Claude Code and Codex - graph-main boundary graphs, multi-repo call chains, business-map concepts, and business search"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -15,8 +15,8 @@ The public API is `$ckgraphify ...`. Treat it as an assistant API: translate it
|
|
|
15
15
|
Before running any `graphify` command, prefer a project-local CLI. In a Claude plugin checkout, run the bundled setup script once per session:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -x "${CLAUDE_PLUGIN_ROOT}/scripts/
|
|
19
|
-
"${CLAUDE_PLUGIN_ROOT}/scripts/
|
|
18
|
+
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -x "${CLAUDE_PLUGIN_ROOT}/scripts/prepare-ckgraphify.sh" ]; then
|
|
19
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/prepare-ckgraphify.sh"
|
|
20
20
|
export GRAPHIFY="${CLAUDE_PLUGIN_ROOT}/.graphify/bin/graphify"
|
|
21
21
|
else
|
|
22
22
|
command -v graphify >/dev/null 2>&1 || { echo "graphify is not installed; install ckgraphify with Python >= 3.10" >&2; exit 1; }
|
|
@@ -11,11 +11,11 @@ trigger: /ckgraphify
|
|
|
11
11
|
Before running any `graphify` command in the Claude plugin environment, ensure the project-local CLI is available by running the bundled setup script once per session:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
"${CLAUDE_PLUGIN_ROOT}/scripts/
|
|
14
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/prepare-ckgraphify.sh"
|
|
15
15
|
export GRAPHIFY="${CLAUDE_PLUGIN_ROOT}/.graphify/bin/graphify"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
The
|
|
18
|
+
The prepare script ensures the shared Python environment has `ckgraphify`, writes the plugin-local CLI wrapper, and runs `${CLAUDE_PLUGIN_ROOT}/scripts/sync-artifacts.sh`. Before using the default graph or business map, this sync script queries the production kg-server (`KG_SERVER_URL`, default `https://kg-banks.alibaba.net`) for the lightweight latest manifest. If the remote graph/concept versions and checksums already match the local manifest, it does not download files.
|
|
19
19
|
|
|
20
20
|
If `${CLAUDE_PLUGIN_ROOT}` is missing, report that the Claude plugin environment is not active. Do not use macOS `/usr/bin/python3` or `sudo pip`. Do not inline the setup script from this skill; run the bundled script so quoting, checksum validation, and Python selection stay deterministic.
|
|
21
21
|
|
|
@@ -63,10 +63,10 @@ Show this API briefly.
|
|
|
63
63
|
Prefer existing deterministic commands:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
"${GRAPHIFY:-graphify}" business-show --map
|
|
67
|
-
"${GRAPHIFY:-graphify}" business-query "<question>" --map
|
|
68
|
-
"${GRAPHIFY:-graphify}" business-trace --map
|
|
69
|
-
"${GRAPHIFY:-graphify}" main-trace --graph
|
|
66
|
+
"${GRAPHIFY:-graphify}" business-show --map "${CLAUDE_PLUGIN_ROOT}/graphify-out/business-map.json" --concept <concept>
|
|
67
|
+
"${GRAPHIFY:-graphify}" business-query "<question>" --map "${CLAUDE_PLUGIN_ROOT}/graphify-out/business-map.json" --graph "${CLAUDE_PLUGIN_ROOT}/graphify-out/graph.json" --trace --format text
|
|
68
|
+
"${GRAPHIFY:-graphify}" business-trace --map "${CLAUDE_PLUGIN_ROOT}/graphify-out/business-map.json" --graph "${CLAUDE_PLUGIN_ROOT}/graphify-out/graph.json" --concept <concept> --scenario <scenario> --flow <flow> --max-depth <n> --sources
|
|
69
|
+
"${GRAPHIFY:-graphify}" main-trace --graph "${CLAUDE_PLUGIN_ROOT}/graphify-out/graph.json" --from <exact-node> --api <api> --max-depth <n> --sources --prefer-repo <repo> --exclude-repo <repo>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
## Graph Scope
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|