mcp-ticketer 0.3.1__py3-none-any.whl → 0.3.2__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/__version__.py +1 -1
- mcp_ticketer/adapters/aitrackdown.py +12 -15
- mcp_ticketer/adapters/github.py +7 -4
- mcp_ticketer/adapters/jira.py +23 -22
- mcp_ticketer/adapters/linear/__init__.py +1 -1
- mcp_ticketer/adapters/linear/adapter.py +88 -89
- mcp_ticketer/adapters/linear/client.py +71 -52
- mcp_ticketer/adapters/linear/mappers.py +88 -68
- mcp_ticketer/adapters/linear/queries.py +28 -7
- mcp_ticketer/adapters/linear/types.py +57 -50
- mcp_ticketer/adapters/linear.py +2 -2
- mcp_ticketer/cli/adapter_diagnostics.py +86 -51
- mcp_ticketer/cli/diagnostics.py +165 -72
- mcp_ticketer/cli/linear_commands.py +156 -113
- mcp_ticketer/cli/main.py +153 -82
- mcp_ticketer/cli/simple_health.py +73 -45
- mcp_ticketer/cli/utils.py +15 -10
- mcp_ticketer/core/config.py +23 -19
- mcp_ticketer/core/env_discovery.py +5 -4
- mcp_ticketer/core/env_loader.py +109 -86
- mcp_ticketer/core/exceptions.py +20 -18
- mcp_ticketer/core/models.py +9 -0
- mcp_ticketer/core/project_config.py +1 -1
- mcp_ticketer/mcp/server.py +294 -139
- mcp_ticketer/queue/health_monitor.py +152 -121
- mcp_ticketer/queue/manager.py +11 -4
- mcp_ticketer/queue/queue.py +15 -3
- mcp_ticketer/queue/run_worker.py +1 -1
- mcp_ticketer/queue/ticket_registry.py +190 -132
- mcp_ticketer/queue/worker.py +54 -25
- {mcp_ticketer-0.3.1.dist-info → mcp_ticketer-0.3.2.dist-info}/METADATA +1 -1
- mcp_ticketer-0.3.2.dist-info/RECORD +59 -0
- mcp_ticketer-0.3.1.dist-info/RECORD +0 -59
- {mcp_ticketer-0.3.1.dist-info → mcp_ticketer-0.3.2.dist-info}/WHEEL +0 -0
- {mcp_ticketer-0.3.1.dist-info → mcp_ticketer-0.3.2.dist-info}/entry_points.txt +0 -0
- {mcp_ticketer-0.3.1.dist-info → mcp_ticketer-0.3.2.dist-info}/licenses/LICENSE +0 -0
- {mcp_ticketer-0.3.1.dist-info → mcp_ticketer-0.3.2.dist-info}/top_level.txt +0 -0
mcp_ticketer/queue/worker.py
CHANGED
|
@@ -11,13 +11,13 @@ from typing import Any, Optional
|
|
|
11
11
|
|
|
12
12
|
from dotenv import load_dotenv
|
|
13
13
|
|
|
14
|
+
# Import adapters module to trigger registration
|
|
15
|
+
import mcp_ticketer.adapters # noqa: F401
|
|
16
|
+
|
|
14
17
|
from ..core import AdapterRegistry, Task
|
|
15
18
|
from .queue import Queue, QueueItem, QueueStatus
|
|
16
19
|
from .ticket_registry import TicketRegistry
|
|
17
20
|
|
|
18
|
-
# Import adapters module to trigger registration
|
|
19
|
-
import mcp_ticketer.adapters # noqa: F401
|
|
20
|
-
|
|
21
21
|
# Load environment variables from .env.local
|
|
22
22
|
env_path = Path.cwd() / ".env.local"
|
|
23
23
|
if env_path.exists():
|
|
@@ -263,15 +263,19 @@ class Worker:
|
|
|
263
263
|
|
|
264
264
|
# Mark as completed in both queue and registry (atomic)
|
|
265
265
|
success = self.queue.update_status(
|
|
266
|
-
item.id,
|
|
267
|
-
|
|
266
|
+
item.id,
|
|
267
|
+
QueueStatus.COMPLETED,
|
|
268
|
+
result=result,
|
|
269
|
+
expected_status=QueueStatus.PROCESSING,
|
|
268
270
|
)
|
|
269
271
|
if success:
|
|
270
272
|
self.ticket_registry.update_ticket_status(
|
|
271
273
|
item.id, "completed", ticket_id=ticket_id, result_data=result
|
|
272
274
|
)
|
|
273
275
|
else:
|
|
274
|
-
logger.warning(
|
|
276
|
+
logger.warning(
|
|
277
|
+
f"Failed to update status for {item.id} - item may have been processed by another worker"
|
|
278
|
+
)
|
|
275
279
|
|
|
276
280
|
self.stats["items_processed"] += 1
|
|
277
281
|
logger.info(f"Successfully processed {item.id}, ticket ID: {ticket_id}")
|
|
@@ -301,22 +305,31 @@ class Worker:
|
|
|
301
305
|
item.id, "queued", retry_count=new_retry_count
|
|
302
306
|
)
|
|
303
307
|
else:
|
|
304
|
-
logger.warning(
|
|
308
|
+
logger.warning(
|
|
309
|
+
f"Failed to increment retry for {item.id} - item may have been processed by another worker"
|
|
310
|
+
)
|
|
305
311
|
|
|
306
312
|
# Wait before retry
|
|
307
313
|
await asyncio.sleep(retry_delay)
|
|
308
314
|
else:
|
|
309
315
|
# Max retries exceeded, mark as failed (atomic)
|
|
310
316
|
success = self.queue.update_status(
|
|
311
|
-
item.id,
|
|
312
|
-
|
|
317
|
+
item.id,
|
|
318
|
+
QueueStatus.FAILED,
|
|
319
|
+
error_message=str(e),
|
|
320
|
+
expected_status=QueueStatus.PROCESSING,
|
|
313
321
|
)
|
|
314
322
|
if success:
|
|
315
323
|
self.ticket_registry.update_ticket_status(
|
|
316
|
-
item.id,
|
|
324
|
+
item.id,
|
|
325
|
+
"failed",
|
|
326
|
+
error_message=str(e),
|
|
327
|
+
retry_count=item.retry_count,
|
|
317
328
|
)
|
|
318
329
|
else:
|
|
319
|
-
logger.warning(
|
|
330
|
+
logger.warning(
|
|
331
|
+
f"Failed to mark {item.id} as failed - item may have been processed by another worker"
|
|
332
|
+
)
|
|
320
333
|
self.stats["items_failed"] += 1
|
|
321
334
|
logger.error(f"Max retries exceeded for {item.id}, marking as failed")
|
|
322
335
|
|
|
@@ -397,17 +410,28 @@ class Worker:
|
|
|
397
410
|
# Add debugging for Linear adapter specifically
|
|
398
411
|
if item.adapter == "linear":
|
|
399
412
|
import os
|
|
413
|
+
|
|
400
414
|
linear_api_key = os.getenv("LINEAR_API_KEY", "Not set")
|
|
401
|
-
logger.info(
|
|
402
|
-
|
|
415
|
+
logger.info(
|
|
416
|
+
f"Worker LINEAR_API_KEY: {linear_api_key[:20] if linear_api_key != 'Not set' else 'Not set'}..."
|
|
417
|
+
)
|
|
418
|
+
logger.info(
|
|
419
|
+
f"Worker adapter_config api_key: {adapter_config.get('api_key', 'Not set')[:20] if adapter_config.get('api_key') else 'Not set'}..."
|
|
420
|
+
)
|
|
403
421
|
|
|
404
422
|
adapter = AdapterRegistry.get_adapter(item.adapter, adapter_config)
|
|
405
|
-
logger.info(
|
|
423
|
+
logger.info(
|
|
424
|
+
f"Worker created adapter: {type(adapter)} with team_id: {getattr(adapter, 'team_id_config', 'Not set')}"
|
|
425
|
+
)
|
|
406
426
|
|
|
407
427
|
# Add more debugging for Linear adapter
|
|
408
428
|
if item.adapter == "linear":
|
|
409
|
-
logger.info(
|
|
410
|
-
|
|
429
|
+
logger.info(
|
|
430
|
+
f"Worker Linear adapter api_key: {getattr(adapter, 'api_key', 'Not set')[:20] if getattr(adapter, 'api_key', None) else 'Not set'}..."
|
|
431
|
+
)
|
|
432
|
+
logger.info(
|
|
433
|
+
f"Worker Linear adapter team_key: {getattr(adapter, 'team_key', 'Not set')}"
|
|
434
|
+
)
|
|
411
435
|
|
|
412
436
|
return adapter
|
|
413
437
|
|
|
@@ -461,14 +485,13 @@ class Worker:
|
|
|
461
485
|
result = await adapter.create_epic(
|
|
462
486
|
title=data["title"],
|
|
463
487
|
description=data.get("description"),
|
|
464
|
-
**{k: v for k, v in data.items()
|
|
465
|
-
if k not in ["title", "description"]}
|
|
488
|
+
**{k: v for k, v in data.items() if k not in ["title", "description"]},
|
|
466
489
|
)
|
|
467
490
|
return {
|
|
468
491
|
"id": result.id if result else None,
|
|
469
492
|
"title": result.title if result else None,
|
|
470
493
|
"type": "epic",
|
|
471
|
-
"success": bool(result)
|
|
494
|
+
"success": bool(result),
|
|
472
495
|
}
|
|
473
496
|
|
|
474
497
|
elif operation == "create_issue":
|
|
@@ -476,15 +499,18 @@ class Worker:
|
|
|
476
499
|
title=data["title"],
|
|
477
500
|
description=data.get("description"),
|
|
478
501
|
epic_id=data.get("epic_id"),
|
|
479
|
-
**{
|
|
480
|
-
|
|
502
|
+
**{
|
|
503
|
+
k: v
|
|
504
|
+
for k, v in data.items()
|
|
505
|
+
if k not in ["title", "description", "epic_id"]
|
|
506
|
+
},
|
|
481
507
|
)
|
|
482
508
|
return {
|
|
483
509
|
"id": result.id if result else None,
|
|
484
510
|
"title": result.title if result else None,
|
|
485
511
|
"type": "issue",
|
|
486
512
|
"epic_id": data.get("epic_id"),
|
|
487
|
-
"success": bool(result)
|
|
513
|
+
"success": bool(result),
|
|
488
514
|
}
|
|
489
515
|
|
|
490
516
|
elif operation == "create_task":
|
|
@@ -492,15 +518,18 @@ class Worker:
|
|
|
492
518
|
title=data["title"],
|
|
493
519
|
parent_id=data["parent_id"],
|
|
494
520
|
description=data.get("description"),
|
|
495
|
-
**{
|
|
496
|
-
|
|
521
|
+
**{
|
|
522
|
+
k: v
|
|
523
|
+
for k, v in data.items()
|
|
524
|
+
if k not in ["title", "parent_id", "description"]
|
|
525
|
+
},
|
|
497
526
|
)
|
|
498
527
|
return {
|
|
499
528
|
"id": result.id if result else None,
|
|
500
529
|
"title": result.title if result else None,
|
|
501
530
|
"type": "task",
|
|
502
531
|
"parent_id": data["parent_id"],
|
|
503
|
-
"success": bool(result)
|
|
532
|
+
"success": bool(result),
|
|
504
533
|
}
|
|
505
534
|
|
|
506
535
|
else:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-ticketer
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
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>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
|
|
2
|
+
mcp_ticketer/__version__.py,sha256=Gji_cXp3J3NBXvkGk3rFpPcnLRZSQSEud52OdFOkP5c,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=XyE0XfhitfW1vmqDS-KtVE7275vyO6FeP0DbbW5Bm4c,17849
|
|
6
|
+
mcp_ticketer/adapters/github.py,sha256=Z4lQKvd8jaOHS5zaTz3-GLas90y-HqSvDlQtFhwL-nM,47379
|
|
7
|
+
mcp_ticketer/adapters/hybrid.py,sha256=UADYZLc_UNw0xHPSbgguBNzvUCnuYn12Qi9ea-zdlMk,19086
|
|
8
|
+
mcp_ticketer/adapters/jira.py,sha256=KyC2BQOCLEmDxZzh06U3F-iNQPqyZQbbnaWqfbaYF8g,35349
|
|
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=iucbQTFgTK0qKGGjIo0nOknMexBw8ZszXLWyehGiHFE,26168
|
|
12
|
+
mcp_ticketer/adapters/linear/client.py,sha256=x0yNOJref9IPZGENehhmDPAEhQgj8hpmKFT7WKzdz7Q,8831
|
|
13
|
+
mcp_ticketer/adapters/linear/mappers.py,sha256=2ujb83Zlat8RFtG3l-PGXamgOo3lKJpnneWLK9I-m40,9608
|
|
14
|
+
mcp_ticketer/adapters/linear/queries.py,sha256=LScSwVb9QA6gPiJJ1vHHoTwA6NA3TEPPD7dUzd1zA4g,7196
|
|
15
|
+
mcp_ticketer/adapters/linear/types.py,sha256=5XQtAlxRW0sHFqoZ9yP0sGubjkJaG9GV8teZB5k1p8s,7880
|
|
16
|
+
mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
|
|
17
|
+
mcp_ticketer/cache/memory.py,sha256=2yBqGi9i0SanlUhJoOC7nijWjoMa3_ntPe-V-AV-LfU,5042
|
|
18
|
+
mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
|
|
19
|
+
mcp_ticketer/cli/adapter_diagnostics.py,sha256=jmXc8clocQi-CJGWhCxG21FgkM5sCD1ZGqEZEBVccV4,14994
|
|
20
|
+
mcp_ticketer/cli/auggie_configure.py,sha256=MXKzLtqe3K_UTQ2GacHAWbvf_B0779KL325smiAKE0Q,8212
|
|
21
|
+
mcp_ticketer/cli/codex_configure.py,sha256=xDppHouT6_-cYXswyAggoPX5bSlRXMvCoM_x9PQ-42A,9086
|
|
22
|
+
mcp_ticketer/cli/configure.py,sha256=BsA_pSHQMQS0t1bJO_wMM8LWsd5sWJDASjEPRHvwC18,16198
|
|
23
|
+
mcp_ticketer/cli/diagnostics.py,sha256=Z1rZuSLriR6qg_2F5Y9DBBFE5haB1lpDeqqr0tN65WQ,30034
|
|
24
|
+
mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
|
|
25
|
+
mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
|
|
26
|
+
mcp_ticketer/cli/linear_commands.py,sha256=_8f8ze_1MbiUweU6RFHpldgfHLirysIdPjHr2_S0YhI,17319
|
|
27
|
+
mcp_ticketer/cli/main.py,sha256=C06b393NtgRwLEp4CjOFCQQCNEQ9V-UoMMrJy33r_P0,73982
|
|
28
|
+
mcp_ticketer/cli/mcp_configure.py,sha256=RzV50UjXgOmvMp-9S0zS39psuvjffVByaMrqrUaAGAM,9594
|
|
29
|
+
mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
|
|
30
|
+
mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
|
|
31
|
+
mcp_ticketer/cli/simple_health.py,sha256=d9_dVqtkmxE5n5GvtlXcc5H2rzKBGSnTrsiPc7XWwtk,8192
|
|
32
|
+
mcp_ticketer/cli/utils.py,sha256=IOycMmhwtCDpL3RN_wVEZkYMg9FHyDr4mg5M9Bxzfbo,23041
|
|
33
|
+
mcp_ticketer/core/__init__.py,sha256=eXovsaJymQRP2AwOBuOy6mFtI3I68D7gGenZ5V-IMqo,349
|
|
34
|
+
mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,10273
|
|
35
|
+
mcp_ticketer/core/config.py,sha256=ZaooOtim4ZgaQrDPjL5TWJ-K03N9hb0s63YehCsNqR0,19372
|
|
36
|
+
mcp_ticketer/core/env_discovery.py,sha256=bHOfj7YVExhqFVxto3G-zZ8p6T12BOhF0J4IXCjdll8,19971
|
|
37
|
+
mcp_ticketer/core/env_loader.py,sha256=RaLf14ATkpG6XjakYWP7hCpEtsOH3HCRUBC58XSv-MQ,11877
|
|
38
|
+
mcp_ticketer/core/exceptions.py,sha256=2fQ-t45FoPAhYYVxhXwdp9OehL50P-b2ReKyFYyc1Ps,3643
|
|
39
|
+
mcp_ticketer/core/http_client.py,sha256=s5ikMiwEJ8TJjNn73wu3gv3OdAtyBEpAqPnSroRMW2k,13971
|
|
40
|
+
mcp_ticketer/core/mappers.py,sha256=1aG1jFsHTCwmGRVgOlXW-VOSTGzc86gv7qjDfiR1ups,17462
|
|
41
|
+
mcp_ticketer/core/models.py,sha256=O3t7x1Q5l6OYS93HNSg7Kp-d6JapVjdTc6gAAfUBxUo,12495
|
|
42
|
+
mcp_ticketer/core/project_config.py,sha256=5W9YvDBBASEo5fBcSF-rlA1W3LwzkTv6_CEJXxnsOjc,23346
|
|
43
|
+
mcp_ticketer/core/registry.py,sha256=ShYLDPE62KFJpB0kj_zFyQzRxSH3LkQEEuo1jaakb1k,3483
|
|
44
|
+
mcp_ticketer/mcp/__init__.py,sha256=Y05eTzsPk0wH8yKNIM-ekpGjgSDO0bQr0EME-vOP4GE,123
|
|
45
|
+
mcp_ticketer/mcp/server.py,sha256=-hZUshZaov2BhcfH5MKnInvHcAX_D2_O6gHHV5YchxI,86397
|
|
46
|
+
mcp_ticketer/queue/__init__.py,sha256=1YIaCpZpFqPcqvDEQXiEvDLiw94DXRdCJkBaVIFQrms,231
|
|
47
|
+
mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
|
|
48
|
+
mcp_ticketer/queue/health_monitor.py,sha256=bVKbzzdCOxCrUSmALXiXLn48IKgHYWX72tl_JfaEqqE,12276
|
|
49
|
+
mcp_ticketer/queue/manager.py,sha256=zI2xUK0jV8o7j-87RvxG2PD49oJ3roZmmSXMBjL59As,10269
|
|
50
|
+
mcp_ticketer/queue/queue.py,sha256=t-qbKoHST_8rPOXVEFOY9MOuU84u9ec5VDtiNHoWO24,17432
|
|
51
|
+
mcp_ticketer/queue/run_worker.py,sha256=WhoeamL8LKZ66TM8W1PkMPwjF2w_EDFMP-mevs6C1TM,1019
|
|
52
|
+
mcp_ticketer/queue/ticket_registry.py,sha256=dU0pCa-vshkIqCj_W6dUW1sfNyeB257x1o5tjxjfjw4,15466
|
|
53
|
+
mcp_ticketer/queue/worker.py,sha256=Pg-fK8o3d9OHvxCxjh538wDwMQfzLL-X_pCE9lzAOkM,20517
|
|
54
|
+
mcp_ticketer-0.3.2.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
|
|
55
|
+
mcp_ticketer-0.3.2.dist-info/METADATA,sha256=vh-Xpu_w8aOREJHZKsGFFHxuc5YmbgqukTwY_s2Uk_A,13219
|
|
56
|
+
mcp_ticketer-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
57
|
+
mcp_ticketer-0.3.2.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
|
|
58
|
+
mcp_ticketer-0.3.2.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
|
|
59
|
+
mcp_ticketer-0.3.2.dist-info/RECORD,,
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
|
|
2
|
-
mcp_ticketer/__version__.py,sha256=hTsAyUEYaGHMTOcqUuCMjSc3y7Sywx_V8sgWryJLRsY,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=stlbge8K6w-EyQkw_vEQNSXQgCOWN5tOlQUgGWZQNMQ,17936
|
|
6
|
-
mcp_ticketer/adapters/github.py,sha256=rhf8yaK9vOGMstvFwddguWnokVIfpasoYMBlyjNg_vY,47335
|
|
7
|
-
mcp_ticketer/adapters/hybrid.py,sha256=UADYZLc_UNw0xHPSbgguBNzvUCnuYn12Qi9ea-zdlMk,19086
|
|
8
|
-
mcp_ticketer/adapters/jira.py,sha256=IoyMaznYE7NliaNGv-I_q2UodUS6JhOllLP1gUEXThs,35375
|
|
9
|
-
mcp_ticketer/adapters/linear.py,sha256=fcQ9s_V7IgP4z2K12lbWXYHUVs1avu1uzUzDCK2eEg4,552
|
|
10
|
-
mcp_ticketer/adapters/linear/__init__.py,sha256=dOPx6caymloIsdyjxS33E09gfPQS6kprisDWwOT2-bE,735
|
|
11
|
-
mcp_ticketer/adapters/linear/adapter.py,sha256=emvjHU-NSFVdxS7lxRjcTv6QNxn26-8RbZNg-x-z5xE,26641
|
|
12
|
-
mcp_ticketer/adapters/linear/client.py,sha256=6IKgYRNy0GF6MhXwxaEBeBE2FM-d1WfhOQ43Mhj0-3s,8871
|
|
13
|
-
mcp_ticketer/adapters/linear/mappers.py,sha256=96euA9TuOTEWEPDKvixjYHb82Ha1zD6gxuo9VsLT2wA,9636
|
|
14
|
-
mcp_ticketer/adapters/linear/queries.py,sha256=chcHCHqvyQbKHPp9wWHGo3HdUGV_6RHNdRadP2pZkVQ,7112
|
|
15
|
-
mcp_ticketer/adapters/linear/types.py,sha256=VuGPu1Z5jGHtbI2zkCyL5YFnwQNukGW-UV72k6zF0p4,8097
|
|
16
|
-
mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
|
|
17
|
-
mcp_ticketer/cache/memory.py,sha256=2yBqGi9i0SanlUhJoOC7nijWjoMa3_ntPe-V-AV-LfU,5042
|
|
18
|
-
mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
|
|
19
|
-
mcp_ticketer/cli/adapter_diagnostics.py,sha256=t7RyesBRSyJBoVvft2scdNRcugJDIWvqYS9NszPV5ok,14820
|
|
20
|
-
mcp_ticketer/cli/auggie_configure.py,sha256=MXKzLtqe3K_UTQ2GacHAWbvf_B0779KL325smiAKE0Q,8212
|
|
21
|
-
mcp_ticketer/cli/codex_configure.py,sha256=xDppHouT6_-cYXswyAggoPX5bSlRXMvCoM_x9PQ-42A,9086
|
|
22
|
-
mcp_ticketer/cli/configure.py,sha256=BsA_pSHQMQS0t1bJO_wMM8LWsd5sWJDASjEPRHvwC18,16198
|
|
23
|
-
mcp_ticketer/cli/diagnostics.py,sha256=AC7cMQHVWdHfrYH2Y1tkhmRezM2-mID5E_Dhfil7F3U,28923
|
|
24
|
-
mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
|
|
25
|
-
mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
|
|
26
|
-
mcp_ticketer/cli/linear_commands.py,sha256=b5v4c9uBNPwj_vdy314JkLZbyC1fXU6IcY2VoG0z7gI,17193
|
|
27
|
-
mcp_ticketer/cli/main.py,sha256=blViBOtv9HbRUkuAPlb7CstyH3nt90vxgEHIZcdGls8,73130
|
|
28
|
-
mcp_ticketer/cli/mcp_configure.py,sha256=RzV50UjXgOmvMp-9S0zS39psuvjffVByaMrqrUaAGAM,9594
|
|
29
|
-
mcp_ticketer/cli/migrate_config.py,sha256=MYsr_C5ZxsGg0P13etWTWNrJ_lc6ElRCkzfQADYr3DM,5956
|
|
30
|
-
mcp_ticketer/cli/queue_commands.py,sha256=mm-3H6jmkUGJDyU_E46o9iRpek8tvFCm77F19OtHiZI,7884
|
|
31
|
-
mcp_ticketer/cli/simple_health.py,sha256=oLAaSiVrBtdPCZyoHa1YHEoLG58QaupfuC-kPWRubdM,8013
|
|
32
|
-
mcp_ticketer/cli/utils.py,sha256=bGoLcqsNsv7YMjVeWc9tlqKQC5zeOmWZp7wEfe0JfzM,22964
|
|
33
|
-
mcp_ticketer/core/__init__.py,sha256=eXovsaJymQRP2AwOBuOy6mFtI3I68D7gGenZ5V-IMqo,349
|
|
34
|
-
mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,10273
|
|
35
|
-
mcp_ticketer/core/config.py,sha256=hvn8RoN2BSmYzESKqCvcpKleX0PrGiHVQ5v35nX12Mc,19241
|
|
36
|
-
mcp_ticketer/core/env_discovery.py,sha256=m2x3K8hrd0_nzmSGZn5EYUnED7MI2qxcWHTp6ns880o,19970
|
|
37
|
-
mcp_ticketer/core/env_loader.py,sha256=fX8EpHcAJxxhPJ-XY5BD8HlLs-Y9jdlQ24Qtt5ylBNo,12032
|
|
38
|
-
mcp_ticketer/core/exceptions.py,sha256=78tzV3Muc7E_UhEIByF0NtsPe1I0lFVrbpdDNX56kQg,3737
|
|
39
|
-
mcp_ticketer/core/http_client.py,sha256=s5ikMiwEJ8TJjNn73wu3gv3OdAtyBEpAqPnSroRMW2k,13971
|
|
40
|
-
mcp_ticketer/core/mappers.py,sha256=1aG1jFsHTCwmGRVgOlXW-VOSTGzc86gv7qjDfiR1ups,17462
|
|
41
|
-
mcp_ticketer/core/models.py,sha256=a_2AbL3NlN0pfdZad-hXus_zb4bSi9zISHcsNYl0sng,12486
|
|
42
|
-
mcp_ticketer/core/project_config.py,sha256=yYxlgxjcEPeOwx-b-SXFpe0k9pW9xzBRAK72PsItG-o,23346
|
|
43
|
-
mcp_ticketer/core/registry.py,sha256=ShYLDPE62KFJpB0kj_zFyQzRxSH3LkQEEuo1jaakb1k,3483
|
|
44
|
-
mcp_ticketer/mcp/__init__.py,sha256=Y05eTzsPk0wH8yKNIM-ekpGjgSDO0bQr0EME-vOP4GE,123
|
|
45
|
-
mcp_ticketer/mcp/server.py,sha256=PCNerYqLMq5et3ZYAIdd_q_-4LGLBhDuvPAYTuWxDiQ,81351
|
|
46
|
-
mcp_ticketer/queue/__init__.py,sha256=1YIaCpZpFqPcqvDEQXiEvDLiw94DXRdCJkBaVIFQrms,231
|
|
47
|
-
mcp_ticketer/queue/__main__.py,sha256=gc_tE9NUdK07OJfTZuD4t6KeBD_vxFQIhknGTQUG_jk,109
|
|
48
|
-
mcp_ticketer/queue/health_monitor.py,sha256=aQrlBzfbLWu8-fV2b5CuHs4oqyTqGGcntKIHM3r-dDI,11844
|
|
49
|
-
mcp_ticketer/queue/manager.py,sha256=BupBsftxKxeThDWFU96vBsEp4iUXhht7FFbeV0ikltI,10182
|
|
50
|
-
mcp_ticketer/queue/queue.py,sha256=jSAkYNEIbNH1cbYuF8s6eFuZmXqn8WHXx3mbfMU2Ud8,17131
|
|
51
|
-
mcp_ticketer/queue/run_worker.py,sha256=F7anuhdkgZF9lXZntHuJ7rEzuEkAfAZO1qvGh3R57bw,1033
|
|
52
|
-
mcp_ticketer/queue/ticket_registry.py,sha256=k8FYg2cFYsI4POb94-o-fTrIVr-ttfi60r0O5YhJYck,15321
|
|
53
|
-
mcp_ticketer/queue/worker.py,sha256=zXJpyhRJ99be0VLaez3YPtC9OU17vVNu5qhr1dCGaLg,19992
|
|
54
|
-
mcp_ticketer-0.3.1.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
|
|
55
|
-
mcp_ticketer-0.3.1.dist-info/METADATA,sha256=7MkHCRw1QYtKKRfHVQ2oUMW3syEXGilHV5y-Ooud4xQ,13219
|
|
56
|
-
mcp_ticketer-0.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
57
|
-
mcp_ticketer-0.3.1.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
|
|
58
|
-
mcp_ticketer-0.3.1.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
|
|
59
|
-
mcp_ticketer-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|