grasp_agents 0.5.1__tar.gz → 0.5.3__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 (58) hide show
  1. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/PKG-INFO +1 -1
  2. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/pyproject.toml +1 -1
  3. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/printer.py +2 -2
  4. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/workflow/looped_workflow.py +34 -33
  5. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/.gitignore +0 -0
  6. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/LICENSE.md +0 -0
  7. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/README.md +0 -0
  8. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/__init__.py +0 -0
  9. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/cloud_llm.py +0 -0
  10. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/comm_processor.py +0 -0
  11. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/costs_dict.yaml +0 -0
  12. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/errors.py +0 -0
  13. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/generics_utils.py +0 -0
  14. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/grasp_logging.py +0 -0
  15. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/http_client.py +0 -0
  16. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/__init__.py +0 -0
  17. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/completion_chunk_converters.py +0 -0
  18. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/completion_converters.py +0 -0
  19. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/converters.py +0 -0
  20. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/lite_llm.py +0 -0
  21. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/litellm/message_converters.py +0 -0
  22. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/llm.py +0 -0
  23. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/llm_agent.py +0 -0
  24. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/llm_agent_memory.py +0 -0
  25. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/llm_policy_executor.py +0 -0
  26. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/memory.py +0 -0
  27. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/__init__.py +0 -0
  28. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/completion_chunk_converters.py +0 -0
  29. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/completion_converters.py +0 -0
  30. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/content_converters.py +0 -0
  31. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/converters.py +0 -0
  32. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/message_converters.py +0 -0
  33. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/openai_llm.py +0 -0
  34. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/openai/tool_converters.py +0 -0
  35. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/packet.py +0 -0
  36. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/packet_pool.py +0 -0
  37. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/processor.py +0 -0
  38. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/prompt_builder.py +0 -0
  39. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/rate_limiting/__init__.py +0 -0
  40. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/rate_limiting/rate_limiter_chunked.py +0 -0
  41. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/rate_limiting/types.py +0 -0
  42. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/rate_limiting/utils.py +0 -0
  43. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/run_context.py +0 -0
  44. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/runner.py +0 -0
  45. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/__init__.py +0 -0
  46. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/completion.py +0 -0
  47. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/completion_chunk.py +0 -0
  48. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/content.py +0 -0
  49. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/converters.py +0 -0
  50. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/events.py +0 -0
  51. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/io.py +0 -0
  52. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/message.py +0 -0
  53. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/typing/tool.py +0 -0
  54. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/usage_tracker.py +0 -0
  55. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/utils.py +0 -0
  56. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/workflow/__init__.py +0 -0
  57. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/workflow/sequential_workflow.py +0 -0
  58. {grasp_agents-0.5.1 → grasp_agents-0.5.3}/src/grasp_agents/workflow/workflow_processor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: grasp_agents
3
- Version: 0.5.1
3
+ Version: 0.5.3
4
4
  Summary: Grasp Agents Library
5
5
  License-File: LICENSE.md
6
6
  Requires-Python: <4,>=3.11.4
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "grasp_agents"
3
- version = "0.5.1"
3
+ version = "0.5.3"
4
4
  description = "Grasp Agents Library"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11.4,<4"
@@ -197,11 +197,11 @@ async def print_event_stream(
197
197
  closing_text += "\n</tool call>\n"
198
198
 
199
199
  if _thinking_open:
200
- closing_text += "</thinking>\n"
200
+ closing_text += "\n</thinking>\n"
201
201
  _thinking_open = False
202
202
 
203
203
  if _response_open:
204
- closing_text += "</response>\n"
204
+ closing_text += "\n</response>\n"
205
205
  _response_open = False
206
206
 
207
207
  if closing_text:
@@ -151,36 +151,37 @@ class LoopedWorkflow(
151
151
  num_iterations = 0
152
152
  exit_packet: Packet[OutT_co] | None = None
153
153
 
154
- for subproc in self.subprocs:
155
- async for event in subproc.run_stream(
156
- chat_inputs=chat_inputs,
157
- in_packet=packet,
158
- in_args=in_args,
159
- forgetful=forgetful,
160
- call_id=f"{call_id}/{subproc.name}",
161
- ctx=ctx,
162
- ):
163
- if isinstance(event, ProcPacketOutputEvent):
164
- packet = event.data
165
- yield event
166
-
167
- if subproc is self._end_proc:
168
- num_iterations += 1
169
- exit_packet = cast("Packet[OutT_co]", packet)
170
- if self._exit_workflow_loop(exit_packet, ctx=ctx):
171
- yield WorkflowResultEvent(
172
- data=exit_packet, proc_name=self.name, call_id=call_id
173
- )
174
- return
175
- if num_iterations >= self._max_iterations:
176
- logger.info(
177
- f"Max iterations reached ({self._max_iterations}). "
178
- "Exiting loop."
179
- )
180
- yield WorkflowResultEvent(
181
- data=exit_packet, proc_name=self.name, call_id=call_id
182
- )
183
- return
184
-
185
- chat_inputs = None
186
- in_args = None
154
+ while True:
155
+ for subproc in self.subprocs:
156
+ async for event in subproc.run_stream(
157
+ chat_inputs=chat_inputs,
158
+ in_packet=packet,
159
+ in_args=in_args,
160
+ forgetful=forgetful,
161
+ call_id=f"{call_id}/{subproc.name}",
162
+ ctx=ctx,
163
+ ):
164
+ if isinstance(event, ProcPacketOutputEvent):
165
+ packet = event.data
166
+ yield event
167
+
168
+ if subproc is self._end_proc:
169
+ num_iterations += 1
170
+ exit_packet = cast("Packet[OutT_co]", packet)
171
+ if self._exit_workflow_loop(exit_packet, ctx=ctx):
172
+ yield WorkflowResultEvent(
173
+ data=exit_packet, proc_name=self.name, call_id=call_id
174
+ )
175
+ return
176
+ if num_iterations >= self._max_iterations:
177
+ logger.info(
178
+ f"Max iterations reached ({self._max_iterations}). "
179
+ "Exiting loop."
180
+ )
181
+ yield WorkflowResultEvent(
182
+ data=exit_packet, proc_name=self.name, call_id=call_id
183
+ )
184
+ return
185
+
186
+ chat_inputs = None
187
+ in_args = None
File without changes
File without changes
File without changes