tallyfy 1.0.2__tar.gz → 1.0.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.
Potentially problematic release.
This version of tallyfy might be problematic. Click here for more details.
- {tallyfy-1.0.2 → tallyfy-1.0.3}/.cursor/rules/mcp-server-development.mdc +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/CLAUDE.md +2 -2
- {tallyfy-1.0.2 → tallyfy-1.0.3}/PKG-INFO +2 -2
- {tallyfy-1.0.2 → tallyfy-1.0.3}/README.md +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/requirements.txt +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/pyproject.toml +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/requirements.txt +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/requirements.txt +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/server.py +1 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/template_management.py +28 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/setup.py +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/README.md +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/core.py +5 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/models.py +1 -1
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/PKG-INFO +2 -2
- {tallyfy-1.0.2 → tallyfy-1.0.3}/.github/workflows/deploy-host.yml +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/.github/workflows/deploy-server.yml +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/CHANGELOG.md +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/LICENSE +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/MANIFEST.in +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/admin/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/admin/server.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/architecture.mmd +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/Dockerfile +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/.env +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/client.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/config.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/conversation.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/exceptions.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/mcp_client.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/prompts.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/docker-compose.yml +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/launcher.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/server.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/session_manager.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/main.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/.dockerignore +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/Dockerfile +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/docker-compose.yml +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/automation.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/date_utils.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/form_fields.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/process_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/search.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/task_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/user_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/setup.cfg +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/start_servers.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/activity_feed.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/asset.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/authentication.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/favorites.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/file.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/folder.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/form_field.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/group.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/guest.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/list.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/member.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/organization.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/process.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/process_instances.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public_process.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public_template.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/recurringjob.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/search.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/security.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/selectedtextcomment.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/split_summary.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/step.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/tag.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/task.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/template.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/watching.json +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/BUILD.md +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/__init__.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/form_fields_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/task_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/template_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/user_management.py +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy-requirements.txt +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/SOURCES.txt +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/dependency_links.txt +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/not-zip-safe +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/requires.txt +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/top_level.txt +0 -0
- {tallyfy-1.0.2 → tallyfy-1.0.3}/ui/index.html +0 -0
|
@@ -86,7 +86,7 @@ headers = {
|
|
|
86
86
|
- `fastmcp==2.9.0`: MCP server framework
|
|
87
87
|
- `anthropic==0.52.2`: Claude API integration
|
|
88
88
|
- `websockets==11.0.3`: Real-time communication
|
|
89
|
-
- `tallyfy==1.0.
|
|
89
|
+
- `tallyfy==1.0.3`: Workflow automation SDK
|
|
90
90
|
- `PyJWT>=2.8.0`: JWT token handling
|
|
91
91
|
|
|
92
92
|
## Error Handling Requirements
|
|
@@ -12,7 +12,7 @@ The system consists of three interconnected components:
|
|
|
12
12
|
|
|
13
13
|
- **MCP Server** (`/server`): FastMCP 2.9.0-based server exposing 40+ Tallyfy SDK functions as MCP tools
|
|
14
14
|
- **WebSocket Host** (`/host`): Multi-user WebSocket server managing client connections and session isolation
|
|
15
|
-
- **Tallyfy SDK** (`/tallyfy`): Comprehensive Python SDK (v1.0.
|
|
15
|
+
- **Tallyfy SDK** (`/tallyfy`): Comprehensive Python SDK (v1.0.3) for Tallyfy API integration
|
|
16
16
|
|
|
17
17
|
### Repository Context
|
|
18
18
|
|
|
@@ -312,7 +312,7 @@ def get_resource() -> str:
|
|
|
312
312
|
- `mcp[cli]==1.9.4`: Official MCP client libraries
|
|
313
313
|
- `anthropic==0.52.2`: Claude API integration for LLM operations
|
|
314
314
|
- `websockets==11.0.3`: Real-time bidirectional communication
|
|
315
|
-
- `tallyfy==1.0.
|
|
315
|
+
- `tallyfy==1.0.3`: Workflow automation SDK
|
|
316
316
|
|
|
317
317
|
#### Supporting Libraries
|
|
318
318
|
- `dateparser==1.2.1`: Natural language date extraction
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tallyfy
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: A comprehensive Python SDK for interacting with the Tallyfy API
|
|
5
5
|
Home-page: https://github.com/tallyfy/tallyfy-sdk
|
|
6
6
|
Author: Tallyfy
|
|
@@ -674,5 +674,5 @@ For bugs, feature requests, or questions:
|
|
|
674
674
|
2. Contact us at: support@tallyfy.com
|
|
675
675
|
---
|
|
676
676
|
|
|
677
|
-
**Version:** 1.0.
|
|
677
|
+
**Version:** 1.0.3
|
|
678
678
|
**Last Updated:** 2025
|
|
@@ -291,7 +291,7 @@ This server implements comprehensive security measures following 2025 MCP securi
|
|
|
291
291
|
- **Framework**: FastMCP 2.9.0 with Python 3.7+ support
|
|
292
292
|
- **WebSocket**: websockets 11.0.3 for real-time communication
|
|
293
293
|
- **AI Integration**: Anthropic Claude API 0.52.2
|
|
294
|
-
- **Workflow SDK**: Tallyfy SDK 1.0.
|
|
294
|
+
- **Workflow SDK**: Tallyfy SDK 1.0.3
|
|
295
295
|
|
|
296
296
|
## Related Resources
|
|
297
297
|
|
|
@@ -83,6 +83,7 @@ def get_available_tools() -> str:
|
|
|
83
83
|
"search_for_processes - Search for processes in the organization",
|
|
84
84
|
"search_for_templates - Search for templates in the organization",
|
|
85
85
|
"get_template - Get a template (checklist) by its ID or name with full details including prerun fields, automated actions, linked tasks, and metadata",
|
|
86
|
+
"get_all_templates - Get all templates in the organization with full details including prerun fields, automated actions, etc.",
|
|
86
87
|
"get_step_dependencies - Analyze which automations affect when this step appears",
|
|
87
88
|
"suggest_step_deadline - Suggest reasonable deadline based on step type and complexity",
|
|
88
89
|
"add_form_field_to_step - Add form fields (text, dropdown, date, etc.) to a step",
|
|
@@ -39,7 +39,34 @@ def register_template_management_tools(mcp):
|
|
|
39
39
|
return template.__dict__ if template else {}
|
|
40
40
|
return {}
|
|
41
41
|
except TallyfyError as e:
|
|
42
|
-
raise Exception(f"Failed to
|
|
42
|
+
raise Exception(f"Failed to get the template: {e}")
|
|
43
|
+
except ValueError as e:
|
|
44
|
+
raise Exception(f"Invalid input: {e}")
|
|
45
|
+
|
|
46
|
+
@mcp.tool()
|
|
47
|
+
def get_all_templates(
|
|
48
|
+
org_id: str, api_key: str) -> Dict[
|
|
49
|
+
str, Any]:
|
|
50
|
+
"""
|
|
51
|
+
Get all templates (checklists) with full details including prerun fields,
|
|
52
|
+
automated actions, linked tasks, and metadata.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
org_id: Organization ID
|
|
56
|
+
api_key: Tallyfy API key for authentication
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
Templates list with complete template data
|
|
60
|
+
|
|
61
|
+
Raises:
|
|
62
|
+
TallyfyError: If the request fails
|
|
63
|
+
"""
|
|
64
|
+
try:
|
|
65
|
+
with TallyfySDK(api_key=api_key) as sdk:
|
|
66
|
+
templates = sdk.get_all_templates(org_id=org_id)
|
|
67
|
+
return templates.__dict__ if templates else []
|
|
68
|
+
except TallyfyError as e:
|
|
69
|
+
raise Exception(f"Failed to get all templates: {e}")
|
|
43
70
|
except ValueError as e:
|
|
44
71
|
raise Exception(f"Invalid input: {e}")
|
|
45
72
|
|
|
@@ -219,7 +219,11 @@ class TallyfySDK(BaseSDK):
|
|
|
219
219
|
def get_template(self, org_id: str, template_id: Optional[str] = None, template_name: Optional[str] = None):
|
|
220
220
|
"""Get template by ID or name."""
|
|
221
221
|
return self.templates.get_template(org_id, template_id, template_name)
|
|
222
|
-
|
|
222
|
+
|
|
223
|
+
def get_all_templates(self, org_id: str):
|
|
224
|
+
"""Get all templates by organization."""
|
|
225
|
+
return self.templates.get_all_templates(org_id)
|
|
226
|
+
|
|
223
227
|
def update_template_metadata(self, org_id: str, template_id: str, **kwargs):
|
|
224
228
|
"""Update template metadata."""
|
|
225
229
|
return self.templates.update_template_metadata(org_id, template_id, **kwargs)
|
|
@@ -1062,7 +1062,7 @@ class TemplatesList:
|
|
|
1062
1062
|
|
|
1063
1063
|
@classmethod
|
|
1064
1064
|
def from_dict(cls, data: Dict[str, Any]) -> 'TemplatesList':
|
|
1065
|
-
"""Create
|
|
1065
|
+
"""Create TemplatesList instance from dictionary"""
|
|
1066
1066
|
templates_data = data.get('data', [])
|
|
1067
1067
|
templates = [Template.from_dict(template_data) for template_data in templates_data]
|
|
1068
1068
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tallyfy
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: A comprehensive Python SDK for interacting with the Tallyfy API
|
|
5
5
|
Home-page: https://github.com/tallyfy/tallyfy-sdk
|
|
6
6
|
Author: Tallyfy
|
|
@@ -674,5 +674,5 @@ For bugs, feature requests, or questions:
|
|
|
674
674
|
2. Contact us at: support@tallyfy.com
|
|
675
675
|
---
|
|
676
676
|
|
|
677
|
-
**Version:** 1.0.
|
|
677
|
+
**Version:** 1.0.3
|
|
678
678
|
**Last Updated:** 2025
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|