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

@@ -1,6 +1,6 @@
1
1
  """Version information for mcp-ticketer package."""
2
2
 
3
- __version__ = "0.3.0"
3
+ __version__ = "0.3.1"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # Package metadata
mcp_ticketer/cli/main.py CHANGED
@@ -568,32 +568,55 @@ def init(
568
568
  console.print(
569
569
  "[cyan]🔍 Auto-discovering configuration from .env files...[/cyan]"
570
570
  )
571
- discovered = discover_config(proj_path)
572
-
573
- if discovered and discovered.adapters:
574
- primary = discovered.get_primary_adapter()
575
- if primary:
576
- adapter_type = primary.adapter_type
577
- console.print(
578
- f"[green]✓ Detected {adapter_type} adapter from environment files[/green]"
579
- )
580
571
 
581
- # Show what was discovered
582
- console.print(
583
- f"\n[dim]Configuration found in: {primary.found_in}[/dim]"
584
- )
585
- console.print(f"[dim]Confidence: {primary.confidence:.0%}[/dim]")
572
+ # First try our improved .env configuration loader
573
+ from ..mcp.server import _load_env_configuration
574
+ env_config = _load_env_configuration()
575
+
576
+ if env_config:
577
+ adapter_type = env_config["adapter_type"]
578
+ console.print(
579
+ f"[green]✓ Detected {adapter_type} adapter from environment files[/green]"
580
+ )
581
+
582
+ # Show what was discovered
583
+ console.print(f"\n[dim]Configuration found in: .env files[/dim]")
584
+ console.print(f"[dim]Confidence: 100%[/dim]")
586
585
 
587
- # Ask user to confirm auto-detected adapter
588
- if not typer.confirm(
589
- f"Use detected {adapter_type} adapter?",
590
- default=True,
591
- ):
586
+ # Ask user to confirm auto-detected adapter
587
+ if not typer.confirm(
588
+ f"Use detected {adapter_type} adapter?",
589
+ default=True,
590
+ ):
591
+ adapter_type = None # Will trigger interactive selection
592
+ else:
593
+ # Fallback to old discovery system for backward compatibility
594
+ discovered = discover_config(proj_path)
595
+
596
+ if discovered and discovered.adapters:
597
+ primary = discovered.get_primary_adapter()
598
+ if primary:
599
+ adapter_type = primary.adapter_type
600
+ console.print(
601
+ f"[green]✓ Detected {adapter_type} adapter from environment files[/green]"
602
+ )
603
+
604
+ # Show what was discovered
605
+ console.print(
606
+ f"\n[dim]Configuration found in: {primary.found_in}[/dim]"
607
+ )
608
+ console.print(f"[dim]Confidence: {primary.confidence:.0%}[/dim]")
609
+
610
+ # Ask user to confirm auto-detected adapter
611
+ if not typer.confirm(
612
+ f"Use detected {adapter_type} adapter?",
613
+ default=True,
614
+ ):
615
+ adapter_type = None # Will trigger interactive selection
616
+ else:
592
617
  adapter_type = None # Will trigger interactive selection
593
618
  else:
594
619
  adapter_type = None # Will trigger interactive selection
595
- else:
596
- adapter_type = None # Will trigger interactive selection
597
620
 
598
621
  # If no adapter determined, show interactive selection
599
622
  if not adapter_type:
@@ -454,11 +454,32 @@ class EnvDiscovery:
454
454
  """
455
455
  base_path = self._find_key_value(env_vars, AITRACKDOWN_PATH_PATTERNS)
456
456
 
457
- # Also check if .aitrackdown directory exists
457
+ # Check for explicit MCP_TICKETER_ADAPTER setting
458
+ explicit_adapter = env_vars.get("MCP_TICKETER_ADAPTER")
459
+ if explicit_adapter and explicit_adapter != "aitrackdown":
460
+ # If another adapter is explicitly set, don't detect aitrackdown
461
+ return None
462
+
463
+ # Check if .aitrackdown directory exists
458
464
  aitrackdown_dir = self.project_path / ".aitrackdown"
465
+
466
+ # Only detect aitrackdown if:
467
+ # 1. There's an explicit base_path setting, OR
468
+ # 2. There's a .aitrackdown directory AND no other adapter variables are present
469
+ has_other_adapter_vars = (
470
+ any(key.startswith("LINEAR_") for key in env_vars) or
471
+ any(key.startswith("GITHUB_") for key in env_vars) or
472
+ any(key.startswith("JIRA_") for key in env_vars)
473
+ )
474
+
459
475
  if not base_path and not aitrackdown_dir.exists():
460
476
  return None
461
477
 
478
+ if not base_path and has_other_adapter_vars:
479
+ # Don't detect aitrackdown if other adapter variables are present
480
+ # unless explicitly configured
481
+ return None
482
+
462
483
  config: dict[str, Any] = {
463
484
  "adapter": AdapterType.AITRACKDOWN.value,
464
485
  }
@@ -468,8 +489,15 @@ class EnvDiscovery:
468
489
  else:
469
490
  config["base_path"] = ".aitrackdown"
470
491
 
471
- # AITrackdown has no required external credentials
472
- confidence = 1.0 if aitrackdown_dir.exists() else 0.7
492
+ # Lower confidence when other adapter variables are present
493
+ if has_other_adapter_vars:
494
+ confidence = 0.3 # Low confidence when other adapters are configured
495
+ elif base_path:
496
+ confidence = 1.0 # High confidence when explicitly configured
497
+ elif aitrackdown_dir.exists():
498
+ confidence = 0.8 # Medium confidence when directory exists
499
+ else:
500
+ confidence = 0.5 # Low confidence as fallback
473
501
 
474
502
  return DiscoveredAdapter(
475
503
  adapter_type=AdapterType.AITRACKDOWN.value,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.3.0
3
+ Version: 0.3.1
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,5 +1,5 @@
1
1
  mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=GoFXSWeevjribCSU_VeE2nxxgWFRp71QCl67iMs_z50,1117
2
+ mcp_ticketer/__version__.py,sha256=hTsAyUEYaGHMTOcqUuCMjSc3y7Sywx_V8sgWryJLRsY,1117
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
5
  mcp_ticketer/adapters/aitrackdown.py,sha256=stlbge8K6w-EyQkw_vEQNSXQgCOWN5tOlQUgGWZQNMQ,17936
@@ -24,7 +24,7 @@ mcp_ticketer/cli/diagnostics.py,sha256=AC7cMQHVWdHfrYH2Y1tkhmRezM2-mID5E_Dhfil7F
24
24
  mcp_ticketer/cli/discover.py,sha256=AF_qlQc1Oo0UkWayoF5pmRChS5J3fJjH6f2YZzd_k8w,13188
25
25
  mcp_ticketer/cli/gemini_configure.py,sha256=ZNSA1lBW-itVToza-JxW95Po7daVXKiZAh7lp6pmXMU,9343
26
26
  mcp_ticketer/cli/linear_commands.py,sha256=b5v4c9uBNPwj_vdy314JkLZbyC1fXU6IcY2VoG0z7gI,17193
27
- mcp_ticketer/cli/main.py,sha256=EK2MgphV1Anw_vAtkTl5iC-vzPWIOyu3SV7zOTAY_Vw,72131
27
+ mcp_ticketer/cli/main.py,sha256=blViBOtv9HbRUkuAPlb7CstyH3nt90vxgEHIZcdGls8,73130
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
@@ -33,7 +33,7 @@ mcp_ticketer/cli/utils.py,sha256=bGoLcqsNsv7YMjVeWc9tlqKQC5zeOmWZp7wEfe0JfzM,229
33
33
  mcp_ticketer/core/__init__.py,sha256=eXovsaJymQRP2AwOBuOy6mFtI3I68D7gGenZ5V-IMqo,349
34
34
  mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,10273
35
35
  mcp_ticketer/core/config.py,sha256=hvn8RoN2BSmYzESKqCvcpKleX0PrGiHVQ5v35nX12Mc,19241
36
- mcp_ticketer/core/env_discovery.py,sha256=It62C97UBt96CgVbZCql5NQtONmCHMkX3c8W2kEl-Qk,18716
36
+ mcp_ticketer/core/env_discovery.py,sha256=m2x3K8hrd0_nzmSGZn5EYUnED7MI2qxcWHTp6ns880o,19970
37
37
  mcp_ticketer/core/env_loader.py,sha256=fX8EpHcAJxxhPJ-XY5BD8HlLs-Y9jdlQ24Qtt5ylBNo,12032
38
38
  mcp_ticketer/core/exceptions.py,sha256=78tzV3Muc7E_UhEIByF0NtsPe1I0lFVrbpdDNX56kQg,3737
39
39
  mcp_ticketer/core/http_client.py,sha256=s5ikMiwEJ8TJjNn73wu3gv3OdAtyBEpAqPnSroRMW2k,13971
@@ -51,9 +51,9 @@ mcp_ticketer/queue/queue.py,sha256=jSAkYNEIbNH1cbYuF8s6eFuZmXqn8WHXx3mbfMU2Ud8,1
51
51
  mcp_ticketer/queue/run_worker.py,sha256=F7anuhdkgZF9lXZntHuJ7rEzuEkAfAZO1qvGh3R57bw,1033
52
52
  mcp_ticketer/queue/ticket_registry.py,sha256=k8FYg2cFYsI4POb94-o-fTrIVr-ttfi60r0O5YhJYck,15321
53
53
  mcp_ticketer/queue/worker.py,sha256=zXJpyhRJ99be0VLaez3YPtC9OU17vVNu5qhr1dCGaLg,19992
54
- mcp_ticketer-0.3.0.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
55
- mcp_ticketer-0.3.0.dist-info/METADATA,sha256=qUgh1KFBMCfrmkev4QBVmCEpbCAbutnjGDv5pTrfyJ8,13219
56
- mcp_ticketer-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
57
- mcp_ticketer-0.3.0.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
58
- mcp_ticketer-0.3.0.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
59
- mcp_ticketer-0.3.0.dist-info/RECORD,,
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,,