@inneranimalmedia/agentsam-sdk 1.7.0 → 1.9.0

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 (36) hide show
  1. package/DEVELOPMENT.md +25 -5
  2. package/README.md +2 -0
  3. package/docs/RELEASES.iam-mirror.md +20 -0
  4. package/docs/RELEASES.md +9 -0
  5. package/package.json +9 -4
  6. package/protocol/README.md +51 -0
  7. package/protocol/dual-repo-sync.md +35 -0
  8. package/python/README.md +12 -0
  9. package/python/agentsam_sdk/__init__.py +9 -0
  10. package/python/agentsam_sdk/cli.py +262 -0
  11. package/python/agentsam_sdk/data/__init__.py +0 -0
  12. package/python/agentsam_sdk/data/agentsam_walk.py +157 -0
  13. package/python/agentsam_sdk/data/d1_adapter.py +124 -0
  14. package/python/agentsam_sdk/data/d1_bloat.py +445 -0
  15. package/python/agentsam_sdk/repository/__init__.py +26 -0
  16. package/python/agentsam_sdk/repository/__main__.py +3 -0
  17. package/python/agentsam_sdk/repository/inspect.py +496 -0
  18. package/python/agentsam_sdk/repository/inventory.py +351 -0
  19. package/python/agentsam_sdk/repository/scan_bloat.py +173 -0
  20. package/python/agentsam_sdk/runtime/__init__.py +0 -0
  21. package/python/agentsam_sdk/runtime/contract.py +105 -0
  22. package/python/docs/gaps.md +63 -0
  23. package/python/docs/tooling.md +67 -0
  24. package/python/protocol/README.md +51 -0
  25. package/python/protocol/dual-repo-sync.md +35 -0
  26. package/python/pyproject.toml +16 -0
  27. package/python/scripts/check-host-tooling.sh +65 -0
  28. package/python/tests/__init__.py +0 -0
  29. package/python/tests/fixtures/sample_tables.json +17 -0
  30. package/python/tests/fixtures.py +95 -0
  31. package/python/tests/test_agentsam_walk.py +31 -0
  32. package/python/tests/test_contract.py +32 -0
  33. package/python/tests/test_d1_bloat.py +93 -0
  34. package/python/tests/test_repository_inspect.py +84 -0
  35. package/python/tests/test_repository_inventory.py +53 -0
  36. package/python/tests/test_scan_bloat.py +31 -0
@@ -0,0 +1,31 @@
1
+ """Unit tests for repository.scan_bloat — no network."""
2
+ from __future__ import annotations
3
+
4
+ from pathlib import Path
5
+
6
+ from agentsam_sdk.repository import scan_bloat
7
+ from agentsam_sdk.runtime.contract import ToolInput
8
+
9
+
10
+ def test_scan_ranks_by_size(tmp_path: Path) -> None:
11
+ (tmp_path / "small.js").write_text("x=1\n", encoding="utf-8")
12
+ (tmp_path / "big.js").write_text("x=1\n" * 500, encoding="utf-8")
13
+ (tmp_path / "skip.py").write_text("print(1)\n" * 200, encoding="utf-8")
14
+ rows = scan_bloat.scan(tmp_path)
15
+ assert len(rows) == 2
16
+ assert rows[0]["path"] == "big.js"
17
+ assert rows[0]["size_bytes"] > rows[1]["size_bytes"]
18
+
19
+
20
+ def test_run_json_envelope(tmp_path: Path) -> None:
21
+ (tmp_path / "a.ts").write_text("// " + ("n" * 2000) + "\n", encoding="utf-8")
22
+ result = scan_bloat.run(
23
+ ToolInput(
24
+ mode="read-only",
25
+ params={"root": str(tmp_path), "top": 5, "min_kb": 0},
26
+ )
27
+ )
28
+ assert result.ok
29
+ assert result.tool == "repository.scan_bloat"
30
+ assert result.data["file_count"] == 1
31
+ assert result.data["files"][0]["path"] == "a.ts"