@miller-tech/uap 1.13.12 → 1.13.14

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 (43) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/benchmarks/speculative-autotune.d.ts +46 -0
  3. package/dist/benchmarks/speculative-autotune.d.ts.map +1 -0
  4. package/dist/benchmarks/speculative-autotune.js +145 -0
  5. package/dist/benchmarks/speculative-autotune.js.map +1 -0
  6. package/dist/benchmarks/token-throughput.d.ts +46 -46
  7. package/dist/bin/cli.js +2 -0
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/bin/llama-server-optimize.js +176 -0
  10. package/dist/bin/llama-server-optimize.js.map +1 -1
  11. package/dist/bin/policy.js +0 -0
  12. package/dist/cli/hooks.js +1 -0
  13. package/dist/cli/hooks.js.map +1 -1
  14. package/dist/cli/init.d.ts +1 -0
  15. package/dist/cli/init.d.ts.map +1 -1
  16. package/dist/cli/init.js +18 -0
  17. package/dist/cli/init.js.map +1 -1
  18. package/dist/cli/setup.d.ts +1 -0
  19. package/dist/cli/setup.d.ts.map +1 -1
  20. package/dist/cli/setup.js +1 -0
  21. package/dist/cli/setup.js.map +1 -1
  22. package/dist/cli/systemd-services.d.ts +12 -0
  23. package/dist/cli/systemd-services.d.ts.map +1 -0
  24. package/dist/cli/systemd-services.js +179 -0
  25. package/dist/cli/systemd-services.js.map +1 -0
  26. package/dist/models/types.d.ts +12 -12
  27. package/dist/policies/schemas/policy.d.ts +12 -12
  28. package/dist/types/config.d.ts +24 -24
  29. package/docs/deployment/QWEN35_LLAMA_CPP.md +49 -0
  30. package/docs/deployment/UAP_LLAMA_ANTHROPIC_PROXY_BOOTSTRAP.md +279 -0
  31. package/package.json +1 -1
  32. package/templates/hooks/loop-protection.sh +250 -0
  33. package/templates/hooks/post-compact.sh +14 -0
  34. package/templates/hooks/post-tool-use-edit-write.sh +15 -0
  35. package/templates/hooks/pre-compact.sh +9 -0
  36. package/templates/hooks/pre-tool-use-bash.sh +6 -0
  37. package/templates/hooks/pre-tool-use-edit-write.sh +10 -0
  38. package/templates/hooks/session-start.sh +64 -44
  39. package/templates/hooks/stop.sh +9 -0
  40. package/tools/agents/scripts/anthropic_proxy.py +716 -166
  41. package/tools/agents/tests/test_anthropic_proxy_streaming.py +51 -0
  42. package/tools/agents/scripts/__pycache__/anthropic_proxy.cpython-313.pyc +0 -0
  43. package/tools/agents/scripts/__pycache__/tool_call_wrapper.cpython-313.pyc +0 -0
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env python3
2
+
3
+ import importlib.util
4
+ import unittest
5
+ from pathlib import Path
6
+
7
+
8
+ def _load_proxy_module():
9
+ proxy_path = Path(__file__).resolve().parents[1] / "scripts" / "anthropic_proxy.py"
10
+ spec = importlib.util.spec_from_file_location("anthropic_proxy", proxy_path)
11
+ assert spec is not None and spec.loader is not None
12
+ module = importlib.util.module_from_spec(spec)
13
+ spec.loader.exec_module(module)
14
+ return module
15
+
16
+
17
+ proxy = _load_proxy_module()
18
+
19
+
20
+ class TestStreamingReasoningFallback(unittest.TestCase):
21
+ def test_fallback_disabled_returns_none(self):
22
+ text = proxy._build_reasoning_fallback_text(
23
+ ["<think>hidden</think>"], mode="off"
24
+ )
25
+ self.assertIsNone(text)
26
+
27
+ def test_visible_mode_returns_raw_text(self):
28
+ raw = '<think>internal</think> {"x":1}'
29
+ text = proxy._build_reasoning_fallback_text([raw], mode="visible")
30
+ self.assertEqual(text, raw)
31
+
32
+ def test_sanitized_mode_strips_think_tags(self):
33
+ text = proxy._build_reasoning_fallback_text(
34
+ ["<think>plan</think>\n user visible output"], mode="sanitized"
35
+ )
36
+ self.assertEqual(text, "plan user visible output")
37
+
38
+ def test_sanitized_mode_truncates_long_text(self):
39
+ old_limit = getattr(proxy, "PROXY_STREAM_REASONING_MAX_CHARS")
40
+ setattr(proxy, "PROXY_STREAM_REASONING_MAX_CHARS", 12)
41
+ try:
42
+ text = proxy._build_reasoning_fallback_text(
43
+ ["1234567890ABCDE"], mode="sanitized"
44
+ )
45
+ self.assertEqual(text, "1234567890AB...")
46
+ finally:
47
+ setattr(proxy, "PROXY_STREAM_REASONING_MAX_CHARS", old_limit)
48
+
49
+
50
+ if __name__ == "__main__":
51
+ unittest.main()