fleet-python 0.2.86__tar.gz → 0.2.87__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 (114) hide show
  1. {fleet_python-0.2.86/fleet_python.egg-info → fleet_python-0.2.87}/PKG-INFO +1 -1
  2. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/__init__.py +1 -1
  3. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/__init__.py +1 -1
  4. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/base.py +1 -1
  5. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/agent.py +26 -17
  6. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/orchestrator.py +6 -0
  7. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/base.py +1 -1
  8. {fleet_python-0.2.86 → fleet_python-0.2.87/fleet_python.egg-info}/PKG-INFO +1 -1
  9. {fleet_python-0.2.86 → fleet_python-0.2.87}/pyproject.toml +1 -1
  10. {fleet_python-0.2.86 → fleet_python-0.2.87}/LICENSE +0 -0
  11. {fleet_python-0.2.86 → fleet_python-0.2.87}/README.md +0 -0
  12. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/diff_example.py +0 -0
  13. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/dsl_example.py +0 -0
  14. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example.py +0 -0
  15. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/exampleResume.py +0 -0
  16. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_account.py +0 -0
  17. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_action_log.py +0 -0
  18. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_client.py +0 -0
  19. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_mcp_anthropic.py +0 -0
  20. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_mcp_openai.py +0 -0
  21. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_sync.py +0 -0
  22. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_task.py +0 -0
  23. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_tasks.py +0 -0
  24. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/example_verifier.py +0 -0
  25. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/export_tasks.py +0 -0
  26. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/fetch_tasks.py +0 -0
  27. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/gemini_example.py +0 -0
  28. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/import_tasks.py +0 -0
  29. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/iterate_verifiers.py +0 -0
  30. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/json_tasks_example.py +0 -0
  31. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/nova_act_example.py +0 -0
  32. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/openai_example.py +0 -0
  33. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/openai_simple_example.py +0 -0
  34. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/query_builder_example.py +0 -0
  35. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/quickstart.py +0 -0
  36. {fleet_python-0.2.86 → fleet_python-0.2.87}/examples/test_cdp_logging.py +0 -0
  37. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/client.py +0 -0
  38. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/env/__init__.py +0 -0
  39. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/env/client.py +0 -0
  40. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/exceptions.py +0 -0
  41. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/global_client.py +0 -0
  42. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/instance/__init__.py +0 -0
  43. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/instance/base.py +0 -0
  44. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/instance/client.py +0 -0
  45. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/models.py +0 -0
  46. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/resources/__init__.py +0 -0
  47. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/resources/base.py +0 -0
  48. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/resources/browser.py +0 -0
  49. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/resources/mcp.py +0 -0
  50. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/resources/sqlite.py +0 -0
  51. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/tasks.py +0 -0
  52. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/verifiers/__init__.py +0 -0
  53. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/verifiers/bundler.py +0 -0
  54. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/_async/verifiers/verifier.py +0 -0
  55. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/__init__.py +0 -0
  56. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/Dockerfile +0 -0
  57. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/__init__.py +0 -0
  58. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/mcp_server.py +0 -0
  59. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/playwright_utils.py +0 -0
  60. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/requirements.txt +0 -0
  61. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/gemini_cua/start.sh +0 -0
  62. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/types.py +0 -0
  63. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/agent/utils.py +0 -0
  64. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/cli.py +0 -0
  65. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/client.py +0 -0
  66. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/config.py +0 -0
  67. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/env/__init__.py +0 -0
  68. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/env/client.py +0 -0
  69. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/eval/__init__.py +0 -0
  70. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/eval/uploader.py +0 -0
  71. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/exceptions.py +0 -0
  72. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/global_client.py +0 -0
  73. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/instance/__init__.py +0 -0
  74. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/instance/base.py +0 -0
  75. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/instance/client.py +0 -0
  76. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/instance/models.py +0 -0
  77. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/models.py +0 -0
  78. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/proxy/__init__.py +0 -0
  79. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/proxy/proxy.py +0 -0
  80. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/proxy/whitelist.py +0 -0
  81. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/resources/__init__.py +0 -0
  82. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/resources/base.py +0 -0
  83. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/resources/browser.py +0 -0
  84. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/resources/mcp.py +0 -0
  85. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/resources/sqlite.py +0 -0
  86. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/tasks.py +0 -0
  87. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/types.py +0 -0
  88. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/utils/__init__.py +0 -0
  89. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/utils/http_logging.py +0 -0
  90. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/utils/logging.py +0 -0
  91. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/utils/playwright.py +0 -0
  92. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/__init__.py +0 -0
  93. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/bundler.py +0 -0
  94. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/code.py +0 -0
  95. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/db.py +0 -0
  96. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/decorator.py +0 -0
  97. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/parse.py +0 -0
  98. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/sql_differ.py +0 -0
  99. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet/verifiers/verifier.py +0 -0
  100. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet_python.egg-info/SOURCES.txt +0 -0
  101. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet_python.egg-info/dependency_links.txt +0 -0
  102. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet_python.egg-info/entry_points.txt +0 -0
  103. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet_python.egg-info/requires.txt +0 -0
  104. {fleet_python-0.2.86 → fleet_python-0.2.87}/fleet_python.egg-info/top_level.txt +0 -0
  105. {fleet_python-0.2.86 → fleet_python-0.2.87}/scripts/fix_sync_imports.py +0 -0
  106. {fleet_python-0.2.86 → fleet_python-0.2.87}/scripts/unasync.py +0 -0
  107. {fleet_python-0.2.86 → fleet_python-0.2.87}/setup.cfg +0 -0
  108. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/__init__.py +0 -0
  109. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_app_method.py +0 -0
  110. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_expect_only.py +0 -0
  111. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_instance_dispatch.py +0 -0
  112. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_sqlite_resource_dual_mode.py +0 -0
  113. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_sqlite_shared_memory_behavior.py +0 -0
  114. {fleet_python-0.2.86 → fleet_python-0.2.87}/tests/test_verifier_from_string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.86
3
+ Version: 0.2.87
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -73,7 +73,7 @@ from . import env
73
73
  from . import global_client as _global_client
74
74
  from ._async import global_client as _async_global_client
75
75
 
76
- __version__ = "0.2.86"
76
+ __version__ = "0.2.87"
77
77
 
78
78
  __all__ = [
79
79
  # Core classes
@@ -44,7 +44,7 @@ from ..types import VerifierFunction
44
44
  from .. import env
45
45
  from . import global_client as _async_global_client
46
46
 
47
- __version__ = "0.2.86"
47
+ __version__ = "0.2.87"
48
48
 
49
49
  __all__ = [
50
50
  # Core classes
@@ -26,7 +26,7 @@ from .exceptions import (
26
26
  try:
27
27
  from .. import __version__
28
28
  except ImportError:
29
- __version__ = "0.2.86"
29
+ __version__ = "0.2.87"
30
30
 
31
31
  logger = logging.getLogger(__name__)
32
32
 
@@ -451,24 +451,33 @@ async def main():
451
451
  print(json.dumps(result))
452
452
  return result
453
453
 
454
- # Create Fleet session for live logging
455
- session = None
456
- if os.environ.get("FLEET_API_KEY"):
457
- session = fleet.session_async(
458
- job_id=config["job_id"],
459
- model=config["model"],
460
- task_key=config["task_key"],
461
- instance_id=config["instance_id"],
462
- )
463
-
464
- async with MCP(config["url"]) as mcp:
465
- agent = GeminiAgent(mcp, config["model"], session=session)
466
- result = await agent.run(config["prompt"], config["max_steps"])
467
- result["task_key"] = config["task_key"]
468
- # Include session_id in result so orchestrator can complete it after verification
469
- if session and session.session_id:
470
- result["session_id"] = session.session_id
454
+ try:
455
+ # Create Fleet session for live logging
456
+ session = None
457
+ if os.environ.get("FLEET_API_KEY"):
458
+ session = fleet.session_async(
459
+ job_id=config["job_id"],
460
+ model=config["model"],
461
+ task_key=config["task_key"],
462
+ instance_id=config["instance_id"],
463
+ )
471
464
 
465
+ async with MCP(config["url"]) as mcp:
466
+ agent = GeminiAgent(mcp, config["model"], session=session)
467
+ result = await agent.run(config["prompt"], config["max_steps"])
468
+ result["task_key"] = config["task_key"]
469
+ # Include session_id in result so orchestrator can complete it after verification
470
+ if session and session.session_id:
471
+ result["session_id"] = session.session_id
472
+
473
+ print(json.dumps(result))
474
+ return result
475
+ except Exception as e:
476
+ import traceback
477
+ error_msg = f"{type(e).__name__}: {e}"
478
+ print(f"Agent exception: {error_msg}", file=sys.stderr)
479
+ traceback.print_exc(file=sys.stderr)
480
+ result = {"task_key": config["task_key"], "completed": False, "error": error_msg}
472
481
  print(json.dumps(result))
473
482
  return result
474
483
 
@@ -453,6 +453,12 @@ class AgentOrchestrator:
453
453
  if stderr_str:
454
454
  logger.debug(f"Agent stderr: {stderr_str[:500]}")
455
455
 
456
+ # Always show stderr if agent crashed (non-zero exit or has stderr)
457
+ if proc.returncode != 0 or stderr_str:
458
+ short_key = task_key[:20]
459
+ if stderr_str:
460
+ print(f"[{short_key}] Agent stderr: {stderr_str[:500]}")
461
+
456
462
  result_json = None
457
463
  for line in stdout_str.split("\n"):
458
464
  line = line.strip()
@@ -27,7 +27,7 @@ from .exceptions import (
27
27
  try:
28
28
  from . import __version__
29
29
  except ImportError:
30
- __version__ = "0.2.86"
30
+ __version__ = "0.2.87"
31
31
 
32
32
  logger = logging.getLogger(__name__)
33
33
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.86
3
+ Version: 0.2.87
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "fleet-python"
7
7
 
8
- version = "0.2.86"
8
+ version = "0.2.87"
9
9
  description = "Python SDK for Fleet environments"
10
10
  authors = [
11
11
  {name = "Fleet AI", email = "nic@fleet.so"},
File without changes
File without changes
File without changes