brain-framework 20.0.1__tar.gz → 20.0.2__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 (73) hide show
  1. {brain_framework-20.0.1 → brain_framework-20.0.2}/PKG-INFO +1 -1
  2. {brain_framework-20.0.1 → brain_framework-20.0.2}/pyproject.toml +12 -1
  3. {brain_framework-20.0.1 → brain_framework-20.0.2}/pyproject.toml.orig +14 -1
  4. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/__init__.py +1 -1
  5. {brain_framework-20.0.1 → brain_framework-20.0.2}/LICENSE +0 -0
  6. {brain_framework-20.0.1 → brain_framework-20.0.2}/README.md +0 -0
  7. {brain_framework-20.0.1 → brain_framework-20.0.2}/THIRD_PARTY_NOTICES.md +0 -0
  8. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/__main__.py +0 -0
  9. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/assistants.py +0 -0
  10. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/channels.py +0 -0
  11. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/cli.py +0 -0
  12. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/collect.py +0 -0
  13. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/config.py +0 -0
  14. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/evaluate.py +0 -0
  15. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/graph.py +0 -0
  16. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/health.py +0 -0
  17. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/history.py +0 -0
  18. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/index.py +0 -0
  19. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/install.py +0 -0
  20. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/links.py +0 -0
  21. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/markdown.py +0 -0
  22. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/mcp.py +0 -0
  23. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/messages.py +0 -0
  24. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/models.py +0 -0
  25. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/ontology.py +0 -0
  26. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/pages.py +0 -0
  27. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/py.typed +0 -0
  28. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/records.py +0 -0
  29. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/replies.py +0 -0
  30. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/retrieve.py +0 -0
  31. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/runtime.py +0 -0
  32. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/schemas.py +0 -0
  33. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/README.md +0 -0
  34. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/SKILL.md +0 -0
  35. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/references/actions.md +0 -0
  36. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/references/context.md +0 -0
  37. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/references/handoff.md +0 -0
  38. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/scripts/check-handoff.py +0 -0
  39. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/scripts/new-action.py +0 -0
  40. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-action/templates/action.md +0 -0
  41. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-maintain/SKILL.md +0 -0
  42. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-maintain/references/conflicts.md +0 -0
  43. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-maintain/references/integrations.md +0 -0
  44. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-maintain/references/operations.md +0 -0
  45. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-setup/SKILL.md +0 -0
  46. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-setup/references/discovery.md +0 -0
  47. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-setup/references/import.md +0 -0
  48. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-setup/references/scan.md +0 -0
  49. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-setup/scripts/inventory.py +0 -0
  50. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/SKILL.md +0 -0
  51. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/consolidate.md +0 -0
  52. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/decisions.md +0 -0
  53. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/evidence.md +0 -0
  54. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/learn.md +0 -0
  55. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/links.md +0 -0
  56. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/retrieval.md +0 -0
  57. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/review.md +0 -0
  58. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/references/share.md +0 -0
  59. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/scripts/evidence.py +0 -0
  60. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/scripts/guarded-write.py +0 -0
  61. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/templates/concept.md +0 -0
  62. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/skills/bf-use/templates/project.md +0 -0
  63. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/starter/AGENTS.md +0 -0
  64. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/starter/concepts/index.md +0 -0
  65. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/starter/concepts/welcome.md +0 -0
  66. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/starter/evals/retrieval.yaml +0 -0
  67. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/starter/gitignore +0 -0
  68. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/storage.py +0 -0
  69. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/update.py +0 -0
  70. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/usage.py +0 -0
  71. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/validate.py +0 -0
  72. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/watch.py +0 -0
  73. {brain_framework-20.0.1 → brain_framework-20.0.2}/src/bf/watch_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brain-framework
3
- Version: 20.0.1
3
+ Version: 20.0.2
4
4
  Summary: 🧠 Brain Framework: from information to informed actions.
5
5
  Keywords: ai,ai-agents,agent-memory,context-engineering,knowledge-management,local-first,mcp,model-context-protocol,python,second-brain
6
6
  Author: Médéric Hurier
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "brain-framework"
3
- version = "20.0.1"
3
+ version = "20.0.2"
4
4
  description = "🧠 Brain Framework: from information to informed actions."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14"
@@ -66,6 +66,7 @@ src = [
66
66
  "src",
67
67
  "tests",
68
68
  ]
69
+ extend-exclude = ["*.md"]
69
70
 
70
71
  [tool.ruff.per-file-target-version]
71
72
  "src/bf/skills/*/scripts/*.py" = "py311"
@@ -82,6 +83,7 @@ select = [
82
83
  "ARG",
83
84
  "ASYNC",
84
85
  "B",
86
+ "BLE",
85
87
  "C4",
86
88
  "E",
87
89
  "ERA",
@@ -95,6 +97,8 @@ select = [
95
97
  "PERF",
96
98
  "PGH",
97
99
  "PIE",
100
+ "PLE",
101
+ "PLW",
98
102
  "PT",
99
103
  "PTH",
100
104
  "Q",
@@ -113,19 +117,26 @@ select = [
113
117
  ignore = [
114
118
  "ASYNC240",
115
119
  "E501",
120
+ "PLW0108",
121
+ "PLW2901",
116
122
  ]
117
123
 
118
124
  [tool.ruff.lint.per-file-ignores]
125
+ "examples/hooks/**" = ["BLE001"]
119
126
  "examples/sensors/**" = [
120
127
  "S603",
121
128
  "S607",
122
129
  "T201",
123
130
  ]
124
131
  "tests/**" = [
132
+ "BLE001",
125
133
  "S101",
126
134
  "T201",
127
135
  ]
128
136
 
137
+ [tool.ty.rules]
138
+ blanket-ignore-comment = "error"
139
+
129
140
  [tool.pytest]
130
141
  addopts = ["-ra"]
131
142
  faulthandler_timeout = "300"
@@ -1,7 +1,7 @@
1
1
  # https://packaging.python.org/en/latest/specifications/pyproject-toml/
2
2
  [project]
3
3
  name = "brain-framework"
4
- version = "20.0.1"
4
+ version = "20.0.2"
5
5
  description = "🧠 Brain Framework: from information to informed actions."
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.14"
@@ -80,6 +80,7 @@ dev = [
80
80
  [tool.ruff]
81
81
  line-length = 120
82
82
  src = ["src", "tests"]
83
+ extend-exclude = ["*.md"] # dprint owns Markdown, including its Python code blocks.
83
84
  # Skill scripts and copied examples run with the host's python3, not the package interpreter.
84
85
  per-file-target-version = { "src/bf/skills/*/scripts/*.py" = "py311", "examples/**/*.py" = "py311" }
85
86
 
@@ -94,6 +95,7 @@ select = [
94
95
  "ARG", # Find unused function arguments.
95
96
  "ASYNC", # Catch async and cancellation mistakes.
96
97
  "B", # Catch likely bugs (flake8-bugbear).
98
+ "BLE", # Catch blind except clauses that swallow errors.
97
99
  "C4", # Simplify comprehensions.
98
100
  "E", # Enforce pycodestyle errors.
99
101
  "ERA", # Remove commented-out code.
@@ -107,6 +109,8 @@ select = [
107
109
  "PERF", # Avoid common performance pitfalls.
108
110
  "PGH", # Require specific lint and type-checker suppressions.
109
111
  "PIE", # Remove unnecessary code constructs.
112
+ "PLE", # Catch Pylint errors.
113
+ "PLW", # Catch Pylint warnings.
110
114
  "PT", # Keep pytest fixtures and assertions consistent.
111
115
  "PTH", # Prefer pathlib for filesystem operations.
112
116
  "Q", # Keep string quoting consistent.
@@ -125,19 +129,28 @@ select = [
125
129
  ignore = [
126
130
  "ASYNC240", # Brain Framework performs bounded local filesystem work from async MCP handlers.
127
131
  "E501", # Long CLI help and schema descriptions are clearer as one string.
132
+ "PLW0108", # Unnecessary-lambda is style outside Ruff's default set.
133
+ "PLW2901", # Deliberate loop-variable rebinding is outside Ruff's default set.
128
134
  ]
129
135
 
130
136
  [tool.ruff.lint.per-file-ignores]
137
+ "examples/hooks/**" = [
138
+ "BLE001", # Silent hooks must exit 0 with no output on any unexpected error.
139
+ ]
131
140
  "examples/sensors/**" = [
132
141
  "S603", # Adapters invoke provider CLIs with literal argv lists; no shell is involved.
133
142
  "S607", # Provider CLIs are resolved by bare name on the PATH Brain Framework sanitizes.
134
143
  "T201", # Adapters print exactly one JSON array to stdout.
135
144
  ]
136
145
  "tests/**" = [
146
+ "BLE001", # Worker-thread test helpers record any exception so the test thread can assert on it.
137
147
  "S101", # pytest assertions are the test contract.
138
148
  "T201", # Test diagnostics may use print.
139
149
  ]
140
150
 
151
+ [tool.ty.rules]
152
+ blanket-ignore-comment = "error" # Require `ty: ignore[<rule>]`; Ruff PGH003 checks only `type: ignore`.
153
+
141
154
  [tool.pytest]
142
155
  addopts = ["-ra"]
143
156
  # A test still running after 300 seconds dumps every thread's traceback and ends the run, long before CI's 30-minute job
@@ -2,7 +2,7 @@
2
2
 
3
3
  import os
4
4
 
5
- __version__ = "20.0.1"
5
+ __version__ = "20.0.2"
6
6
 
7
7
 
8
8
  def main() -> None: