htmlgraph 0.28.6__py3-none-any.whl → 0.28.8__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/api/main.py +4 -4
- htmlgraph/hooks/event_tracker.py +30 -25
- {htmlgraph-0.28.6.dist-info → htmlgraph-0.28.8.dist-info}/METADATA +1 -1
- {htmlgraph-0.28.6.dist-info → htmlgraph-0.28.8.dist-info}/RECORD +11 -11
- {htmlgraph-0.28.6.data → htmlgraph-0.28.8.data}/data/htmlgraph/styles.css +0 -0
- {htmlgraph-0.28.6.data → htmlgraph-0.28.8.data}/data/htmlgraph/templates/AGENTS.md.template +0 -0
- {htmlgraph-0.28.6.data → htmlgraph-0.28.8.data}/data/htmlgraph/templates/CLAUDE.md.template +0 -0
- {htmlgraph-0.28.6.data → htmlgraph-0.28.8.data}/data/htmlgraph/templates/GEMINI.md.template +0 -0
- {htmlgraph-0.28.6.dist-info → htmlgraph-0.28.8.dist-info}/WHEEL +0 -0
- {htmlgraph-0.28.6.dist-info → htmlgraph-0.28.8.dist-info}/entry_points.txt +0 -0
htmlgraph/__init__.py
CHANGED
htmlgraph/api/main.py
CHANGED
|
@@ -719,7 +719,7 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
719
719
|
SELECT event_id, agent_id, event_type, timestamp, status
|
|
720
720
|
FROM agent_events
|
|
721
721
|
WHERE parent_event_id = ?
|
|
722
|
-
ORDER BY timestamp
|
|
722
|
+
ORDER BY timestamp DESC
|
|
723
723
|
"""
|
|
724
724
|
async with db.execute(child_query, (parent_event_id,)) as child_cursor:
|
|
725
725
|
child_rows = await child_cursor.fetchall()
|
|
@@ -1116,7 +1116,7 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
1116
1116
|
feature_id
|
|
1117
1117
|
FROM agent_events
|
|
1118
1118
|
WHERE parent_event_id = ?
|
|
1119
|
-
ORDER BY timestamp
|
|
1119
|
+
ORDER BY timestamp DESC
|
|
1120
1120
|
"""
|
|
1121
1121
|
|
|
1122
1122
|
# Recursive helper to fetch children at any depth
|
|
@@ -2302,7 +2302,7 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
2302
2302
|
cost_tokens
|
|
2303
2303
|
FROM agent_events
|
|
2304
2304
|
WHERE timestamp >= ? AND timestamp < datetime('now')
|
|
2305
|
-
ORDER BY timestamp
|
|
2305
|
+
ORDER BY timestamp DESC
|
|
2306
2306
|
LIMIT 1000
|
|
2307
2307
|
"""
|
|
2308
2308
|
cursor = await db.execute(historical_query, [last_timestamp])
|
|
@@ -2369,7 +2369,7 @@ def get_app(db_path: str) -> FastAPI:
|
|
|
2369
2369
|
cost_tokens
|
|
2370
2370
|
FROM agent_events
|
|
2371
2371
|
WHERE timestamp > ?
|
|
2372
|
-
ORDER BY timestamp
|
|
2372
|
+
ORDER BY timestamp DESC
|
|
2373
2373
|
LIMIT 100
|
|
2374
2374
|
"""
|
|
2375
2375
|
|
htmlgraph/hooks/event_tracker.py
CHANGED
|
@@ -491,51 +491,56 @@ def extract_file_paths(tool_input: dict[str, Any], tool_name: str) -> list[str]:
|
|
|
491
491
|
def format_tool_summary(
|
|
492
492
|
tool_name: str, tool_input: dict[str, Any], tool_result: dict | None = None
|
|
493
493
|
) -> str:
|
|
494
|
-
"""
|
|
494
|
+
"""
|
|
495
|
+
Format a human-readable summary of the tool call.
|
|
496
|
+
|
|
497
|
+
Returns only the description part (without tool name prefix) since tool_name
|
|
498
|
+
is stored as a separate field in the database. Frontend can format as needed.
|
|
499
|
+
"""
|
|
495
500
|
if tool_name == "Read":
|
|
496
|
-
path = tool_input.get("file_path", "unknown")
|
|
497
|
-
return
|
|
501
|
+
path = str(tool_input.get("file_path", "unknown"))
|
|
502
|
+
return path
|
|
498
503
|
|
|
499
504
|
elif tool_name == "Write":
|
|
500
|
-
path = tool_input.get("file_path", "unknown")
|
|
501
|
-
return
|
|
505
|
+
path = str(tool_input.get("file_path", "unknown"))
|
|
506
|
+
return path
|
|
502
507
|
|
|
503
508
|
elif tool_name == "Edit":
|
|
504
|
-
path = tool_input.get("file_path", "unknown")
|
|
505
|
-
old = tool_input.get("old_string", "")[:30]
|
|
506
|
-
return f"
|
|
509
|
+
path = str(tool_input.get("file_path", "unknown"))
|
|
510
|
+
old = str(tool_input.get("old_string", ""))[:30]
|
|
511
|
+
return f"{path} ({old}...)"
|
|
507
512
|
|
|
508
513
|
elif tool_name == "Bash":
|
|
509
|
-
cmd = tool_input.get("command", "")[:60]
|
|
510
|
-
desc = tool_input.get("description", "")
|
|
514
|
+
cmd = str(tool_input.get("command", ""))[:60]
|
|
515
|
+
desc = str(tool_input.get("description", ""))
|
|
511
516
|
if desc:
|
|
512
|
-
return
|
|
513
|
-
return
|
|
517
|
+
return desc
|
|
518
|
+
return cmd
|
|
514
519
|
|
|
515
520
|
elif tool_name == "Glob":
|
|
516
|
-
pattern = tool_input.get("pattern", "")
|
|
517
|
-
return
|
|
521
|
+
pattern = str(tool_input.get("pattern", ""))
|
|
522
|
+
return pattern
|
|
518
523
|
|
|
519
524
|
elif tool_name == "Grep":
|
|
520
|
-
pattern = tool_input.get("pattern", "")
|
|
521
|
-
return
|
|
525
|
+
pattern = str(tool_input.get("pattern", ""))
|
|
526
|
+
return pattern
|
|
522
527
|
|
|
523
528
|
elif tool_name == "Task":
|
|
524
|
-
desc = tool_input.get("description", "")[:50]
|
|
525
|
-
agent = tool_input.get("subagent_type", "")
|
|
526
|
-
return f"
|
|
529
|
+
desc = str(tool_input.get("description", ""))[:50]
|
|
530
|
+
agent = str(tool_input.get("subagent_type", ""))
|
|
531
|
+
return f"({agent}): {desc}"
|
|
527
532
|
|
|
528
533
|
elif tool_name == "TodoWrite":
|
|
529
534
|
todos = tool_input.get("todos", [])
|
|
530
|
-
return f"
|
|
535
|
+
return f"{len(todos)} items"
|
|
531
536
|
|
|
532
537
|
elif tool_name == "WebSearch":
|
|
533
|
-
query = tool_input.get("query", "")[:40]
|
|
534
|
-
return
|
|
538
|
+
query = str(tool_input.get("query", ""))[:40]
|
|
539
|
+
return query
|
|
535
540
|
|
|
536
541
|
elif tool_name == "WebFetch":
|
|
537
|
-
url = tool_input.get("url", "")[:40]
|
|
538
|
-
return
|
|
542
|
+
url = str(tool_input.get("url", ""))[:40]
|
|
543
|
+
return url
|
|
539
544
|
|
|
540
545
|
elif tool_name == "UserQuery":
|
|
541
546
|
# Extract the actual prompt text from the tool_input
|
|
@@ -546,7 +551,7 @@ def format_tool_summary(
|
|
|
546
551
|
return preview
|
|
547
552
|
|
|
548
553
|
else:
|
|
549
|
-
return
|
|
554
|
+
return str(tool_input)[:50]
|
|
550
555
|
|
|
551
556
|
|
|
552
557
|
def record_event_to_sqlite(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: htmlgraph
|
|
3
|
-
Version: 0.28.
|
|
3
|
+
Version: 0.28.8
|
|
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,4 +1,4 @@
|
|
|
1
|
-
htmlgraph/__init__.py,sha256=
|
|
1
|
+
htmlgraph/__init__.py,sha256=V0B14PG5igDUlgy7oLF90EXzfPf_B_HXmrqo4YnB9qU,6595
|
|
2
2
|
htmlgraph/__init__.pyi,sha256=8JuFVuDll9jMx9s8ZQHt2tXic-geOJHiXUMB2YjmHhU,6683
|
|
3
3
|
htmlgraph/agent_detection.py,sha256=wEmrDv4hssPX2OkEnJZBHPbalxcaloiJF_hOOow_5WE,3511
|
|
4
4
|
htmlgraph/agent_registry.py,sha256=80TPYr4P0YMizPUbTH4N5wH6D84IKs-HPBLHGeeP6bY,9449
|
|
@@ -97,7 +97,7 @@ htmlgraph/api/broadcast.py,sha256=G2vsgbUFOeahy8l1GJwu5X2yBJAID02lgNXxyDMexx0,90
|
|
|
97
97
|
htmlgraph/api/broadcast_routes.py,sha256=OJQaUx6_izB_TlyL5N7tzTx3nD9sFs3RUhehlRtl_3k,11376
|
|
98
98
|
htmlgraph/api/broadcast_websocket.py,sha256=ZTHmLsYCExaCkHiDD7LNKQaAjaTQadNoO4OZOrGsU3Q,3822
|
|
99
99
|
htmlgraph/api/cost_alerts_websocket.py,sha256=jmPJ0kO7PKXYe-MwN0rReQ6ACa6E--p9DaMCqDDs3IE,14478
|
|
100
|
-
htmlgraph/api/main.py,sha256=
|
|
100
|
+
htmlgraph/api/main.py,sha256=zYDj36inj9nl66WVYmdyKARXH0N_Ruynup23nCudVEM,103442
|
|
101
101
|
htmlgraph/api/offline.py,sha256=u6RbmeoDPvPsFJYsTNhFZ6yoNE0bgYXFzUi2g2pmeYU,25881
|
|
102
102
|
htmlgraph/api/presence.py,sha256=eF7j5yp7lgO9tF0_VMdE0zeWrUYIAYhgOUHSKe8dr70,14246
|
|
103
103
|
htmlgraph/api/reactive.py,sha256=WW8bBCiu9RBCgNeKE-fohvklJNBnvWj_zdllPkZun2M,14941
|
|
@@ -226,7 +226,7 @@ htmlgraph/hooks/cigs_pretool_enforcer.py,sha256=LC5y5IrKdTx2aq5ht5U7Tceq0k63-7EI
|
|
|
226
226
|
htmlgraph/hooks/concurrent_sessions.py,sha256=qOiwDfynphVG0-2pVBakEzOwMORU8ebN1gMjcN4S0z0,6476
|
|
227
227
|
htmlgraph/hooks/context.py,sha256=tJ4dIL8uTFHyqyuuMc-ETDuOikeD5cN3Mdjmfg6W0HE,13108
|
|
228
228
|
htmlgraph/hooks/drift_handler.py,sha256=UchkeVmjgI6J4NE4vKNTHsY6ZorvUHvp1FOfwTEY-Cs,17626
|
|
229
|
-
htmlgraph/hooks/event_tracker.py,sha256=
|
|
229
|
+
htmlgraph/hooks/event_tracker.py,sha256=Q_K6t670XvgoLSQuZPnafKyOCAMxYpOJfrO7Ba2h97c,54425
|
|
230
230
|
htmlgraph/hooks/git_commands.py,sha256=NPzthfzGJ_bkDi7soehHOxI9FLL-6BL8Tie9Byb_zf4,4803
|
|
231
231
|
htmlgraph/hooks/hooks-config.example.json,sha256=tXpk-U-FZzGOoNJK2uiDMbIHCYEHA794J-El0fBwkqg,197
|
|
232
232
|
htmlgraph/hooks/installer.py,sha256=NdZHOER7DHFyZYXiZIS-CgLt1ZUxJ4O4ju8HcPjJajs,11816
|
|
@@ -341,11 +341,11 @@ htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4be
|
|
|
341
341
|
htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
|
|
342
342
|
htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
|
|
343
343
|
htmlgraph/templates/orchestration-view.html,sha256=DlS7LlcjH0oO_KYILjuF1X42t8QhKLH4F85rkO54alY,10472
|
|
344
|
-
htmlgraph-0.28.
|
|
345
|
-
htmlgraph-0.28.
|
|
346
|
-
htmlgraph-0.28.
|
|
347
|
-
htmlgraph-0.28.
|
|
348
|
-
htmlgraph-0.28.
|
|
349
|
-
htmlgraph-0.28.
|
|
350
|
-
htmlgraph-0.28.
|
|
351
|
-
htmlgraph-0.28.
|
|
344
|
+
htmlgraph-0.28.8.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
|
|
345
|
+
htmlgraph-0.28.8.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
|
|
346
|
+
htmlgraph-0.28.8.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
|
|
347
|
+
htmlgraph-0.28.8.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
|
|
348
|
+
htmlgraph-0.28.8.dist-info/METADATA,sha256=IPfCuODE1MboouvO5Y9AnXPSOaYrpjAC4zyKtOIACn0,10220
|
|
349
|
+
htmlgraph-0.28.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
350
|
+
htmlgraph-0.28.8.dist-info/entry_points.txt,sha256=Wmdo5cx8pt6NoMsssVE2mZH1CZLSUsrg_3iSWatiyn0,103
|
|
351
|
+
htmlgraph-0.28.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|