agent-learning 0.8.1__tar.gz → 0.8.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 (102) hide show
  1. {agent_learning-0.8.1/src/agent_learning.egg-info → agent_learning-0.8.2}/PKG-INFO +1 -1
  2. {agent_learning-0.8.1 → agent_learning-0.8.2}/README.md +2 -3
  3. {agent_learning-0.8.1 → agent_learning-0.8.2}/pyproject.toml +1 -1
  4. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/_version.py +1 -1
  5. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/cli.py +4 -1
  6. {agent_learning-0.8.1 → agent_learning-0.8.2/src/agent_learning.egg-info}/PKG-INFO +1 -1
  7. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_cli.py +2 -0
  8. agent_learning-0.8.2/tests/test_release_workflow.py +47 -0
  9. agent_learning-0.8.1/tests/test_release_workflow.py +0 -17
  10. {agent_learning-0.8.1 → agent_learning-0.8.2}/LICENSE +0 -0
  11. {agent_learning-0.8.1 → agent_learning-0.8.2}/PYPI.md +0 -0
  12. {agent_learning-0.8.1 → agent_learning-0.8.2}/setup.cfg +0 -0
  13. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/__init__.py +0 -0
  14. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/autonomy.py +0 -0
  15. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/capture.py +0 -0
  16. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/__init__.py +0 -0
  17. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/base.py +0 -0
  18. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/router.py +0 -0
  19. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/scorers/__init__.py +0 -0
  20. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/scorers/_base.py +0 -0
  21. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/scorers/adherence.py +0 -0
  22. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/scorers/completion.py +0 -0
  23. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/classifiers/scorers/intent.py +0 -0
  24. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/config.py +0 -0
  25. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/decision.py +0 -0
  26. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/learners/__init__.py +0 -0
  27. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/learners/base.py +0 -0
  28. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/learners/reinforce.py +0 -0
  29. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/__init__.py +0 -0
  30. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/base.py +0 -0
  31. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/intent_resolution.py +0 -0
  32. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/local.py +0 -0
  33. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/registry.py +0 -0
  34. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/task_adherence.py +0 -0
  35. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/metrics/task_completion.py +0 -0
  36. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/policy/__init__.py +0 -0
  37. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/policy/base.py +0 -0
  38. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/policy/contextual_softmax.py +0 -0
  39. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/policy/softmax_bandit.py +0 -0
  40. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/py.typed +0 -0
  41. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/rewards/__init__.py +0 -0
  42. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/rewards/shaping.py +0 -0
  43. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/rewards/writer.py +0 -0
  44. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/__init__.py +0 -0
  45. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/base.py +0 -0
  46. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/llm/__init__.py +0 -0
  47. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/llm/_base.py +0 -0
  48. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/llm/adherence.py +0 -0
  49. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/llm/completion.py +0 -0
  50. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/llm/intent.py +0 -0
  51. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp/__init__.py +0 -0
  52. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp/_base.py +0 -0
  53. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp/adherence.py +0 -0
  54. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp/completion.py +0 -0
  55. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp/intent.py +0 -0
  56. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp_text/__init__.py +0 -0
  57. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp_text/_base.py +0 -0
  58. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp_text/adherence.py +0 -0
  59. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp_text/completion.py +0 -0
  60. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/nlp_text/intent.py +0 -0
  61. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/slm/__init__.py +0 -0
  62. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/slm/_base.py +0 -0
  63. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/slm/adherence.py +0 -0
  64. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/slm/completion.py +0 -0
  65. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/slm/intent.py +0 -0
  66. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/stdlib/__init__.py +0 -0
  67. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/stdlib/_text.py +0 -0
  68. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/stdlib/adherence.py +0 -0
  69. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/stdlib/completion.py +0 -0
  70. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/scorers/stdlib/intent.py +0 -0
  71. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/storage/__init__.py +0 -0
  72. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/storage/base.py +0 -0
  73. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/storage/cosmos.py +0 -0
  74. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/storage/local.py +0 -0
  75. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/storage/memory.py +0 -0
  76. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/training/__init__.py +0 -0
  77. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/training/runner.py +0 -0
  78. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning/types.py +0 -0
  79. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning.egg-info/SOURCES.txt +0 -0
  80. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning.egg-info/dependency_links.txt +0 -0
  81. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning.egg-info/entry_points.txt +0 -0
  82. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning.egg-info/requires.txt +0 -0
  83. {agent_learning-0.8.1 → agent_learning-0.8.2}/src/agent_learning.egg-info/top_level.txt +0 -0
  84. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_autonomy.py +0 -0
  85. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_capture.py +0 -0
  86. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_contextual_policy.py +0 -0
  87. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_decision.py +0 -0
  88. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_default_store.py +0 -0
  89. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_end_to_end.py +0 -0
  90. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_learner.py +0 -0
  91. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_linux_install_script.py +0 -0
  92. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_metrics_local.py +0 -0
  93. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_policy.py +0 -0
  94. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_scorers.py +0 -0
  95. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_scorers_llm.py +0 -0
  96. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_scorers_nlp_text.py +0 -0
  97. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_scorers_slm.py +0 -0
  98. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_scorers_stdlib.py +0 -0
  99. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_shaping.py +0 -0
  100. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_storage_local.py +0 -0
  101. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_storage_memory.py +0 -0
  102. {agent_learning-0.8.1 → agent_learning-0.8.2}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-learning
3
- Version: 0.8.1
3
+ Version: 0.8.2
4
4
  Summary: Evidence-driven reasoned and learned decisions for AI agents with inspectable autonomy.
5
5
  Author: Chris Tava
6
6
  License: MIT License
@@ -82,8 +82,7 @@ points, risk floors, tier, and resolved proportional criteria.
82
82
 
83
83
  ### Windows CLI
84
84
 
85
- For a Python-independent installation, download `agent-learn.exe` or the
86
- standalone installer from the
85
+ For a Python-independent installation, download the Windows ZIP or installer from the
87
86
  [latest GitHub release](https://github.com/microsoft/agent-learning/releases/latest).
88
87
  The installer can add its installation directory to your user `PATH`, so
89
88
  `agent-learn` works from PowerShell or Command Prompt without Python or `pip`.
@@ -101,7 +100,7 @@ or install it with the automation script:
101
100
 
102
101
  ```bash
103
102
  curl -fsSL https://raw.githubusercontent.com/microsoft/agent-learning/main/scripts/install-linux.sh -o /tmp/install-linux.sh
104
- bash /tmp/install-linux.sh --version 0.8.0 --install-dir /usr/local/bin
103
+ bash /tmp/install-linux.sh --version 0.8.2 --install-dir /usr/local/bin
105
104
  ```
106
105
 
107
106
  The Linux installation guide covers Debian/Ubuntu, RHEL-compatible, and
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-learning"
7
- version = "0.8.1"
7
+ version = "0.8.2"
8
8
  description = "Evidence-driven reasoned and learned decisions for AI agents with inspectable autonomy."
9
9
  readme = "PYPI.md"
10
10
  requires-python = ">=3.10"
@@ -1,3 +1,3 @@
1
1
  """Package version."""
2
2
 
3
- __version__ = "0.8.1"
3
+ __version__ = "0.8.2"
@@ -93,7 +93,7 @@ def _build_arg_parser() -> argparse.ArgumentParser:
93
93
  description=f"Evidence-driven decision CLI for AI agents. SDK version {__version__}.",
94
94
  )
95
95
  parser.add_argument("--version", action="version", version=f"%(prog)s {__version__}")
96
- sub = parser.add_subparsers(dest="command", required=True)
96
+ sub = parser.add_subparsers(dest="command")
97
97
 
98
98
  sub.add_parser("list", help="List discovered agent ids and names.")
99
99
 
@@ -996,6 +996,9 @@ def main(argv: list[str] | None = None) -> int:
996
996
  logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s - %(message)s")
997
997
  parser = _build_arg_parser()
998
998
  args = parser.parse_args(argv)
999
+ if args.command is None:
1000
+ parser.print_help()
1001
+ return 0
999
1002
  dispatch = {
1000
1003
  "list": _cmd_agents_list,
1001
1004
  "tasks-list": _cmd_agent_tasks_list,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-learning
3
- Version: 0.8.1
3
+ Version: 0.8.2
4
4
  Summary: Evidence-driven reasoned and learned decisions for AI agents with inspectable autonomy.
5
5
  Author: Chris Tava
6
6
  License: MIT License
@@ -37,6 +37,8 @@ def _full_episode() -> Episode:
37
37
 
38
38
  def test_help_and_version_print_sdk_version(capsys) -> None:
39
39
  assert f"SDK version {__version__}" in cli._build_arg_parser().format_help()
40
+ assert cli.main([]) == 0
41
+ assert "usage: agent-learn" in capsys.readouterr().out
40
42
  with pytest.raises(SystemExit) as exit_info:
41
43
  cli.main(["--version"])
42
44
  assert exit_info.value.code == 0
@@ -0,0 +1,47 @@
1
+ """Release workflow contract tests."""
2
+
3
+ from pathlib import Path
4
+
5
+
6
+ def test_release_job_uses_flattened_linux_artifact_path() -> None:
7
+ workflow = (
8
+ Path(__file__).resolve().parents[1] / ".github" / "workflows" / "publish.yaml"
9
+ ).read_text(encoding="utf-8")
10
+
11
+ expected = 'release-assets/agent-learning-cli-${VERSION}-linux-x64.tar.gz'
12
+ obsolete = (
13
+ 'release-assets/dist-installer/'
14
+ 'agent-learning-cli-${VERSION}-linux-x64.tar.gz'
15
+ )
16
+ assert expected in workflow
17
+ assert obsolete not in workflow
18
+
19
+
20
+ def test_release_job_uses_flattened_windows_artifact_paths() -> None:
21
+ workflow = (
22
+ Path(__file__).resolve().parents[1] / ".github" / "workflows" / "publish.yaml"
23
+ ).read_text(encoding="utf-8")
24
+
25
+ for suffix in ("exe", "zip"):
26
+ filename = f"agent-learning-cli-${{VERSION}}-windows-x64.{suffix}"
27
+ assert f'release-assets/{filename}' in workflow
28
+ assert f'release-assets/dist-installer/{filename}' not in workflow
29
+
30
+
31
+ def test_windows_installer_uses_directory_bundle_and_precedes_old_shims() -> None:
32
+ root = Path(__file__).resolve().parents[1]
33
+ build_script = (root / "scripts" / "build_windows_installer.ps1").read_text(
34
+ encoding="utf-8"
35
+ )
36
+ installer = (
37
+ root / "packaging" / "windows" / "agent-learning-installer.iss"
38
+ ).read_text(encoding="utf-8")
39
+
40
+ assert "--onedir" in build_script
41
+ assert "--onefile" not in build_script
42
+ assert "$env:LOCALAPPDATA" in build_script
43
+ assert 'Source: "dist\\agent-learn\\*"' in installer
44
+ assert "recursesubdirs" in installer
45
+ assert "PrivilegesRequired=lowest" in installer
46
+ assert 'ValueData: "{code:PathWithEntryFirst|{app}}"' in installer
47
+ assert 'ValueData: "{olddata};{app}"' not in installer
@@ -1,17 +0,0 @@
1
- """Release workflow contract tests."""
2
-
3
- from pathlib import Path
4
-
5
-
6
- def test_release_job_uses_flattened_linux_artifact_path() -> None:
7
- workflow = (
8
- Path(__file__).resolve().parents[1] / ".github" / "workflows" / "publish.yaml"
9
- ).read_text(encoding="utf-8")
10
-
11
- expected = 'release-assets/agent-learning-cli-${VERSION}-linux-x64.tar.gz'
12
- obsolete = (
13
- 'release-assets/dist-installer/'
14
- 'agent-learning-cli-${VERSION}-linux-x64.tar.gz'
15
- )
16
- assert expected in workflow
17
- assert obsolete not in workflow
File without changes
File without changes
File without changes