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.

Files changed (92) hide show
  1. {tallyfy-1.0.2 → tallyfy-1.0.3}/.cursor/rules/mcp-server-development.mdc +1 -1
  2. {tallyfy-1.0.2 → tallyfy-1.0.3}/CLAUDE.md +2 -2
  3. {tallyfy-1.0.2 → tallyfy-1.0.3}/PKG-INFO +2 -2
  4. {tallyfy-1.0.2 → tallyfy-1.0.3}/README.md +1 -1
  5. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/requirements.txt +1 -1
  6. {tallyfy-1.0.2 → tallyfy-1.0.3}/pyproject.toml +1 -1
  7. {tallyfy-1.0.2 → tallyfy-1.0.3}/requirements.txt +1 -1
  8. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/requirements.txt +1 -1
  9. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/server.py +1 -0
  10. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/template_management.py +28 -1
  11. {tallyfy-1.0.2 → tallyfy-1.0.3}/setup.py +1 -1
  12. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/README.md +1 -1
  13. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/core.py +5 -1
  14. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/models.py +1 -1
  15. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/PKG-INFO +2 -2
  16. {tallyfy-1.0.2 → tallyfy-1.0.3}/.github/workflows/deploy-host.yml +0 -0
  17. {tallyfy-1.0.2 → tallyfy-1.0.3}/.github/workflows/deploy-server.yml +0 -0
  18. {tallyfy-1.0.2 → tallyfy-1.0.3}/CHANGELOG.md +0 -0
  19. {tallyfy-1.0.2 → tallyfy-1.0.3}/LICENSE +0 -0
  20. {tallyfy-1.0.2 → tallyfy-1.0.3}/MANIFEST.in +0 -0
  21. {tallyfy-1.0.2 → tallyfy-1.0.3}/admin/__init__.py +0 -0
  22. {tallyfy-1.0.2 → tallyfy-1.0.3}/admin/server.py +0 -0
  23. {tallyfy-1.0.2 → tallyfy-1.0.3}/architecture.mmd +0 -0
  24. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/Dockerfile +0 -0
  25. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/.env +0 -0
  26. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/__init__.py +0 -0
  27. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/client.py +0 -0
  28. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/config.py +0 -0
  29. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/conversation.py +0 -0
  30. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/exceptions.py +0 -0
  31. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/mcp_client.py +0 -0
  32. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/client/prompts.py +0 -0
  33. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/docker-compose.yml +0 -0
  34. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/launcher.py +0 -0
  35. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/__init__.py +0 -0
  36. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/server.py +0 -0
  37. {tallyfy-1.0.2 → tallyfy-1.0.3}/host/websocket/session_manager.py +0 -0
  38. {tallyfy-1.0.2 → tallyfy-1.0.3}/main.py +0 -0
  39. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/.dockerignore +0 -0
  40. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/Dockerfile +0 -0
  41. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/__init__.py +0 -0
  42. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/docker-compose.yml +0 -0
  43. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/__init__.py +0 -0
  44. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/automation.py +0 -0
  45. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/date_utils.py +0 -0
  46. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/form_fields.py +0 -0
  47. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/process_management.py +0 -0
  48. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/search.py +0 -0
  49. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/task_management.py +0 -0
  50. {tallyfy-1.0.2 → tallyfy-1.0.3}/server/tools/user_management.py +0 -0
  51. {tallyfy-1.0.2 → tallyfy-1.0.3}/setup.cfg +0 -0
  52. {tallyfy-1.0.2 → tallyfy-1.0.3}/start_servers.py +0 -0
  53. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/activity_feed.json +0 -0
  54. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/asset.json +0 -0
  55. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/authentication.json +0 -0
  56. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/favorites.json +0 -0
  57. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/file.json +0 -0
  58. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/folder.json +0 -0
  59. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/form_field.json +0 -0
  60. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/group.json +0 -0
  61. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/guest.json +0 -0
  62. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/list.json +0 -0
  63. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/member.json +0 -0
  64. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/organization.json +0 -0
  65. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/process.json +0 -0
  66. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/process_instances.json +0 -0
  67. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public.json +0 -0
  68. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public_process.json +0 -0
  69. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/public_template.json +0 -0
  70. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/recurringjob.json +0 -0
  71. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/search.json +0 -0
  72. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/security.json +0 -0
  73. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/selectedtextcomment.json +0 -0
  74. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/split_summary.json +0 -0
  75. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/step.json +0 -0
  76. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/tag.json +0 -0
  77. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/task.json +0 -0
  78. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/template.json +0 -0
  79. {tallyfy-1.0.2 → tallyfy-1.0.3}/swagger/watching.json +0 -0
  80. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/BUILD.md +0 -0
  81. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/__init__.py +0 -0
  82. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/form_fields_management.py +0 -0
  83. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/task_management.py +0 -0
  84. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/template_management.py +0 -0
  85. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy/user_management.py +0 -0
  86. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy-requirements.txt +0 -0
  87. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/SOURCES.txt +0 -0
  88. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/dependency_links.txt +0 -0
  89. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/not-zip-safe +0 -0
  90. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/requires.txt +0 -0
  91. {tallyfy-1.0.2 → tallyfy-1.0.3}/tallyfy.egg-info/top_level.txt +0 -0
  92. {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.2`: Workflow automation SDK
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.2) for Tallyfy API integration
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.2`: Workflow automation SDK
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.2
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.2
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.2
294
+ - **Workflow SDK**: Tallyfy SDK 1.0.3
295
295
 
296
296
  ## Related Resources
297
297
 
@@ -8,4 +8,4 @@ PyJWT>=2.8.0
8
8
  typing_extensions==4.12.2
9
9
  anthropic==0.52.2
10
10
  python-dotenv==1.1.0
11
- tallyfy==1.0.2
11
+ tallyfy==1.0.3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tallyfy"
7
- version = "1.0.2"
7
+ version = "1.0.3"
8
8
  description = "A comprehensive Python SDK for interacting with the Tallyfy API"
9
9
  readme = "tallyfy/README.md"
10
10
  requires-python = ">=3.7"
@@ -10,4 +10,4 @@ requests==2.32.3
10
10
  typing_extensions==4.12.2
11
11
  anthropic==0.52.2
12
12
  python-dotenv==1.1.0
13
- tallyfy==1.0.2
13
+ tallyfy==1.0.3
@@ -1,4 +1,4 @@
1
- tallyfy==1.0.2
1
+ tallyfy==1.0.3
2
2
  dateparser==1.2.1
3
3
  fastmcp==2.9.0
4
4
  requests==2.32.3
@@ -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 invite user to organization: {e}")
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
 
@@ -17,7 +17,7 @@ def get_version():
17
17
  for line in f:
18
18
  if line.startswith('__version__'):
19
19
  return line.split('=')[1].strip().strip('"').strip("'")
20
- return '1.0.2'
20
+ return '1.0.3'
21
21
 
22
22
  setup(
23
23
  name='tallyfy',
@@ -630,5 +630,5 @@ For bugs, feature requests, or questions:
630
630
  2. Contact us at: support@tallyfy.com
631
631
  ---
632
632
 
633
- **Version:** 1.0.2
633
+ **Version:** 1.0.3
634
634
  **Last Updated:** 2025
@@ -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 TemplatesListResponse instance from dictionary"""
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.2
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.2
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