htmlgraph 0.20.5__py3-none-any.whl → 0.20.7__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
@@ -84,7 +84,7 @@ from htmlgraph.types import (
84
84
  )
85
85
  from htmlgraph.work_type_utils import infer_work_type, infer_work_type_from_id
86
86
 
87
- __version__ = "0.20.5"
87
+ __version__ = "0.20.7"
88
88
  __all__ = [
89
89
  # Exceptions
90
90
  "HtmlGraphError",
htmlgraph/converter.py CHANGED
@@ -12,7 +12,16 @@ import logging
12
12
  from pathlib import Path
13
13
  from typing import Any, cast
14
14
 
15
- from htmlgraph.models import ActivityEntry, Chore, Edge, Node, Session, Spike, Step
15
+ from htmlgraph.models import (
16
+ ActivityEntry,
17
+ Chore,
18
+ Edge,
19
+ Node,
20
+ Pattern,
21
+ Session,
22
+ Spike,
23
+ Step,
24
+ )
16
25
  from htmlgraph.parser import HtmlParser
17
26
 
18
27
  logger = logging.getLogger(__name__)
@@ -74,6 +83,7 @@ def html_to_node(filepath: Path | str) -> Node:
74
83
  model_classes: dict[str, type[Node]] = {
75
84
  "spike": Spike,
76
85
  "chore": Chore,
86
+ "pattern": Pattern,
77
87
  "node": Node,
78
88
  }
79
89
 
htmlgraph/learning.py CHANGED
@@ -329,17 +329,17 @@ class LearningPersistence:
329
329
  if is_parallel:
330
330
  # Parallel Task delegation is optimal (orchestrator pattern)
331
331
  if all(tool == "Task" for tool in sequence) and len(sequence) >= 2:
332
- return "orchestrator-optimal"
332
+ return "optimal"
333
333
  # Mixed parallel operations can also be optimal
334
334
  if "Task" in sequence:
335
- return "orchestrator-optimal"
335
+ return "optimal"
336
336
  # Other parallel patterns are neutral
337
337
  return "neutral"
338
338
 
339
339
  # Sequential anti-patterns for orchestrators
340
340
  # Multiple sequential Tasks without parallelism is an anti-pattern
341
341
  if seq == ("Task", "Task", "Task"):
342
- return "orchestrator-anti-pattern"
342
+ return "anti-pattern"
343
343
 
344
344
  # Known optimal patterns (sequential)
345
345
  optimal = [
htmlgraph/parser.py CHANGED
@@ -152,6 +152,17 @@ class HtmlParser:
152
152
  if auto_generated:
153
153
  metadata["auto_generated"] = auto_generated.lower() == "true"
154
154
 
155
+ # Pattern sequence (for pattern nodes)
156
+ sequence_attr = self.get_data_attribute(article, "sequence")
157
+ if sequence_attr:
158
+ try:
159
+ import json
160
+
161
+ metadata["sequence"] = json.loads(sequence_attr)
162
+ except (json.JSONDecodeError, ValueError):
163
+ # Invalid JSON, skip
164
+ pass
165
+
155
166
  # Timestamps (with fallbacks for session-specific attributes)
156
167
  claimed_at = self.get_data_attribute(article, "claimed-at")
157
168
  if claimed_at:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgraph
3
- Version: 0.20.5
3
+ Version: 0.20.7
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=ATwygmKV2sI3tGwJ6kcEGLk3Ehj7NKsJqv6nmqj5vnA,4979
1
+ htmlgraph/__init__.py,sha256=T1eLRdZgVxdR54Gb1Hv-PQ1Cosmokge9XuknkN_7W0g,4979
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
@@ -6,7 +6,7 @@ htmlgraph/analytics_index.py,sha256=ba6Y4H_NNOCxI_Z4U7wSgBFFairf4IJT74WcM1PoZuI,
6
6
  htmlgraph/attribute_index.py,sha256=cBZUV4YfGnhh6lF59aYPCdNrRr1hK__BzSKCueSDUhQ,6593
7
7
  htmlgraph/cli.py,sha256=wYoCjciu1cHqwZe84u2TgO7lS_YyTs4yX5ipLLUqUfo,173218
8
8
  htmlgraph/context_analytics.py,sha256=CaLu0o2uSr6rlBM5YeaFZe7grgsy7_Hx10qdXuNcdao,11344
9
- htmlgraph/converter.py,sha256=SHS_7F6DHCPhmpZcLl3wN2LgGGP4XWApZ9TkW-u5m_c,20556
9
+ htmlgraph/converter.py,sha256=Yeg31k2tiVlQLVndGIBxQT21YvepDIDIuswZRicYR10,20630
10
10
  htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
11
11
  htmlgraph/dependency_models.py,sha256=eKpBz9y_pTE5E8baESqHyGUDj5-uXokVd2Bx3ZogAyM,4313
12
12
  htmlgraph/deploy.py,sha256=kM_IMa3PmKpQf4YVH57aL9uV5IfpVJgaj-IFsgAKIbY,17771
@@ -21,7 +21,7 @@ htmlgraph/git_events.py,sha256=62lmhGc7W1KGXAcW_Efpd_v2nIuUl0a4Ggpf73RyRmY,20271
21
21
  htmlgraph/graph.py,sha256=XhPuUYwhrCFVBEijjOdcHjjMEUlduba39CyzZ9dJ6X0,68187
22
22
  htmlgraph/ids.py,sha256=ibEC8xW1ZHbAW6ImOKP2wLARgW7nzkxu8voce_hkljk,8389
23
23
  htmlgraph/index.d.ts,sha256=7dvExfA16g1z5Kut8xyHnSUfZ6wiUUwWNy6R7WKiwas,6922
24
- htmlgraph/learning.py,sha256=UhYPKfFeB9ijrAlkQj6OX7ULLWPNd0_5hfZXLPuXgYw,27904
24
+ htmlgraph/learning.py,sha256=Esgxovf7dVtubqswJ0T_sdLzcVN49yF8gCJ1AuHgHSg,27865
25
25
  htmlgraph/mcp_server.py,sha256=AeJeGJEtX5Dqu5rfhKfT5kwF2Oe8V8xCaP8BgMEh86s,24033
26
26
  htmlgraph/models.py,sha256=yz5GrSRvQCC2Qy2ozOOfNm5Tw6mXaXZaACkajSjJnqg,79911
27
27
  htmlgraph/orchestration.py,sha256=7_oQ4AlHOv14hs6RvLsatJzF-F5gkIbv1EOrmeGPhiw,9699
@@ -29,7 +29,7 @@ htmlgraph/orchestrator.py,sha256=6mj70vroWjmNmdvQ7jqqRSA9O1rFUNMUYDWPzqkizLk,196
29
29
  htmlgraph/orchestrator_mode.py,sha256=F6LNZARqieQXUri3CRSq_lsqFbnVeGXJQPno1ZP47O4,9187
30
30
  htmlgraph/orchestrator_validator.py,sha256=gd_KbHsRsNEIF7EElwcxbMYqOMlyeuYIZwClASp-L-E,4699
31
31
  htmlgraph/parallel.py,sha256=BsyqGKWY_DkSRElBdvvAkWlL6stC9BPkyxjdPdggx_w,22418
32
- htmlgraph/parser.py,sha256=JM2cSxEK_2shf_cW7otLToD-83jtEakX2_B4VUfqLGU,13567
32
+ htmlgraph/parser.py,sha256=w5JIYvS8XmUGGsp-YC2ZWAJANS6hvQtvBxOYy9mL-Rs,13934
33
33
  htmlgraph/planning.py,sha256=iqPF9mCVQwOfJ4vuqcF2Y3-yhx9koJZw0cID7CknIug,35903
34
34
  htmlgraph/query_builder.py,sha256=aNtJ05GpGl9yUSSrX0D6pX_AgqlrrH-CulI_oP11PUk,18092
35
35
  htmlgraph/routing.py,sha256=QYDY6bzYPmv6kocAXCqguB1cazN0i_xTo9EVCO3fO2Y,8803
@@ -107,12 +107,12 @@ htmlgraph/services/claiming.py,sha256=HcrltEJKN72mxuD7fGuXWeh1U0vwhjMvhZcFc02Eiy
107
107
  htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
108
108
  htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
109
109
  htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
110
- htmlgraph-0.20.5.data/data/htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
111
- htmlgraph-0.20.5.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
112
- htmlgraph-0.20.5.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
113
- htmlgraph-0.20.5.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
114
- htmlgraph-0.20.5.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
115
- htmlgraph-0.20.5.dist-info/METADATA,sha256=SKM5XHzZpHhf1VgcVpR1mK6SPf_lYeIccb3MUlcOGJw,7645
116
- htmlgraph-0.20.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
117
- htmlgraph-0.20.5.dist-info/entry_points.txt,sha256=EaUbjA_bbDwEO_XDLEGMeK8aQP-ZnHiUTkLshyKDyB8,98
118
- htmlgraph-0.20.5.dist-info/RECORD,,
110
+ htmlgraph-0.20.7.data/data/htmlgraph/dashboard.html,sha256=rkZYjSnPbUuAm35QMpCNWemenYqQTdkkumCX2hhe8Dc,173537
111
+ htmlgraph-0.20.7.data/data/htmlgraph/styles.css,sha256=oDUSC8jG-V-hKojOBO9J88hxAeY2wJrBYTq0uCwX_Y4,7135
112
+ htmlgraph-0.20.7.data/data/htmlgraph/templates/AGENTS.md.template,sha256=f96h7V6ygwj-v-fanVI48eYMxR6t_se4bet1H4ZsDpI,7642
113
+ htmlgraph-0.20.7.data/data/htmlgraph/templates/CLAUDE.md.template,sha256=h1kG2hTX2XYig2KszsHBfzrwa_4Cfcq2Pj4SwqzeDlM,1984
114
+ htmlgraph-0.20.7.data/data/htmlgraph/templates/GEMINI.md.template,sha256=gAGzE53Avki87BM_otqy5HdcYCoLsHgqaKjVzNzPMX8,1622
115
+ htmlgraph-0.20.7.dist-info/METADATA,sha256=sCAQdCRCoOFbSfjp8w5o7i3sBLLzVbQEkSzMeUjJXmY,7645
116
+ htmlgraph-0.20.7.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
117
+ htmlgraph-0.20.7.dist-info/entry_points.txt,sha256=EaUbjA_bbDwEO_XDLEGMeK8aQP-ZnHiUTkLshyKDyB8,98
118
+ htmlgraph-0.20.7.dist-info/RECORD,,