mcp-ticketer 0.3.5__py3-none-any.whl → 0.3.6__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.

mcp_ticketer/__init__.py CHANGED
@@ -1,17 +1,8 @@
1
1
  """MCP Ticketer - Universal ticket management interface."""
2
2
 
3
- from .__version__ import (
4
- __author__,
5
- __author_email__,
6
- __copyright__,
7
- __description__,
8
- __license__,
9
- __title__,
10
- __version__,
11
- __version_info__,
12
- get_user_agent,
13
- get_version,
14
- )
3
+ from .__version__ import (__author__, __author_email__, __copyright__,
4
+ __description__, __license__, __title__, __version__,
5
+ __version_info__, get_user_agent, get_version)
15
6
 
16
7
  __all__ = [
17
8
  "__version__",
@@ -1,6 +1,6 @@
1
1
  """Version information for mcp-ticketer package."""
2
2
 
3
- __version__ = "0.3.5"
3
+ __version__ = "0.3.6"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
@@ -7,7 +7,8 @@ from pathlib import Path
7
7
  from typing import Any, Optional, Union
8
8
 
9
9
  from ..core.adapter import BaseAdapter
10
- from ..core.models import Comment, Epic, Priority, SearchQuery, Task, TicketState
10
+ from ..core.models import (Comment, Epic, Priority, SearchQuery, Task,
11
+ TicketState)
11
12
  from ..core.registry import AdapterRegistry
12
13
 
13
14
  # Import ai-trackdown-pytools when available
@@ -9,7 +9,8 @@ import httpx
9
9
 
10
10
  from ..core.adapter import BaseAdapter
11
11
  from ..core.env_loader import load_adapter_config, validate_adapter_config
12
- from ..core.models import Comment, Epic, Priority, SearchQuery, Task, TicketState
12
+ from ..core.models import (Comment, Epic, Priority, SearchQuery, Task,
13
+ TicketState)
13
14
  from ..core.registry import AdapterRegistry
14
15
 
15
16
 
@@ -13,7 +13,8 @@ from httpx import AsyncClient, HTTPStatusError, TimeoutException
13
13
 
14
14
  from ..core.adapter import BaseAdapter
15
15
  from ..core.env_loader import load_adapter_config, validate_adapter_config
16
- from ..core.models import Comment, Epic, Priority, SearchQuery, Task, TicketState
16
+ from ..core.models import (Comment, Epic, Priority, SearchQuery, Task,
17
+ TicketState)
17
18
  from ..core.registry import AdapterRegistry
18
19
 
19
20
  logger = logging.getLogger(__name__)
@@ -18,27 +18,15 @@ from ...core.adapter import BaseAdapter
18
18
  from ...core.models import Comment, Epic, SearchQuery, Task, TicketState
19
19
  from ...core.registry import AdapterRegistry
20
20
  from .client import LinearGraphQLClient
21
- from .mappers import (
22
- build_linear_issue_input,
23
- build_linear_issue_update_input,
24
- map_linear_comment_to_comment,
25
- map_linear_issue_to_task,
26
- map_linear_project_to_epic,
27
- )
28
- from .queries import (
29
- ALL_FRAGMENTS,
30
- CREATE_ISSUE_MUTATION,
31
- LIST_ISSUES_QUERY,
32
- SEARCH_ISSUES_QUERY,
33
- UPDATE_ISSUE_MUTATION,
34
- WORKFLOW_STATES_QUERY,
35
- )
36
- from .types import (
37
- LinearStateMapping,
38
- build_issue_filter,
39
- get_linear_priority,
40
- get_linear_state_type,
41
- )
21
+ from .mappers import (build_linear_issue_input,
22
+ build_linear_issue_update_input,
23
+ map_linear_comment_to_comment, map_linear_issue_to_task,
24
+ map_linear_project_to_epic)
25
+ from .queries import (ALL_FRAGMENTS, CREATE_ISSUE_MUTATION, LIST_ISSUES_QUERY,
26
+ SEARCH_ISSUES_QUERY, UPDATE_ISSUE_MUTATION,
27
+ WORKFLOW_STATES_QUERY)
28
+ from .types import (LinearStateMapping, build_issue_filter,
29
+ get_linear_priority, get_linear_state_type)
42
30
 
43
31
 
44
32
  class LinearAdapter(BaseAdapter[Task]):
@@ -205,7 +193,7 @@ class LinearAdapter(BaseAdapter[Task]):
205
193
  )
206
194
 
207
195
  workflow_states = {}
208
- for state in result["workflowStates"]["nodes"]:
196
+ for state in result["team"]["states"]["nodes"]:
209
197
  state_type = state["type"].lower()
210
198
  if state_type not in workflow_states:
211
199
  workflow_states[state_type] = state
@@ -16,7 +16,8 @@ except ImportError:
16
16
  HTTPXAsyncTransport = None
17
17
  TransportError = Exception
18
18
 
19
- from ...core.exceptions import AdapterError, AuthenticationError, RateLimitError
19
+ from ...core.exceptions import (AdapterError, AuthenticationError,
20
+ RateLimitError)
20
21
 
21
22
 
22
23
  class LinearGraphQLClient:
@@ -6,7 +6,8 @@ from datetime import datetime
6
6
  from typing import Any
7
7
 
8
8
  from ...core.models import Comment, Epic, Priority, Task, TicketState
9
- from .types import extract_linear_metadata, get_universal_priority, get_universal_state
9
+ from .types import (extract_linear_metadata, get_universal_priority,
10
+ get_universal_state)
10
11
 
11
12
 
12
13
  def map_linear_issue_to_task(issue_data: dict[str, Any]) -> Task:
@@ -226,13 +226,15 @@ ISSUE_LIST_FRAGMENTS = (
226
226
 
227
227
  WORKFLOW_STATES_QUERY = """
228
228
  query WorkflowStates($teamId: String!) {
229
- workflowStates(filter: { team: { id: { eq: $teamId } } }) {
230
- nodes {
231
- id
232
- name
233
- type
234
- position
235
- color
229
+ team(id: $teamId) {
230
+ states {
231
+ nodes {
232
+ id
233
+ name
234
+ type
235
+ position
236
+ color
237
+ }
236
238
  }
237
239
  }
238
240
  }
@@ -197,7 +197,8 @@ def _test_adapter_instantiation(console: Console) -> None:
197
197
  if primary:
198
198
  adapter_type = primary.adapter_type
199
199
  # Build config from discovery
200
- from ..mcp.server import _build_adapter_config_from_env_vars
200
+ from ..mcp.server import \
201
+ _build_adapter_config_from_env_vars
201
202
 
202
203
  config = _build_adapter_config_from_env_vars(adapter_type, {})
203
204
  else:
@@ -384,7 +385,8 @@ def get_adapter_status() -> dict[str, Any]:
384
385
  adapter_type = primary.adapter_type
385
386
  status["configuration_source"] = primary.found_in
386
387
  # Build basic config
387
- from ..mcp.server import _build_adapter_config_from_env_vars
388
+ from ..mcp.server import \
389
+ _build_adapter_config_from_env_vars
388
390
 
389
391
  config = _build_adapter_config_from_env_vars(adapter_type, {})
390
392
  else:
@@ -9,15 +9,9 @@ from rich.panel import Panel
9
9
  from rich.prompt import Confirm, Prompt
10
10
  from rich.table import Table
11
11
 
12
- from ..core.project_config import (
13
- AdapterConfig,
14
- AdapterType,
15
- ConfigResolver,
16
- ConfigValidator,
17
- HybridConfig,
18
- SyncStrategy,
19
- TicketerConfig,
20
- )
12
+ from ..core.project_config import (AdapterConfig, AdapterType, ConfigResolver,
13
+ ConfigValidator, HybridConfig, SyncStrategy,
14
+ TicketerConfig)
21
15
 
22
16
  console = Console()
23
17
 
@@ -7,12 +7,8 @@ import typer
7
7
  from rich.console import Console
8
8
 
9
9
  from ..core.env_discovery import DiscoveredAdapter, EnvDiscovery
10
- from ..core.project_config import (
11
- AdapterConfig,
12
- ConfigResolver,
13
- ConfigValidator,
14
- TicketerConfig,
15
- )
10
+ from ..core.project_config import (AdapterConfig, ConfigResolver,
11
+ ConfigValidator, TicketerConfig)
16
12
 
17
13
  console = Console()
18
14
  app = typer.Typer(help="Auto-discover configuration from .env files")
mcp_ticketer/cli/main.py CHANGED
@@ -21,7 +21,8 @@ from ..core.models import Comment, SearchQuery
21
21
  from ..queue import Queue, QueueStatus, WorkerManager
22
22
  from ..queue.health_monitor import HealthStatus, QueueHealthMonitor
23
23
  from ..queue.ticket_registry import TicketRegistry
24
- from .configure import configure_wizard, set_adapter_config, show_current_config
24
+ from .configure import (configure_wizard, set_adapter_config,
25
+ show_current_config)
25
26
  from .diagnostics import run_diagnostics
26
27
  from .discover import app as discover_app
27
28
  from .linear_commands import app as linear_app
@@ -12,40 +12,20 @@ from dotenv import load_dotenv
12
12
  import mcp_ticketer.adapters # noqa: F401
13
13
 
14
14
  from ..core import AdapterRegistry
15
- from ..core.models import Comment, Epic, Priority, SearchQuery, Task, TicketState
16
- from .constants import (
17
- DEFAULT_BASE_PATH,
18
- DEFAULT_LIMIT,
19
- DEFAULT_MAX_DEPTH,
20
- DEFAULT_OFFSET,
21
- ERROR_INTERNAL,
22
- ERROR_METHOD_NOT_FOUND,
23
- ERROR_PARSE,
24
- JSONRPC_VERSION,
25
- MCP_PROTOCOL_VERSION,
26
- MSG_EPIC_NOT_FOUND,
27
- MSG_INTERNAL_ERROR,
28
- MSG_MISSING_TICKET_ID,
29
- MSG_MISSING_TITLE,
30
- MSG_NO_TICKETS_PROVIDED,
31
- MSG_NO_UPDATES_PROVIDED,
32
- MSG_TICKET_NOT_FOUND,
33
- MSG_TRANSITION_FAILED,
34
- MSG_UNKNOWN_METHOD,
35
- MSG_UNKNOWN_OPERATION,
36
- MSG_UPDATE_FAILED,
37
- SERVER_NAME,
38
- SERVER_VERSION,
39
- STATUS_COMPLETED,
40
- STATUS_ERROR,
41
- )
42
- from .dto import (
43
- CreateEpicRequest,
44
- CreateIssueRequest,
45
- CreateTaskRequest,
46
- CreateTicketRequest,
47
- ReadTicketRequest,
48
- )
15
+ from ..core.models import (Comment, Epic, Priority, SearchQuery, Task,
16
+ TicketState)
17
+ from .constants import (DEFAULT_BASE_PATH, DEFAULT_LIMIT, DEFAULT_MAX_DEPTH,
18
+ DEFAULT_OFFSET, ERROR_INTERNAL, ERROR_METHOD_NOT_FOUND,
19
+ ERROR_PARSE, JSONRPC_VERSION, MCP_PROTOCOL_VERSION,
20
+ MSG_EPIC_NOT_FOUND, MSG_INTERNAL_ERROR,
21
+ MSG_MISSING_TICKET_ID, MSG_MISSING_TITLE,
22
+ MSG_NO_TICKETS_PROVIDED, MSG_NO_UPDATES_PROVIDED,
23
+ MSG_TICKET_NOT_FOUND, MSG_TRANSITION_FAILED,
24
+ MSG_UNKNOWN_METHOD, MSG_UNKNOWN_OPERATION,
25
+ MSG_UPDATE_FAILED, SERVER_NAME, SERVER_VERSION,
26
+ STATUS_COMPLETED, STATUS_ERROR)
27
+ from .dto import (CreateEpicRequest, CreateIssueRequest, CreateTaskRequest,
28
+ CreateTicketRequest, ReadTicketRequest)
49
29
  from .response_builder import ResponseBuilder
50
30
 
51
31
  # Load environment variables early (prioritize .env.local)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Universal ticket management interface for AI agents with MCP support
5
5
  Author-email: MCP Ticketer Team <support@mcp-ticketer.io>
6
6
  Maintainer-email: MCP Ticketer Team <support@mcp-ticketer.io>
@@ -1,30 +1,30 @@
1
- mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=RfLkvzGZCRZI8388D91iayKn1UOAoAbVt1mUwpoGOR8,1117
1
+ mcp_ticketer/__init__.py,sha256=-8ko5W0ZFF5rWaiSCyTAiK6XLomlwnAWGfG9ntQHV5o,506
2
+ mcp_ticketer/__version__.py,sha256=wR5EgVZ9tXLjR-YAXClWYw8Ir35-gGyiaTzhafMDnyw,1117
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
- mcp_ticketer/adapters/aitrackdown.py,sha256=Ecw2SQAGVQs5yMH6m2pj61LxCJsuy-g2bvF8uwTpLUE,22588
6
- mcp_ticketer/adapters/github.py,sha256=YbZ8hj4nOy4pGIbZ_0zwciNbNnwK69zqfljb-wc2tSY,47384
5
+ mcp_ticketer/adapters/aitrackdown.py,sha256=oDb9Y9tiHC0n66RLL7R92ZMWFepTLZT7we45pss08go,22617
6
+ mcp_ticketer/adapters/github.py,sha256=rxTy50g1NditvoDM9x19zxIZef7sF1VCCKXmY5kf4rg,47413
7
7
  mcp_ticketer/adapters/hybrid.py,sha256=UADYZLc_UNw0xHPSbgguBNzvUCnuYn12Qi9ea-zdlMk,19086
8
- mcp_ticketer/adapters/jira.py,sha256=labZFqOy_mmMmizC-RD1EQbu9m4LLtJywwZ956-_x5E,35347
8
+ mcp_ticketer/adapters/jira.py,sha256=SbcHqw0FjmCXCDasXFbIulbFEFCtsZ7rY2FP6TzWadk,35376
9
9
  mcp_ticketer/adapters/linear.py,sha256=trm6ZhmlUl80sj51WAPAox_R2HQZXZ-h1QXJsrFYDCQ,587
10
10
  mcp_ticketer/adapters/linear/__init__.py,sha256=6l0ZoR6ZHSRcytLfps2AZuk5R189Pq1GfR5-YDQt8-Q,731
11
- mcp_ticketer/adapters/linear/adapter.py,sha256=EvF9FrxMQBVTtO6H3wd9aC8Xv_IeMPt4jM7e2WrsGWU,29610
12
- mcp_ticketer/adapters/linear/client.py,sha256=0UmWlSEcRiwnSMFYKL89KMrPPL8S8uZ5V6rIY_KFOQU,8803
13
- mcp_ticketer/adapters/linear/mappers.py,sha256=GN1X7bOcU-5dhDW3dAtSEGivinhFBc8hoKYot8c5tCo,9631
14
- mcp_ticketer/adapters/linear/queries.py,sha256=lT6z64eUjX50Mz00Mk7jkFCRKPM9GptHPelWMj2csXc,7200
11
+ mcp_ticketer/adapters/linear/adapter.py,sha256=MPa24OWhPINzHdf-w6PLJd4-cdCTay7YyasjNlA7j04,29671
12
+ mcp_ticketer/adapters/linear/client.py,sha256=KcLDTVOgUnOaSJS4domu0dmkslBipNfG5pPoVJ3M0a0,8837
13
+ mcp_ticketer/adapters/linear/mappers.py,sha256=76UbR2GvkVuAcT4T7EAQSFfagcGOQcLKElwVAXsFQ10,9653
14
+ mcp_ticketer/adapters/linear/queries.py,sha256=K8y7xc3iH-q9LEUmg-0YDBhh546LAwLZDvVLkzx3yY4,7223
15
15
  mcp_ticketer/adapters/linear/types.py,sha256=ugXtRGLljDw6yoCnEVgdFs0xLR9ErLdnv4ffh9EAUhk,7874
16
16
  mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
17
17
  mcp_ticketer/cache/memory.py,sha256=2yBqGi9i0SanlUhJoOC7nijWjoMa3_ntPe-V-AV-LfU,5042
18
18
  mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
19
- mcp_ticketer/cli/adapter_diagnostics.py,sha256=pQDdtDgBwSW04wdFEPVzwbul3KgfB9g6ZMS85qpYulY,14988
19
+ mcp_ticketer/cli/adapter_diagnostics.py,sha256=k7RBEbDx5_hiv8IqcJIDjvktmlDFO8mOqRW8JkZqUZ0,15040
20
20
  mcp_ticketer/cli/auggie_configure.py,sha256=MXKzLtqe3K_UTQ2GacHAWbvf_B0779KL325smiAKE0Q,8212
21
21
  mcp_ticketer/cli/codex_configure.py,sha256=k7-q5d7NICjm7Vxa-z0mejJNAG-bicAHKcwqrzdRDyU,9080
22
- mcp_ticketer/cli/configure.py,sha256=BsA_pSHQMQS0t1bJO_wMM8LWsd5sWJDASjEPRHvwC18,16198
22
+ mcp_ticketer/cli/configure.py,sha256=3AViztrHhn0wYatQdR73I1bfdWTavrT3bFIY2mQSKXE,16237
23
23
  mcp_ticketer/cli/diagnostics.py,sha256=jHF68ydW3RNVGumBnHUjUmq6YOjQD2UDkx0O7M__xv0,29965
24
- mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
24
+ mcp_ticketer/cli/discover.py,sha256=Ox47QrjNRo3QueC7YUcEv18EWzIa5EXYUz4xqE6mZWU,13204
25
25
  mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
26
26
  mcp_ticketer/cli/linear_commands.py,sha256=_8f8ze_1MbiUweU6RFHpldgfHLirysIdPjHr2_S0YhI,17319
27
- mcp_ticketer/cli/main.py,sha256=BFo7QYU0tTOHWSfTmegzDqflSYFytCE8Jw6QGB7TwaY,74470
27
+ mcp_ticketer/cli/main.py,sha256=F4dL2tVqqqg1vf9Javc0-3Lz9dX3qXe6Y2MD99Jvao0,74496
28
28
  mcp_ticketer/cli/mcp_configure.py,sha256=RzV50UjXgOmvMp-9S0zS39psuvjffVByaMrqrUaAGAM,9594
29
29
  mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
30
30
  mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
@@ -45,7 +45,7 @@ mcp_ticketer/mcp/__init__.py,sha256=Y05eTzsPk0wH8yKNIM-ekpGjgSDO0bQr0EME-vOP4GE,
45
45
  mcp_ticketer/mcp/constants.py,sha256=EBGsJtBPaTCvAm5rOMknckrXActrNIls7lRklnh1L4s,2072
46
46
  mcp_ticketer/mcp/dto.py,sha256=fUNAdCnPNp80s6RYLFqSmgqQZX04BHYry4GArmFkdG0,7336
47
47
  mcp_ticketer/mcp/response_builder.py,sha256=sEYiwQddlfQmIOcbQ-yBsDvH1EJfbTDwCEUJNf7q5Vk,4946
48
- mcp_ticketer/mcp/server.py,sha256=l9DQ4e9pzdIyIS3Y-gKQwzOzBiVxDi0YJO0U6EeCz5M,46825
48
+ mcp_ticketer/mcp/server.py,sha256=TX9F7myGspWrP5Fb68YttwaRB1e2zy4sD8ZSbDtgysQ,46966
49
49
  mcp_ticketer/queue/__init__.py,sha256=1YIaCpZpFqPcqvDEQXiEvDLiw94DXRdCJkBaVIFQrms,231
50
50
  mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
51
51
  mcp_ticketer/queue/health_monitor.py,sha256=KFOzksomUFnS94XKBiuHFPmGK6b4QXWzsrjwhHkR9vI,12245
@@ -54,9 +54,9 @@ mcp_ticketer/queue/queue.py,sha256=PIB_8gOE4rCb5_tBNKw9qD6YhSgH3Ei3IzVrUSY3F_o,1
54
54
  mcp_ticketer/queue/run_worker.py,sha256=WhoeamL8LKZ66TM8W1PkMPwjF2w_EDFMP-mevs6C1TM,1019
55
55
  mcp_ticketer/queue/ticket_registry.py,sha256=FE6W_D8NA-66cJQ6VqghChF3JasYW845JVfEZdiqLbA,15449
56
56
  mcp_ticketer/queue/worker.py,sha256=AF6W1bdxWnHiJd6-iBWqTHkZ4lFflsS65CAtgFPR0FA,20983
57
- mcp_ticketer-0.3.5.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
58
- mcp_ticketer-0.3.5.dist-info/METADATA,sha256=P_TStpQVYOyHeSxjHnvIQ7WUP3jTbwBDnlL0DmwrORw,13219
59
- mcp_ticketer-0.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
60
- mcp_ticketer-0.3.5.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
61
- mcp_ticketer-0.3.5.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
62
- mcp_ticketer-0.3.5.dist-info/RECORD,,
57
+ mcp_ticketer-0.3.6.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
58
+ mcp_ticketer-0.3.6.dist-info/METADATA,sha256=b1DhGguW8BuS-PQIaUQw2pbZO7lUwQJd5WrCoZFhshM,13219
59
+ mcp_ticketer-0.3.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
60
+ mcp_ticketer-0.3.6.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
61
+ mcp_ticketer-0.3.6.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
62
+ mcp_ticketer-0.3.6.dist-info/RECORD,,