markdown-flow 0.3.2.dev1__tar.gz → 0.3.3__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 (40) hide show
  1. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/PKG-INFO +1 -1
  2. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/__init__.py +1 -1
  3. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/escaping.py +22 -2
  4. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow.egg-info/PKG-INFO +1 -1
  5. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/LICENSE +0 -0
  6. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/README.md +0 -0
  7. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/constants.py +0 -0
  8. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/constants_system_prompt.py +0 -0
  9. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/core.py +0 -0
  10. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/enums.py +0 -0
  11. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/exceptions.py +0 -0
  12. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/__init__.py +0 -0
  13. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/classifier.py +0 -0
  14. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/format.py +0 -0
  15. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/patterns.py +0 -0
  16. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/sanitize.py +0 -0
  17. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/stream.py +0 -0
  18. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/formatter/types.py +0 -0
  19. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/higher_priority_prompt.md +0 -0
  20. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/llm.py +0 -0
  21. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/models.py +0 -0
  22. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/__init__.py +0 -0
  23. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/code_fence_utils.py +0 -0
  24. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/html_comment_utils.py +0 -0
  25. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/interaction.py +0 -0
  26. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/json_parser.py +0 -0
  27. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/output.py +0 -0
  28. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/preprocessor.py +0 -0
  29. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/validation.py +0 -0
  30. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/parser/variable.py +0 -0
  31. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/providers/__init__.py +0 -0
  32. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/providers/config.py +0 -0
  33. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/providers/openai.py +0 -0
  34. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/system_prompt.md +0 -0
  35. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow/tag_filter.py +0 -0
  36. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow.egg-info/SOURCES.txt +0 -0
  37. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow.egg-info/dependency_links.txt +0 -0
  38. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/markdown_flow.egg-info/top_level.txt +0 -0
  39. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/pyproject.toml +0 -0
  40. {markdown_flow-0.3.2.dev1 → markdown_flow-0.3.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-flow
3
- Version: 0.3.2.dev1
3
+ Version: 0.3.3
4
4
  Summary: An agent library designed to parse and process MarkdownFlow documents
5
5
  Project-URL: Homepage, https://github.com/ai-shifu/markdown-flow-agent-py
6
6
  Project-URL: Bug Tracker, https://github.com/ai-shifu/markdown-flow-agent-py/issues
@@ -106,4 +106,4 @@ __all__ = [
106
106
  "replace_variables_in_text",
107
107
  ]
108
108
 
109
- __version__ = "0.3.2.dev1"
109
+ __version__ = "0.3.3"
@@ -30,14 +30,34 @@ def is_escape(text: str, index: int) -> bool:
30
30
  def escape_interaction_text(text: str) -> str:
31
31
  """Make `text` safe to write inside `?[...]`, keeping every character it has.
32
32
 
33
- Escaping each delimiter rather than the backslashes as well is what keeps existing content
33
+ A dot is escaped only inside a run of three or more, because only `...` is a delimiter and a
34
+ single period ends most sentences: escaping every one turns `Yes, I agree.` into
35
+ `Yes, I agree\\.` in everything that stores or shows the raw interaction. Two dots cannot
36
+ become three on their own, and the run is escaped whole so it cannot be read as one.
37
+
38
+ Bars, brackets and slashes are escaped wherever they appear. They are rare in option text,
39
+ and escaping them unconditionally removes the need to reason about what a neighbouring
40
+ character might combine with once the option is written next to a separator.
41
+
42
+ Escaping the delimiters rather than the backslashes as well is what keeps existing content
34
43
  readable: a script that writes `$\\pi$` in an option still writes `$\\pi$` afterwards.
35
44
  """
36
45
  out: list[str] = []
37
- for char in text:
46
+ index = 0
47
+ while index < len(text):
48
+ char = text[index]
49
+ if char == ".":
50
+ run = len(text) - index - len(text[index:].lstrip("."))
51
+ if run >= 3:
52
+ out.append("\\." * run)
53
+ else:
54
+ out.append("." * run)
55
+ index += run
56
+ continue
38
57
  if char in ESCAPABLE:
39
58
  out.append("\\")
40
59
  out.append(char)
60
+ index += 1
41
61
  return "".join(out)
42
62
 
43
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-flow
3
- Version: 0.3.2.dev1
3
+ Version: 0.3.3
4
4
  Summary: An agent library designed to parse and process MarkdownFlow documents
5
5
  Project-URL: Homepage, https://github.com/ai-shifu/markdown-flow-agent-py
6
6
  Project-URL: Bug Tracker, https://github.com/ai-shifu/markdown-flow-agent-py/issues