fleet-python 0.2.104__tar.gz → 0.2.105__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 (120) hide show
  1. {fleet_python-0.2.104/fleet_python.egg-info → fleet_python-0.2.105}/PKG-INFO +1 -1
  2. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/client.py +15 -1
  3. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/models.py +11 -0
  4. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/tasks.py +21 -2
  5. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/client.py +15 -1
  6. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/models.py +13 -0
  7. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/tasks.py +21 -2
  8. {fleet_python-0.2.104 → fleet_python-0.2.105/fleet_python.egg-info}/PKG-INFO +1 -1
  9. {fleet_python-0.2.104 → fleet_python-0.2.105}/pyproject.toml +1 -1
  10. {fleet_python-0.2.104 → fleet_python-0.2.105}/LICENSE +0 -0
  11. {fleet_python-0.2.104 → fleet_python-0.2.105}/README.md +0 -0
  12. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/diff_example.py +0 -0
  13. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/dsl_example.py +0 -0
  14. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example.py +0 -0
  15. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/exampleResume.py +0 -0
  16. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_account.py +0 -0
  17. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_action_log.py +0 -0
  18. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_client.py +0 -0
  19. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_mcp_anthropic.py +0 -0
  20. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_mcp_openai.py +0 -0
  21. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_sync.py +0 -0
  22. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_task.py +0 -0
  23. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_tasks.py +0 -0
  24. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/example_verifier.py +0 -0
  25. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/export_tasks.py +0 -0
  26. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/export_tasks_filtered.py +0 -0
  27. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/fetch_tasks.py +0 -0
  28. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/gemini_example.py +0 -0
  29. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/import_tasks.py +0 -0
  30. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/iterate_verifiers.py +0 -0
  31. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/json_tasks_example.py +0 -0
  32. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/nova_act_example.py +0 -0
  33. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/openai_example.py +0 -0
  34. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/openai_simple_example.py +0 -0
  35. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/query_builder_example.py +0 -0
  36. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/quickstart.py +0 -0
  37. {fleet_python-0.2.104 → fleet_python-0.2.105}/examples/test_cdp_logging.py +0 -0
  38. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/__init__.py +0 -0
  39. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/__init__.py +0 -0
  40. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/base.py +0 -0
  41. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/env/__init__.py +0 -0
  42. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/env/client.py +0 -0
  43. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/exceptions.py +0 -0
  44. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/global_client.py +0 -0
  45. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/instance/__init__.py +0 -0
  46. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/instance/base.py +0 -0
  47. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/instance/client.py +0 -0
  48. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/__init__.py +0 -0
  49. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/api.py +0 -0
  50. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/base.py +0 -0
  51. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/browser.py +0 -0
  52. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/mcp.py +0 -0
  53. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/resources/sqlite.py +0 -0
  54. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/verifiers/__init__.py +0 -0
  55. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/verifiers/bundler.py +0 -0
  56. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/_async/verifiers/verifier.py +0 -0
  57. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/__init__.py +0 -0
  58. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/Dockerfile +0 -0
  59. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/__init__.py +0 -0
  60. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/agent.py +0 -0
  61. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/mcp/main.py +0 -0
  62. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/mcp_server/__init__.py +0 -0
  63. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/mcp_server/main.py +0 -0
  64. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/mcp_server/tools.py +0 -0
  65. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/requirements.txt +0 -0
  66. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/gemini_cua/start.sh +0 -0
  67. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/orchestrator.py +0 -0
  68. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/types.py +0 -0
  69. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/agent/utils.py +0 -0
  70. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/base.py +0 -0
  71. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/cli.py +0 -0
  72. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/config.py +0 -0
  73. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/env/__init__.py +0 -0
  74. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/env/client.py +0 -0
  75. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/eval/__init__.py +0 -0
  76. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/eval/uploader.py +0 -0
  77. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/exceptions.py +0 -0
  78. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/global_client.py +0 -0
  79. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/instance/__init__.py +0 -0
  80. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/instance/base.py +0 -0
  81. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/instance/client.py +0 -0
  82. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/instance/models.py +0 -0
  83. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/proxy/__init__.py +0 -0
  84. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/proxy/proxy.py +0 -0
  85. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/proxy/whitelist.py +0 -0
  86. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/__init__.py +0 -0
  87. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/api.py +0 -0
  88. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/base.py +0 -0
  89. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/browser.py +0 -0
  90. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/mcp.py +0 -0
  91. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/resources/sqlite.py +0 -0
  92. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/types.py +0 -0
  93. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/utils/__init__.py +0 -0
  94. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/utils/http_logging.py +0 -0
  95. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/utils/logging.py +0 -0
  96. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/utils/playwright.py +0 -0
  97. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/__init__.py +0 -0
  98. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/bundler.py +0 -0
  99. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/code.py +0 -0
  100. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/db.py +0 -0
  101. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/decorator.py +0 -0
  102. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/parse.py +0 -0
  103. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/sql_differ.py +0 -0
  104. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet/verifiers/verifier.py +0 -0
  105. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet_python.egg-info/SOURCES.txt +0 -0
  106. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet_python.egg-info/dependency_links.txt +0 -0
  107. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet_python.egg-info/entry_points.txt +0 -0
  108. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet_python.egg-info/requires.txt +0 -0
  109. {fleet_python-0.2.104 → fleet_python-0.2.105}/fleet_python.egg-info/top_level.txt +0 -0
  110. {fleet_python-0.2.104 → fleet_python-0.2.105}/scripts/fix_sync_imports.py +0 -0
  111. {fleet_python-0.2.104 → fleet_python-0.2.105}/scripts/unasync.py +0 -0
  112. {fleet_python-0.2.104 → fleet_python-0.2.105}/setup.cfg +0 -0
  113. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/__init__.py +0 -0
  114. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_app_method.py +0 -0
  115. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_expect_exactly.py +0 -0
  116. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_expect_only.py +0 -0
  117. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_instance_dispatch.py +0 -0
  118. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_sqlite_resource_dual_mode.py +0 -0
  119. {fleet_python-0.2.104 → fleet_python-0.2.105}/tests/test_sqlite_shared_memory_behavior.py +0 -0
  120. {fleet_python-0.2.104 → fleet_python-0.2.105}/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.104
3
+ Version: 0.2.105
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -941,6 +941,8 @@ class AsyncFleet:
941
941
  verifier_sha=verifier_sha, # Set verifier_sha
942
942
  verifier_runtime_version=verifier_runtime_version, # Set verifier_runtime_version
943
943
  metadata=task_json.get("metadata", {}), # Default empty metadata
944
+ writer_metadata=task_json.get("writer_metadata"), # Writer metadata
945
+ qa_metadata=task_json.get("qa_metadata"), # QA metadata
944
946
  output_json_schema=task_json.get("output_json_schema"), # JSON schema for output
945
947
  )
946
948
  return task
@@ -1115,6 +1117,8 @@ class AsyncFleet:
1115
1117
  verifier_sha=verifier_sha, # Set verifier_sha
1116
1118
  verifier_runtime_version=verifier_runtime_version, # Set verifier_runtime_version
1117
1119
  metadata=metadata,
1120
+ writer_metadata=getattr(task_response, "writer_metadata", None), # Writer metadata
1121
+ qa_metadata=getattr(task_response, "qa_metadata", None), # QA metadata
1118
1122
  output_json_schema=getattr(task_response, "output_json_schema", None), # Get output_json_schema if available
1119
1123
  )
1120
1124
  tasks.append(task)
@@ -1270,6 +1274,8 @@ class AsyncFleet:
1270
1274
  prompt: Optional[str] = None,
1271
1275
  verifier_code: Optional[str] = None,
1272
1276
  metadata: Optional[Dict[str, Any]] = None,
1277
+ writer_metadata: Optional[Dict[str, Any]] = None,
1278
+ qa_metadata: Optional[Dict[str, Any]] = None,
1273
1279
  ) -> TaskResponse:
1274
1280
  """Update an existing task.
1275
1281
 
@@ -1278,11 +1284,19 @@ class AsyncFleet:
1278
1284
  prompt: New prompt text for the task (optional)
1279
1285
  verifier_code: Python code for task verification (optional)
1280
1286
  metadata: Additional metadata for the task (optional)
1287
+ writer_metadata: Metadata filled by task writer (optional)
1288
+ qa_metadata: Metadata filled by QA reviewer (optional)
1281
1289
 
1282
1290
  Returns:
1283
1291
  TaskResponse containing the updated task details
1284
1292
  """
1285
- payload = TaskUpdateRequest(prompt=prompt, verifier_code=verifier_code, metadata=metadata)
1293
+ payload = TaskUpdateRequest(
1294
+ prompt=prompt,
1295
+ verifier_code=verifier_code,
1296
+ metadata=metadata,
1297
+ writer_metadata=writer_metadata,
1298
+ qa_metadata=qa_metadata,
1299
+ )
1286
1300
  response = await self.client.request(
1287
1301
  "PUT", f"/v1/tasks/{task_key}", json=payload.model_dump(exclude_none=True)
1288
1302
  )
@@ -157,6 +157,9 @@ class TaskRequest(BaseModel):
157
157
  version: Optional[str] = Field(None, title="Version")
158
158
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
159
159
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
160
+ writer_metadata: Optional[Dict[str, Any]] = Field(
161
+ None, title="Writer Metadata", description="Metadata filled by task writer"
162
+ )
160
163
  output_json_schema: Optional[Dict[str, Any]] = Field(None, title="Output Json Schema")
161
164
 
162
165
 
@@ -164,6 +167,12 @@ class TaskUpdateRequest(BaseModel):
164
167
  prompt: Optional[str] = Field(None, title="Prompt")
165
168
  verifier_code: Optional[str] = Field(None, title="Verifier Code")
166
169
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
170
+ writer_metadata: Optional[Dict[str, Any]] = Field(
171
+ None, title="Writer Metadata", description="Metadata filled by task writer"
172
+ )
173
+ qa_metadata: Optional[Dict[str, Any]] = Field(
174
+ None, title="QA Metadata", description="Metadata filled by QA reviewer"
175
+ )
167
176
 
168
177
 
169
178
  class VerifierData(BaseModel):
@@ -190,6 +199,8 @@ class TaskResponse(BaseModel):
190
199
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
191
200
  verifier: Optional[VerifierData] = Field(None, title="Verifier")
192
201
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
202
+ writer_metadata: Optional[Dict[str, Any]] = Field(None, title="Writer Metadata")
203
+ qa_metadata: Optional[Dict[str, Any]] = Field(None, title="QA Metadata")
193
204
  output_json_schema: Optional[Dict[str, Any]] = Field(None, title="Output Json Schema")
194
205
 
195
206
 
@@ -38,6 +38,12 @@ class Task(BaseModel):
38
38
  metadata: Optional[Dict[str, Any]] = Field(
39
39
  default_factory=dict, description="Additional task metadata"
40
40
  )
41
+ writer_metadata: Optional[Dict[str, Any]] = Field(
42
+ None, description="Metadata filled by task writer"
43
+ )
44
+ qa_metadata: Optional[Dict[str, Any]] = Field(
45
+ None, description="Metadata filled by QA reviewer"
46
+ )
41
47
  output_json_schema: Optional[Dict[str, Any]] = Field(
42
48
  None, description="JSON schema for expected output format"
43
49
  )
@@ -456,7 +462,12 @@ async def load_tasks(
456
462
 
457
463
 
458
464
  async def update_task(
459
- task_key: str, prompt: Optional[str] = None, verifier_code: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None
465
+ task_key: str,
466
+ prompt: Optional[str] = None,
467
+ verifier_code: Optional[str] = None,
468
+ metadata: Optional[Dict[str, Any]] = None,
469
+ writer_metadata: Optional[Dict[str, Any]] = None,
470
+ qa_metadata: Optional[Dict[str, Any]] = None,
460
471
  ):
461
472
  """Convenience function to update an existing task.
462
473
 
@@ -465,6 +476,8 @@ async def update_task(
465
476
  prompt: New prompt text for the task (optional)
466
477
  verifier_code: Python code for task verification (optional)
467
478
  metadata: Additional metadata for the task (optional)
479
+ writer_metadata: Metadata filled by task writer (optional)
480
+ qa_metadata: Metadata filled by QA reviewer (optional)
468
481
 
469
482
  Returns:
470
483
  TaskResponse containing the updated task details
@@ -473,12 +486,18 @@ async def update_task(
473
486
  response = await fleet.update_task("my-task", prompt="New prompt text")
474
487
  response = await fleet.update_task("my-task", verifier_code="def verify(env): return True")
475
488
  response = await fleet.update_task("my-task", metadata={"seed": 42, "story": "Updated story"})
489
+ response = await fleet.update_task("my-task", writer_metadata={"author": "john"})
476
490
  """
477
491
  from .global_client import get_client
478
492
 
479
493
  client = get_client()
480
494
  return await client.update_task(
481
- task_key=task_key, prompt=prompt, verifier_code=verifier_code, metadata=metadata
495
+ task_key=task_key,
496
+ prompt=prompt,
497
+ verifier_code=verifier_code,
498
+ metadata=metadata,
499
+ writer_metadata=writer_metadata,
500
+ qa_metadata=qa_metadata,
482
501
  )
483
502
 
484
503
 
@@ -953,6 +953,8 @@ class Fleet:
953
953
  verifier_sha=verifier_sha, # Set verifier_sha
954
954
  verifier_runtime_version=verifier_runtime_version, # Set verifier_runtime_version
955
955
  metadata=task_json.get("metadata", {}), # Default empty metadata
956
+ writer_metadata=task_json.get("writer_metadata"), # Writer metadata
957
+ qa_metadata=task_json.get("qa_metadata"), # QA metadata
956
958
  output_json_schema=task_json.get("output_json_schema"), # JSON schema for output
957
959
  )
958
960
  return task
@@ -1134,6 +1136,8 @@ class Fleet:
1134
1136
  verifier_sha=verifier_sha, # Set verifier_sha
1135
1137
  verifier_runtime_version=verifier_runtime_version, # Set verifier_runtime_version
1136
1138
  metadata=metadata,
1139
+ writer_metadata=getattr(task_response, "writer_metadata", None), # Writer metadata
1140
+ qa_metadata=getattr(task_response, "qa_metadata", None), # QA metadata
1137
1141
  output_json_schema=getattr(task_response, "output_json_schema", None), # Get output_json_schema if available
1138
1142
  )
1139
1143
  tasks.append(task)
@@ -1281,6 +1285,8 @@ class Fleet:
1281
1285
  prompt: Optional[str] = None,
1282
1286
  verifier_code: Optional[str] = None,
1283
1287
  metadata: Optional[Dict[str, Any]] = None,
1288
+ writer_metadata: Optional[Dict[str, Any]] = None,
1289
+ qa_metadata: Optional[Dict[str, Any]] = None,
1284
1290
  ) -> TaskResponse:
1285
1291
  """Update an existing task.
1286
1292
 
@@ -1289,11 +1295,19 @@ class Fleet:
1289
1295
  prompt: New prompt text for the task (optional)
1290
1296
  verifier_code: Python code for task verification (optional)
1291
1297
  metadata: Additional metadata for the task (optional)
1298
+ writer_metadata: Metadata filled by task writer (optional)
1299
+ qa_metadata: Metadata filled by QA reviewer (optional)
1292
1300
 
1293
1301
  Returns:
1294
1302
  TaskResponse containing the updated task details
1295
1303
  """
1296
- payload = TaskUpdateRequest(prompt=prompt, verifier_code=verifier_code, metadata=metadata)
1304
+ payload = TaskUpdateRequest(
1305
+ prompt=prompt,
1306
+ verifier_code=verifier_code,
1307
+ metadata=metadata,
1308
+ writer_metadata=writer_metadata,
1309
+ qa_metadata=qa_metadata,
1310
+ )
1297
1311
  response = self.client.request(
1298
1312
  "PUT", f"/v1/tasks/{task_key}", json=payload.model_dump(exclude_none=True)
1299
1313
  )
@@ -161,6 +161,9 @@ class TaskRequest(BaseModel):
161
161
  version: Optional[str] = Field(None, title="Version")
162
162
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
163
163
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
164
+ writer_metadata: Optional[Dict[str, Any]] = Field(
165
+ None, title="Writer Metadata", description="Metadata filled by task writer"
166
+ )
164
167
  output_json_schema: Optional[Dict[str, Any]] = Field(
165
168
  None, title="Output Json Schema"
166
169
  )
@@ -170,6 +173,12 @@ class TaskUpdateRequest(BaseModel):
170
173
  prompt: Optional[str] = Field(None, title="Prompt")
171
174
  verifier_code: Optional[str] = Field(None, title="Verifier Code")
172
175
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
176
+ writer_metadata: Optional[Dict[str, Any]] = Field(
177
+ None, title="Writer Metadata", description="Metadata filled by task writer"
178
+ )
179
+ qa_metadata: Optional[Dict[str, Any]] = Field(
180
+ None, title="QA Metadata", description="Metadata filled by QA reviewer"
181
+ )
173
182
 
174
183
 
175
184
  class VerifierData(BaseModel):
@@ -196,6 +205,8 @@ class TaskResponse(BaseModel):
196
205
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
197
206
  verifier: Optional[VerifierData] = Field(None, title="Verifier")
198
207
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
208
+ writer_metadata: Optional[Dict[str, Any]] = Field(None, title="Writer Metadata")
209
+ qa_metadata: Optional[Dict[str, Any]] = Field(None, title="QA Metadata")
199
210
  output_json_schema: Optional[Dict[str, Any]] = Field(
200
211
  None, title="Output Json Schema"
201
212
  )
@@ -500,6 +511,8 @@ class TaskInfo(BaseModel):
500
511
  verifier_func: Optional[str] = Field(None, title="Verifier Func")
501
512
  verifier_id: Optional[str] = Field(None, title="Verifier Id")
502
513
  metadata: Optional[Dict[str, Any]] = Field(None, title="Metadata")
514
+ writer_metadata: Optional[Dict[str, Any]] = Field(None, title="Writer Metadata")
515
+ qa_metadata: Optional[Dict[str, Any]] = Field(None, title="QA Metadata")
503
516
 
504
517
 
505
518
  class TaskSessionGroup(BaseModel):
@@ -40,6 +40,12 @@ class Task(BaseModel):
40
40
  metadata: Optional[Dict[str, Any]] = Field(
41
41
  default_factory=dict, description="Additional task metadata"
42
42
  )
43
+ writer_metadata: Optional[Dict[str, Any]] = Field(
44
+ None, description="Metadata filled by task writer"
45
+ )
46
+ qa_metadata: Optional[Dict[str, Any]] = Field(
47
+ None, description="Metadata filled by QA reviewer"
48
+ )
43
49
  output_json_schema: Optional[Dict[str, Any]] = Field(
44
50
  None, description="JSON schema for expected output format"
45
51
  )
@@ -457,7 +463,12 @@ def load_tasks(
457
463
 
458
464
 
459
465
  def update_task(
460
- task_key: str, prompt: Optional[str] = None, verifier_code: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None
466
+ task_key: str,
467
+ prompt: Optional[str] = None,
468
+ verifier_code: Optional[str] = None,
469
+ metadata: Optional[Dict[str, Any]] = None,
470
+ writer_metadata: Optional[Dict[str, Any]] = None,
471
+ qa_metadata: Optional[Dict[str, Any]] = None,
461
472
  ):
462
473
  """Convenience function to update an existing task.
463
474
 
@@ -466,6 +477,8 @@ def update_task(
466
477
  prompt: New prompt text for the task (optional)
467
478
  verifier_code: Python code for task verification (optional)
468
479
  metadata: Additional metadata for the task (optional)
480
+ writer_metadata: Metadata filled by task writer (optional)
481
+ qa_metadata: Metadata filled by QA reviewer (optional)
469
482
 
470
483
  Returns:
471
484
  TaskResponse containing the updated task details
@@ -474,12 +487,18 @@ def update_task(
474
487
  response = fleet.update_task("my-task", prompt="New prompt text")
475
488
  response = fleet.update_task("my-task", verifier_code="def verify(env): return True")
476
489
  response = fleet.update_task("my-task", metadata={"seed": 42, "story": "Updated story"})
490
+ response = fleet.update_task("my-task", writer_metadata={"author": "john"})
477
491
  """
478
492
  from .global_client import get_client
479
493
 
480
494
  client = get_client()
481
495
  return client.update_task(
482
- task_key=task_key, prompt=prompt, verifier_code=verifier_code, metadata=metadata
496
+ task_key=task_key,
497
+ prompt=prompt,
498
+ verifier_code=verifier_code,
499
+ metadata=metadata,
500
+ writer_metadata=writer_metadata,
501
+ qa_metadata=qa_metadata,
483
502
  )
484
503
 
485
504
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.104
3
+ Version: 0.2.105
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.104"
8
+ version = "0.2.105"
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