flowjet 2.0.8__tar.gz → 2.0.9__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 (170) hide show
  1. {flowjet-2.0.8 → flowjet-2.0.9}/CHANGELOG.md +14 -0
  2. {flowjet-2.0.8 → flowjet-2.0.9}/PKG-INFO +1 -1
  3. {flowjet-2.0.8 → flowjet-2.0.9}/pyproject.toml +1 -1
  4. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/cli.py +5 -0
  5. flowjet-2.0.9/src/flowjet/core/_warnings.py +53 -0
  6. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/__main__.py +6 -0
  7. {flowjet-2.0.8 → flowjet-2.0.9}/.gitignore +0 -0
  8. {flowjet-2.0.8 → flowjet-2.0.9}/LICENSE +0 -0
  9. {flowjet-2.0.8 → flowjet-2.0.9}/README.md +0 -0
  10. {flowjet-2.0.8 → flowjet-2.0.9}/config/nano.yml +0 -0
  11. {flowjet-2.0.8 → flowjet-2.0.9}/deploy/README.md +0 -0
  12. {flowjet-2.0.8 → flowjet-2.0.9}/deploy/nano.yml +0 -0
  13. {flowjet-2.0.8 → flowjet-2.0.9}/docs/completion-design.md +0 -0
  14. {flowjet-2.0.8 → flowjet-2.0.9}/docs/drafts/README.md +0 -0
  15. {flowjet-2.0.8 → flowjet-2.0.9}/docs/drafts/api-spec.md +0 -0
  16. {flowjet-2.0.8 → flowjet-2.0.9}/docs/impl/IG-001-openai-compatible-server.md +0 -0
  17. {flowjet-2.0.8 → flowjet-2.0.9}/docs/impl/IG-002-isolated-thread-pool-runtime.md +0 -0
  18. {flowjet-2.0.8 → flowjet-2.0.9}/docs/impl/IG-003-production-isolation-hardening.md +0 -0
  19. {flowjet-2.0.8 → flowjet-2.0.9}/docs/impl/README.md +0 -0
  20. {flowjet-2.0.8 → flowjet-2.0.9}/docs/impl/TEST-COVERAGE-MATRIX.md +0 -0
  21. {flowjet-2.0.8 → flowjet-2.0.9}/docs/naming.md +0 -0
  22. {flowjet-2.0.8 → flowjet-2.0.9}/docs/server.md +0 -0
  23. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/RFC-001-openai-compatible-api.md +0 -0
  24. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/RFC-002-isolated-thread-pool-runtime.md +0 -0
  25. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/RFC-003-production-isolation-hardening.md +0 -0
  26. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/RFC-004-unified-package.md +0 -0
  27. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/rfc-history.md +0 -0
  28. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/rfc-index.md +0 -0
  29. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/rfc-namings.md +0 -0
  30. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/templates/architecture-design.md +0 -0
  31. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/templates/conceptual-design.md +0 -0
  32. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/templates/impl-interface-design.md +0 -0
  33. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/templates/rfc-standard.md +0 -0
  34. {flowjet-2.0.8 → flowjet-2.0.9}/docs/specs/templates/rfc-template.md +0 -0
  35. {flowjet-2.0.8 → flowjet-2.0.9}/docs/upgrade.md +0 -0
  36. {flowjet-2.0.8 → flowjet-2.0.9}/examples/README.md +0 -0
  37. {flowjet-2.0.8 → flowjet-2.0.9}/nano.yml +0 -0
  38. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/__init__.py +0 -0
  39. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/__main__.py +0 -0
  40. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/README.md +0 -0
  41. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/gws-drive/SKILL.md +0 -0
  42. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/gws-drive-upload/SKILL.md +0 -0
  43. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/.env.example +0 -0
  44. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/README.md +0 -0
  45. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/SKILL.md +0 -0
  46. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/assets/background_library.html +0 -0
  47. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/assets/showcase_template.html +0 -0
  48. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/references/background_styles.md +0 -0
  49. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/references/design_patterns.md +0 -0
  50. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/references/webgl_backgrounds.md +0 -0
  51. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/requirements.txt +0 -0
  52. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/scripts/generate_showcase.py +0 -0
  53. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/logo-generator-skill/scripts/svg_to_png.py +0 -0
  54. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/SKILL.md +0 -0
  55. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/brainstorming/spec-document-reviewer-prompt.md +0 -0
  56. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/implementation/coding-plan-template.md +0 -0
  57. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/implementation/impl-guide-template.md +0 -0
  58. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/review/pr-review-template.md +0 -0
  59. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/review/review-checklist.md +0 -0
  60. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/rfc-template.md +0 -0
  61. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-architecture-design.md +0 -0
  62. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-conceptual-design.md +0 -0
  63. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/specs/template-impl-interface-design.md +0 -0
  64. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-drafts-readme.md +0 -0
  65. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-impl-readme.md +0 -0
  66. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-platonic.yml +0 -0
  67. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-history.md +0 -0
  68. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-index.md +0 -0
  69. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-namings.md +0 -0
  70. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/assets/templates/template-rfc-standard.md +0 -0
  71. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/BRAINSTORM/brainstorm.md +0 -0
  72. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-code.md +0 -0
  73. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-create-guide.md +0 -0
  74. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-full.md +0 -0
  75. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-update-guide.md +0 -0
  76. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/IMPL/impl-validate-guide.md +0 -0
  77. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-plan-modular-specs.md +0 -0
  78. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-architecture.md +0 -0
  79. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-conceptual.md +0 -0
  80. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-recover-impl-interface.md +0 -0
  81. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-scaffold.md +0 -0
  82. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/INIT/init-scan.md +0 -0
  83. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/REFERENCE.md +0 -0
  84. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/REVIEW/review-spec-compliance.md +0 -0
  85. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-check-compliance.md +0 -0
  86. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-check-taxonomy.md +0 -0
  87. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-history.md +0 -0
  88. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-index.md +0 -0
  89. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-generate-namings.md +0 -0
  90. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-refine.md +0 -0
  91. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/SPECS/specs-validate-consistency.md +0 -0
  92. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-overview.md +0 -0
  93. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-1.md +0 -0
  94. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-2.md +0 -0
  95. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/platonic-coding/references/WORKFLOW/workflow-phase-3.md +0 -0
  96. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/SKILL.md +0 -0
  97. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/evidence-deep.json +0 -0
  98. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/evidence-first.json +0 -0
  99. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/idea-first.json +0 -0
  100. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/loop.json +0 -0
  101. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/paper-pipeline.json +0 -0
  102. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/rapid.json +0 -0
  103. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/rigor-first.json +0 -0
  104. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/stance-first.json +0 -0
  105. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/systematic-review.json +0 -0
  106. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/patterns/verify-loop.json +0 -0
  107. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/references/backends.md +0 -0
  108. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/references/handoff-ars-omr.md +0 -0
  109. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/references/handoff-omr-ars.md +0 -0
  110. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/references/routing.md +0 -0
  111. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/scripts/csljson_to_omr.py +0 -0
  112. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/builtin_skills/research-bootstrap/scripts/papers_index_to_csljson.py +0 -0
  113. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/__init__.py +0 -0
  114. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/__main__.py +0 -0
  115. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/agent.py +0 -0
  116. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/completion/__init__.py +0 -0
  117. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/completion/context.py +0 -0
  118. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/completion/engine.py +0 -0
  119. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/doctor_cmd.py +0 -0
  120. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/doctor_fix_cmd.py +0 -0
  121. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/progress.py +0 -0
  122. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/serve_cmd.py +0 -0
  123. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/setup_cmd.py +0 -0
  124. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/shell/__init__.py +0 -0
  125. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/shell/_fj.zsh +0 -0
  126. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/shell/fj.bash +0 -0
  127. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/stream.py +0 -0
  128. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/threads.py +0 -0
  129. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/cli/tool_stream.py +0 -0
  130. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/__init__.py +0 -0
  131. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backend.py +0 -0
  132. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/__init__.py +0 -0
  133. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/direct.py +0 -0
  134. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/fake.py +0 -0
  135. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/__init__.py +0 -0
  136. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/adapter.py +0 -0
  137. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/admission.py +0 -0
  138. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/backend.py +0 -0
  139. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/errors.py +0 -0
  140. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/mode_gate.py +0 -0
  141. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/pool.py +0 -0
  142. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/request.py +0 -0
  143. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/backends/isolation/workspace.py +0 -0
  144. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/bootstrap.py +0 -0
  145. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/bridges/nano/__init__.py +0 -0
  146. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/bridges/nano/adapter.py +0 -0
  147. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/bridges/nano/backend.py +0 -0
  148. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/bridges/nano/mapping.py +0 -0
  149. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/events.py +0 -0
  150. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/identity.py +0 -0
  151. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/modes.py +0 -0
  152. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/protocol.py +0 -0
  153. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/tool_results.py +0 -0
  154. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/core/tool_stream.py +0 -0
  155. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/home.py +0 -0
  156. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/__init__.py +0 -0
  157. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/acp/__init__.py +0 -0
  158. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/acp/agent.py +0 -0
  159. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/acp/routes.py +0 -0
  160. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/config.py +0 -0
  161. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/http/__init__.py +0 -0
  162. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/http/app.py +0 -0
  163. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/http/auth.py +0 -0
  164. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/__init__.py +0 -0
  165. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/errors.py +0 -0
  166. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/projection.py +0 -0
  167. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/routes.py +0 -0
  168. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/schemas.py +0 -0
  169. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/service.py +0 -0
  170. {flowjet-2.0.8 → flowjet-2.0.9}/src/flowjet/server/openai_compat/store.py +0 -0
@@ -10,6 +10,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
+ ## [2.0.9] — 2026-09-24
14
+
15
+ ### Fixed
16
+
17
+ - **Suppress noisy third-party warnings at startup.** `requests` emits
18
+ `RequestsDependencyWarning` when the installed `urllib3` / `chardet` /
19
+ `charset_normalizer` versions fall outside its supported range, and
20
+ `soothe`'s `TypeSafeClassifier` triggers LangChain's `LangChainBetaWarning`.
21
+ Both are version-mismatch or beta-API notices the user cannot act on, so
22
+ they are now silenced at the earliest point of each entry point. A new
23
+ `core/_warnings.py` module exposes `suppress_known_warnings()`, called from
24
+ both the CLI (`cli.py`) and server (`server/__main__.py`) `main()` before
25
+ the heavy agent stack is imported.
26
+
13
27
  ## [2.0.8] — 2026-09-24
14
28
 
15
29
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: flowjet
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: FlowJet — agent CLI (fj) and server (ACP + OpenAI-compatible HTTP) powered by soothe-nano
5
5
  Project-URL: Homepage, https://github.com/caesar0301/flowjet
6
6
  Project-URL: Repository, https://github.com/caesar0301/flowjet
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "flowjet"
7
- version = "2.0.8"
7
+ version = "2.0.9"
8
8
  description = "FlowJet — agent CLI (fj) and server (ACP + OpenAI-compatible HTTP) powered by soothe-nano"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -717,6 +717,11 @@ def main_follow(argv: list[str] | None = None) -> int:
717
717
 
718
718
 
719
719
  def main(argv: list[str] | None = None) -> int:
720
+ # Silence noisy third-party warnings (requests version-mismatch,
721
+ # LangChain beta-API) before any heavy import pulls them in.
722
+ from flowjet.core._warnings import suppress_known_warnings
723
+
724
+ suppress_known_warnings()
720
725
  try:
721
726
  # Parse first so ``-V`` / ``-h`` / ``--help`` exit before we touch the
722
727
  # logging stack (and the heavy ``flowjet.cli.agent`` import it used to
@@ -0,0 +1,53 @@
1
+ """Suppress noisy third-party warnings that are not actionable for users.
2
+
3
+ These warnings come from dependencies (``requests``, ``soothe``/``langchain``)
4
+ and fire at import time or agent build time. They are version-mismatch or
5
+ beta-API notices that the user cannot fix, so we silence them globally at the
6
+ earliest point of each entry point (CLI ``main`` and server ``main``).
7
+
8
+ Call :func:`suppress_known_warnings` before importing the heavy agent stack.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import warnings
14
+
15
+
16
+ def suppress_known_warnings() -> None:
17
+ """Silence dependency warnings that users cannot act on.
18
+
19
+ Safe to call multiple times — ``filterwarnings`` is idempotent for the
20
+ same rule.
21
+
22
+ Suppressed:
23
+
24
+ * ``RequestsDependencyWarning`` — ``requests`` emits this when the
25
+ installed ``urllib3`` / ``chardet`` / ``charset_normalizer`` versions
26
+ fall outside its supported range. The versions still work; the warning
27
+ is informational only.
28
+ * ``LangChainBetaWarning`` — ``soothe`` uses ``TypeSafeClassifier`` which
29
+ is a beta LangChain API. The API may change, but the warning is noise
30
+ for end users.
31
+ """
32
+ # ``requests`` import-time version-mismatch warning.
33
+ warnings.filterwarnings(
34
+ "ignore",
35
+ category=UserWarning,
36
+ message=r".*urllib3 .* or chardet .* doesn't match a supported version.*",
37
+ )
38
+ # Also match by the concrete warning class when available — covers the
39
+ # exact ``RequestsDependencyWarning`` emitted by ``requests/__init__.py``.
40
+ try:
41
+ from requests.exceptions import RequestsDependencyWarning
42
+
43
+ warnings.filterwarnings("ignore", category=RequestsDependencyWarning)
44
+ except Exception: # pragma: no cover - requests not installed / API changed
45
+ pass
46
+
47
+ # ``soothe`` / LangChain beta-API warning from ``TypeSafeClassifier``.
48
+ try:
49
+ from langchain_core._api.beta_decorator import LangChainBetaWarning
50
+
51
+ warnings.filterwarnings("ignore", category=LangChainBetaWarning)
52
+ except Exception: # pragma: no cover - langchain not installed / API changed
53
+ pass
@@ -35,6 +35,12 @@ def _create_dual_stack_socket(host: str, port: int) -> socket.socket:
35
35
 
36
36
 
37
37
  def main() -> None:
38
+ # Silence noisy third-party warnings (requests version-mismatch,
39
+ # LangChain beta-API) before the agent stack is imported.
40
+ from flowjet.core._warnings import suppress_known_warnings
41
+
42
+ suppress_known_warnings()
43
+
38
44
  # Pull in a ~/.soothe/config copy before the first agent build. Kept out of
39
45
  # create_app(): the ASGI app is built at import time, and importing a module
40
46
  # must not write files.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes