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.
Files changed (45) hide show
  1. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/PKG-INFO +1 -1
  2. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/__main__.py +2 -22
  3. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/business_map.py +0 -18
  4. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/pyproject.toml +1 -1
  5. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/skill/skill-codex.md +2 -2
  6. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/skill/skill.md +6 -6
  7. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/LICENSE +0 -0
  8. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/MANIFEST.in +0 -0
  9. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/README.md +0 -0
  10. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/ckgraphify.egg-info/SOURCES.txt +0 -0
  11. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/__init__.py +0 -0
  12. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/analyze.py +0 -0
  13. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/benchmark.py +0 -0
  14. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/bridge_mtop.py +0 -0
  15. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/build.py +0 -0
  16. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/cache.py +0 -0
  17. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/callflow_html.py +0 -0
  18. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/cluster.py +0 -0
  19. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/dedup.py +0 -0
  20. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/detect.py +0 -0
  21. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/export.py +0 -0
  22. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/extract.py +0 -0
  23. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/global_graph.py +0 -0
  24. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/google_workspace.py +0 -0
  25. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_backend.py +0 -0
  26. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_frontend.py +0 -0
  27. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_frontend_sdk.py +0 -0
  28. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_html.py +0 -0
  29. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_merge.py +0 -0
  30. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/graph_main_trace.py +0 -0
  31. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/hooks.py +0 -0
  32. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/ingest.py +0 -0
  33. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/llm.py +0 -0
  34. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/manifest.py +0 -0
  35. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/repo_registry.py +0 -0
  36. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/report.py +0 -0
  37. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/security.py +0 -0
  38. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/serve.py +0 -0
  39. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/transcribe.py +0 -0
  40. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/tree_html.py +0 -0
  41. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/validate.py +0 -0
  42. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/watch.py +0 -0
  43. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/graphify/wiki.py +0 -0
  44. {ckgraphify-0.2.0 → ckgraphify-0.2.1}/setup.cfg +0 -0
  45. {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.0
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
- plugin_root = _claude_plugin_root() if platform == "claude" else None
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"] and not installing_to_plugin:
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.0"
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/setup-ckgraphify.sh" ]; then
19
- "${CLAUDE_PLUGIN_ROOT}/scripts/setup-ckgraphify.sh"
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/setup-ckgraphify.sh"
14
+ "${CLAUDE_PLUGIN_ROOT}/scripts/prepare-ckgraphify.sh"
15
15
  export GRAPHIFY="${CLAUDE_PLUGIN_ROOT}/.graphify/bin/graphify"
16
16
  ```
17
17
 
18
- The setup script also 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.
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 <map> --concept <concept>
67
- "${GRAPHIFY:-graphify}" business-query "<question>" --map <map> --graph <graph> --trace --format text
68
- "${GRAPHIFY:-graphify}" business-trace --map <map> --graph <graph> --concept <concept> --scenario <scenario> --flow <flow> --max-depth <n> --sources
69
- "${GRAPHIFY:-graphify}" main-trace --graph <graph> --from <exact-node> --api <api> --max-depth <n> --sources --prefer-repo <repo> --exclude-repo <repo>
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