agentic-runner 3.11.0__tar.gz → 3.12.0__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 (74) hide show
  1. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/PKG-INFO +1 -1
  2. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/__init__.py +1 -1
  3. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/service.py +38 -4
  4. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/.gitignore +0 -0
  5. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/LICENSE +0 -0
  6. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/README.md +0 -0
  7. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/pyproject.toml +0 -0
  8. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/activities.py +0 -0
  9. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/attempts.py +0 -0
  10. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/auth_mode.py +0 -0
  11. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/build.py +0 -0
  12. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/callback.py +0 -0
  13. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/child_watcher.py +0 -0
  14. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/cli.py +0 -0
  15. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/cli_floor.py +0 -0
  16. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/config.py +0 -0
  17. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/credentials.py +0 -0
  18. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/device_login_activities.py +0 -0
  19. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/egress.py +0 -0
  20. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/harness_self_test.py +0 -0
  21. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/heartbeat_link.py +0 -0
  22. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/hooks.py +0 -0
  23. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/host_store.py +0 -0
  24. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/__init__.py +0 -0
  25. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/git/__init__.py +0 -0
  26. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/git/contracts.py +0 -0
  27. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/git/evidence.py +0 -0
  28. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/git/fake_workspace.py +0 -0
  29. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/git/workspace.py +0 -0
  30. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/github/__init__.py +0 -0
  31. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/github/auth.py +0 -0
  32. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/github/fake_client.py +0 -0
  33. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/github/gh_client.py +0 -0
  34. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/oauth/__init__.py +0 -0
  35. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/integrations/oauth/fake_provider.py +0 -0
  36. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/lifecycle.py +0 -0
  37. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/llm_proxy.py +0 -0
  38. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/mcp.py +0 -0
  39. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/message_store.py +0 -0
  40. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/oauth_connectors.py +0 -0
  41. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/private_state.py +0 -0
  42. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/py.typed +0 -0
  43. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/recipient_key_secret.py +0 -0
  44. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/registration.py +0 -0
  45. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/runtime/__init__.py +0 -0
  46. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/runtime/verifier_command.py +0 -0
  47. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/sealed_box.py +0 -0
  48. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/__init__.py +0 -0
  49. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/__main__.py +0 -0
  50. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/control_plane.py +0 -0
  51. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/plugin.py +0 -0
  52. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/test_conformance.py +0 -0
  53. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/testing/workflow.py +0 -0
  54. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/tiny_http.py +0 -0
  55. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/triage_activities.py +0 -0
  56. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/usage_windows.py +0 -0
  57. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/user_sources.py +0 -0
  58. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/__init__.py +0 -0
  59. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/_runtime_support.py +0 -0
  60. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/acp_runtime.py +0 -0
  61. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/agent_runtime.py +0 -0
  62. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/claude_runtime.py +0 -0
  63. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/claude_sign_in.py +0 -0
  64. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/codex_runtime.py +0 -0
  65. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/command_policy.py +0 -0
  66. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/contract_device_login.py +0 -0
  67. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/contract_isolation.py +0 -0
  68. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/fastapi_client.py +0 -0
  69. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/harness_outcome.py +0 -0
  70. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/harness_usage.py +0 -0
  71. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/mcp_config.py +0 -0
  72. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/settings.py +0 -0
  73. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workers/skills.py +0 -0
  74. {agentic_runner-3.11.0 → agentic_runner-3.12.0}/src/agentic_runner/workstation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentic-runner
3
- Version: 3.11.0
3
+ Version: 3.12.0
4
4
  Summary: The Agentic OS Runner: an activity-only Temporal executor for workspaces, Agent Runtimes and verb seams
5
5
  License-Expression: AGPL-3.0-only
6
6
  License-File: LICENSE
@@ -7,6 +7,6 @@ stay on the platform; this package imports none of them, and a CI partition test
7
7
  (``tests/test_package_partition.py``) fails the build if that changes.
8
8
  """
9
9
 
10
- __version__ = "3.11.0"
10
+ __version__ = "3.12.0"
11
11
 
12
12
  __all__ = ["__version__"]
@@ -121,6 +121,7 @@ from agentic_runner_contracts.channel_messages import TranscriptDelivery
121
121
  from agentic_runner_contracts.routing import RunnerRoutingIdentity
122
122
  from agentic_runner_contracts.runner_registration import (
123
123
  RECENT_OUTCOMES_MAX,
124
+ AcpBridgeVersion,
124
125
  CliVersion,
125
126
  DirectiveOutcome,
126
127
  EgressPosture,
@@ -411,13 +412,12 @@ def build_agent_runtimes(
411
412
  local-agents 18) reaches `clis` through :func:`with_profile_acp_cli_kinds`.
412
413
  """
413
414
 
414
- acp_kinds = {kind.strip() for kind in settings.ACP_CLI_KINDS.split(",") if kind.strip()}
415
+ pinned_kinds = _pinned_acp_cli_kinds(settings)
415
416
  profile_kinds = set(profile_acp_executables(settings))
416
417
  return {
417
418
  cli.cli_kind: (
418
419
  AcpRuntime(cli_kind=cli.cli_kind, settings=settings)
419
- if cli.cli_kind in profile_kinds
420
- or (cli.cli_kind in acp_kinds and cli.cli_kind in ACP_BRIDGES)
420
+ if cli.cli_kind in profile_kinds or cli.cli_kind in pinned_kinds
421
421
  else _RUNTIMES[cli.cli_kind](settings)
422
422
  )
423
423
  for cli in clis
@@ -425,6 +425,40 @@ def build_agent_runtimes(
425
425
  }
426
426
 
427
427
 
428
+ def _pinned_acp_cli_kinds(settings: WorkerSettings) -> set[str]:
429
+ """The kinds `ACP_CLI_KINDS` routes through a bridge this Runner pins."""
430
+
431
+ named = {kind.strip() for kind in settings.ACP_CLI_KINDS.split(",") if kind.strip()}
432
+ return named & ACP_BRIDGES.keys()
433
+
434
+
435
+ def with_acp_bridges(
436
+ attestation: HostAttestation | None, settings: WorkerSettings
437
+ ) -> HostAttestation | None:
438
+ """The attestation, with each kind this Runner serves through its pinned ACP bridge
439
+ carrying that bridge's package and version (QTS-1322), so the console shows what
440
+ actually drives the CLI. A kind below its floor is not served, so it names no bridge.
441
+ """
442
+
443
+ if attestation is None:
444
+ return None
445
+ pinned_kinds = _pinned_acp_cli_kinds(settings)
446
+ clis = [
447
+ cli.model_copy(
448
+ update={
449
+ "acp_bridge": AcpBridgeVersion(
450
+ package=ACP_BRIDGES[cli.cli_kind].package,
451
+ version=ACP_BRIDGES[cli.cli_kind].version,
452
+ )
453
+ }
454
+ )
455
+ if cli.meets_floor and cli.cli_kind in pinned_kinds
456
+ else cli
457
+ for cli in attestation.clis
458
+ ]
459
+ return attestation.model_copy(update={"clis": clis})
460
+
461
+
428
462
  def with_profile_acp_cli_kinds(
429
463
  attestation: HostAttestation | None, settings: WorkerSettings
430
464
  ) -> HostAttestation | None:
@@ -958,7 +992,7 @@ async def run(
958
992
  os.environ.setdefault("INTERNAL_FASTAPI_BASE_URL", control_plane)
959
993
  settings = get_worker_settings()
960
994
  try:
961
- attestation = with_profile_acp_cli_kinds(attestation, settings)
995
+ attestation = with_profile_acp_cli_kinds(with_acp_bridges(attestation, settings), settings)
962
996
  except ValueError as error:
963
997
  print(f"refusing to start: {error}", flush=True)
964
998
  return 1
File without changes