cluxion-agentplugin-preprocessing 0.3.18__tar.gz → 0.3.19__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 (96) hide show
  1. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/PKG-INFO +1 -1
  2. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/pyproject.toml +1 -1
  3. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/plugin.yaml +1 -1
  4. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/preprocess.py +2 -2
  5. cluxion_agentplugin_preprocessing-0.3.19/tests/runtime/test_estimate_tokens.py +52 -0
  6. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/.github/profile/README.md +0 -0
  7. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/.gitignore +0 -0
  8. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/Docs/README.md +0 -0
  9. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/LICENSE +0 -0
  10. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/README.md +0 -0
  11. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/adapters/claude/.claude-plugin/plugin.json +0 -0
  12. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/adapters/claude/skills/preprocess/SKILL.md +0 -0
  13. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/adapters/codex/config-snippet.toml +0 -0
  14. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/README.md +0 -0
  15. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/architecture.md +0 -0
  16. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/harness-logic.md +0 -0
  17. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/honesty-preprocessing.md +0 -0
  18. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/install-and-operations.md +0 -0
  19. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/cluxion-Docs/security.md +0 -0
  20. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/Cargo.lock +0 -0
  21. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/Cargo.toml +0 -0
  22. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/pyproject.toml +0 -0
  23. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/context.rs +0 -0
  24. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/dispatch.rs +0 -0
  25. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/guard.rs +0 -0
  26. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/lib.rs +0 -0
  27. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/main.rs +0 -0
  28. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/queue.rs +0 -0
  29. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/rust/cluxion_queue/src/types.rs +0 -0
  30. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/__init__.py +0 -0
  31. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/cli.py +0 -0
  32. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/doctor/__init__.py +0 -0
  33. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/doctor/catalog.json +0 -0
  34. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/doctor/framework.py +0 -0
  35. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/doctor/probes.py +0 -0
  36. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/guard_watch.py +0 -0
  37. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/hermes_config.py +0 -0
  38. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/plugin.py +0 -0
  39. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/runner.py +0 -0
  40. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_agentplugin_preprocessing/schemas.py +0 -0
  41. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/__init__.py +0 -0
  42. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/__main__.py +0 -0
  43. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/adapters/__init__.py +0 -0
  44. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/adapters/contract.py +0 -0
  45. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/adapters/grok_build.py +0 -0
  46. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/adapters/hermes.py +0 -0
  47. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/adapters/spec.py +0 -0
  48. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/bootstrap.py +0 -0
  49. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/cli.py +0 -0
  50. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/__init__.py +0 -0
  51. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/clarification.py +0 -0
  52. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/context_compress.py +0 -0
  53. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/dispatch_store.py +0 -0
  54. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/harness.py +0 -0
  55. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/hybrid_forget.py +0 -0
  56. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/intent.py +0 -0
  57. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/ledger.py +0 -0
  58. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/ledger_codec.py +0 -0
  59. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/llm_compress.py +0 -0
  60. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/plan_codec.py +0 -0
  61. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/types.py +0 -0
  62. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/core/work_queue.py +0 -0
  63. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/guard_daemon_host.py +0 -0
  64. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/models/__init__.py +0 -0
  65. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/models/supervisor.py +0 -0
  66. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/models/vllm_mlx.py +0 -0
  67. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/resources/__init__.py +0 -0
  68. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/resources/guard_bridge.py +0 -0
  69. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/resources/py_queue.py +0 -0
  70. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/resources/queue_bridge.py +0 -0
  71. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/resources/rust_bridge.py +0 -0
  72. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/web/__init__.py +0 -0
  73. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/src/cluxion_runtime/web/browser_bridge.py +0 -0
  74. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_auto_compress_middleware.py +0 -0
  75. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_browser_bridge.py +0 -0
  76. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_clarification.py +0 -0
  77. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_cluxion_runtime_spine.py +0 -0
  78. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_context_compress.py +0 -0
  79. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_context_compress_llm_forget.py +0 -0
  80. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_contract.py +0 -0
  81. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_dispatch_store.py +0 -0
  82. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_guard.py +0 -0
  83. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_guard_daemon_host.py +0 -0
  84. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_ledger.py +0 -0
  85. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_py_queue_concurrency.py +0 -0
  86. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_queue_backends.py +0 -0
  87. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_runtime_adapter_cli.py +0 -0
  88. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_rust_queue.py +0 -0
  89. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/runtime/test_supervisor.py +0 -0
  90. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_bootstrap.py +0 -0
  91. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_doctor.py +0 -0
  92. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_guard_watch.py +0 -0
  93. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_hermes_config.py +0 -0
  94. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_packaging_policy.py +0 -0
  95. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_plugin.py +0 -0
  96. {cluxion_agentplugin_preprocessing-0.3.18 → cluxion_agentplugin_preprocessing-0.3.19}/tests/test_runner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cluxion-agentplugin-preprocessing
3
- Version: 0.3.18
3
+ Version: 0.3.19
4
4
  Summary: Universal agent plugin for Cluxion preprocessing, honesty contracts, clarification, Rust work queue, and resource-aware harness handoff.
5
5
  Project-URL: Homepage, https://github.com/cluxion/cluxion-Agentplugin-preprocessing
6
6
  Project-URL: Repository, https://github.com/cluxion/cluxion-Agentplugin-preprocessing
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "cluxion-agentplugin-preprocessing"
7
- version = "0.3.18"
7
+ version = "0.3.19"
8
8
  description = "Universal agent plugin for Cluxion preprocessing, honesty contracts, clarification, Rust work queue, and resource-aware harness handoff."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,5 +1,5 @@
1
1
  name: cluxion-agentplugin-preprocessing
2
- version: 0.3.18
2
+ version: 0.3.19
3
3
  description: "Universal agent preprocessing plugin: honesty contracts, clarification, Rust work queue, resource-aware harness handoff. Connected AI calls cluxion tools; plugin does not own models."
4
4
  author: cluxion
5
5
  kind: standalone
@@ -172,8 +172,8 @@ def preprocess_work(
172
172
 
173
173
  def estimate_tokens(text: str) -> int:
174
174
  """Estimate tokens conservatively without depending on the old Cluxion OS package."""
175
- cjk = sum(1 for ch in text if ord(ch) > 127)
176
- ascii_chars = max(0, len(text) - cjk)
175
+ ascii_chars = len(text.encode("ascii", "ignore"))
176
+ cjk = len(text) - ascii_chars
177
177
  return max(1, cjk + ascii_chars // 4)
178
178
 
179
179
 
@@ -0,0 +1,52 @@
1
+ """Byte-identical parity tests for estimate_tokens optimization."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import random
6
+
7
+ from cluxion_runtime.core.preprocess import estimate_tokens
8
+
9
+
10
+ def _estimate_tokens_legacy(text: str) -> int:
11
+ cjk = sum(1 for ch in text if ord(ch) > 127)
12
+ ascii_chars = max(0, len(text) - cjk)
13
+ return max(1, cjk + ascii_chars // 4)
14
+
15
+
16
+ def test_estimate_tokens_matches_legacy_fixed_cases() -> None:
17
+ cases = [
18
+ ("", 1),
19
+ ("abcd", 1),
20
+ ("한글텍스트", 5),
21
+ ("ab한", 1),
22
+ ]
23
+ for text, expected in cases:
24
+ assert estimate_tokens(text) == expected
25
+ assert estimate_tokens(text) == _estimate_tokens_legacy(text)
26
+
27
+
28
+ def test_estimate_tokens_matches_legacy_random_unicode() -> None:
29
+ rng = random.Random(0)
30
+ chars: list[str] = []
31
+ for _ in range(10_000):
32
+ roll = rng.random()
33
+ if roll < 0.4:
34
+ chars.append(chr(rng.randint(0, 127)))
35
+ elif roll < 0.7:
36
+ chars.append(chr(rng.randint(128, 0xFFFF)))
37
+ else:
38
+ chars.append(chr(rng.randint(0x10000, 0x10FFFF)))
39
+ text = "".join(chars)
40
+ assert estimate_tokens(text) == _estimate_tokens_legacy(text)
41
+
42
+
43
+ def test_estimate_tokens_lone_surrogate_does_not_raise() -> None:
44
+ text = "prefix\ud800suffix"
45
+ assert estimate_tokens(text) == _estimate_tokens_legacy(text)
46
+
47
+
48
+ def test_estimate_tokens_legacy_reference_cases() -> None:
49
+ assert _estimate_tokens_legacy("") == 1
50
+ assert _estimate_tokens_legacy("abcd") == 1
51
+ assert _estimate_tokens_legacy("한글텍스트") == 5
52
+ assert _estimate_tokens_legacy("ab한") == 1