mcp-ticketer 0.4.11__py3-none-any.whl → 0.12.0__py3-none-any.whl

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 mcp-ticketer might be problematic. Click here for more details.

Files changed (70) hide show
  1. mcp_ticketer/__version__.py +3 -3
  2. mcp_ticketer/adapters/__init__.py +2 -0
  3. mcp_ticketer/adapters/aitrackdown.py +9 -3
  4. mcp_ticketer/adapters/asana/__init__.py +15 -0
  5. mcp_ticketer/adapters/asana/adapter.py +1308 -0
  6. mcp_ticketer/adapters/asana/client.py +292 -0
  7. mcp_ticketer/adapters/asana/mappers.py +334 -0
  8. mcp_ticketer/adapters/asana/types.py +146 -0
  9. mcp_ticketer/adapters/github.py +313 -96
  10. mcp_ticketer/adapters/jira.py +251 -1
  11. mcp_ticketer/adapters/linear/adapter.py +524 -22
  12. mcp_ticketer/adapters/linear/client.py +61 -9
  13. mcp_ticketer/adapters/linear/mappers.py +9 -3
  14. mcp_ticketer/cache/memory.py +3 -3
  15. mcp_ticketer/cli/adapter_diagnostics.py +1 -1
  16. mcp_ticketer/cli/auggie_configure.py +1 -1
  17. mcp_ticketer/cli/codex_configure.py +80 -1
  18. mcp_ticketer/cli/configure.py +33 -43
  19. mcp_ticketer/cli/diagnostics.py +18 -16
  20. mcp_ticketer/cli/discover.py +288 -21
  21. mcp_ticketer/cli/gemini_configure.py +1 -1
  22. mcp_ticketer/cli/instruction_commands.py +429 -0
  23. mcp_ticketer/cli/linear_commands.py +99 -15
  24. mcp_ticketer/cli/main.py +1199 -227
  25. mcp_ticketer/cli/mcp_configure.py +1 -1
  26. mcp_ticketer/cli/migrate_config.py +12 -8
  27. mcp_ticketer/cli/platform_commands.py +6 -6
  28. mcp_ticketer/cli/platform_detection.py +412 -0
  29. mcp_ticketer/cli/queue_commands.py +15 -15
  30. mcp_ticketer/cli/simple_health.py +1 -1
  31. mcp_ticketer/cli/ticket_commands.py +14 -13
  32. mcp_ticketer/cli/update_checker.py +313 -0
  33. mcp_ticketer/cli/utils.py +45 -41
  34. mcp_ticketer/core/__init__.py +12 -0
  35. mcp_ticketer/core/adapter.py +4 -4
  36. mcp_ticketer/core/config.py +17 -10
  37. mcp_ticketer/core/env_discovery.py +33 -3
  38. mcp_ticketer/core/env_loader.py +7 -6
  39. mcp_ticketer/core/exceptions.py +3 -3
  40. mcp_ticketer/core/http_client.py +10 -10
  41. mcp_ticketer/core/instructions.py +405 -0
  42. mcp_ticketer/core/mappers.py +1 -1
  43. mcp_ticketer/core/models.py +1 -1
  44. mcp_ticketer/core/onepassword_secrets.py +379 -0
  45. mcp_ticketer/core/project_config.py +17 -1
  46. mcp_ticketer/core/registry.py +1 -1
  47. mcp_ticketer/defaults/ticket_instructions.md +644 -0
  48. mcp_ticketer/mcp/__init__.py +2 -2
  49. mcp_ticketer/mcp/server/__init__.py +2 -2
  50. mcp_ticketer/mcp/server/main.py +82 -69
  51. mcp_ticketer/mcp/server/tools/__init__.py +9 -0
  52. mcp_ticketer/mcp/server/tools/attachment_tools.py +63 -16
  53. mcp_ticketer/mcp/server/tools/config_tools.py +381 -0
  54. mcp_ticketer/mcp/server/tools/hierarchy_tools.py +154 -5
  55. mcp_ticketer/mcp/server/tools/instruction_tools.py +293 -0
  56. mcp_ticketer/mcp/server/tools/ticket_tools.py +157 -4
  57. mcp_ticketer/mcp/server/tools/user_ticket_tools.py +382 -0
  58. mcp_ticketer/queue/health_monitor.py +1 -0
  59. mcp_ticketer/queue/manager.py +4 -4
  60. mcp_ticketer/queue/queue.py +3 -3
  61. mcp_ticketer/queue/run_worker.py +1 -1
  62. mcp_ticketer/queue/ticket_registry.py +2 -2
  63. mcp_ticketer/queue/worker.py +14 -12
  64. {mcp_ticketer-0.4.11.dist-info → mcp_ticketer-0.12.0.dist-info}/METADATA +106 -52
  65. mcp_ticketer-0.12.0.dist-info/RECORD +91 -0
  66. mcp_ticketer-0.4.11.dist-info/RECORD +0 -77
  67. {mcp_ticketer-0.4.11.dist-info → mcp_ticketer-0.12.0.dist-info}/WHEEL +0 -0
  68. {mcp_ticketer-0.4.11.dist-info → mcp_ticketer-0.12.0.dist-info}/entry_points.txt +0 -0
  69. {mcp_ticketer-0.4.11.dist-info → mcp_ticketer-0.12.0.dist-info}/licenses/LICENSE +0 -0
  70. {mcp_ticketer-0.4.11.dist-info → mcp_ticketer-0.12.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  """Version information for mcp-ticketer package."""
2
2
 
3
- __version__ = "0.4.11"
3
+ __version__ = "0.12.0"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
@@ -27,7 +27,7 @@ __features__ = {
27
27
  }
28
28
 
29
29
 
30
- def get_version():
30
+ def get_version() -> str:
31
31
  """Return the full version string with build metadata if available."""
32
32
  version = __version__
33
33
  if __build__:
@@ -37,6 +37,6 @@ def get_version():
37
37
  return version
38
38
 
39
39
 
40
- def get_user_agent():
40
+ def get_user_agent() -> str:
41
41
  """Return a user agent string for API requests."""
42
42
  return f"{__title__}/{__version__}"
@@ -1,6 +1,7 @@
1
1
  """Adapter implementations for various ticket systems."""
2
2
 
3
3
  from .aitrackdown import AITrackdownAdapter
4
+ from .asana import AsanaAdapter
4
5
  from .github import GitHubAdapter
5
6
  from .hybrid import HybridAdapter
6
7
  from .jira import JiraAdapter
@@ -8,6 +9,7 @@ from .linear import LinearAdapter
8
9
 
9
10
  __all__ = [
10
11
  "AITrackdownAdapter",
12
+ "AsanaAdapter",
11
13
  "LinearAdapter",
12
14
  "JiraAdapter",
13
15
  "GitHubAdapter",
@@ -280,7 +280,9 @@ class AITrackdownAdapter(BaseAdapter[Task]):
280
280
 
281
281
  return ticket
282
282
 
283
- async def create_epic(self, title: str, description: str = None, **kwargs) -> Epic:
283
+ async def create_epic(
284
+ self, title: str, description: str = None, **kwargs: Any
285
+ ) -> Epic:
284
286
  """Create a new epic.
285
287
 
286
288
  Args:
@@ -296,7 +298,11 @@ class AITrackdownAdapter(BaseAdapter[Task]):
296
298
  return await self.create(epic)
297
299
 
298
300
  async def create_issue(
299
- self, title: str, parent_epic: str = None, description: str = None, **kwargs
301
+ self,
302
+ title: str,
303
+ parent_epic: str = None,
304
+ description: str = None,
305
+ **kwargs: Any,
300
306
  ) -> Task:
301
307
  """Create a new issue.
302
308
 
@@ -316,7 +322,7 @@ class AITrackdownAdapter(BaseAdapter[Task]):
316
322
  return await self.create(task)
317
323
 
318
324
  async def create_task(
319
- self, title: str, parent_id: str, description: str = None, **kwargs
325
+ self, title: str, parent_id: str, description: str = None, **kwargs: Any
320
326
  ) -> Task:
321
327
  """Create a new task under an issue.
322
328
 
@@ -0,0 +1,15 @@
1
+ """Asana adapter for mcp-ticketer.
2
+
3
+ This adapter provides comprehensive integration with Asana's REST API,
4
+ supporting ticket management operations including:
5
+
6
+ - CRUD operations for projects and tasks
7
+ - Hierarchical structure (Epic → Issue → Task)
8
+ - State transitions via custom fields
9
+ - User assignment and tag management
10
+ - Comment and attachment support
11
+ """
12
+
13
+ from .adapter import AsanaAdapter
14
+
15
+ __all__ = ["AsanaAdapter"]