mcp-ticketer 2.0.1__py3-none-any.whl → 2.2.13__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 (73) hide show
  1. mcp_ticketer/__version__.py +1 -1
  2. mcp_ticketer/_version_scm.py +1 -0
  3. mcp_ticketer/adapters/aitrackdown.py +122 -0
  4. mcp_ticketer/adapters/asana/adapter.py +121 -0
  5. mcp_ticketer/adapters/github/__init__.py +26 -0
  6. mcp_ticketer/adapters/{github.py → github/adapter.py} +1506 -365
  7. mcp_ticketer/adapters/github/client.py +335 -0
  8. mcp_ticketer/adapters/github/mappers.py +797 -0
  9. mcp_ticketer/adapters/github/queries.py +692 -0
  10. mcp_ticketer/adapters/github/types.py +460 -0
  11. mcp_ticketer/adapters/jira/__init__.py +35 -0
  12. mcp_ticketer/adapters/{jira.py → jira/adapter.py} +250 -678
  13. mcp_ticketer/adapters/jira/client.py +271 -0
  14. mcp_ticketer/adapters/jira/mappers.py +246 -0
  15. mcp_ticketer/adapters/jira/queries.py +216 -0
  16. mcp_ticketer/adapters/jira/types.py +304 -0
  17. mcp_ticketer/adapters/linear/adapter.py +1000 -92
  18. mcp_ticketer/adapters/linear/client.py +91 -1
  19. mcp_ticketer/adapters/linear/mappers.py +107 -0
  20. mcp_ticketer/adapters/linear/queries.py +112 -2
  21. mcp_ticketer/adapters/linear/types.py +50 -10
  22. mcp_ticketer/cli/configure.py +524 -89
  23. mcp_ticketer/cli/install_mcp_server.py +418 -0
  24. mcp_ticketer/cli/main.py +10 -0
  25. mcp_ticketer/cli/mcp_configure.py +177 -49
  26. mcp_ticketer/cli/platform_installer.py +9 -0
  27. mcp_ticketer/cli/setup_command.py +157 -1
  28. mcp_ticketer/cli/ticket_commands.py +443 -81
  29. mcp_ticketer/cli/utils.py +113 -0
  30. mcp_ticketer/core/__init__.py +28 -0
  31. mcp_ticketer/core/adapter.py +367 -1
  32. mcp_ticketer/core/milestone_manager.py +252 -0
  33. mcp_ticketer/core/models.py +345 -0
  34. mcp_ticketer/core/project_utils.py +281 -0
  35. mcp_ticketer/core/project_validator.py +376 -0
  36. mcp_ticketer/core/session_state.py +6 -1
  37. mcp_ticketer/core/state_matcher.py +36 -3
  38. mcp_ticketer/mcp/server/__main__.py +2 -1
  39. mcp_ticketer/mcp/server/routing.py +68 -0
  40. mcp_ticketer/mcp/server/tools/__init__.py +7 -4
  41. mcp_ticketer/mcp/server/tools/attachment_tools.py +3 -1
  42. mcp_ticketer/mcp/server/tools/config_tools.py +233 -35
  43. mcp_ticketer/mcp/server/tools/milestone_tools.py +338 -0
  44. mcp_ticketer/mcp/server/tools/search_tools.py +30 -1
  45. mcp_ticketer/mcp/server/tools/ticket_tools.py +37 -1
  46. mcp_ticketer/queue/queue.py +68 -0
  47. {mcp_ticketer-2.0.1.dist-info → mcp_ticketer-2.2.13.dist-info}/METADATA +33 -3
  48. {mcp_ticketer-2.0.1.dist-info → mcp_ticketer-2.2.13.dist-info}/RECORD +72 -36
  49. mcp_ticketer-2.2.13.dist-info/top_level.txt +2 -0
  50. py_mcp_installer/examples/phase3_demo.py +178 -0
  51. py_mcp_installer/scripts/manage_version.py +54 -0
  52. py_mcp_installer/setup.py +6 -0
  53. py_mcp_installer/src/py_mcp_installer/__init__.py +153 -0
  54. py_mcp_installer/src/py_mcp_installer/command_builder.py +445 -0
  55. py_mcp_installer/src/py_mcp_installer/config_manager.py +541 -0
  56. py_mcp_installer/src/py_mcp_installer/exceptions.py +243 -0
  57. py_mcp_installer/src/py_mcp_installer/installation_strategy.py +617 -0
  58. py_mcp_installer/src/py_mcp_installer/installer.py +656 -0
  59. py_mcp_installer/src/py_mcp_installer/mcp_inspector.py +750 -0
  60. py_mcp_installer/src/py_mcp_installer/platform_detector.py +451 -0
  61. py_mcp_installer/src/py_mcp_installer/platforms/__init__.py +26 -0
  62. py_mcp_installer/src/py_mcp_installer/platforms/claude_code.py +225 -0
  63. py_mcp_installer/src/py_mcp_installer/platforms/codex.py +181 -0
  64. py_mcp_installer/src/py_mcp_installer/platforms/cursor.py +191 -0
  65. py_mcp_installer/src/py_mcp_installer/types.py +222 -0
  66. py_mcp_installer/src/py_mcp_installer/utils.py +463 -0
  67. py_mcp_installer/tests/__init__.py +0 -0
  68. py_mcp_installer/tests/platforms/__init__.py +0 -0
  69. py_mcp_installer/tests/test_platform_detector.py +17 -0
  70. mcp_ticketer-2.0.1.dist-info/top_level.txt +0 -1
  71. {mcp_ticketer-2.0.1.dist-info → mcp_ticketer-2.2.13.dist-info}/WHEEL +0 -0
  72. {mcp_ticketer-2.0.1.dist-info → mcp_ticketer-2.2.13.dist-info}/entry_points.txt +0 -0
  73. {mcp_ticketer-2.0.1.dist-info → mcp_ticketer-2.2.13.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  """Version information for mcp-ticketer package."""
2
2
 
3
- __version__ = "2.0.1"
3
+ __version__ = "2.2.13"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
@@ -0,0 +1 @@
1
+ __version__ = "2.0.6.dev0+g966f4e973.d20251204"
@@ -1,5 +1,7 @@
1
1
  """AI-Trackdown adapter implementation."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  import builtins
4
6
  import json
5
7
  import logging
@@ -1240,6 +1242,126 @@ class AITrackdownAdapter(BaseAdapter[Task]):
1240
1242
  ]
1241
1243
  return statuses
1242
1244
 
1245
+ # Milestone Methods (Not yet implemented)
1246
+
1247
+ async def milestone_create(
1248
+ self,
1249
+ name: str,
1250
+ target_date: datetime | None = None,
1251
+ labels: list[str] | None = None,
1252
+ description: str = "",
1253
+ project_id: str | None = None,
1254
+ ) -> Any:
1255
+ """Create milestone - not yet implemented for AITrackdown.
1256
+
1257
+ Args:
1258
+ ----
1259
+ name: Milestone name
1260
+ target_date: Target completion date
1261
+ labels: Labels that define this milestone
1262
+ description: Milestone description
1263
+ project_id: Associated project ID
1264
+
1265
+ Raises:
1266
+ ------
1267
+ NotImplementedError: Milestone support coming in v2.1.0
1268
+
1269
+ """
1270
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1271
+
1272
+ async def milestone_get(self, milestone_id: str) -> Any:
1273
+ """Get milestone - not yet implemented for AITrackdown.
1274
+
1275
+ Args:
1276
+ ----
1277
+ milestone_id: Milestone identifier
1278
+
1279
+ Raises:
1280
+ ------
1281
+ NotImplementedError: Milestone support coming in v2.1.0
1282
+
1283
+ """
1284
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1285
+
1286
+ async def milestone_list(
1287
+ self,
1288
+ project_id: str | None = None,
1289
+ state: str | None = None,
1290
+ ) -> list[Any]:
1291
+ """List milestones - not yet implemented for AITrackdown.
1292
+
1293
+ Args:
1294
+ ----
1295
+ project_id: Filter by project
1296
+ state: Filter by state
1297
+
1298
+ Raises:
1299
+ ------
1300
+ NotImplementedError: Milestone support coming in v2.1.0
1301
+
1302
+ """
1303
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1304
+
1305
+ async def milestone_update(
1306
+ self,
1307
+ milestone_id: str,
1308
+ name: str | None = None,
1309
+ target_date: datetime | None = None,
1310
+ state: str | None = None,
1311
+ labels: list[str] | None = None,
1312
+ description: str | None = None,
1313
+ ) -> Any:
1314
+ """Update milestone - not yet implemented for AITrackdown.
1315
+
1316
+ Args:
1317
+ ----
1318
+ milestone_id: Milestone identifier
1319
+ name: New name
1320
+ target_date: New target date
1321
+ state: New state
1322
+ labels: New labels
1323
+ description: New description
1324
+
1325
+ Raises:
1326
+ ------
1327
+ NotImplementedError: Milestone support coming in v2.1.0
1328
+
1329
+ """
1330
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1331
+
1332
+ async def milestone_delete(self, milestone_id: str) -> bool:
1333
+ """Delete milestone - not yet implemented for AITrackdown.
1334
+
1335
+ Args:
1336
+ ----
1337
+ milestone_id: Milestone identifier
1338
+
1339
+ Raises:
1340
+ ------
1341
+ NotImplementedError: Milestone support coming in v2.1.0
1342
+
1343
+ """
1344
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1345
+
1346
+ async def milestone_get_issues(
1347
+ self,
1348
+ milestone_id: str,
1349
+ state: str | None = None,
1350
+ ) -> list[Any]:
1351
+ """Get milestone issues - not yet implemented for AITrackdown.
1352
+
1353
+ Args:
1354
+ ----
1355
+ milestone_id: Milestone identifier
1356
+ state: Filter by issue state
1357
+
1358
+ Raises:
1359
+ ------
1360
+ NotImplementedError: Milestone support coming in v2.1.0
1361
+
1362
+ """
1363
+ raise NotImplementedError("Milestone support for AITrackdown coming in v2.1.0")
1364
+
1243
1365
 
1244
1366
  # Register the adapter
1245
1367
  AdapterRegistry.register("aitrackdown", AITrackdownAdapter)
@@ -6,6 +6,7 @@ import builtins
6
6
  import logging
7
7
  import mimetypes
8
8
  import os
9
+ from datetime import datetime
9
10
  from pathlib import Path
10
11
  from typing import Any
11
12
 
@@ -1411,6 +1412,126 @@ class AsanaAdapter(BaseAdapter[Task]):
1411
1412
  """Close adapter and cleanup resources."""
1412
1413
  await self.client.close()
1413
1414
 
1415
+ # Milestone Methods (Not yet implemented)
1416
+
1417
+ async def milestone_create(
1418
+ self,
1419
+ name: str,
1420
+ target_date: datetime | None = None,
1421
+ labels: list[str] | None = None,
1422
+ description: str = "",
1423
+ project_id: str | None = None,
1424
+ ) -> Any:
1425
+ """Create milestone - not yet implemented for Asana.
1426
+
1427
+ Args:
1428
+ ----
1429
+ name: Milestone name
1430
+ target_date: Target completion date
1431
+ labels: Labels that define this milestone
1432
+ description: Milestone description
1433
+ project_id: Associated project ID
1434
+
1435
+ Raises:
1436
+ ------
1437
+ NotImplementedError: Milestone support coming in v2.1.0
1438
+
1439
+ """
1440
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1441
+
1442
+ async def milestone_get(self, milestone_id: str) -> Any:
1443
+ """Get milestone - not yet implemented for Asana.
1444
+
1445
+ Args:
1446
+ ----
1447
+ milestone_id: Milestone identifier
1448
+
1449
+ Raises:
1450
+ ------
1451
+ NotImplementedError: Milestone support coming in v2.1.0
1452
+
1453
+ """
1454
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1455
+
1456
+ async def milestone_list(
1457
+ self,
1458
+ project_id: str | None = None,
1459
+ state: str | None = None,
1460
+ ) -> list[Any]:
1461
+ """List milestones - not yet implemented for Asana.
1462
+
1463
+ Args:
1464
+ ----
1465
+ project_id: Filter by project
1466
+ state: Filter by state
1467
+
1468
+ Raises:
1469
+ ------
1470
+ NotImplementedError: Milestone support coming in v2.1.0
1471
+
1472
+ """
1473
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1474
+
1475
+ async def milestone_update(
1476
+ self,
1477
+ milestone_id: str,
1478
+ name: str | None = None,
1479
+ target_date: datetime | None = None,
1480
+ state: str | None = None,
1481
+ labels: list[str] | None = None,
1482
+ description: str | None = None,
1483
+ ) -> Any:
1484
+ """Update milestone - not yet implemented for Asana.
1485
+
1486
+ Args:
1487
+ ----
1488
+ milestone_id: Milestone identifier
1489
+ name: New name
1490
+ target_date: New target date
1491
+ state: New state
1492
+ labels: New labels
1493
+ description: New description
1494
+
1495
+ Raises:
1496
+ ------
1497
+ NotImplementedError: Milestone support coming in v2.1.0
1498
+
1499
+ """
1500
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1501
+
1502
+ async def milestone_delete(self, milestone_id: str) -> bool:
1503
+ """Delete milestone - not yet implemented for Asana.
1504
+
1505
+ Args:
1506
+ ----
1507
+ milestone_id: Milestone identifier
1508
+
1509
+ Raises:
1510
+ ------
1511
+ NotImplementedError: Milestone support coming in v2.1.0
1512
+
1513
+ """
1514
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1515
+
1516
+ async def milestone_get_issues(
1517
+ self,
1518
+ milestone_id: str,
1519
+ state: str | None = None,
1520
+ ) -> list[Any]:
1521
+ """Get milestone issues - not yet implemented for Asana.
1522
+
1523
+ Args:
1524
+ ----
1525
+ milestone_id: Milestone identifier
1526
+ state: Filter by issue state
1527
+
1528
+ Raises:
1529
+ ------
1530
+ NotImplementedError: Milestone support coming in v2.1.0
1531
+
1532
+ """
1533
+ raise NotImplementedError("Milestone support for Asana coming in v2.1.0")
1534
+
1414
1535
 
1415
1536
  # Register the adapter
1416
1537
  AdapterRegistry.register("asana", AsanaAdapter)
@@ -0,0 +1,26 @@
1
+ """GitHub adapter for MCP Ticketer.
2
+
3
+ This module provides integration with GitHub's REST and GraphQL APIs for universal ticket management.
4
+ The adapter is split into multiple modules for better organization:
5
+
6
+ - adapter.py: Main GitHubAdapter class with core functionality
7
+ - queries.py: GraphQL queries and fragments
8
+ - types.py: GitHub-specific types and mappings
9
+ - client.py: HTTP/GraphQL client management
10
+ - mappers.py: Data transformation between GitHub and universal models
11
+
12
+ Usage:
13
+ from mcp_ticketer.adapters.github import GitHubAdapter
14
+
15
+ config = {
16
+ "token": "your_github_token",
17
+ "owner": "repository_owner",
18
+ "repo": "repository_name"
19
+ }
20
+ adapter = GitHubAdapter(config)
21
+ """
22
+
23
+ from .adapter import GitHubAdapter
24
+ from .types import GitHubStateMapping
25
+
26
+ __all__ = ["GitHubAdapter", "GitHubStateMapping"]