mcp-ticketer 0.4.4__py3-none-any.whl → 0.4.8__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 (45) hide show
  1. mcp_ticketer/__init__.py +3 -12
  2. mcp_ticketer/__version__.py +1 -1
  3. mcp_ticketer/adapters/aitrackdown.py +2 -9
  4. mcp_ticketer/adapters/github.py +2 -1
  5. mcp_ticketer/adapters/jira.py +2 -1
  6. mcp_ticketer/adapters/linear/adapter.py +28 -25
  7. mcp_ticketer/adapters/linear/client.py +2 -1
  8. mcp_ticketer/adapters/linear/mappers.py +2 -1
  9. mcp_ticketer/cli/adapter_diagnostics.py +4 -2
  10. mcp_ticketer/cli/auggie_configure.py +35 -15
  11. mcp_ticketer/cli/codex_configure.py +38 -31
  12. mcp_ticketer/cli/configure.py +3 -9
  13. mcp_ticketer/cli/discover.py +2 -6
  14. mcp_ticketer/cli/gemini_configure.py +38 -25
  15. mcp_ticketer/cli/main.py +4 -3
  16. mcp_ticketer/cli/mcp_configure.py +115 -78
  17. mcp_ticketer/cli/python_detection.py +126 -0
  18. mcp_ticketer/core/__init__.py +2 -1
  19. mcp_ticketer/mcp/__init__.py +29 -1
  20. mcp_ticketer/mcp/__main__.py +60 -0
  21. mcp_ticketer/mcp/server/__init__.py +21 -0
  22. mcp_ticketer/mcp/server/__main__.py +60 -0
  23. mcp_ticketer/mcp/{server.py → server/main.py} +15 -35
  24. mcp_ticketer/mcp/{tools → server/tools}/__init__.py +7 -9
  25. mcp_ticketer/queue/__init__.py +1 -0
  26. mcp_ticketer/queue/manager.py +10 -46
  27. mcp_ticketer/queue/ticket_registry.py +5 -5
  28. {mcp_ticketer-0.4.4.dist-info → mcp_ticketer-0.4.8.dist-info}/METADATA +13 -4
  29. mcp_ticketer-0.4.8.dist-info/RECORD +77 -0
  30. mcp_ticketer-0.4.4.dist-info/RECORD +0 -73
  31. /mcp_ticketer/mcp/{constants.py → server/constants.py} +0 -0
  32. /mcp_ticketer/mcp/{dto.py → server/dto.py} +0 -0
  33. /mcp_ticketer/mcp/{response_builder.py → server/response_builder.py} +0 -0
  34. /mcp_ticketer/mcp/{server_sdk.py → server/server_sdk.py} +0 -0
  35. /mcp_ticketer/mcp/{tools → server/tools}/attachment_tools.py +0 -0
  36. /mcp_ticketer/mcp/{tools → server/tools}/bulk_tools.py +0 -0
  37. /mcp_ticketer/mcp/{tools → server/tools}/comment_tools.py +0 -0
  38. /mcp_ticketer/mcp/{tools → server/tools}/hierarchy_tools.py +0 -0
  39. /mcp_ticketer/mcp/{tools → server/tools}/pr_tools.py +0 -0
  40. /mcp_ticketer/mcp/{tools → server/tools}/search_tools.py +0 -0
  41. /mcp_ticketer/mcp/{tools → server/tools}/ticket_tools.py +0 -0
  42. {mcp_ticketer-0.4.4.dist-info → mcp_ticketer-0.4.8.dist-info}/WHEEL +0 -0
  43. {mcp_ticketer-0.4.4.dist-info → mcp_ticketer-0.4.8.dist-info}/entry_points.txt +0 -0
  44. {mcp_ticketer-0.4.4.dist-info → mcp_ticketer-0.4.8.dist-info}/licenses/LICENSE +0 -0
  45. {mcp_ticketer-0.4.4.dist-info → mcp_ticketer-0.4.8.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
1
  """Async queue system for mcp-ticketer."""
2
2
 
3
+ # Import manager last to avoid circular import
3
4
  from .manager import WorkerManager
4
5
  from .queue import Queue, QueueItem, QueueStatus
5
6
  from .worker import Worker
@@ -4,14 +4,14 @@ import fcntl
4
4
  import logging
5
5
  import os
6
6
  import subprocess
7
- import sys
8
7
  import time
9
8
  from pathlib import Path
10
- from typing import Any
9
+ from typing import TYPE_CHECKING, Any
11
10
 
12
11
  import psutil
13
12
 
14
- from .queue import Queue
13
+ if TYPE_CHECKING:
14
+ pass
15
15
 
16
16
  logger = logging.getLogger(__name__)
17
17
 
@@ -21,6 +21,9 @@ class WorkerManager:
21
21
 
22
22
  def __init__(self):
23
23
  """Initialize worker manager."""
24
+ # Lazy import to avoid circular dependency
25
+ from .queue import Queue
26
+
24
27
  self.lock_file = Path.home() / ".mcp-ticketer" / "worker.lock"
25
28
  self.pid_file = Path.home() / ".mcp-ticketer" / "worker.pid"
26
29
  self.lock_file.parent.mkdir(parents=True, exist_ok=True)
@@ -123,7 +126,10 @@ class WorkerManager:
123
126
  try:
124
127
  # Start worker in subprocess using the same Python executable as the CLI
125
128
  # This ensures the worker can import mcp_ticketer modules
126
- python_executable = self._get_python_executable()
129
+ # Lazy import to avoid circular dependency
130
+ from ..cli.python_detection import get_mcp_ticketer_python
131
+
132
+ python_executable = get_mcp_ticketer_python()
127
133
  cmd = [python_executable, "-m", "mcp_ticketer.queue.run_worker"]
128
134
 
129
135
  # Prepare environment for subprocess
@@ -320,48 +326,6 @@ class WorkerManager:
320
326
  except (OSError, ValueError):
321
327
  return None
322
328
 
323
- def _get_python_executable(self) -> str:
324
- """Get the correct Python executable for the worker subprocess.
325
-
326
- This ensures the worker uses the same Python environment as the CLI,
327
- which is critical for module imports to work correctly.
328
-
329
- Returns:
330
- Path to Python executable
331
-
332
- """
333
- # First, try to detect if we're running in a pipx environment
334
- # by checking if the current executable is in a pipx venv
335
- current_executable = sys.executable
336
-
337
- # Check if we're in a pipx venv (path contains /pipx/venvs/)
338
- if "/pipx/venvs/" in current_executable:
339
- logger.debug(f"Using pipx Python executable: {current_executable}")
340
- return current_executable
341
-
342
- # Check if we can find the mcp-ticketer executable and extract its Python
343
- import shutil
344
-
345
- mcp_ticketer_path = shutil.which("mcp-ticketer")
346
- if mcp_ticketer_path:
347
- try:
348
- # Read the shebang line to get the Python executable
349
- with open(mcp_ticketer_path) as f:
350
- first_line = f.readline().strip()
351
- if first_line.startswith("#!") and "python" in first_line:
352
- python_path = first_line[2:].strip()
353
- if os.path.exists(python_path):
354
- logger.debug(
355
- f"Using Python from mcp-ticketer shebang: {python_path}"
356
- )
357
- return python_path
358
- except OSError:
359
- pass
360
-
361
- # Fallback to sys.executable
362
- logger.debug(f"Using sys.executable as fallback: {current_executable}")
363
- return current_executable
364
-
365
329
  def _cleanup(self):
366
330
  """Clean up lock and PID files."""
367
331
  self._release_lock()
@@ -202,7 +202,7 @@ class TicketRegistry:
202
202
  return None
203
203
 
204
204
  columns = [desc[0] for desc in cursor.description]
205
- ticket_info = dict(zip(columns, row))
205
+ ticket_info = dict(zip(columns, row, strict=False))
206
206
 
207
207
  # Parse JSON fields
208
208
  if ticket_info.get("ticket_data"):
@@ -236,7 +236,7 @@ class TicketRegistry:
236
236
  columns = [desc[0] for desc in cursor.description]
237
237
 
238
238
  for row in cursor.fetchall():
239
- ticket_info = dict(zip(columns, row))
239
+ ticket_info = dict(zip(columns, row, strict=False))
240
240
 
241
241
  # Parse JSON fields
242
242
  if ticket_info.get("ticket_data"):
@@ -273,7 +273,7 @@ class TicketRegistry:
273
273
  columns = [desc[0] for desc in cursor.description]
274
274
 
275
275
  for row in cursor.fetchall():
276
- ticket_info = dict(zip(columns, row))
276
+ ticket_info = dict(zip(columns, row, strict=False))
277
277
 
278
278
  # Parse JSON fields
279
279
  if ticket_info.get("ticket_data"):
@@ -306,7 +306,7 @@ class TicketRegistry:
306
306
  columns = [desc[0] for desc in cursor.description]
307
307
 
308
308
  for row in cursor.fetchall():
309
- ticket_info = dict(zip(columns, row))
309
+ ticket_info = dict(zip(columns, row, strict=False))
310
310
 
311
311
  # Parse JSON fields
312
312
  if ticket_info.get("ticket_data"):
@@ -436,7 +436,7 @@ class TicketRegistry:
436
436
  columns = [desc[0] for desc in cursor.description]
437
437
 
438
438
  for row in cursor.fetchall():
439
- recovery_info = dict(zip(columns, row))
439
+ recovery_info = dict(zip(columns, row, strict=False))
440
440
  if recovery_info.get("recovery_data"):
441
441
  recovery_info["recovery_data"] = json.loads(
442
442
  recovery_info["recovery_data"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.4.4
3
+ Version: 0.4.8
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>
@@ -282,16 +282,25 @@ mcp-ticketer uninstall auggie # Alias for remove
282
282
  {
283
283
  "mcpServers": {
284
284
  "mcp-ticketer": {
285
- "command": "/path/to/mcp-ticketer",
286
- "args": ["serve"],
285
+ "command": "/path/to/venv/bin/python",
286
+ "args": ["-m", "mcp_ticketer.mcp.server", "/absolute/path/to/project"],
287
287
  "env": {
288
- "MCP_TICKETER_ADAPTER": "aitrackdown"
288
+ "MCP_TICKETER_ADAPTER": "aitrackdown",
289
+ "PYTHONPATH": "/absolute/path/to/project"
289
290
  }
290
291
  }
291
292
  }
292
293
  }
293
294
  ```
294
295
 
296
+ **Why this pattern?**
297
+ - **More Reliable**: Uses venv Python directly instead of binary wrapper
298
+ - **Consistent**: Matches proven mcp-vector-search pattern
299
+ - **Universal**: Works across pipx, pip, and uv installations
300
+ - **Better Errors**: Python module invocation provides clearer error messages
301
+
302
+ **Automatic Detection**: The `mcp-ticketer install` commands automatically detect your venv Python and generate the correct configuration.
303
+
295
304
  **See [AI Client Integration Guide](docs/AI_CLIENT_INTEGRATION.md) for client-specific details.**
296
305
 
297
306
  ## ⚙️ Configuration
@@ -0,0 +1,77 @@
1
+ mcp_ticketer/__init__.py,sha256=-8ko5W0ZFF5rWaiSCyTAiK6XLomlwnAWGfG9ntQHV5o,506
2
+ mcp_ticketer/__version__.py,sha256=FMOVq48ReNbDNx45K2GXmJbg-G-9wct72RfE7DidR60,1117
3
+ mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
+ mcp_ticketer/adapters/aitrackdown.py,sha256=hLjmc1RtWjsUEPZD-v_gQ1BGyTMe1tcuArKFknsMDtY,30316
6
+ mcp_ticketer/adapters/github.py,sha256=tsMPeF-qwkul0WEPrXx9T-DjTx0O--aAIePqJ3hqCt8,47367
7
+ mcp_ticketer/adapters/hybrid.py,sha256=7ocRjK7N7FdXSUCeFc23jFevfVwcPvHPIsEPXV_4o1w,18997
8
+ mcp_ticketer/adapters/jira.py,sha256=VR1Xnlhp6EI1XmQbinFn9lch3G7MFUvDYnPg4kv1lUk,35233
9
+ mcp_ticketer/adapters/linear.py,sha256=trm6ZhmlUl80sj51WAPAox_R2HQZXZ-h1QXJsrFYDCQ,587
10
+ mcp_ticketer/adapters/linear/__init__.py,sha256=6l0ZoR6ZHSRcytLfps2AZuk5R189Pq1GfR5-YDQt8-Q,731
11
+ mcp_ticketer/adapters/linear/adapter.py,sha256=kx1XQGhHWpco_QyEEw08ZKMT40A_GVi9KfGpIpyVD2k,31831
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
+ mcp_ticketer/adapters/linear/types.py,sha256=ugXtRGLljDw6yoCnEVgdFs0xLR9ErLdnv4ffh9EAUhk,7874
16
+ mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
17
+ mcp_ticketer/cache/memory.py,sha256=rWphWZy7XTbHezC7HMRQN9ISUhYo0Pc2OTgLG30vHnI,5047
18
+ mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
19
+ mcp_ticketer/cli/adapter_diagnostics.py,sha256=k7RBEbDx5_hiv8IqcJIDjvktmlDFO8mOqRW8JkZqUZ0,15040
20
+ mcp_ticketer/cli/auggie_configure.py,sha256=BA31HvOXljPqi3QMKt5eI5jYUWCnnH00sDqwR3y2nSY,11701
21
+ mcp_ticketer/cli/codex_configure.py,sha256=LLGzsFjCNO3irtabSazCpsZ5eUmG6eAjCNn6B5M4aHQ,12249
22
+ mcp_ticketer/cli/configure.py,sha256=nO1G7E0y0GN5AcCRhBnU23j7kTLxF0GkQukLIYyB_0E,16197
23
+ mcp_ticketer/cli/diagnostics.py,sha256=s7P4vDzPpthgiBJfAOXpunlhZ62buHg_BA5W7ghQBqg,29952
24
+ mcp_ticketer/cli/discover.py,sha256=CcQo5w2ISYMM1VDp34SHgyCMNazZ8w6DYkzCk49OU3Q,13164
25
+ mcp_ticketer/cli/gemini_configure.py,sha256=GXbQkfZGsmx_2cJKxH_5z3JdcwpMopF0duI_TzbKip8,12644
26
+ mcp_ticketer/cli/linear_commands.py,sha256=YnmqRacAfTdF0CLr4BXOxFs3uwm_hVifbGdTe6t2CfA,17273
27
+ mcp_ticketer/cli/main.py,sha256=p4_Ryjtaz2pmvGJPkSDc4O5rS11EAdL3LTXjF8uC84o,89290
28
+ mcp_ticketer/cli/mcp_configure.py,sha256=dgApMLBApLxU0fvFOyDBkX69GOGVNTXhAKM-hZGw5v8,14142
29
+ mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
30
+ mcp_ticketer/cli/platform_commands.py,sha256=pTLRT2wot8dAmy1-roJWWOT0Cxu7j-06BlWDnZ9a4jY,3624
31
+ mcp_ticketer/cli/python_detection.py,sha256=qmhi0CIDKH_AUVGkJ9jyY1zBpx1cwiQNv0vnEvMYDFQ,4272
32
+ mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
33
+ mcp_ticketer/cli/simple_health.py,sha256=GlOLRRFoifCna995NoHuKpb3xmFkLi2b3Ke1hyeDvq4,7950
34
+ mcp_ticketer/cli/ticket_commands.py,sha256=zmtePGhZzhw_r-0xWQMzXSJMo684PlzEN5LYfcR3_dw,26589
35
+ mcp_ticketer/cli/utils.py,sha256=JU2CtdA8pLaH0R5Xpb_Z4-W-PvQfzhbXl9VR04vzMSE,22992
36
+ mcp_ticketer/core/__init__.py,sha256=-G2Pn9sXdC1XxdFXfxTWV5QS3vC0HvqCGxPM1MtC6lE,402
37
+ mcp_ticketer/core/adapter.py,sha256=K8bQ9fQRN6Xjaxgl24f6X5u0PVmj9WFof_MOKapDHbU,12136
38
+ mcp_ticketer/core/config.py,sha256=q95coT6zDAVbN6eFFe6HUHXyqBm669z8g8nKWNfL8fs,19251
39
+ mcp_ticketer/core/env_discovery.py,sha256=iZnmtv1RWnmjjih0iFEInOoK9CU9_oNpfNgmiToQ5wk,19934
40
+ mcp_ticketer/core/env_loader.py,sha256=OaSQkH3ldpeLdw_zIe9QFQxOfnZZLLJa4wFxi1shEqs,11835
41
+ mcp_ticketer/core/exceptions.py,sha256=H1gUmNiOjVXn4CT-JLQcGXmjWxHaxxdFvwcpJLTrs-U,3621
42
+ mcp_ticketer/core/http_client.py,sha256=hCHn0iU52RUFCsa_DwNffTrAk1OxKND9k09NUrHkroo,13900
43
+ mcp_ticketer/core/mappers.py,sha256=okte6EV_OuPvnM1KXHUcfrpPd7TWnKh44X3_W3HxwiI,17419
44
+ mcp_ticketer/core/models.py,sha256=ABKdyAkEkKtMF_d6D8_qRL-2ujz1DshemHSyqTPUthA,14448
45
+ mcp_ticketer/core/project_config.py,sha256=DmLekuMuOgNtzg-olOU4Utv00DdCH1-CXuoooA-adMs,23609
46
+ mcp_ticketer/core/registry.py,sha256=gBeXcZ3grHl9gYFbyRp-C4IM7SD_KGTeXT_1jG8XrCc,3470
47
+ mcp_ticketer/mcp/__init__.py,sha256=XscFBOFeIxBNgA_8yPLl6c75-YJCcIN2I9eoLEGsBdM,864
48
+ mcp_ticketer/mcp/__main__.py,sha256=Fo_5KJOFako2gi1Z1kk5zEt2sGJW6BX6oXlYp7twYTs,1713
49
+ mcp_ticketer/mcp/server/__init__.py,sha256=2ll9kLEEiKP_NtvJghHVz6TG2p7xwIUBRqlxZKWRCvU,509
50
+ mcp_ticketer/mcp/server/__main__.py,sha256=xE1n94M5n2tKyT6qFIOXaqRXX7L--SxmCglKUPcljG0,1711
51
+ mcp_ticketer/mcp/server/constants.py,sha256=EBGsJtBPaTCvAm5rOMknckrXActrNIls7lRklnh1L4s,2072
52
+ mcp_ticketer/mcp/server/dto.py,sha256=FR_OBtaxrno8AsHynPwUUW715iAoaBkrr7Ud8HZTQW8,7233
53
+ mcp_ticketer/mcp/server/main.py,sha256=FYkZ-sg3eKJMu8ICmmRBGDgfqV6oXY2Fv1l2sMH4gUc,48976
54
+ mcp_ticketer/mcp/server/response_builder.py,sha256=DUfe1e0CcXPlepLq-cGH6b_THqoZEynYfVKkZEeLe0M,4933
55
+ mcp_ticketer/mcp/server/server_sdk.py,sha256=orgOTrvrtBn2BeMJt5HWeodvCU9sWH4o5pQIZ_geXao,2552
56
+ mcp_ticketer/mcp/server/tools/__init__.py,sha256=uXViWZoVOkU3MqvnNvuMRMD4BNcbruwvMQstFr_cLh4,1101
57
+ mcp_ticketer/mcp/server/tools/attachment_tools.py,sha256=hDeQV1rkSjZwT__FKLkR04FH_AsAF6QysyeP_CKxdiU,5673
58
+ mcp_ticketer/mcp/server/tools/bulk_tools.py,sha256=UWY1T5DnWhpBJnqMdLMu7Feen515UAlcn_hOjTmDncc,9199
59
+ mcp_ticketer/mcp/server/tools/comment_tools.py,sha256=fVJZeSg_rr6tVoVAKF8rv5nUooqg5d4S44s1mKFTYM0,2701
60
+ mcp_ticketer/mcp/server/tools/hierarchy_tools.py,sha256=08KxOawUKGZK3kYPZ5w9mRk-lVaSFxQvaJJ0tmMuBLQ,10501
61
+ mcp_ticketer/mcp/server/tools/pr_tools.py,sha256=SnKJRsvkmmr2eh1qaIqxC0PHD6rVXKg6mkk9Skdpc0Y,4539
62
+ mcp_ticketer/mcp/server/tools/search_tools.py,sha256=6qwSBRkGx-zO0rxebeQqMcBj006ZovAgfyLGfw3kxig,6951
63
+ mcp_ticketer/mcp/server/tools/ticket_tools.py,sha256=KYMl2h-nf7hZq-kOi1z4H0TEj7MzMklOsRIl4HaP8WQ,8121
64
+ mcp_ticketer/queue/__init__.py,sha256=ut4EkrXng9RJlFPZRKUa3elhHo3MFGhshBXquZ16vcs,278
65
+ mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
66
+ mcp_ticketer/queue/health_monitor.py,sha256=TDmPnYuZJb3yHNJlGFvE9UU-LfsKTrC4Vapyvdb3fso,12226
67
+ mcp_ticketer/queue/manager.py,sha256=dswFp3e0z-1hUIzoJ08raNxwJeX9_IYYu5WbHnlfZzQ,10712
68
+ mcp_ticketer/queue/queue.py,sha256=q9HDXgnlwspamMJIeu9og7qONttXHmFZHPSaMtJDPlw,17923
69
+ mcp_ticketer/queue/run_worker.py,sha256=WhoeamL8LKZ66TM8W1PkMPwjF2w_EDFMP-mevs6C1TM,1019
70
+ mcp_ticketer/queue/ticket_registry.py,sha256=xVg3i7Eb5rtQY-4bbw3zYY1h-C6jF1t1NZEGhObzD8g,15491
71
+ mcp_ticketer/queue/worker.py,sha256=AJHtpJZEhGoPuCDPXSMsn9DeODelo5f__0C__3zoN08,20970
72
+ mcp_ticketer-0.4.8.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
73
+ mcp_ticketer-0.4.8.dist-info/METADATA,sha256=FFZaF8DklB3q8kWIaM1BJ-drrjbi6vzh1RM5D8SxZtU,16020
74
+ mcp_ticketer-0.4.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ mcp_ticketer-0.4.8.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
76
+ mcp_ticketer-0.4.8.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
77
+ mcp_ticketer-0.4.8.dist-info/RECORD,,
@@ -1,73 +0,0 @@
1
- mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=Mb9Xgbq06svVZk98uwuhxlw-J1Tb25SzmoU6bCUjQyU,1117
3
- mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
- mcp_ticketer/adapters/aitrackdown.py,sha256=qCR53JpOVlOHiR_pdjGF2RYOemgkKxIwDTOlpcYF18E,30320
6
- mcp_ticketer/adapters/github.py,sha256=QeZefKs204g2nXZ9yDb3j-HwrufbXBPoXB0zLp6bvW0,47338
7
- mcp_ticketer/adapters/hybrid.py,sha256=7ocRjK7N7FdXSUCeFc23jFevfVwcPvHPIsEPXV_4o1w,18997
8
- mcp_ticketer/adapters/jira.py,sha256=9OtYAQfUdUQqEYjs61jzYpVrHu23hyP22mm-Bfn5KqA,35204
9
- mcp_ticketer/adapters/linear.py,sha256=trm6ZhmlUl80sj51WAPAox_R2HQZXZ-h1QXJsrFYDCQ,587
10
- mcp_ticketer/adapters/linear/__init__.py,sha256=6l0ZoR6ZHSRcytLfps2AZuk5R189Pq1GfR5-YDQt8-Q,731
11
- mcp_ticketer/adapters/linear/adapter.py,sha256=ZCj6ZM5RiWbdiGrhA3NsMTgFImvrzaB0jBIr_3ZCcO8,30959
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=K8y7xc3iH-q9LEUmg-0YDBhh546LAwLZDvVLkzx3yY4,7223
15
- mcp_ticketer/adapters/linear/types.py,sha256=ugXtRGLljDw6yoCnEVgdFs0xLR9ErLdnv4ffh9EAUhk,7874
16
- mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
17
- mcp_ticketer/cache/memory.py,sha256=rWphWZy7XTbHezC7HMRQN9ISUhYo0Pc2OTgLG30vHnI,5047
18
- mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
19
- mcp_ticketer/cli/adapter_diagnostics.py,sha256=pQDdtDgBwSW04wdFEPVzwbul3KgfB9g6ZMS85qpYulY,14988
20
- mcp_ticketer/cli/auggie_configure.py,sha256=Kd28n16s-X3_KtNfi2fXKij6iK-SnZRHrpgDns3Kq7g,10808
21
- mcp_ticketer/cli/codex_configure.py,sha256=9BoO8E_OypW7fs7UTRu76FMnU68E_HrbbkD696cgH58,11764
22
- mcp_ticketer/cli/configure.py,sha256=T4LczvZIc2FZM-joqICL8NpjCeThAUknEhJkHsmpdc8,16158
23
- mcp_ticketer/cli/diagnostics.py,sha256=s7P4vDzPpthgiBJfAOXpunlhZ62buHg_BA5W7ghQBqg,29952
24
- mcp_ticketer/cli/discover.py,sha256=paG8zElIFEK6lgVD-tHWoFDTuWQ185LirFp0fVlYgB0,13148
25
- mcp_ticketer/cli/gemini_configure.py,sha256=72lXywYJKdGqAhtJpC6fPVYY1T_w7_ND07AfmhumGUc,12010
26
- mcp_ticketer/cli/linear_commands.py,sha256=YnmqRacAfTdF0CLr4BXOxFs3uwm_hVifbGdTe6t2CfA,17273
27
- mcp_ticketer/cli/main.py,sha256=DV05n5-JGIjIX1t4-oR7j5tuE4c2Z0of6KVahUzGiJY,89254
28
- mcp_ticketer/cli/mcp_configure.py,sha256=lozgV_VZmOyZfPesg0oan8p_f93kGWyTDhE1byCbv4k,12324
29
- mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
30
- mcp_ticketer/cli/platform_commands.py,sha256=pTLRT2wot8dAmy1-roJWWOT0Cxu7j-06BlWDnZ9a4jY,3624
31
- mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
32
- mcp_ticketer/cli/simple_health.py,sha256=GlOLRRFoifCna995NoHuKpb3xmFkLi2b3Ke1hyeDvq4,7950
33
- mcp_ticketer/cli/ticket_commands.py,sha256=zmtePGhZzhw_r-0xWQMzXSJMo684PlzEN5LYfcR3_dw,26589
34
- mcp_ticketer/cli/utils.py,sha256=JU2CtdA8pLaH0R5Xpb_Z4-W-PvQfzhbXl9VR04vzMSE,22992
35
- mcp_ticketer/core/__init__.py,sha256=aOnzv5YBfxvd6HvZeEnXeajizde53TcFaMWL3PJh5lY,379
36
- mcp_ticketer/core/adapter.py,sha256=K8bQ9fQRN6Xjaxgl24f6X5u0PVmj9WFof_MOKapDHbU,12136
37
- mcp_ticketer/core/config.py,sha256=q95coT6zDAVbN6eFFe6HUHXyqBm669z8g8nKWNfL8fs,19251
38
- mcp_ticketer/core/env_discovery.py,sha256=iZnmtv1RWnmjjih0iFEInOoK9CU9_oNpfNgmiToQ5wk,19934
39
- mcp_ticketer/core/env_loader.py,sha256=OaSQkH3ldpeLdw_zIe9QFQxOfnZZLLJa4wFxi1shEqs,11835
40
- mcp_ticketer/core/exceptions.py,sha256=H1gUmNiOjVXn4CT-JLQcGXmjWxHaxxdFvwcpJLTrs-U,3621
41
- mcp_ticketer/core/http_client.py,sha256=hCHn0iU52RUFCsa_DwNffTrAk1OxKND9k09NUrHkroo,13900
42
- mcp_ticketer/core/mappers.py,sha256=okte6EV_OuPvnM1KXHUcfrpPd7TWnKh44X3_W3HxwiI,17419
43
- mcp_ticketer/core/models.py,sha256=ABKdyAkEkKtMF_d6D8_qRL-2ujz1DshemHSyqTPUthA,14448
44
- mcp_ticketer/core/project_config.py,sha256=DmLekuMuOgNtzg-olOU4Utv00DdCH1-CXuoooA-adMs,23609
45
- mcp_ticketer/core/registry.py,sha256=gBeXcZ3grHl9gYFbyRp-C4IM7SD_KGTeXT_1jG8XrCc,3470
46
- mcp_ticketer/mcp/__init__.py,sha256=Y05eTzsPk0wH8yKNIM-ekpGjgSDO0bQr0EME-vOP4GE,123
47
- mcp_ticketer/mcp/constants.py,sha256=EBGsJtBPaTCvAm5rOMknckrXActrNIls7lRklnh1L4s,2072
48
- mcp_ticketer/mcp/dto.py,sha256=FR_OBtaxrno8AsHynPwUUW715iAoaBkrr7Ud8HZTQW8,7233
49
- mcp_ticketer/mcp/response_builder.py,sha256=DUfe1e0CcXPlepLq-cGH6b_THqoZEynYfVKkZEeLe0M,4933
50
- mcp_ticketer/mcp/server.py,sha256=XjlajZs4F7g4rXuuDlxvKQ-kml4PqRBAFnpntxgw_Ds,48832
51
- mcp_ticketer/mcp/server_sdk.py,sha256=orgOTrvrtBn2BeMJt5HWeodvCU9sWH4o5pQIZ_geXao,2552
52
- mcp_ticketer/mcp/tools/__init__.py,sha256=6miiC2Cru8u2TCrm9RYF1jxd7vu9SI7BPLUjtzwOxT8,1056
53
- mcp_ticketer/mcp/tools/attachment_tools.py,sha256=hDeQV1rkSjZwT__FKLkR04FH_AsAF6QysyeP_CKxdiU,5673
54
- mcp_ticketer/mcp/tools/bulk_tools.py,sha256=UWY1T5DnWhpBJnqMdLMu7Feen515UAlcn_hOjTmDncc,9199
55
- mcp_ticketer/mcp/tools/comment_tools.py,sha256=fVJZeSg_rr6tVoVAKF8rv5nUooqg5d4S44s1mKFTYM0,2701
56
- mcp_ticketer/mcp/tools/hierarchy_tools.py,sha256=08KxOawUKGZK3kYPZ5w9mRk-lVaSFxQvaJJ0tmMuBLQ,10501
57
- mcp_ticketer/mcp/tools/pr_tools.py,sha256=SnKJRsvkmmr2eh1qaIqxC0PHD6rVXKg6mkk9Skdpc0Y,4539
58
- mcp_ticketer/mcp/tools/search_tools.py,sha256=6qwSBRkGx-zO0rxebeQqMcBj006ZovAgfyLGfw3kxig,6951
59
- mcp_ticketer/mcp/tools/ticket_tools.py,sha256=KYMl2h-nf7hZq-kOi1z4H0TEj7MzMklOsRIl4HaP8WQ,8121
60
- mcp_ticketer/queue/__init__.py,sha256=1YIaCpZpFqPcqvDEQXiEvDLiw94DXRdCJkBaVIFQrms,231
61
- mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
62
- mcp_ticketer/queue/health_monitor.py,sha256=TDmPnYuZJb3yHNJlGFvE9UU-LfsKTrC4Vapyvdb3fso,12226
63
- mcp_ticketer/queue/manager.py,sha256=9CO15ORLeedXkUtnU3pn2JQqZDS3flE7Rq1OdkJFl6g,12233
64
- mcp_ticketer/queue/queue.py,sha256=q9HDXgnlwspamMJIeu9og7qONttXHmFZHPSaMtJDPlw,17923
65
- mcp_ticketer/queue/run_worker.py,sha256=WhoeamL8LKZ66TM8W1PkMPwjF2w_EDFMP-mevs6C1TM,1019
66
- mcp_ticketer/queue/ticket_registry.py,sha256=8pHAx1H83CzjcaIzi_Tq3DtbDBDcDJIPUS9ofusTuWA,15421
67
- mcp_ticketer/queue/worker.py,sha256=AJHtpJZEhGoPuCDPXSMsn9DeODelo5f__0C__3zoN08,20970
68
- mcp_ticketer-0.4.4.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
69
- mcp_ticketer-0.4.4.dist-info/METADATA,sha256=mHtcKrZBEaJaUSJOkfYV34WE2D9y3dVbDDJ1vseNf_4,15478
70
- mcp_ticketer-0.4.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
- mcp_ticketer-0.4.4.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
72
- mcp_ticketer-0.4.4.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
73
- mcp_ticketer-0.4.4.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes