sondera-harness 0.6.0__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.
Files changed (77) hide show
  1. sondera/__init__.py +111 -0
  2. sondera/__main__.py +4 -0
  3. sondera/adk/__init__.py +3 -0
  4. sondera/adk/analyze.py +222 -0
  5. sondera/adk/plugin.py +387 -0
  6. sondera/cli.py +22 -0
  7. sondera/exceptions.py +167 -0
  8. sondera/harness/__init__.py +6 -0
  9. sondera/harness/abc.py +102 -0
  10. sondera/harness/cedar/__init__.py +0 -0
  11. sondera/harness/cedar/harness.py +363 -0
  12. sondera/harness/cedar/schema.py +225 -0
  13. sondera/harness/sondera/__init__.py +0 -0
  14. sondera/harness/sondera/_grpc.py +354 -0
  15. sondera/harness/sondera/harness.py +890 -0
  16. sondera/langgraph/__init__.py +15 -0
  17. sondera/langgraph/analyze.py +543 -0
  18. sondera/langgraph/exceptions.py +19 -0
  19. sondera/langgraph/graph.py +210 -0
  20. sondera/langgraph/middleware.py +454 -0
  21. sondera/proto/google/protobuf/any_pb2.py +37 -0
  22. sondera/proto/google/protobuf/any_pb2.pyi +14 -0
  23. sondera/proto/google/protobuf/any_pb2_grpc.py +24 -0
  24. sondera/proto/google/protobuf/duration_pb2.py +37 -0
  25. sondera/proto/google/protobuf/duration_pb2.pyi +14 -0
  26. sondera/proto/google/protobuf/duration_pb2_grpc.py +24 -0
  27. sondera/proto/google/protobuf/empty_pb2.py +37 -0
  28. sondera/proto/google/protobuf/empty_pb2.pyi +9 -0
  29. sondera/proto/google/protobuf/empty_pb2_grpc.py +24 -0
  30. sondera/proto/google/protobuf/struct_pb2.py +47 -0
  31. sondera/proto/google/protobuf/struct_pb2.pyi +49 -0
  32. sondera/proto/google/protobuf/struct_pb2_grpc.py +24 -0
  33. sondera/proto/google/protobuf/timestamp_pb2.py +37 -0
  34. sondera/proto/google/protobuf/timestamp_pb2.pyi +14 -0
  35. sondera/proto/google/protobuf/timestamp_pb2_grpc.py +24 -0
  36. sondera/proto/google/protobuf/wrappers_pb2.py +53 -0
  37. sondera/proto/google/protobuf/wrappers_pb2.pyi +59 -0
  38. sondera/proto/google/protobuf/wrappers_pb2_grpc.py +24 -0
  39. sondera/proto/sondera/__init__.py +0 -0
  40. sondera/proto/sondera/core/__init__.py +0 -0
  41. sondera/proto/sondera/core/v1/__init__.py +0 -0
  42. sondera/proto/sondera/core/v1/primitives_pb2.py +88 -0
  43. sondera/proto/sondera/core/v1/primitives_pb2.pyi +259 -0
  44. sondera/proto/sondera/core/v1/primitives_pb2_grpc.py +24 -0
  45. sondera/proto/sondera/harness/__init__.py +0 -0
  46. sondera/proto/sondera/harness/v1/__init__.py +0 -0
  47. sondera/proto/sondera/harness/v1/harness_pb2.py +81 -0
  48. sondera/proto/sondera/harness/v1/harness_pb2.pyi +192 -0
  49. sondera/proto/sondera/harness/v1/harness_pb2_grpc.py +498 -0
  50. sondera/py.typed +0 -0
  51. sondera/settings.py +20 -0
  52. sondera/strands/__init__.py +5 -0
  53. sondera/strands/analyze.py +244 -0
  54. sondera/strands/harness.py +333 -0
  55. sondera/tui/__init__.py +0 -0
  56. sondera/tui/app.py +309 -0
  57. sondera/tui/screens/__init__.py +5 -0
  58. sondera/tui/screens/adjudication.py +184 -0
  59. sondera/tui/screens/agent.py +158 -0
  60. sondera/tui/screens/trajectory.py +158 -0
  61. sondera/tui/widgets/__init__.py +23 -0
  62. sondera/tui/widgets/agent_card.py +94 -0
  63. sondera/tui/widgets/agent_list.py +73 -0
  64. sondera/tui/widgets/recent_adjudications.py +52 -0
  65. sondera/tui/widgets/recent_trajectories.py +54 -0
  66. sondera/tui/widgets/summary.py +57 -0
  67. sondera/tui/widgets/tool_card.py +33 -0
  68. sondera/tui/widgets/violation_panel.py +72 -0
  69. sondera/tui/widgets/violations_list.py +78 -0
  70. sondera/tui/widgets/violations_summary.py +104 -0
  71. sondera/types.py +346 -0
  72. sondera_harness-0.6.0.dist-info/METADATA +323 -0
  73. sondera_harness-0.6.0.dist-info/RECORD +77 -0
  74. sondera_harness-0.6.0.dist-info/WHEEL +5 -0
  75. sondera_harness-0.6.0.dist-info/entry_points.txt +2 -0
  76. sondera_harness-0.6.0.dist-info/licenses/LICENSE +21 -0
  77. sondera_harness-0.6.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,259 @@
1
+ import datetime
2
+
3
+ from google.protobuf import struct_pb2 as _struct_pb2
4
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
+ from google.protobuf.internal import containers as _containers
6
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import message as _message
9
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
10
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
11
+
12
+ DESCRIPTOR: _descriptor.FileDescriptor
13
+
14
+ class TrajectoryStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
15
+ __slots__ = ()
16
+ TRAJECTORY_STATUS_UNSPECIFIED: _ClassVar[TrajectoryStatus]
17
+ TRAJECTORY_STATUS_PENDING: _ClassVar[TrajectoryStatus]
18
+ TRAJECTORY_STATUS_RUNNING: _ClassVar[TrajectoryStatus]
19
+ TRAJECTORY_STATUS_COMPLETED: _ClassVar[TrajectoryStatus]
20
+ TRAJECTORY_STATUS_SUSPENDED: _ClassVar[TrajectoryStatus]
21
+ TRAJECTORY_STATUS_FAILED: _ClassVar[TrajectoryStatus]
22
+
23
+ class Stage(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
24
+ __slots__ = ()
25
+ STAGE_UNSPECIFIED: _ClassVar[Stage]
26
+ STAGE_PRE_RUN: _ClassVar[Stage]
27
+ STAGE_PRE_MODEL: _ClassVar[Stage]
28
+ STAGE_POST_MODEL: _ClassVar[Stage]
29
+ STAGE_PRE_TOOL: _ClassVar[Stage]
30
+ STAGE_POST_TOOL: _ClassVar[Stage]
31
+ STAGE_POST_RUN: _ClassVar[Stage]
32
+
33
+ class Role(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
34
+ __slots__ = ()
35
+ ROLE_UNSPECIFIED: _ClassVar[Role]
36
+ ROLE_USER: _ClassVar[Role]
37
+ ROLE_MODEL: _ClassVar[Role]
38
+ ROLE_TOOL: _ClassVar[Role]
39
+ ROLE_SYSTEM: _ClassVar[Role]
40
+
41
+ class Decision(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
42
+ __slots__ = ()
43
+ DECISION_UNSPECIFIED: _ClassVar[Decision]
44
+ DECISION_ALLOW: _ClassVar[Decision]
45
+ DECISION_DENY: _ClassVar[Decision]
46
+ DECISION_ESCALATE: _ClassVar[Decision]
47
+ TRAJECTORY_STATUS_UNSPECIFIED: TrajectoryStatus
48
+ TRAJECTORY_STATUS_PENDING: TrajectoryStatus
49
+ TRAJECTORY_STATUS_RUNNING: TrajectoryStatus
50
+ TRAJECTORY_STATUS_COMPLETED: TrajectoryStatus
51
+ TRAJECTORY_STATUS_SUSPENDED: TrajectoryStatus
52
+ TRAJECTORY_STATUS_FAILED: TrajectoryStatus
53
+ STAGE_UNSPECIFIED: Stage
54
+ STAGE_PRE_RUN: Stage
55
+ STAGE_PRE_MODEL: Stage
56
+ STAGE_POST_MODEL: Stage
57
+ STAGE_PRE_TOOL: Stage
58
+ STAGE_POST_TOOL: Stage
59
+ STAGE_POST_RUN: Stage
60
+ ROLE_UNSPECIFIED: Role
61
+ ROLE_USER: Role
62
+ ROLE_MODEL: Role
63
+ ROLE_TOOL: Role
64
+ ROLE_SYSTEM: Role
65
+ DECISION_UNSPECIFIED: Decision
66
+ DECISION_ALLOW: Decision
67
+ DECISION_DENY: Decision
68
+ DECISION_ESCALATE: Decision
69
+
70
+ class SourceCode(_message.Message):
71
+ __slots__ = ("language", "code")
72
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
73
+ CODE_FIELD_NUMBER: _ClassVar[int]
74
+ language: str
75
+ code: str
76
+ def __init__(self, language: _Optional[str] = ..., code: _Optional[str] = ...) -> None: ...
77
+
78
+ class Parameter(_message.Message):
79
+ __slots__ = ("name", "description", "type")
80
+ NAME_FIELD_NUMBER: _ClassVar[int]
81
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
82
+ TYPE_FIELD_NUMBER: _ClassVar[int]
83
+ name: str
84
+ description: str
85
+ type: str
86
+ def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., type: _Optional[str] = ...) -> None: ...
87
+
88
+ class Tool(_message.Message):
89
+ __slots__ = ("name", "description", "parameters", "response", "source")
90
+ NAME_FIELD_NUMBER: _ClassVar[int]
91
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
92
+ PARAMETERS_FIELD_NUMBER: _ClassVar[int]
93
+ RESPONSE_FIELD_NUMBER: _ClassVar[int]
94
+ SOURCE_FIELD_NUMBER: _ClassVar[int]
95
+ name: str
96
+ description: str
97
+ parameters: _containers.RepeatedCompositeFieldContainer[Parameter]
98
+ response: str
99
+ source: SourceCode
100
+ def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., parameters: _Optional[_Iterable[_Union[Parameter, _Mapping]]] = ..., response: _Optional[str] = ..., source: _Optional[_Union[SourceCode, _Mapping]] = ...) -> None: ...
101
+
102
+ class Agent(_message.Message):
103
+ __slots__ = ("id", "provider_id", "name", "description", "instruction", "tools")
104
+ ID_FIELD_NUMBER: _ClassVar[int]
105
+ PROVIDER_ID_FIELD_NUMBER: _ClassVar[int]
106
+ NAME_FIELD_NUMBER: _ClassVar[int]
107
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
108
+ INSTRUCTION_FIELD_NUMBER: _ClassVar[int]
109
+ TOOLS_FIELD_NUMBER: _ClassVar[int]
110
+ id: str
111
+ provider_id: str
112
+ name: str
113
+ description: str
114
+ instruction: str
115
+ tools: _containers.RepeatedCompositeFieldContainer[Tool]
116
+ def __init__(self, id: _Optional[str] = ..., provider_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., instruction: _Optional[str] = ..., tools: _Optional[_Iterable[_Union[Tool, _Mapping]]] = ...) -> None: ...
117
+
118
+ class Prompt(_message.Message):
119
+ __slots__ = ("text",)
120
+ TEXT_FIELD_NUMBER: _ClassVar[int]
121
+ text: str
122
+ def __init__(self, text: _Optional[str] = ...) -> None: ...
123
+
124
+ class ToolRequest(_message.Message):
125
+ __slots__ = ("tool_id", "args")
126
+ TOOL_ID_FIELD_NUMBER: _ClassVar[int]
127
+ ARGS_FIELD_NUMBER: _ClassVar[int]
128
+ tool_id: str
129
+ args: _struct_pb2.Value
130
+ def __init__(self, tool_id: _Optional[str] = ..., args: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ...
131
+
132
+ class ToolResponse(_message.Message):
133
+ __slots__ = ("tool_id", "response")
134
+ TOOL_ID_FIELD_NUMBER: _ClassVar[int]
135
+ RESPONSE_FIELD_NUMBER: _ClassVar[int]
136
+ tool_id: str
137
+ response: _struct_pb2.Value
138
+ def __init__(self, tool_id: _Optional[str] = ..., response: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ...
139
+
140
+ class Content(_message.Message):
141
+ __slots__ = ("prompt", "tool_request", "tool_response")
142
+ PROMPT_FIELD_NUMBER: _ClassVar[int]
143
+ TOOL_REQUEST_FIELD_NUMBER: _ClassVar[int]
144
+ TOOL_RESPONSE_FIELD_NUMBER: _ClassVar[int]
145
+ prompt: Prompt
146
+ tool_request: ToolRequest
147
+ tool_response: ToolResponse
148
+ def __init__(self, prompt: _Optional[_Union[Prompt, _Mapping]] = ..., tool_request: _Optional[_Union[ToolRequest, _Mapping]] = ..., tool_response: _Optional[_Union[ToolResponse, _Mapping]] = ...) -> None: ...
149
+
150
+ class TrajectoryStep(_message.Message):
151
+ __slots__ = ("stage", "role", "created_at", "content")
152
+ STAGE_FIELD_NUMBER: _ClassVar[int]
153
+ ROLE_FIELD_NUMBER: _ClassVar[int]
154
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
155
+ CONTENT_FIELD_NUMBER: _ClassVar[int]
156
+ stage: Stage
157
+ role: Role
158
+ created_at: _timestamp_pb2.Timestamp
159
+ content: Content
160
+ def __init__(self, stage: _Optional[_Union[Stage, str]] = ..., role: _Optional[_Union[Role, str]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., content: _Optional[_Union[Content, _Mapping]] = ...) -> None: ...
161
+
162
+ class Trajectory(_message.Message):
163
+ __slots__ = ("id", "agent_id", "status", "metadata", "created_at", "updated_at", "started_at", "ended_at", "steps")
164
+ class MetadataEntry(_message.Message):
165
+ __slots__ = ("key", "value")
166
+ KEY_FIELD_NUMBER: _ClassVar[int]
167
+ VALUE_FIELD_NUMBER: _ClassVar[int]
168
+ key: str
169
+ value: _struct_pb2.Value
170
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ...
171
+ ID_FIELD_NUMBER: _ClassVar[int]
172
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
173
+ STATUS_FIELD_NUMBER: _ClassVar[int]
174
+ METADATA_FIELD_NUMBER: _ClassVar[int]
175
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
176
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
177
+ STARTED_AT_FIELD_NUMBER: _ClassVar[int]
178
+ ENDED_AT_FIELD_NUMBER: _ClassVar[int]
179
+ STEPS_FIELD_NUMBER: _ClassVar[int]
180
+ id: str
181
+ agent_id: str
182
+ status: TrajectoryStatus
183
+ metadata: _containers.MessageMap[str, _struct_pb2.Value]
184
+ created_at: _timestamp_pb2.Timestamp
185
+ updated_at: _timestamp_pb2.Timestamp
186
+ started_at: _timestamp_pb2.Timestamp
187
+ ended_at: _timestamp_pb2.Timestamp
188
+ steps: _containers.RepeatedCompositeFieldContainer[TrajectoryStep]
189
+ def __init__(self, id: _Optional[str] = ..., agent_id: _Optional[str] = ..., status: _Optional[_Union[TrajectoryStatus, str]] = ..., metadata: _Optional[_Mapping[str, _struct_pb2.Value]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., started_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., ended_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., steps: _Optional[_Iterable[_Union[TrajectoryStep, _Mapping]]] = ...) -> None: ...
190
+
191
+ class Check(_message.Message):
192
+ __slots__ = ("name", "flagged", "message")
193
+ NAME_FIELD_NUMBER: _ClassVar[int]
194
+ FLAGGED_FIELD_NUMBER: _ClassVar[int]
195
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
196
+ name: str
197
+ flagged: bool
198
+ message: str
199
+ def __init__(self, name: _Optional[str] = ..., flagged: bool = ..., message: _Optional[str] = ...) -> None: ...
200
+
201
+ class GuardrailContext(_message.Message):
202
+ __slots__ = ("checks",)
203
+ class ChecksEntry(_message.Message):
204
+ __slots__ = ("key", "value")
205
+ KEY_FIELD_NUMBER: _ClassVar[int]
206
+ VALUE_FIELD_NUMBER: _ClassVar[int]
207
+ key: str
208
+ value: Check
209
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Check, _Mapping]] = ...) -> None: ...
210
+ CHECKS_FIELD_NUMBER: _ClassVar[int]
211
+ checks: _containers.MessageMap[str, Check]
212
+ def __init__(self, checks: _Optional[_Mapping[str, Check]] = ...) -> None: ...
213
+
214
+ class PolicyAnnotations(_message.Message):
215
+ __slots__ = ("id", "description", "custom")
216
+ class CustomEntry(_message.Message):
217
+ __slots__ = ("key", "value")
218
+ KEY_FIELD_NUMBER: _ClassVar[int]
219
+ VALUE_FIELD_NUMBER: _ClassVar[int]
220
+ key: str
221
+ value: str
222
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
223
+ ID_FIELD_NUMBER: _ClassVar[int]
224
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
225
+ CUSTOM_FIELD_NUMBER: _ClassVar[int]
226
+ id: str
227
+ description: str
228
+ custom: _containers.ScalarMap[str, str]
229
+ def __init__(self, id: _Optional[str] = ..., description: _Optional[str] = ..., custom: _Optional[_Mapping[str, str]] = ...) -> None: ...
230
+
231
+ class Adjudication(_message.Message):
232
+ __slots__ = ("decision", "reason", "policy_ids", "annotations")
233
+ DECISION_FIELD_NUMBER: _ClassVar[int]
234
+ REASON_FIELD_NUMBER: _ClassVar[int]
235
+ POLICY_IDS_FIELD_NUMBER: _ClassVar[int]
236
+ ANNOTATIONS_FIELD_NUMBER: _ClassVar[int]
237
+ decision: Decision
238
+ reason: str
239
+ policy_ids: _containers.RepeatedScalarFieldContainer[str]
240
+ annotations: _containers.RepeatedCompositeFieldContainer[PolicyAnnotations]
241
+ def __init__(self, decision: _Optional[_Union[Decision, str]] = ..., reason: _Optional[str] = ..., policy_ids: _Optional[_Iterable[str]] = ..., annotations: _Optional[_Iterable[_Union[PolicyAnnotations, _Mapping]]] = ...) -> None: ...
242
+
243
+ class AdjudicatedStep(_message.Message):
244
+ __slots__ = ("step", "guardrails", "adjudication")
245
+ STEP_FIELD_NUMBER: _ClassVar[int]
246
+ GUARDRAILS_FIELD_NUMBER: _ClassVar[int]
247
+ ADJUDICATION_FIELD_NUMBER: _ClassVar[int]
248
+ step: TrajectoryStep
249
+ guardrails: GuardrailContext
250
+ adjudication: Adjudication
251
+ def __init__(self, step: _Optional[_Union[TrajectoryStep, _Mapping]] = ..., guardrails: _Optional[_Union[GuardrailContext, _Mapping]] = ..., adjudication: _Optional[_Union[Adjudication, _Mapping]] = ...) -> None: ...
252
+
253
+ class AdjudicatedTrajectory(_message.Message):
254
+ __slots__ = ("trajectory", "steps")
255
+ TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
256
+ STEPS_FIELD_NUMBER: _ClassVar[int]
257
+ trajectory: Trajectory
258
+ steps: _containers.RepeatedCompositeFieldContainer[AdjudicatedStep]
259
+ def __init__(self, trajectory: _Optional[_Union[Trajectory, _Mapping]] = ..., steps: _Optional[_Iterable[_Union[AdjudicatedStep, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,24 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+
7
+ GRPC_GENERATED_VERSION = '1.76.0'
8
+ GRPC_VERSION = grpc.__version__
9
+ _version_not_supported = False
10
+
11
+ try:
12
+ from grpc._utilities import first_version_is_lower
13
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
14
+ except ImportError:
15
+ _version_not_supported = True
16
+
17
+ if _version_not_supported:
18
+ raise RuntimeError(
19
+ f'The grpc package installed is at version {GRPC_VERSION},'
20
+ + ' but the generated code in sondera/core/v1/primitives_pb2_grpc.py depends on'
21
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
22
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
23
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
24
+ )
File without changes
File without changes
@@ -0,0 +1,81 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: sondera/harness/v1/harness.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'sondera/harness/v1/harness.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
26
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
+ from ...core.v1 import primitives_pb2 as sondera_dot_core_dot_v1_dot_primitives__pb2
28
+
29
+
30
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n sondera/harness/v1/harness.proto\x12\x12sondera.harness.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a sondera/core/v1/primitives.proto\"\x89\x01\n\x14RegisterAgentRequest\x12\x13\n\x0bprovider_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x13\n\x0binstruction\x18\x04 \x01(\t\x12$\n\x05tools\x18\x05 \x03(\x0b\x32\x15.sondera.core.v1.Tool\">\n\x15RegisterAgentResponse\x12%\n\x05\x61gent\x18\x01 \x01(\x0b\x32\x16.sondera.core.v1.Agent\"#\n\x0fGetAgentRequest\x12\x10\n\x08\x61gent_id\x18\x01 \x01(\t\"9\n\x10GetAgentResponse\x12%\n\x05\x61gent\x18\x01 \x01(\x0b\x32\x16.sondera.core.v1.Agent\"+\n\x17\x43reateTrajectoryRequest\x12\x10\n\x08\x61gent_id\x18\x01 \x01(\t\"K\n\x18\x43reateTrajectoryResponse\x12/\n\ntrajectory\x18\x01 \x01(\x0b\x32\x1b.sondera.core.v1.Trajectory\"\xa8\x01\n\x18\x41\x64\x64TrajectoryStepRequest\x12\x15\n\rtrajectory_id\x18\x01 \x01(\t\x12%\n\x05stage\x18\x02 \x01(\x0e\x32\x16.sondera.core.v1.Stage\x12#\n\x04role\x18\x03 \x01(\x0e\x32\x15.sondera.core.v1.Role\x12)\n\x07\x63ontent\x18\x04 \x01(\x0b\x32\x18.sondera.core.v1.Content\"W\n\x19\x41\x64\x64TrajectoryStepResponse\x12:\n\x10\x61\x64judicated_step\x18\x01 \x01(\x0b\x32 .sondera.core.v1.AdjudicatedStep\"i\n\x1dUpdateTrajectoryStatusRequest\x12\x15\n\rtrajectory_id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.sondera.core.v1.TrajectoryStatus\"Q\n\x1eUpdateTrajectoryStatusResponse\x12/\n\ntrajectory\x18\x01 \x01(\x0b\x32\x1b.sondera.core.v1.Trajectory\"-\n\x14GetTrajectoryRequest\x12\x15\n\rtrajectory_id\x18\x01 \x01(\t\"y\n\x15GetTrajectoryResponse\x12/\n\ntrajectory\x18\x01 \x01(\x0b\x32\x1b.sondera.core.v1.Trajectory\x12/\n\x05steps\x18\x02 \x03(\x0b\x32 .sondera.core.v1.AdjudicatedStep\"\x95\x01\n\x17ListTrajectoriesRequest\x12\x10\n\x08\x61gent_id\x18\x01 \x01(\t\x12\x36\n\x06status\x18\x02 \x01(\x0e\x32!.sondera.core.v1.TrajectoryStatusH\x00\x88\x01\x01\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\tB\t\n\x07_status\"f\n\x18ListTrajectoriesResponse\x12\x31\n\x0ctrajectories\x18\x01 \x03(\x0b\x32\x1b.sondera.core.v1.Trajectory\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"d\n\x11ListAgentsRequest\x12\x18\n\x0bprovider_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\tB\x0e\n\x0c_provider_id\"U\n\x12ListAgentsResponse\x12&\n\x06\x61gents\x18\x01 \x03(\x0b\x32\x16.sondera.core.v1.Agent\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9f\x01\n\x1a\x41nalyzeTrajectoriesRequest\x12\x10\n\x08\x61gent_id\x18\x01 \x01(\t\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tanalytics\x18\x04 \x03(\t\"\x94\x01\n\x1b\x41nalyzeTrajectoriesResponse\x12*\n\tanalytics\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x18\n\x10trajectory_count\x18\x02 \x01(\x05\x12/\n\x0b\x63omputed_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"e\n\x18ListAdjudicationsRequest\x12\x15\n\x08\x61gent_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\tB\x0b\n\t_agent_id\"\x83\x01\n\x12\x41\x64judicationRecord\x12\x10\n\x08\x61gent_id\x18\x01 \x01(\t\x12\x15\n\rtrajectory_id\x18\x02 \x01(\t\x12\x0f\n\x07step_id\x18\x03 \x01(\t\x12\x33\n\x0c\x61\x64judication\x18\x04 \x01(\x0b\x32\x1d.sondera.core.v1.Adjudication\"s\n\x19ListAdjudicationsResponse\x12=\n\radjudications\x18\x01 \x03(\x0b\x32&.sondera.harness.v1.AdjudicationRecord\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xcb\x08\n\x0eHarnessService\x12\x64\n\rRegisterAgent\x12(.sondera.harness.v1.RegisterAgentRequest\x1a).sondera.harness.v1.RegisterAgentResponse\x12U\n\x08GetAgent\x12#.sondera.harness.v1.GetAgentRequest\x1a$.sondera.harness.v1.GetAgentResponse\x12m\n\x10\x43reateTrajectory\x12+.sondera.harness.v1.CreateTrajectoryRequest\x1a,.sondera.harness.v1.CreateTrajectoryResponse\x12p\n\x11\x41\x64\x64TrajectoryStep\x12,.sondera.harness.v1.AddTrajectoryStepRequest\x1a-.sondera.harness.v1.AddTrajectoryStepResponse\x12\x7f\n\x16UpdateTrajectoryStatus\x12\x31.sondera.harness.v1.UpdateTrajectoryStatusRequest\x1a\x32.sondera.harness.v1.UpdateTrajectoryStatusResponse\x12\x64\n\rGetTrajectory\x12(.sondera.harness.v1.GetTrajectoryRequest\x1a).sondera.harness.v1.GetTrajectoryResponse\x12m\n\x10ListTrajectories\x12+.sondera.harness.v1.ListTrajectoriesRequest\x1a,.sondera.harness.v1.ListTrajectoriesResponse\x12[\n\nListAgents\x12%.sondera.harness.v1.ListAgentsRequest\x1a&.sondera.harness.v1.ListAgentsResponse\x12v\n\x13\x41nalyzeTrajectories\x12..sondera.harness.v1.AnalyzeTrajectoriesRequest\x1a/.sondera.harness.v1.AnalyzeTrajectoriesResponse\x12p\n\x11ListAdjudications\x12,.sondera.harness.v1.ListAdjudicationsRequest\x1a-.sondera.harness.v1.ListAdjudicationsResponseb\x06proto3')
31
+
32
+ _globals = globals()
33
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
34
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sondera.harness.v1.harness_pb2', _globals)
35
+ if not _descriptor._USE_C_DESCRIPTORS:
36
+ DESCRIPTOR._loaded_options = None
37
+ _globals['_REGISTERAGENTREQUEST']._serialized_start=154
38
+ _globals['_REGISTERAGENTREQUEST']._serialized_end=291
39
+ _globals['_REGISTERAGENTRESPONSE']._serialized_start=293
40
+ _globals['_REGISTERAGENTRESPONSE']._serialized_end=355
41
+ _globals['_GETAGENTREQUEST']._serialized_start=357
42
+ _globals['_GETAGENTREQUEST']._serialized_end=392
43
+ _globals['_GETAGENTRESPONSE']._serialized_start=394
44
+ _globals['_GETAGENTRESPONSE']._serialized_end=451
45
+ _globals['_CREATETRAJECTORYREQUEST']._serialized_start=453
46
+ _globals['_CREATETRAJECTORYREQUEST']._serialized_end=496
47
+ _globals['_CREATETRAJECTORYRESPONSE']._serialized_start=498
48
+ _globals['_CREATETRAJECTORYRESPONSE']._serialized_end=573
49
+ _globals['_ADDTRAJECTORYSTEPREQUEST']._serialized_start=576
50
+ _globals['_ADDTRAJECTORYSTEPREQUEST']._serialized_end=744
51
+ _globals['_ADDTRAJECTORYSTEPRESPONSE']._serialized_start=746
52
+ _globals['_ADDTRAJECTORYSTEPRESPONSE']._serialized_end=833
53
+ _globals['_UPDATETRAJECTORYSTATUSREQUEST']._serialized_start=835
54
+ _globals['_UPDATETRAJECTORYSTATUSREQUEST']._serialized_end=940
55
+ _globals['_UPDATETRAJECTORYSTATUSRESPONSE']._serialized_start=942
56
+ _globals['_UPDATETRAJECTORYSTATUSRESPONSE']._serialized_end=1023
57
+ _globals['_GETTRAJECTORYREQUEST']._serialized_start=1025
58
+ _globals['_GETTRAJECTORYREQUEST']._serialized_end=1070
59
+ _globals['_GETTRAJECTORYRESPONSE']._serialized_start=1072
60
+ _globals['_GETTRAJECTORYRESPONSE']._serialized_end=1193
61
+ _globals['_LISTTRAJECTORIESREQUEST']._serialized_start=1196
62
+ _globals['_LISTTRAJECTORIESREQUEST']._serialized_end=1345
63
+ _globals['_LISTTRAJECTORIESRESPONSE']._serialized_start=1347
64
+ _globals['_LISTTRAJECTORIESRESPONSE']._serialized_end=1449
65
+ _globals['_LISTAGENTSREQUEST']._serialized_start=1451
66
+ _globals['_LISTAGENTSREQUEST']._serialized_end=1551
67
+ _globals['_LISTAGENTSRESPONSE']._serialized_start=1553
68
+ _globals['_LISTAGENTSRESPONSE']._serialized_end=1638
69
+ _globals['_ANALYZETRAJECTORIESREQUEST']._serialized_start=1641
70
+ _globals['_ANALYZETRAJECTORIESREQUEST']._serialized_end=1800
71
+ _globals['_ANALYZETRAJECTORIESRESPONSE']._serialized_start=1803
72
+ _globals['_ANALYZETRAJECTORIESRESPONSE']._serialized_end=1951
73
+ _globals['_LISTADJUDICATIONSREQUEST']._serialized_start=1953
74
+ _globals['_LISTADJUDICATIONSREQUEST']._serialized_end=2054
75
+ _globals['_ADJUDICATIONRECORD']._serialized_start=2057
76
+ _globals['_ADJUDICATIONRECORD']._serialized_end=2188
77
+ _globals['_LISTADJUDICATIONSRESPONSE']._serialized_start=2190
78
+ _globals['_LISTADJUDICATIONSRESPONSE']._serialized_end=2305
79
+ _globals['_HARNESSSERVICE']._serialized_start=2308
80
+ _globals['_HARNESSSERVICE']._serialized_end=3407
81
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,192 @@
1
+ import datetime
2
+
3
+ from google.protobuf import struct_pb2 as _struct_pb2
4
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
+ from sondera.core.v1 import primitives_pb2 as _primitives_pb2
6
+ from google.protobuf.internal import containers as _containers
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import message as _message
9
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
10
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
11
+
12
+ DESCRIPTOR: _descriptor.FileDescriptor
13
+
14
+ class RegisterAgentRequest(_message.Message):
15
+ __slots__ = ("provider_id", "name", "description", "instruction", "tools")
16
+ PROVIDER_ID_FIELD_NUMBER: _ClassVar[int]
17
+ NAME_FIELD_NUMBER: _ClassVar[int]
18
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
19
+ INSTRUCTION_FIELD_NUMBER: _ClassVar[int]
20
+ TOOLS_FIELD_NUMBER: _ClassVar[int]
21
+ provider_id: str
22
+ name: str
23
+ description: str
24
+ instruction: str
25
+ tools: _containers.RepeatedCompositeFieldContainer[_primitives_pb2.Tool]
26
+ def __init__(self, provider_id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., instruction: _Optional[str] = ..., tools: _Optional[_Iterable[_Union[_primitives_pb2.Tool, _Mapping]]] = ...) -> None: ...
27
+
28
+ class RegisterAgentResponse(_message.Message):
29
+ __slots__ = ("agent",)
30
+ AGENT_FIELD_NUMBER: _ClassVar[int]
31
+ agent: _primitives_pb2.Agent
32
+ def __init__(self, agent: _Optional[_Union[_primitives_pb2.Agent, _Mapping]] = ...) -> None: ...
33
+
34
+ class GetAgentRequest(_message.Message):
35
+ __slots__ = ("agent_id",)
36
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
37
+ agent_id: str
38
+ def __init__(self, agent_id: _Optional[str] = ...) -> None: ...
39
+
40
+ class GetAgentResponse(_message.Message):
41
+ __slots__ = ("agent",)
42
+ AGENT_FIELD_NUMBER: _ClassVar[int]
43
+ agent: _primitives_pb2.Agent
44
+ def __init__(self, agent: _Optional[_Union[_primitives_pb2.Agent, _Mapping]] = ...) -> None: ...
45
+
46
+ class CreateTrajectoryRequest(_message.Message):
47
+ __slots__ = ("agent_id",)
48
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
49
+ agent_id: str
50
+ def __init__(self, agent_id: _Optional[str] = ...) -> None: ...
51
+
52
+ class CreateTrajectoryResponse(_message.Message):
53
+ __slots__ = ("trajectory",)
54
+ TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
55
+ trajectory: _primitives_pb2.Trajectory
56
+ def __init__(self, trajectory: _Optional[_Union[_primitives_pb2.Trajectory, _Mapping]] = ...) -> None: ...
57
+
58
+ class AddTrajectoryStepRequest(_message.Message):
59
+ __slots__ = ("trajectory_id", "stage", "role", "content")
60
+ TRAJECTORY_ID_FIELD_NUMBER: _ClassVar[int]
61
+ STAGE_FIELD_NUMBER: _ClassVar[int]
62
+ ROLE_FIELD_NUMBER: _ClassVar[int]
63
+ CONTENT_FIELD_NUMBER: _ClassVar[int]
64
+ trajectory_id: str
65
+ stage: _primitives_pb2.Stage
66
+ role: _primitives_pb2.Role
67
+ content: _primitives_pb2.Content
68
+ def __init__(self, trajectory_id: _Optional[str] = ..., stage: _Optional[_Union[_primitives_pb2.Stage, str]] = ..., role: _Optional[_Union[_primitives_pb2.Role, str]] = ..., content: _Optional[_Union[_primitives_pb2.Content, _Mapping]] = ...) -> None: ...
69
+
70
+ class AddTrajectoryStepResponse(_message.Message):
71
+ __slots__ = ("adjudicated_step",)
72
+ ADJUDICATED_STEP_FIELD_NUMBER: _ClassVar[int]
73
+ adjudicated_step: _primitives_pb2.AdjudicatedStep
74
+ def __init__(self, adjudicated_step: _Optional[_Union[_primitives_pb2.AdjudicatedStep, _Mapping]] = ...) -> None: ...
75
+
76
+ class UpdateTrajectoryStatusRequest(_message.Message):
77
+ __slots__ = ("trajectory_id", "status")
78
+ TRAJECTORY_ID_FIELD_NUMBER: _ClassVar[int]
79
+ STATUS_FIELD_NUMBER: _ClassVar[int]
80
+ trajectory_id: str
81
+ status: _primitives_pb2.TrajectoryStatus
82
+ def __init__(self, trajectory_id: _Optional[str] = ..., status: _Optional[_Union[_primitives_pb2.TrajectoryStatus, str]] = ...) -> None: ...
83
+
84
+ class UpdateTrajectoryStatusResponse(_message.Message):
85
+ __slots__ = ("trajectory",)
86
+ TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
87
+ trajectory: _primitives_pb2.Trajectory
88
+ def __init__(self, trajectory: _Optional[_Union[_primitives_pb2.Trajectory, _Mapping]] = ...) -> None: ...
89
+
90
+ class GetTrajectoryRequest(_message.Message):
91
+ __slots__ = ("trajectory_id",)
92
+ TRAJECTORY_ID_FIELD_NUMBER: _ClassVar[int]
93
+ trajectory_id: str
94
+ def __init__(self, trajectory_id: _Optional[str] = ...) -> None: ...
95
+
96
+ class GetTrajectoryResponse(_message.Message):
97
+ __slots__ = ("trajectory", "steps")
98
+ TRAJECTORY_FIELD_NUMBER: _ClassVar[int]
99
+ STEPS_FIELD_NUMBER: _ClassVar[int]
100
+ trajectory: _primitives_pb2.Trajectory
101
+ steps: _containers.RepeatedCompositeFieldContainer[_primitives_pb2.AdjudicatedStep]
102
+ def __init__(self, trajectory: _Optional[_Union[_primitives_pb2.Trajectory, _Mapping]] = ..., steps: _Optional[_Iterable[_Union[_primitives_pb2.AdjudicatedStep, _Mapping]]] = ...) -> None: ...
103
+
104
+ class ListTrajectoriesRequest(_message.Message):
105
+ __slots__ = ("agent_id", "status", "page_size", "page_token")
106
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
107
+ STATUS_FIELD_NUMBER: _ClassVar[int]
108
+ PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
109
+ PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
110
+ agent_id: str
111
+ status: _primitives_pb2.TrajectoryStatus
112
+ page_size: int
113
+ page_token: str
114
+ def __init__(self, agent_id: _Optional[str] = ..., status: _Optional[_Union[_primitives_pb2.TrajectoryStatus, str]] = ..., page_size: _Optional[int] = ..., page_token: _Optional[str] = ...) -> None: ...
115
+
116
+ class ListTrajectoriesResponse(_message.Message):
117
+ __slots__ = ("trajectories", "next_page_token")
118
+ TRAJECTORIES_FIELD_NUMBER: _ClassVar[int]
119
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
120
+ trajectories: _containers.RepeatedCompositeFieldContainer[_primitives_pb2.Trajectory]
121
+ next_page_token: str
122
+ def __init__(self, trajectories: _Optional[_Iterable[_Union[_primitives_pb2.Trajectory, _Mapping]]] = ..., next_page_token: _Optional[str] = ...) -> None: ...
123
+
124
+ class ListAgentsRequest(_message.Message):
125
+ __slots__ = ("provider_id", "page_size", "page_token")
126
+ PROVIDER_ID_FIELD_NUMBER: _ClassVar[int]
127
+ PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
128
+ PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
129
+ provider_id: str
130
+ page_size: int
131
+ page_token: str
132
+ def __init__(self, provider_id: _Optional[str] = ..., page_size: _Optional[int] = ..., page_token: _Optional[str] = ...) -> None: ...
133
+
134
+ class ListAgentsResponse(_message.Message):
135
+ __slots__ = ("agents", "next_page_token")
136
+ AGENTS_FIELD_NUMBER: _ClassVar[int]
137
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
138
+ agents: _containers.RepeatedCompositeFieldContainer[_primitives_pb2.Agent]
139
+ next_page_token: str
140
+ def __init__(self, agents: _Optional[_Iterable[_Union[_primitives_pb2.Agent, _Mapping]]] = ..., next_page_token: _Optional[str] = ...) -> None: ...
141
+
142
+ class AnalyzeTrajectoriesRequest(_message.Message):
143
+ __slots__ = ("agent_id", "start_time", "end_time", "analytics")
144
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
145
+ START_TIME_FIELD_NUMBER: _ClassVar[int]
146
+ END_TIME_FIELD_NUMBER: _ClassVar[int]
147
+ ANALYTICS_FIELD_NUMBER: _ClassVar[int]
148
+ agent_id: str
149
+ start_time: _timestamp_pb2.Timestamp
150
+ end_time: _timestamp_pb2.Timestamp
151
+ analytics: _containers.RepeatedScalarFieldContainer[str]
152
+ def __init__(self, agent_id: _Optional[str] = ..., start_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., analytics: _Optional[_Iterable[str]] = ...) -> None: ...
153
+
154
+ class AnalyzeTrajectoriesResponse(_message.Message):
155
+ __slots__ = ("analytics", "trajectory_count", "computed_at")
156
+ ANALYTICS_FIELD_NUMBER: _ClassVar[int]
157
+ TRAJECTORY_COUNT_FIELD_NUMBER: _ClassVar[int]
158
+ COMPUTED_AT_FIELD_NUMBER: _ClassVar[int]
159
+ analytics: _struct_pb2.Struct
160
+ trajectory_count: int
161
+ computed_at: _timestamp_pb2.Timestamp
162
+ def __init__(self, analytics: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., trajectory_count: _Optional[int] = ..., computed_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
163
+
164
+ class ListAdjudicationsRequest(_message.Message):
165
+ __slots__ = ("agent_id", "page_size", "page_token")
166
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
167
+ PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
168
+ PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
169
+ agent_id: str
170
+ page_size: int
171
+ page_token: str
172
+ def __init__(self, agent_id: _Optional[str] = ..., page_size: _Optional[int] = ..., page_token: _Optional[str] = ...) -> None: ...
173
+
174
+ class AdjudicationRecord(_message.Message):
175
+ __slots__ = ("agent_id", "trajectory_id", "step_id", "adjudication")
176
+ AGENT_ID_FIELD_NUMBER: _ClassVar[int]
177
+ TRAJECTORY_ID_FIELD_NUMBER: _ClassVar[int]
178
+ STEP_ID_FIELD_NUMBER: _ClassVar[int]
179
+ ADJUDICATION_FIELD_NUMBER: _ClassVar[int]
180
+ agent_id: str
181
+ trajectory_id: str
182
+ step_id: str
183
+ adjudication: _primitives_pb2.Adjudication
184
+ def __init__(self, agent_id: _Optional[str] = ..., trajectory_id: _Optional[str] = ..., step_id: _Optional[str] = ..., adjudication: _Optional[_Union[_primitives_pb2.Adjudication, _Mapping]] = ...) -> None: ...
185
+
186
+ class ListAdjudicationsResponse(_message.Message):
187
+ __slots__ = ("adjudications", "next_page_token")
188
+ ADJUDICATIONS_FIELD_NUMBER: _ClassVar[int]
189
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
190
+ adjudications: _containers.RepeatedCompositeFieldContainer[AdjudicationRecord]
191
+ next_page_token: str
192
+ def __init__(self, adjudications: _Optional[_Iterable[_Union[AdjudicationRecord, _Mapping]]] = ..., next_page_token: _Optional[str] = ...) -> None: ...