htmlgraph 0.26.2__py3-none-any.whl → 0.26.4__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 +1 -1
- htmlgraph/cli.py +52 -0
- htmlgraph/hooks/context.py +6 -5
- {htmlgraph-0.26.2.dist-info → htmlgraph-0.26.4.dist-info}/METADATA +1 -1
- {htmlgraph-0.26.2.dist-info → htmlgraph-0.26.4.dist-info}/RECORD +12 -12
- {htmlgraph-0.26.2.data → htmlgraph-0.26.4.data}/data/htmlgraph/dashboard.html +0 -0
- {htmlgraph-0.26.2.data → htmlgraph-0.26.4.data}/data/htmlgraph/styles.css +0 -0
- {htmlgraph-0.26.2.data → htmlgraph-0.26.4.data}/data/htmlgraph/templates/AGENTS.md.template +0 -0
- {htmlgraph-0.26.2.data → htmlgraph-0.26.4.data}/data/htmlgraph/templates/CLAUDE.md.template +0 -0
- {htmlgraph-0.26.2.data → htmlgraph-0.26.4.data}/data/htmlgraph/templates/GEMINI.md.template +0 -0
- {htmlgraph-0.26.2.dist-info → htmlgraph-0.26.4.dist-info}/WHEEL +0 -0
- {htmlgraph-0.26.2.dist-info → htmlgraph-0.26.4.dist-info}/entry_points.txt +0 -0
htmlgraph/__init__.py
CHANGED
htmlgraph/cli.py
CHANGED
|
@@ -4977,6 +4977,58 @@ def cmd_claude(args: argparse.Namespace) -> None:
|
|
|
4977
4977
|
if orchestration_rules:
|
|
4978
4978
|
combined_prompt = f"{system_prompt}\n\n---\n\n{orchestration_rules}"
|
|
4979
4979
|
|
|
4980
|
+
# Add dev mode specific guidance
|
|
4981
|
+
dev_addendum = textwrap.dedent(
|
|
4982
|
+
"""
|
|
4983
|
+
|
|
4984
|
+
═══════════════════════════════════════════════════════════
|
|
4985
|
+
🔧 DEVELOPMENT MODE - HtmlGraph Project
|
|
4986
|
+
═══════════════════════════════════════════════════════════
|
|
4987
|
+
|
|
4988
|
+
CRITICAL: Hooks load htmlgraph from PyPI, NOT local source!
|
|
4989
|
+
|
|
4990
|
+
Development Workflow:
|
|
4991
|
+
1. Make changes to src/python/htmlgraph/
|
|
4992
|
+
2. Run tests: uv run pytest
|
|
4993
|
+
3. Deploy to PyPI: ./scripts/deploy-all.sh X.Y.Z --no-confirm
|
|
4994
|
+
4. Restart Claude Code (hooks auto-load new version from PyPI)
|
|
4995
|
+
5. Verify changes work correctly
|
|
4996
|
+
|
|
4997
|
+
Why PyPI in Dev Mode?
|
|
4998
|
+
- Hooks use: #!/usr/bin/env -S uv run --with htmlgraph
|
|
4999
|
+
- Always pulls latest version from PyPI
|
|
5000
|
+
- Tests in production-like environment
|
|
5001
|
+
- No surprises when distributed to users
|
|
5002
|
+
- Single source of truth (PyPI package)
|
|
5003
|
+
|
|
5004
|
+
Incremental Versioning:
|
|
5005
|
+
- Use patch versions: 0.26.2 → 0.26.3 → 0.26.4
|
|
5006
|
+
- No need to edit hook shebangs (always get latest)
|
|
5007
|
+
- Deploy frequently for rapid iteration
|
|
5008
|
+
|
|
5009
|
+
Session ID Tracking (v0.26.3+):
|
|
5010
|
+
- PostToolUse hooks query for most recent UserQuery session
|
|
5011
|
+
- All events should share same session_id
|
|
5012
|
+
- Verify: See "Development Mode" section in CLAUDE.md
|
|
5013
|
+
|
|
5014
|
+
Key References:
|
|
5015
|
+
- Development workflow: CLAUDE.md "Development Mode" section
|
|
5016
|
+
- Orchestrator patterns: /orchestrator-directives skill
|
|
5017
|
+
- Code quality: /code-quality skill
|
|
5018
|
+
- Deployment: /deployment-automation skill
|
|
5019
|
+
|
|
5020
|
+
Remember: You're dogfooding HtmlGraph!
|
|
5021
|
+
- Use SDK to track your own work
|
|
5022
|
+
- Delegate to spawner agents (Gemini, Codex, Copilot)
|
|
5023
|
+
- Follow orchestration patterns
|
|
5024
|
+
- Test in production-like environment
|
|
5025
|
+
|
|
5026
|
+
═══════════════════════════════════════════════════════════
|
|
5027
|
+
"""
|
|
5028
|
+
)
|
|
5029
|
+
|
|
5030
|
+
combined_prompt = f"{combined_prompt}\n{dev_addendum}"
|
|
5031
|
+
|
|
4980
5032
|
if args.quiet or args.format == "json":
|
|
4981
5033
|
cmd = [
|
|
4982
5034
|
"claude",
|
htmlgraph/hooks/context.py
CHANGED
|
@@ -121,9 +121,10 @@ class HookContext:
|
|
|
121
121
|
or os.environ.get("CLAUDE_SESSION_ID")
|
|
122
122
|
)
|
|
123
123
|
|
|
124
|
-
# Fallback: Query database for most recent
|
|
124
|
+
# Fallback: Query database for session with most recent UserQuery event
|
|
125
125
|
# This solves the issue where PostToolUse hooks don't receive session_id
|
|
126
|
-
# in hook_input
|
|
126
|
+
# in hook_input. UserPromptSubmit hooks DO receive it and create UserQuery
|
|
127
|
+
# events with the correct session_id, so we use that as the source of truth.
|
|
127
128
|
if not session_id:
|
|
128
129
|
db_path = graph_dir / "htmlgraph.db"
|
|
129
130
|
if db_path.exists():
|
|
@@ -133,9 +134,9 @@ class HookContext:
|
|
|
133
134
|
conn = sqlite3.connect(str(db_path), timeout=1.0)
|
|
134
135
|
cursor = conn.cursor()
|
|
135
136
|
cursor.execute("""
|
|
136
|
-
SELECT session_id FROM
|
|
137
|
-
WHERE
|
|
138
|
-
ORDER BY
|
|
137
|
+
SELECT session_id FROM agent_events
|
|
138
|
+
WHERE tool_name = 'UserQuery'
|
|
139
|
+
ORDER BY timestamp DESC
|
|
139
140
|
LIMIT 1
|
|
140
141
|
""")
|
|
141
142
|
row = cursor.fetchone()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: htmlgraph
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.4
|
|
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,11 +1,11 @@
|
|
|
1
|
-
htmlgraph/__init__.py,sha256=
|
|
1
|
+
htmlgraph/__init__.py,sha256=h9uelDCHKeohN_sFsqoIGi2NON0c_yL9W_WUlXNnslY,5717
|
|
2
2
|
htmlgraph/agent_detection.py,sha256=wEmrDv4hssPX2OkEnJZBHPbalxcaloiJF_hOOow_5WE,3511
|
|
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=6jMIHFslnXdzMuq2V2Z0GeBSesyJX7WTjZ3jTAt_3ns,32792
|
|
6
6
|
htmlgraph/atomic_ops.py,sha256=f0ULZoJThfC-A8xORvRv5OuFuhEnnH7uJrZslnZwmuw,18781
|
|
7
7
|
htmlgraph/attribute_index.py,sha256=cBZUV4YfGnhh6lF59aYPCdNrRr1hK__BzSKCueSDUhQ,6593
|
|
8
|
-
htmlgraph/cli.py,sha256=
|
|
8
|
+
htmlgraph/cli.py,sha256=kxPICoLDd9kNSgPPQt8nJWL4Rzr_C78zcTuqSKDyxT4,255059
|
|
9
9
|
htmlgraph/cli_framework.py,sha256=YfAjTGIECmv_uNpkenYyc9_iKd3jXIG5OstEKpIGWJM,3551
|
|
10
10
|
htmlgraph/config.py,sha256=dhOSfMfZCT-APe_uAvqABWyQ0nEhL6F0NS-15KLPZNg,6888
|
|
11
11
|
htmlgraph/context_analytics.py,sha256=CaLu0o2uSr6rlBM5YeaFZe7grgsy7_Hx10qdXuNcdao,11344
|
|
@@ -169,7 +169,7 @@ htmlgraph/hooks/__init__.py,sha256=FxVdnSYMNTjaKyOJ-euvyq9qYy5LZvGH5eIRqw0SpyQ,1
|
|
|
169
169
|
htmlgraph/hooks/bootstrap.py,sha256=IiahOTOZolhIHF-yDfolmfT2kR5_EH_E9A7BBFKy2lI,5194
|
|
170
170
|
htmlgraph/hooks/cigs_pretool_enforcer.py,sha256=Lyp4DDaw_sVHEcW-kzdegldyfXjvVD25zRGamq0v-sU,12722
|
|
171
171
|
htmlgraph/hooks/concurrent_sessions.py,sha256=qOiwDfynphVG0-2pVBakEzOwMORU8ebN1gMjcN4S0z0,6476
|
|
172
|
-
htmlgraph/hooks/context.py,sha256=
|
|
172
|
+
htmlgraph/hooks/context.py,sha256=tJ4dIL8uTFHyqyuuMc-ETDuOikeD5cN3Mdjmfg6W0HE,13108
|
|
173
173
|
htmlgraph/hooks/drift_handler.py,sha256=QckL5U5ooku51kI6mppGLsXzaKVt1Yx5uNu-iXZrgSk,17602
|
|
174
174
|
htmlgraph/hooks/event_tracker.py,sha256=HhgIc2664ZeZM6YSB_0Ybp3fsEEFcKAUa7nTff1dQV0,40114
|
|
175
175
|
htmlgraph/hooks/hooks-config.example.json,sha256=tXpk-U-FZzGOoNJK2uiDMbIHCYEHA794J-El0fBwkqg,197
|
|
@@ -215,12 +215,12 @@ htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4be
|
|
|
215
215
|
htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
|
|
216
216
|
htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
|
|
217
217
|
htmlgraph/templates/orchestration-view.html,sha256=DlS7LlcjH0oO_KYILjuF1X42t8QhKLH4F85rkO54alY,10472
|
|
218
|
-
htmlgraph-0.26.
|
|
219
|
-
htmlgraph-0.26.
|
|
220
|
-
htmlgraph-0.26.
|
|
221
|
-
htmlgraph-0.26.
|
|
222
|
-
htmlgraph-0.26.
|
|
223
|
-
htmlgraph-0.26.
|
|
224
|
-
htmlgraph-0.26.
|
|
225
|
-
htmlgraph-0.26.
|
|
226
|
-
htmlgraph-0.26.
|
|
218
|
+
htmlgraph-0.26.4.data/data/htmlgraph/dashboard.html,sha256=Y0w6qoXEPVmWETxi-_GwBNiWlCMP1Ur0OD5EL5uH7P4,30027
|
|
219
|
+
htmlgraph-0.26.4.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
|
|
220
|
+
htmlgraph-0.26.4.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
|
|
221
|
+
htmlgraph-0.26.4.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
|
|
222
|
+
htmlgraph-0.26.4.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
|
|
223
|
+
htmlgraph-0.26.4.dist-info/METADATA,sha256=6k8OvC_AwpcVuqQpTUSxY3FC_s5_KBTWJ5PsNgmhYqU,10236
|
|
224
|
+
htmlgraph-0.26.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
225
|
+
htmlgraph-0.26.4.dist-info/entry_points.txt,sha256=EaUbjA_bbDwEO_XDLEGMeK8aQP-ZnHiUTkLshyKDyB8,98
|
|
226
|
+
htmlgraph-0.26.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|