fleet-python 0.2.85__py3-none-any.whl → 0.2.87__py3-none-any.whl

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.
fleet/__init__.py CHANGED
@@ -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.85"
76
+ __version__ = "0.2.87"
77
77
 
78
78
  __all__ = [
79
79
  # Core classes
fleet/_async/__init__.py CHANGED
@@ -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.85"
47
+ __version__ = "0.2.87"
48
48
 
49
49
  __all__ = [
50
50
  # Core classes
fleet/_async/base.py CHANGED
@@ -26,7 +26,7 @@ from .exceptions import (
26
26
  try:
27
27
  from .. import __version__
28
28
  except ImportError:
29
- __version__ = "0.2.85"
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
 
@@ -21,6 +21,7 @@ import asyncio
21
21
  import json
22
22
  import logging
23
23
  import os
24
+ import sys
24
25
  import time
25
26
  from datetime import datetime
26
27
  from pathlib import Path
@@ -418,7 +419,7 @@ class AgentOrchestrator:
418
419
  env.update(self.config.api_keys)
419
420
 
420
421
  proc = await asyncio.create_subprocess_exec(
421
- "python", str(agent_script),
422
+ sys.executable, str(agent_script),
422
423
  stdout=asyncio.subprocess.PIPE,
423
424
  stderr=asyncio.subprocess.PIPE,
424
425
  env=env,
@@ -452,6 +453,12 @@ class AgentOrchestrator:
452
453
  if stderr_str:
453
454
  logger.debug(f"Agent stderr: {stderr_str[:500]}")
454
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
+
455
462
  result_json = None
456
463
  for line in stdout_str.split("\n"):
457
464
  line = line.strip()
fleet/base.py CHANGED
@@ -27,7 +27,7 @@ from .exceptions import (
27
27
  try:
28
28
  from . import __version__
29
29
  except ImportError:
30
- __version__ = "0.2.85"
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.85
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
@@ -45,6 +45,7 @@ Requires-Dist: playwright>=1.40.0; extra == "playwright"
45
45
  Provides-Extra: eval
46
46
  Requires-Dist: aiohttp>=3.9.0; extra == "eval"
47
47
  Requires-Dist: google-genai>=1.0.0; extra == "eval"
48
+ Requires-Dist: mcp>=0.1.0; python_version >= "3.10" and extra == "eval"
48
49
  Dynamic: license-file
49
50
 
50
51
  # Fleet SDK
@@ -23,8 +23,8 @@ examples/openai_simple_example.py,sha256=HmiufucrAZne7tHq9uoEsDWlEhjNC265bQAyIGB
23
23
  examples/query_builder_example.py,sha256=-cOMfWGNifYfYEt_Ds73XpwATZvFDL6F4KTkVxdMjzg,3951
24
24
  examples/quickstart.py,sha256=1VT39IRRhemsJgxi0O0gprdpcw7HB4pYO97GAYagIcg,3788
25
25
  examples/test_cdp_logging.py,sha256=AkCwQCgOTQEI8w3v0knWK_4eXMph7L9x07wj9yIYM10,2836
26
- fleet/__init__.py,sha256=COtmFIP-72TCZB5y0jwNy_PbHuaXY3Sem7UREJbi554,7683
27
- fleet/base.py,sha256=Lo1tHYRlGuXYNA547HTz-psjuawHbOFxJAI05JHQYgk,10065
26
+ fleet/__init__.py,sha256=HPZcJXzeO-SnhpaQtTdsyC6AA4pbEDbaSGmh9HmtCqk,7683
27
+ fleet/base.py,sha256=PgVwsZuchC8BjaKZa4cVg0vPCaR-myOvy9LmqQTzvEw,10065
28
28
  fleet/cli.py,sha256=kXtinWio3hniLq8CyBCwmy6YYgX3yovx1HcqPO2ERdc,36025
29
29
  fleet/client.py,sha256=SuNf5IcU8UNDlH-kIe-RlyJ32fBlbxpELBy-43xrrvE,67043
30
30
  fleet/config.py,sha256=n_wh9Sahu3gGE7nHJ7kqNFUH1qDiBtF4bgZq9MvIBMU,319
@@ -33,8 +33,8 @@ fleet/global_client.py,sha256=frrDAFNM2ywN0JHLtlm9qbE1dQpnQJsavJpb7xSR_bU,1072
33
33
  fleet/models.py,sha256=Q-bGdXBazExADtvKTpMOYo77poizXol4wtGLH3tlj08,25111
34
34
  fleet/tasks.py,sha256=8pEzXmgC7RslqsMC_0s6shhr_t2WGIRpTRqo-MAQjdg,20778
35
35
  fleet/types.py,sha256=L4Y82xICf1tzyCLqhLYUgEoaIIS5h9T05TyFNHSWs3s,652
36
- fleet/_async/__init__.py,sha256=DdZeU7jd0L-li1bynFCnkh0037Wxl623w1sUWoXdz68,9115
37
- fleet/_async/base.py,sha256=X73TI7gLUXbks6Abe9FnoCivRMJqGdPEMjg5QHpqfzI,9630
36
+ fleet/_async/__init__.py,sha256=b2FgY_6AIt1iFqMRRTsyCaPNcjaFZ1V_9V-ibp-Kdaw,9115
37
+ fleet/_async/base.py,sha256=Dd5oxDzl_j34QsrjOYCznEngSnGrkrz2c8wsGCzXkaA,9630
38
38
  fleet/_async/client.py,sha256=8UhY61h1M6iSb1WpncmHScLEe-zTTDCABDG11apaKGU,63451
39
39
  fleet/_async/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
40
40
  fleet/_async/global_client.py,sha256=4WskpLHbsDEgWW7hXMD09W-brkp4euy8w2ZJ88594rQ,1103
@@ -54,12 +54,12 @@ fleet/_async/verifiers/__init__.py,sha256=1WTlCNq4tIFbbXaQu5Bf2WppZq0A8suhtZbxMT
54
54
  fleet/_async/verifiers/bundler.py,sha256=9aWWXFsovBPcndE06IATn5jaeli5fRORAYeenF9heN0,26264
55
55
  fleet/_async/verifiers/verifier.py,sha256=iSa-rO-E1R3IQTFS9Z7jbQvQVtsDkilITQP9IIQU2JA,14556
56
56
  fleet/agent/__init__.py,sha256=BuiElLoL_OTq_tmEMD85Zc1x3x9iUerYM7TxLpD22aI,737
57
- fleet/agent/orchestrator.py,sha256=cUJIrrfanbmqgVcZB6-KNngOT4Mr_vmNGbLylBH9wmY,19777
57
+ fleet/agent/orchestrator.py,sha256=-rvDOSKNAeVDp8TbM8vqRExK60q4amnpZgKJ_VKnKKU,20064
58
58
  fleet/agent/types.py,sha256=v9EpttwyOBDwwMo0lABQmIvT3xlRQqfqLkHXJjsOmrw,1476
59
59
  fleet/agent/utils.py,sha256=VNhyIFwTKizl00ccqXdhh6s3DYZxPy55PMXgYhTLNX4,1171
60
60
  fleet/agent/gemini_cua/Dockerfile,sha256=uirE7L7JzmHpCTHTrIAsPg-LTdhlr78ajqqBJlrfTB4,1209
61
61
  fleet/agent/gemini_cua/__init__.py,sha256=EqjnPPhWWUI3Gk5FrWKfajVYPn_nlO6tTl_jPdeHSXU,205
62
- fleet/agent/gemini_cua/agent.py,sha256=vm8s0B6yg3gyeMmRn9lI1pBOIChUBBPtO6vtZFQBgQk,19844
62
+ fleet/agent/gemini_cua/agent.py,sha256=bBs9l-EII8reob1cl9aVRusBvNAybd4MVKliXLH2G78,20287
63
63
  fleet/agent/gemini_cua/mcp_server.py,sha256=_-LBmmnLp7krXrmGVHtX9ofFtRGUoeNhrLg5eshl3oI,7594
64
64
  fleet/agent/gemini_cua/playwright_utils.py,sha256=UZrlJJC5z3deQfvSAo03g-ajNkN52b333gBjqvQ6Qa0,15546
65
65
  fleet/agent/gemini_cua/requirements.txt,sha256=WJR0rfBCyDzeQg1ivLpKclVdpeFIlbaGZIErlGEr-IE,69
@@ -92,7 +92,7 @@ fleet/verifiers/decorator.py,sha256=RuTjjDijbicNfMSjA7HcTpKueEki5dzNOdTuHS7UoZs,
92
92
  fleet/verifiers/parse.py,sha256=qz9AfJrTbjlg-LU-lE8Ciqi7Yt2a8-cs17FdpjTLhMk,8550
93
93
  fleet/verifiers/sql_differ.py,sha256=TqTLWyK3uOyLbitT6HYzYEzuSFC39wcyhgk3rcm__k8,6525
94
94
  fleet/verifiers/verifier.py,sha256=iqGevW7dSd0J5RdRQjpu-zioy_FYAXnzMfkuB3-QmO0,14601
95
- fleet_python-0.2.85.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
95
+ fleet_python-0.2.87.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
96
96
  scripts/fix_sync_imports.py,sha256=X9fWLTpiPGkSHsjyQUDepOJkxOqw1DPj7nd8wFlFqLQ,8368
97
97
  scripts/unasync.py,sha256=vWVQxRWX8SRZO5cmzEhpvnG_REhCWXpidIGIpWmEcvI,696
98
98
  tests/__init__.py,sha256=Re1SdyxH8NfyL1kjhi7SQkGP1mYeWB-D6UALqdIMd8I,35
@@ -102,8 +102,8 @@ tests/test_instance_dispatch.py,sha256=CvU4C3LBIqsYZdEsEFfontGjyxAZfVYyXnGwxyIvX
102
102
  tests/test_sqlite_resource_dual_mode.py,sha256=Mh8jBd-xsIGDYFsOACKKK_5DXMUYlFFS7W-jaY6AjG4,8734
103
103
  tests/test_sqlite_shared_memory_behavior.py,sha256=fKx_1BmLS3b8x-9pMgjMycpnaHWY8P-2ZuXEspx6Sbw,4082
104
104
  tests/test_verifier_from_string.py,sha256=Lxi3TpFHFb-hG4-UhLKZJkqo84ax9YJY8G6beO-1erM,13581
105
- fleet_python-0.2.85.dist-info/METADATA,sha256=CuG2c-jrKzWdgrw6n0jL1XwGsryKpafXW9jNEpbFqXA,4166
106
- fleet_python-0.2.85.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
107
- fleet_python-0.2.85.dist-info/entry_points.txt,sha256=qKIQ326cHR5WyCd16QnrW-1DpcT0YyxVRDb3IlTyzTA,39
108
- fleet_python-0.2.85.dist-info/top_level.txt,sha256=qb1zIbtEktyhRFZdqVytwg54l64qtoZL0wjHB4bUg3c,29
109
- fleet_python-0.2.85.dist-info/RECORD,,
105
+ fleet_python-0.2.87.dist-info/METADATA,sha256=AZ__WElADbKOxivRyPQzaoGFsiUDNTbXHroX8w4jNqY,4238
106
+ fleet_python-0.2.87.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
107
+ fleet_python-0.2.87.dist-info/entry_points.txt,sha256=qKIQ326cHR5WyCd16QnrW-1DpcT0YyxVRDb3IlTyzTA,39
108
+ fleet_python-0.2.87.dist-info/top_level.txt,sha256=qb1zIbtEktyhRFZdqVytwg54l64qtoZL0wjHB4bUg3c,29
109
+ fleet_python-0.2.87.dist-info/RECORD,,