assemblix-mcp 0.2.0__tar.gz → 0.2.1__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 (22) hide show
  1. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/PKG-INFO +1 -1
  2. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/pyproject.toml +1 -1
  3. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/client.py +3 -1
  4. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_client_executions.py +1 -1
  5. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_execution_tools.py +3 -3
  6. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/.gitignore +0 -0
  7. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/LICENSE +0 -0
  8. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/README.md +0 -0
  9. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/__init__.py +0 -0
  10. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/config.py +0 -0
  11. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/resources/__init__.py +0 -0
  12. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/resources/examples/branching.json +0 -0
  13. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/resources/examples/minimal.json +0 -0
  14. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/server.py +0 -0
  15. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/tools/__init__.py +0 -0
  16. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/tools/executions.py +0 -0
  17. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/src/assemblix_mcp/tools/workflows.py +0 -0
  18. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_client_workflows.py +0 -0
  19. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_config.py +0 -0
  20. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_resources.py +0 -0
  21. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_server.py +0 -0
  22. {assemblix_mcp-0.2.0 → assemblix_mcp-0.2.1}/tests/test_workflow_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblix-mcp
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: MCP server for Assemblix — author, run & inspect workflows over a project API key
5
5
  Project-URL: Homepage, https://github.com/nmamizerov/assemblix-aitools
6
6
  Project-URL: Repository, https://github.com/nmamizerov/assemblix-aitools
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "assemblix-mcp"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "MCP server for Assemblix — author, run & inspect workflows over a project API key"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -131,7 +131,9 @@ class AssemblixClient:
131
131
  )
132
132
 
133
133
  async def get_task_result(self, execution_id: str) -> Any:
134
- return await self._request("GET", f"/api/executions/task/{execution_id}")
134
+ # Note: the task-result endpoint lives on the /workflows-prefixed router,
135
+ # not /executions (unlike list/detail/in-flight below).
136
+ return await self._request("GET", f"/api/workflows/task/{execution_id}")
135
137
 
136
138
  async def list_executions(
137
139
  self,
@@ -23,7 +23,7 @@ async def test_execute_workflow_task_mode_body():
23
23
 
24
24
  @respx.mock
25
25
  async def test_get_task_result():
26
- respx.get("http://api.test/api/executions/task/e1").mock(
26
+ respx.get("http://api.test/api/workflows/task/e1").mock(
27
27
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "completed"})
28
28
  )
29
29
  result = await _client().get_task_result("e1")
@@ -32,7 +32,7 @@ async def test_run_and_wait_polls_until_completed():
32
32
  respx.post("http://api.test/api/workflows/w1/execute").mock(
33
33
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "running"})
34
34
  )
35
- respx.get("http://api.test/api/executions/task/e1").mock(
35
+ respx.get("http://api.test/api/workflows/task/e1").mock(
36
36
  side_effect=[
37
37
  httpx.Response(200, json={"executionId": "e1", "status": "running"}),
38
38
  httpx.Response(200, json={"executionId": "e1", "status": "completed", "output": {"a": 1}}),
@@ -52,7 +52,7 @@ async def test_run_and_wait_returns_error_payload_without_raising():
52
52
  respx.post("http://api.test/api/workflows/w1/execute").mock(
53
53
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "running"})
54
54
  )
55
- respx.get("http://api.test/api/executions/task/e1").mock(
55
+ respx.get("http://api.test/api/workflows/task/e1").mock(
56
56
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "failed", "error": "no credential"})
57
57
  )
58
58
  async with MCPClient(_server()) as c:
@@ -69,7 +69,7 @@ async def test_run_and_wait_times_out_when_never_terminal():
69
69
  respx.post("http://api.test/api/workflows/w1/execute").mock(
70
70
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "running"})
71
71
  )
72
- respx.get("http://api.test/api/executions/task/e1").mock(
72
+ respx.get("http://api.test/api/workflows/task/e1").mock(
73
73
  return_value=httpx.Response(200, json={"executionId": "e1", "status": "running"})
74
74
  )
75
75
  async with MCPClient(_server()) as c:
File without changes
File without changes
File without changes