fast-agent-mcp 0.1.3__tar.gz → 0.1.4__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 (125) hide show
  1. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/PKG-INFO +1 -1
  2. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/pyproject.toml +1 -1
  3. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/proxies.py +37 -41
  4. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/.gitignore +0 -0
  5. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/LICENSE +0 -0
  6. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/README.md +0 -0
  7. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/__init__.py +0 -0
  8. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/agents/__init__.py +0 -0
  9. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/agents/agent.py +0 -0
  10. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/app.py +0 -0
  11. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/__init__.py +0 -0
  12. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/__main__.py +0 -0
  13. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/commands/bootstrap.py +0 -0
  14. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/commands/config.py +0 -0
  15. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/commands/setup.py +0 -0
  16. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/main.py +0 -0
  17. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/cli/terminal.py +0 -0
  18. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/config.py +0 -0
  19. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/console.py +0 -0
  20. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/context.py +0 -0
  21. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/context_dependent.py +0 -0
  22. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/__init__.py +0 -0
  23. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/agent_app.py +0 -0
  24. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/agent_types.py +0 -0
  25. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/agent_utils.py +0 -0
  26. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/enhanced_prompt.py +0 -0
  27. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/error_handling.py +0 -0
  28. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/exceptions.py +0 -0
  29. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/fastagent.py +0 -0
  30. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/server_validation.py +0 -0
  31. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/simulator_registry.py +0 -0
  32. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/core/types.py +0 -0
  33. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/eval/__init__.py +0 -0
  34. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/event_progress.py +0 -0
  35. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/__init__.py +0 -0
  36. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/decorator_registry.py +0 -0
  37. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/executor.py +0 -0
  38. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/task_registry.py +0 -0
  39. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/temporal.py +0 -0
  40. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/workflow.py +0 -0
  41. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/executor/workflow_signal.py +0 -0
  42. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/human_input/__init__.py +0 -0
  43. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/human_input/handler.py +0 -0
  44. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/human_input/types.py +0 -0
  45. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/__init__.py +0 -0
  46. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/events.py +0 -0
  47. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/json_serializer.py +0 -0
  48. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/listeners.py +0 -0
  49. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/logger.py +0 -0
  50. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/rich_progress.py +0 -0
  51. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/tracing.py +0 -0
  52. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/logging/transport.py +0 -0
  53. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/__init__.py +0 -0
  54. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/gen_client.py +0 -0
  55. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/mcp_activity.py +0 -0
  56. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/mcp_agent_client_session.py +0 -0
  57. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/mcp_agent_server.py +0 -0
  58. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/mcp_aggregator.py +0 -0
  59. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/mcp_connection_manager.py +0 -0
  60. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp/stdio.py +0 -0
  61. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/mcp_server_registry.py +0 -0
  62. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/progress_display.py +0 -0
  63. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/data-analysis/analysis-campaign.py +0 -0
  64. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/data-analysis/analysis.py +0 -0
  65. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +0 -0
  66. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
  67. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/internal/agent.py +0 -0
  68. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/internal/job.py +0 -0
  69. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/internal/social.py +0 -0
  70. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/mcp_researcher/researcher-eval.py +0 -0
  71. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/researcher/fastagent.config.yaml +0 -0
  72. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/researcher/researcher-eval.py +0 -0
  73. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/researcher/researcher-imp.py +0 -0
  74. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/researcher/researcher.py +0 -0
  75. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/agent_build.py +0 -0
  76. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/chaining.py +0 -0
  77. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/evaluator.py +0 -0
  78. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/fastagent.config.yaml +0 -0
  79. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/human_input.py +0 -0
  80. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/orchestrator.py +0 -0
  81. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/parallel.py +0 -0
  82. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/resources/examples/workflows/router.py +0 -0
  83. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/telemetry/__init__.py +0 -0
  84. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/telemetry/usage_tracking.py +0 -0
  85. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/__init__.py +0 -0
  86. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/embedding/__init__.py +0 -0
  87. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/embedding/embedding_base.py +0 -0
  88. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/embedding/embedding_cohere.py +0 -0
  89. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/embedding/embedding_openai.py +0 -0
  90. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/evaluator_optimizer/__init__.py +0 -0
  91. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/evaluator_optimizer/evaluator_optimizer.py +0 -0
  92. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/__init__.py +0 -0
  93. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_base.py +0 -0
  94. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_embedding.py +0 -0
  95. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_embedding_cohere.py +0 -0
  96. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_embedding_openai.py +0 -0
  97. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_llm.py +0 -0
  98. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_llm_anthropic.py +0 -0
  99. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/intent_classifier/intent_classifier_llm_openai.py +0 -0
  100. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/__init__.py +0 -0
  101. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/augmented_llm.py +0 -0
  102. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/augmented_llm_anthropic.py +0 -0
  103. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/augmented_llm_openai.py +0 -0
  104. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/enhanced_passthrough.py +0 -0
  105. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/llm_selector.py +0 -0
  106. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/model_factory.py +0 -0
  107. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/llm/prompt_utils.py +0 -0
  108. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/orchestrator/__init__.py +0 -0
  109. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/orchestrator/orchestrator.py +0 -0
  110. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/orchestrator/orchestrator_models.py +0 -0
  111. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/orchestrator/orchestrator_prompts.py +0 -0
  112. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/parallel/__init__.py +0 -0
  113. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/parallel/fan_in.py +0 -0
  114. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/parallel/fan_out.py +0 -0
  115. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/parallel/parallel_llm.py +0 -0
  116. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/__init__.py +0 -0
  117. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/router_base.py +0 -0
  118. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/router_embedding.py +0 -0
  119. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/router_embedding_cohere.py +0 -0
  120. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/router_embedding_openai.py +0 -0
  121. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/router/router_llm.py +0 -0
  122. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/swarm/__init__.py +0 -0
  123. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/swarm/swarm.py +0 -0
  124. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/swarm/swarm_anthropic.py +0 -0
  125. {fast_agent_mcp-0.1.3 → fast_agent_mcp-0.1.4}/src/mcp_agent/workflows/swarm/swarm_openai.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-agent-mcp
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Define, Prompt and Test MCP enabled Agents and Workflows
5
5
  Author-email: Shaun Smith <fastagent@llmindset.co.uk>, Sarmad Qadri <sarmad@lastmileai.dev>
6
6
  License: Apache License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fast-agent-mcp"
3
- version = "0.1.3"
3
+ version = "0.1.4"
4
4
  description = "Define, Prompt and Test MCP enabled Agents and Workflows"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -119,52 +119,48 @@ class ChainProxy(BaseAgentProxy):
119
119
  self._continue_with_final = True # Default behavior
120
120
  self._cumulative = False # Default to sequential chaining
121
121
 
122
- async def generate_str(self, message: str) -> str:
123
- """Chain message through a sequence of agents with optional cumulative behavior"""
124
- if not self._cumulative:
125
- # Original sequential behavior
126
- current_message = message
127
- for agent_name in self._sequence:
128
- proxy = self._agent_proxies[agent_name]
129
- current_message = await proxy.generate_str(current_message)
130
- return current_message
131
- else:
132
- # Cumulative behavior
133
- original_message = message
134
- agent_responses = {}
135
-
136
- for agent_name in self._sequence:
137
- proxy = self._agent_proxies[agent_name]
138
-
139
- if not agent_responses: # First agent
140
- response = await proxy.generate_str(original_message)
141
- else:
142
- # Construct context with previous responses
143
- context_message = "The following request was sent to the agents:\n"
144
- context_message += f"<fastagent:request>\n{original_message}\n</fastagent:request>\n\n"
122
+ async def generate_str(self, message: str, **kwargs) -> str:
123
+ """Chain message through a sequence of agents.
145
124
 
146
- context_message += "Previous agent responses:\n"
125
+ For the first agent in the chain, pass all kwargs to maintain transparency.
147
126
 
148
- for prev_name in self._sequence:
149
- if prev_name in agent_responses:
150
- prev_response = agent_responses[prev_name]
151
- context_message += f'<fastagent:response agent="{prev_name}">\n{prev_response}\n</fastagent:response>\n\n'
127
+ Two modes of operation:
128
+ 1. Sequential (default): Each agent receives only the output of the previous agent
129
+ 2. Cumulative: Each agent receives all previous agent responses concatenated
130
+ """
131
+ if not self._sequence:
132
+ return message
152
133
 
153
- context_message += f"Your task is to build upon this work to address: {original_message}"
134
+ # Process the first agent (same for both modes)
135
+ first_agent = self._sequence[0]
136
+ first_proxy = self._agent_proxies[first_agent]
137
+ first_response = await first_proxy.generate_str(message, **kwargs)
154
138
 
155
- response = await proxy.generate_str(context_message)
139
+ if len(self._sequence) == 1:
140
+ return first_response
156
141
 
157
- agent_responses[agent_name] = response
142
+ if self._cumulative:
143
+ # Cumulative mode: each agent gets all previous responses
144
+ cumulative_response = f"<{first_agent}>\n{first_response}\n</{first_agent}>"
158
145
 
159
- # Format final output with ALL responses in XML format
160
- final_output = "The following request was sent to the agents:\n"
161
- final_output += (
162
- f"<fastagent:request>\n{original_message}\n</fastagent:request>\n\n"
163
- )
146
+ # Process subsequent agents with cumulative results
147
+ for agent_name in self._sequence[1:]:
148
+ proxy = self._agent_proxies[agent_name]
149
+ # Pass all previous responses to next agent
150
+ agent_response = await proxy.generate_str(cumulative_response)
151
+ # Add this agent's response to the cumulative result
152
+ cumulative_response += (
153
+ f"\n\n<{agent_name}>\n{agent_response}\n</{agent_name}>"
154
+ )
155
+
156
+ return cumulative_response
157
+ else:
158
+ # Sequential chaining (original behavior)
159
+ current_message = first_response
164
160
 
165
- for agent_name in self._sequence:
166
- response = agent_responses[agent_name]
167
- final_output += f'<fastagent:response agent="{agent_name}">\n{response}\n</fastagent:response>\n\n'
161
+ # For subsequent agents, just pass the message from previous agent
162
+ for agent_name in self._sequence[1:]:
163
+ proxy = self._agent_proxies[agent_name]
164
+ current_message = await proxy.generate_str(current_message)
168
165
 
169
- # Return the XML-structured combination of all responses
170
- return final_output.strip()
166
+ return current_message
File without changes
File without changes