htmlgraph 0.24.0__py3-none-any.whl → 0.24.2__py3-none-any.whl

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.
htmlgraph/__init__.py CHANGED
@@ -85,7 +85,7 @@ from htmlgraph.types import (
85
85
  )
86
86
  from htmlgraph.work_type_utils import infer_work_type, infer_work_type_from_id
87
87
 
88
- __version__ = "0.24.0"
88
+ __version__ = "0.24.2"
89
89
  __all__ = [
90
90
  # Exceptions
91
91
  "HtmlGraphError",
htmlgraph/cli.py CHANGED
@@ -3782,6 +3782,88 @@ def create_default_index(path: Path) -> None:
3782
3782
  )
3783
3783
 
3784
3784
 
3785
+ def install_htmlgraph_plugin(args: argparse.Namespace) -> None:
3786
+ """Install/upgrade HtmlGraph plugin using documented Claude Code commands."""
3787
+ verbose = not (args.quiet or args.format == "json")
3788
+
3789
+ if verbose:
3790
+ print("\n📦 Installing/upgrading HtmlGraph plugin...\n")
3791
+
3792
+ # Step 1: Update marketplace
3793
+ try:
3794
+ if verbose:
3795
+ print(" Updating marketplace...")
3796
+ result = subprocess.run(
3797
+ ["claude", "plugin", "marketplace", "update", "htmlgraph"],
3798
+ capture_output=True,
3799
+ text=True,
3800
+ check=False,
3801
+ )
3802
+ if result.returncode == 0:
3803
+ if verbose:
3804
+ print(" ✓ Marketplace updated")
3805
+ else:
3806
+ # Marketplace errors are non-blocking
3807
+ if (
3808
+ "not found" in result.stderr.lower()
3809
+ or "no marketplace" in result.stderr.lower()
3810
+ ):
3811
+ if verbose:
3812
+ print(" ℹ Marketplace not configured (OK, continuing)")
3813
+ elif verbose:
3814
+ print(f" ⚠ Marketplace update: {result.stderr.strip()}")
3815
+ except FileNotFoundError:
3816
+ if verbose:
3817
+ print(" ⚠ 'claude' command not found")
3818
+ except Exception as e:
3819
+ if verbose:
3820
+ print(f" ⚠ Error updating marketplace: {e}")
3821
+
3822
+ # Step 2: Try update first (documented command for latest version)
3823
+ try:
3824
+ if verbose:
3825
+ print(" Updating plugin to latest version...")
3826
+ result = subprocess.run(
3827
+ ["claude", "plugin", "update", "htmlgraph"],
3828
+ capture_output=True,
3829
+ text=True,
3830
+ check=False,
3831
+ )
3832
+ if result.returncode == 0:
3833
+ if verbose:
3834
+ print(" ✓ Plugin updated successfully")
3835
+ else:
3836
+ # If update fails (plugin not installed), fallback to install
3837
+ if (
3838
+ "not installed" in result.stderr.lower()
3839
+ or "not found" in result.stderr.lower()
3840
+ ):
3841
+ if verbose:
3842
+ print(" ℹ Plugin not yet installed, installing...")
3843
+ install_result = subprocess.run(
3844
+ ["claude", "plugin", "install", "htmlgraph"],
3845
+ capture_output=True,
3846
+ text=True,
3847
+ check=False,
3848
+ )
3849
+ if install_result.returncode == 0:
3850
+ if verbose:
3851
+ print(" ✓ Plugin installed successfully")
3852
+ elif verbose:
3853
+ print(f" ⚠ Plugin install: {install_result.stderr.strip()}")
3854
+ elif verbose:
3855
+ print(f" ⚠ Plugin update: {result.stderr.strip()}")
3856
+ except FileNotFoundError:
3857
+ if verbose:
3858
+ print(" ⚠ 'claude' command not found")
3859
+ except Exception as e:
3860
+ if verbose:
3861
+ print(f" ⚠ Error updating plugin: {e}")
3862
+
3863
+ if verbose:
3864
+ print("\n✓ Plugin installation complete\n")
3865
+
3866
+
3785
3867
  def cmd_claude(args: argparse.Namespace) -> None:
3786
3868
  """Start Claude Code with orchestrator prompt."""
3787
3869
  import textwrap
@@ -3801,6 +3883,9 @@ def cmd_claude(args: argparse.Namespace) -> None:
3801
3883
 
3802
3884
  try:
3803
3885
  if args.init:
3886
+ # Install/upgrade plugin first
3887
+ install_htmlgraph_plugin(args)
3888
+
3804
3889
  # Load optimized orchestrator system prompt
3805
3890
  prompt_file = (
3806
3891
  Path(__file__).parent / "orchestrator-system-prompt-optimized.txt"
@@ -3868,6 +3953,9 @@ def cmd_claude(args: argparse.Namespace) -> None:
3868
3953
  sys.exit(1)
3869
3954
 
3870
3955
  elif args.continue_session:
3956
+ # Install/upgrade plugin first
3957
+ install_htmlgraph_plugin(args)
3958
+
3871
3959
  # Resume last Claude Code session
3872
3960
  # Find plugin directory relative to project root
3873
3961
  plugin_dir = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgraph
3
- Version: 0.24.0
3
+ Version: 0.24.2
4
4
  Summary: HTML is All You Need - Graph database on web standards
5
5
  Project-URL: Homepage, https://github.com/Shakes-tzd/htmlgraph
6
6
  Project-URL: Documentation, https://github.com/Shakes-tzd/htmlgraph#readme
@@ -1,10 +1,10 @@
1
- htmlgraph/__init__.py,sha256=0lZDvB_0t7bHAwyyw6sQAsd-v8RN-Xvf7tNmnJYzsIY,5185
1
+ htmlgraph/__init__.py,sha256=yO5hS-1KuZzmWAcp_aHlokwwNAv2iNQSju-B7r7DWHc,5185
2
2
  htmlgraph/agent_detection.py,sha256=PAYo7rU3N_y1cGRd7Dwjh5Wgu-QZ7ENblX_yOzU-gJ0,2749
3
3
  htmlgraph/agent_registry.py,sha256=Usa_35by7p5gtpvHO7K3AcGimnorw-FzgPVa3cWTQ58,9448
4
4
  htmlgraph/agents.py,sha256=Yvu6x1nOfrW2WhRTAHiCuSpvqoVJXx1Mkzd59kwEczw,33466
5
5
  htmlgraph/analytics_index.py,sha256=ba6Y4H_NNOCxI_Z4U7wSgBFFairf4IJT74WcM1PoZuI,30594
6
6
  htmlgraph/attribute_index.py,sha256=cBZUV4YfGnhh6lF59aYPCdNrRr1hK__BzSKCueSDUhQ,6593
7
- htmlgraph/cli.py,sha256=Itc7HTul1Q_rdEiWXT10qViaSCdNJ8qog8QIFKQOYKE,212912
7
+ htmlgraph/cli.py,sha256=-v3VBsf0IZwNQ-7ASkp_1jJHDrsFQKIkHzbtU-K66Ts,216118
8
8
  htmlgraph/context_analytics.py,sha256=CaLu0o2uSr6rlBM5YeaFZe7grgsy7_Hx10qdXuNcdao,11344
9
9
  htmlgraph/converter.py,sha256=fhJF2h4YbrmL1wIa1jk7kGkT_CYGHeWp_5UzXitQ6HE,22747
10
10
  htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
@@ -146,12 +146,12 @@ htmlgraph/services/claiming.py,sha256=HcrltEJKN72mxuD7fGuXWeh1U0vwhjMvhZcFc02Eiy
146
146
  htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
147
147
  htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
148
148
  htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
149
- htmlgraph-0.24.0.data/data/htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
150
- htmlgraph-0.24.0.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
151
- htmlgraph-0.24.0.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
152
- htmlgraph-0.24.0.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
153
- htmlgraph-0.24.0.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
154
- htmlgraph-0.24.0.dist-info/METADATA,sha256=sBY-KzNUArhEgTz48W7yGN7zEbErdU_A290ep-n9U9g,7881
155
- htmlgraph-0.24.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
156
- htmlgraph-0.24.0.dist-info/entry_points.txt,sha256=EaUbjA_bbDwEO_XDLEGMeK8aQP-ZnHiUTkLshyKDyB8,98
157
- htmlgraph-0.24.0.dist-info/RECORD,,
149
+ htmlgraph-0.24.2.data/data/htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
150
+ htmlgraph-0.24.2.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
151
+ htmlgraph-0.24.2.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
152
+ htmlgraph-0.24.2.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
153
+ htmlgraph-0.24.2.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
154
+ htmlgraph-0.24.2.dist-info/METADATA,sha256=4dJhWJBwkmM3_NerNUIpL9IdY6yt0UPDKLLFKYSXe_4,7881
155
+ htmlgraph-0.24.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
156
+ htmlgraph-0.24.2.dist-info/entry_points.txt,sha256=EaUbjA_bbDwEO_XDLEGMeK8aQP-ZnHiUTkLshyKDyB8,98
157
+ htmlgraph-0.24.2.dist-info/RECORD,,