mcp-ticketer 0.3.7__tar.gz → 0.4.0__tar.gz
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-0.4.0/CLAUDE.md +49 -0
- mcp_ticketer-0.4.0/CLI_RESTRUCTURING_SUMMARY.md +272 -0
- {mcp_ticketer-0.3.7/src/mcp_ticketer.egg-info → mcp_ticketer-0.4.0}/PKG-INFO +1 -1
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/pyproject.toml +1 -1
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/__version__.py +1 -1
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/main.py +108 -33
- mcp_ticketer-0.4.0/src/mcp_ticketer/cli/platform_commands.py +133 -0
- mcp_ticketer-0.4.0/src/mcp_ticketer/cli/ticket_commands.py +765 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0/src/mcp_ticketer.egg-info}/PKG-INFO +1 -1
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/SOURCES.txt +3 -0
- mcp_ticketer-0.3.7/CLAUDE.md +0 -1270
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042175430.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042175768.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042175888.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042175987.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042176075.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/comments/comment-20251024141042176163.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/tickets/task-20251024141042175062.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.aitrackdown-test/tickets/task-20251024141042175285.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.claude.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.coveragerc +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.cursor/mcp.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.env.example +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.github/workflows/docs.yml +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.github/workflows/publish.yml +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.github/workflows/test.yml +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.mcp/config.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.pre-commit-config.yaml +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.python-version +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/.readthedocs.yaml +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/CHANGELOG.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LICENSE +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_ADAPTER_REVIEW.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_FIX_RECOMMENDATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_GRAPHQL_TYPE_ANALYSIS.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_LABEL_FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_PATTERN_COMPARISON.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_QUERY_ALTERNATIVE_ANALYSIS.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_RESEARCH_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/LINEAR_TAGS_FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/MANIFEST.in +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/Makefile +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/QUICK_WINS_IMPLEMENTATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/README.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/SECURITY_SCAN_REPORT_v0.1.24.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/V0.3.2_RELEASE_FIXES_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/debug_epic_creation.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/debug_full_flow.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/debug_worker_epic.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/ADAPTERS.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/AI_CLIENT_INTEGRATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/API_REFERENCE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/CONFIGURATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/CONFIG_RESOLUTION_FLOW.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/DEVELOPER_GUIDE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/ENV_DISCOVERY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/MCP_INTEGRATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/MIGRATION_GUIDE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/PROJECT_CONFIG.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/PR_INTEGRATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/QUEUE_SYSTEM.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/QUICK_START.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/QUICK_START_ENV.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/README.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/USER_GUIDE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/VERSIONING_AND_BUILD_TRACKING.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_archive/README.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/ADAPTERS.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/API_REFERENCE.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/CONFIGURATION.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/DEVELOPER_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/MCP_INTEGRATION.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/MIGRATION_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/USER_GUIDE.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/adapters/github.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/adapters.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/api.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/cli.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/development.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/examples.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/index.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/installation.rst.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/_build/_sources/prd/mcp-ticketer-prd.md.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/adapters/github.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/adapters.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/api.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/changelogs/CHANGELOG_v0.2.0.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/changelogs/CHANGELOG_v0.3.0.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/changelogs/CHANGELOG_v0.3.1.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/cli.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/conf.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/development/CODE_STRUCTURE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/development/CONTRIBUTING.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/development/RELEASE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/development/RELEASING.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/development.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/examples.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/guides/BULLETPROOF_TICKET_CREATION_GUIDE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/index.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/installation.rst +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/prd/mcp-ticketer-prd.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_GUIDE_v0.2.0.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_SUCCESS_v0.2.0.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_SUCCESS_v0.3.0.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_SUCCESS_v0.3.1.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_SUCCESS_v0.3.4.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/PUBLICATION_SUCCESS_v0.3.5.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/RELEASE_v0.1.39_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/releases/RELEASE_v0.2.0_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/CONFIG_RESOLUTION_FIX.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/CREDENTIAL_VALIDATION_FIX.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/DIAGNOSTICS_FEATURE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/ENV_DISCOVERY_COMPLETE.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/HIERARCHY_IMPLEMENTATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/IMPLEMENTATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/MCP_CONFIGURATION_TEST_REPORT.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/OPTIMIZATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/PROJECT_INITIALIZATION_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/TEST_COVERAGE_REPORT.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/TEST_REPORT.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/TEST_RESULTS_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/reports/VERIFICATION_RESULTS.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/requirements.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/setup/CLAUDE_DESKTOP_SETUP.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/setup/CODEX_INTEGRATION.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/setup/JIRA_SETUP.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/setup/LINEAR_SETUP.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/AUTO_DISCOVERY_BUG_FIX_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/BULLETPROOF_IMPROVEMENTS_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/COMMAND_SYNONYMS_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/COMPREHENSIVE_TESTING_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/INTERACTIVE_CLI_SETUP_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/LINEAR_ADAPTER_INITIALIZATION_BUG_FIX.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/MODULE_REFACTORING_ANALYSIS.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/MODULE_REFACTORING_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/PROJECT_CLEANUP_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/docs/summaries/REFACTORED_ENV_SOLUTION_SUMMARY.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/mcp-ticketer +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/mcp-ticketer-server +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/pytest.ini +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/requirements-dev.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/requirements.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/scripts/README.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/scripts/install.sh +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/scripts/manage_version.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/scripts/mcp_server.sh +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/scripts/test_set_command.sh +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/setup.cfg +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/setup.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/aitrackdown.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/github.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/hybrid.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/jira.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/adapter.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/client.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/mappers.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/queries.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear/types.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/adapters/linear.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cache/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cache/memory.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/adapter_diagnostics.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/auggie_configure.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/codex_configure.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/configure.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/diagnostics.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/discover.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/gemini_configure.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/linear_commands.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/mcp_configure.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/migrate_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/queue_commands.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/simple_health.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/cli/utils.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/adapter.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/env_discovery.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/env_loader.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/exceptions.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/http_client.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/mappers.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/models.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/project_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/core/registry.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/mcp/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/mcp/constants.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/mcp/dto.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/mcp/response_builder.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/mcp/server.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/py.typed +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/__main__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/health_monitor.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/manager.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/queue.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/run_worker.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/ticket_registry.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer/queue/worker.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/dependency_links.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/entry_points.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/not-zip-safe +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/requires.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/src/mcp_ticketer.egg-info/top_level.txt +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/test-tickets/tickets/task-20250924002724.json +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/test_linear_fixes.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/test_worker_persistence.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/README.md +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/test_adapter.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/test_client.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/test_mappers.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/test_queries.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/linear/test_types.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_aitrackdown.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_github.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_github_token.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_jira.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_jira_direct.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_jira_projects.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_linear.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_linear_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/adapters/test_linear_native.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/conftest.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/debug_credential_validation.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_actual_worker_execution.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_config_resolution.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_env_discovery.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_environment_handoff.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_queue_processing.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_queue_system.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/core/test_unified_env_loading.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_adapter_cache.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_cli_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_cli_vs_simulation.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_linear_teams.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_search.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_test.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_worker_adapter.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_worker_simulation.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/debug/debug_worker_subprocess.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/e2e/test_comments_and_attachments.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/e2e/test_complete_ticket_workflow.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/e2e/test_complete_workflow.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/e2e/test_hierarchy_validation.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/e2e/test_state_transitions.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_aitrackdown_commenting.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_all_adapters.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_commenting_functionality.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_comprehensive.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_hierarchy_and_workflow.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_jira_github_adapters.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_mcp_server_qa.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_pr_functionality.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_serve_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/integration/test_user_assignment.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/performance/test_optimizations.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/performance/test_performance.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/run_comprehensive_tests.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_api_usage.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_base_adapter.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_basic.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_codex_config.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_comprehensive_qa.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_error_handling.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_linear_teams.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_models.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/test_queue.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/unit/__init__.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/unit/test_cache_memory.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/unit/test_core_exceptions.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/unit/test_core_models.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tests/unit/test_core_registry.py +0 -0
- {mcp_ticketer-0.3.7 → mcp_ticketer-0.4.0}/tox.ini +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Project Memory Configuration
|
|
2
|
+
|
|
3
|
+
This project uses KuzuMemory for intelligent context management.
|
|
4
|
+
|
|
5
|
+
## Project Information
|
|
6
|
+
- **Path**: /Users/masa/Projects/mcp-ticketer
|
|
7
|
+
- **Language**: Python
|
|
8
|
+
- **Framework**: Unknown
|
|
9
|
+
|
|
10
|
+
## Memory Integration
|
|
11
|
+
|
|
12
|
+
KuzuMemory is configured to enhance all AI interactions with project-specific context.
|
|
13
|
+
|
|
14
|
+
### Available Commands:
|
|
15
|
+
- `kuzu-memory enhance <prompt>` - Enhance prompts with project context
|
|
16
|
+
- `kuzu-memory learn <content>` - Store learning from conversations (async)
|
|
17
|
+
- `kuzu-memory recall <query>` - Query project memories
|
|
18
|
+
- `kuzu-memory stats` - View memory statistics
|
|
19
|
+
|
|
20
|
+
### MCP Tools Available:
|
|
21
|
+
When interacting with Claude Desktop, the following MCP tools are available:
|
|
22
|
+
- **kuzu_enhance**: Enhance prompts with project memories
|
|
23
|
+
- **kuzu_learn**: Store new learnings asynchronously
|
|
24
|
+
- **kuzu_recall**: Query specific memories
|
|
25
|
+
- **kuzu_stats**: Get memory system statistics
|
|
26
|
+
|
|
27
|
+
## Project Context
|
|
28
|
+
|
|
29
|
+
Universal ticket management interface for AI agents with MCP support
|
|
30
|
+
|
|
31
|
+
## Key Technologies
|
|
32
|
+
- Python
|
|
33
|
+
|
|
34
|
+
## Development Guidelines
|
|
35
|
+
- Use kuzu-memory enhance for all AI interactions
|
|
36
|
+
- Store important decisions with kuzu-memory learn
|
|
37
|
+
- Query context with kuzu-memory recall when needed
|
|
38
|
+
- Keep memories project-specific and relevant
|
|
39
|
+
|
|
40
|
+
## Memory Guidelines
|
|
41
|
+
|
|
42
|
+
- Store project decisions and conventions
|
|
43
|
+
- Record technical specifications and API details
|
|
44
|
+
- Capture user preferences and patterns
|
|
45
|
+
- Document error solutions and workarounds
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
*Generated by KuzuMemory Claude Hooks Installer*
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# CLI Restructuring Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The MCP Ticketer CLI has been restructured to follow the kuzu-memory pattern, with a clear hierarchy of commands organized into logical groups. This restructuring improves discoverability, reduces clutter at the top level, and provides a more intuitive user experience.
|
|
6
|
+
|
|
7
|
+
## New Command Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
mcp-ticketer
|
|
11
|
+
│
|
|
12
|
+
├── Top-Level Commands (System Management)
|
|
13
|
+
│ ├── init # Initialize/setup project
|
|
14
|
+
│ ├── setup # Alias for init
|
|
15
|
+
│ ├── install # Alias for init
|
|
16
|
+
│ ├── status (alias: health) # Quick health check
|
|
17
|
+
│ ├── health (alias: status) # Quick health check
|
|
18
|
+
│ ├── doctor (alias: diagnose) # Comprehensive diagnostics
|
|
19
|
+
│ ├── diagnose (alias: doctor) # Comprehensive diagnostics
|
|
20
|
+
│ ├── configure # Configuration wizard
|
|
21
|
+
│ ├── set # Set adapter configuration
|
|
22
|
+
│ ├── migrate-config # Migrate config format
|
|
23
|
+
│ └── serve # Start MCP server
|
|
24
|
+
│
|
|
25
|
+
├── ticket # Ticket operations (NEW GROUP)
|
|
26
|
+
│ ├── create # Create ticket
|
|
27
|
+
│ ├── list # List tickets
|
|
28
|
+
│ ├── show # Show ticket details
|
|
29
|
+
│ ├── update # Update ticket
|
|
30
|
+
│ ├── transition # Change ticket state
|
|
31
|
+
│ ├── search # Search tickets
|
|
32
|
+
│ ├── comment # Add comment
|
|
33
|
+
│ └── check # Check queued operation
|
|
34
|
+
│
|
|
35
|
+
├── mcp # MCP client configuration
|
|
36
|
+
│ ├── claude # Configure Claude Code/Desktop
|
|
37
|
+
│ ├── gemini # Configure Gemini CLI
|
|
38
|
+
│ ├── codex # Configure Codex CLI
|
|
39
|
+
│ └── auggie # Configure Auggie CLI
|
|
40
|
+
│
|
|
41
|
+
├── platform # Platform-specific commands (NEW GROUP)
|
|
42
|
+
│ ├── linear
|
|
43
|
+
│ │ ├── workspaces # List workspaces
|
|
44
|
+
│ │ ├── teams # List teams
|
|
45
|
+
│ │ ├── configure # Configure Linear adapter
|
|
46
|
+
│ │ └── info # Show team info
|
|
47
|
+
│ ├── jira # Placeholder for future
|
|
48
|
+
│ │ ├── projects # (Placeholder)
|
|
49
|
+
│ │ └── configure # (Placeholder)
|
|
50
|
+
│ ├── github # Placeholder for future
|
|
51
|
+
│ │ ├── repos # (Placeholder)
|
|
52
|
+
│ │ └── configure # (Placeholder)
|
|
53
|
+
│ └── aitrackdown # Placeholder for future
|
|
54
|
+
│ ├── info # (Placeholder)
|
|
55
|
+
│ └── configure # (Placeholder)
|
|
56
|
+
│
|
|
57
|
+
├── queue # Queue management
|
|
58
|
+
│ └── worker
|
|
59
|
+
│ ├── start
|
|
60
|
+
│ ├── stop
|
|
61
|
+
│ ├── status
|
|
62
|
+
│ └── restart
|
|
63
|
+
│
|
|
64
|
+
└── discover # Environment discovery
|
|
65
|
+
└── ...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Key Changes
|
|
69
|
+
|
|
70
|
+
### 1. New Command Groups
|
|
71
|
+
|
|
72
|
+
#### `ticket` Group
|
|
73
|
+
All ticket-related operations have been consolidated under the `ticket` command group:
|
|
74
|
+
|
|
75
|
+
**Before:**
|
|
76
|
+
```bash
|
|
77
|
+
mcp-ticketer create "My ticket"
|
|
78
|
+
mcp-ticketer list
|
|
79
|
+
mcp-ticketer show TICKET-123
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**After:**
|
|
83
|
+
```bash
|
|
84
|
+
mcp-ticketer ticket create "My ticket"
|
|
85
|
+
mcp-ticketer ticket list
|
|
86
|
+
mcp-ticketer ticket show TICKET-123
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### `platform` Group
|
|
90
|
+
Platform-specific commands are now organized under the `platform` group:
|
|
91
|
+
|
|
92
|
+
**Before:**
|
|
93
|
+
```bash
|
|
94
|
+
mcp-ticketer linear teams
|
|
95
|
+
mcp-ticketer linear configure --team-id ABC123
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**After:**
|
|
99
|
+
```bash
|
|
100
|
+
mcp-ticketer platform linear teams
|
|
101
|
+
mcp-ticketer platform linear configure --team-id ABC123
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 2. Command Aliases
|
|
105
|
+
|
|
106
|
+
The following command aliases have been added for convenience:
|
|
107
|
+
|
|
108
|
+
- `status` ↔ `health` - System health check
|
|
109
|
+
- `diagnose` ↔ `doctor` - Comprehensive diagnostics
|
|
110
|
+
|
|
111
|
+
**Examples:**
|
|
112
|
+
```bash
|
|
113
|
+
mcp-ticketer status # Same as: mcp-ticketer health
|
|
114
|
+
mcp-ticketer doctor # Same as: mcp-ticketer diagnose
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 3. Backward Compatibility
|
|
118
|
+
|
|
119
|
+
All old top-level ticket commands are still available but are marked as **deprecated** and **hidden**. When used, they will display a deprecation warning and redirect users to the new command structure:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
$ mcp-ticketer create "My ticket"
|
|
123
|
+
⚠️ This command is deprecated. Use 'mcp-ticketer ticket create' instead.
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The deprecated commands include:
|
|
127
|
+
- `create` → `ticket create`
|
|
128
|
+
- `list` → `ticket list`
|
|
129
|
+
- `show` → `ticket show`
|
|
130
|
+
- `update` → `ticket update`
|
|
131
|
+
- `transition` → `ticket transition`
|
|
132
|
+
- `search` → `ticket search`
|
|
133
|
+
- `comment` → `ticket comment`
|
|
134
|
+
- `check` → `ticket check`
|
|
135
|
+
|
|
136
|
+
### 4. Platform Placeholders
|
|
137
|
+
|
|
138
|
+
Placeholder command groups have been added for future platform integrations:
|
|
139
|
+
- **JIRA** - `mcp-ticketer platform jira`
|
|
140
|
+
- **GitHub** - `mcp-ticketer platform github`
|
|
141
|
+
- **AITrackdown** - `mcp-ticketer platform aitrackdown`
|
|
142
|
+
|
|
143
|
+
These placeholders provide helpful messages directing users to use the generic ticket commands until platform-specific features are implemented.
|
|
144
|
+
|
|
145
|
+
## File Changes
|
|
146
|
+
|
|
147
|
+
### New Files Created
|
|
148
|
+
|
|
149
|
+
1. **`src/mcp_ticketer/cli/ticket_commands.py`**
|
|
150
|
+
- Contains all ticket management commands
|
|
151
|
+
- Includes configuration functions (load_config, save_config, get_adapter)
|
|
152
|
+
- Self-contained to avoid circular imports
|
|
153
|
+
|
|
154
|
+
2. **`src/mcp_ticketer/cli/platform_commands.py`**
|
|
155
|
+
- Platform command group orchestration
|
|
156
|
+
- Imports and registers Linear commands
|
|
157
|
+
- Placeholder apps for JIRA, GitHub, and AITrackdown
|
|
158
|
+
|
|
159
|
+
### Modified Files
|
|
160
|
+
|
|
161
|
+
1. **`src/mcp_ticketer/cli/main.py`**
|
|
162
|
+
- Added imports for new command groups
|
|
163
|
+
- Registered `ticket` and `platform` command groups
|
|
164
|
+
- Deprecated old top-level ticket commands
|
|
165
|
+
- Added command aliases (status/health, diagnose/doctor)
|
|
166
|
+
- Removed direct `linear_app` registration (now under platform)
|
|
167
|
+
|
|
168
|
+
2. **`src/mcp_ticketer/cli/linear_commands.py`**
|
|
169
|
+
- No changes required (works as-is under platform group)
|
|
170
|
+
|
|
171
|
+
## Migration Guide
|
|
172
|
+
|
|
173
|
+
### For End Users
|
|
174
|
+
|
|
175
|
+
#### Updating Scripts
|
|
176
|
+
If you have scripts using the old commands, they will continue to work but will show deprecation warnings. Update them to use the new structure:
|
|
177
|
+
|
|
178
|
+
**Old scripts:**
|
|
179
|
+
```bash
|
|
180
|
+
#!/bin/bash
|
|
181
|
+
mcp-ticketer create "Bug in login"
|
|
182
|
+
mcp-ticketer list --state todo
|
|
183
|
+
mcp-ticketer linear teams
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Updated scripts:**
|
|
187
|
+
```bash
|
|
188
|
+
#!/bin/bash
|
|
189
|
+
mcp-ticketer ticket create "Bug in login"
|
|
190
|
+
mcp-ticketer ticket list --state todo
|
|
191
|
+
mcp-ticketer platform linear teams
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
#### Using Aliases
|
|
195
|
+
Take advantage of the new aliases for brevity:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Instead of: mcp-ticketer diagnose
|
|
199
|
+
mcp-ticketer doctor
|
|
200
|
+
|
|
201
|
+
# Instead of: mcp-ticketer health
|
|
202
|
+
mcp-ticketer status
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### For Developers
|
|
206
|
+
|
|
207
|
+
#### Adding New Platform Commands
|
|
208
|
+
|
|
209
|
+
To add commands for a new platform (e.g., JIRA), follow this pattern:
|
|
210
|
+
|
|
211
|
+
1. Create the command module (e.g., `jira_commands.py`)
|
|
212
|
+
2. Import it in `platform_commands.py`
|
|
213
|
+
3. Replace the placeholder app with your real implementation
|
|
214
|
+
|
|
215
|
+
**Example:**
|
|
216
|
+
```python
|
|
217
|
+
# In src/mcp_ticketer/cli/jira_commands.py
|
|
218
|
+
import typer
|
|
219
|
+
|
|
220
|
+
app = typer.Typer(name="jira", help="JIRA workspace and project management")
|
|
221
|
+
|
|
222
|
+
@app.command("projects")
|
|
223
|
+
def list_projects():
|
|
224
|
+
"""List JIRA projects."""
|
|
225
|
+
# Implementation here
|
|
226
|
+
pass
|
|
227
|
+
|
|
228
|
+
# In src/mcp_ticketer/cli/platform_commands.py
|
|
229
|
+
from .jira_commands import app as jira_app
|
|
230
|
+
|
|
231
|
+
# Replace the placeholder:
|
|
232
|
+
# jira_app = typer.Typer(...) # OLD
|
|
233
|
+
# with:
|
|
234
|
+
# from .jira_commands import app as jira_app # NEW
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Testing
|
|
238
|
+
|
|
239
|
+
All new command structures have been tested and verified:
|
|
240
|
+
|
|
241
|
+
✅ `mcp-ticketer --help` - Shows new command groups
|
|
242
|
+
✅ `mcp-ticketer ticket --help` - Shows ticket subcommands
|
|
243
|
+
✅ `mcp-ticketer platform --help` - Shows platform groups
|
|
244
|
+
✅ `mcp-ticketer platform linear --help` - Shows Linear commands
|
|
245
|
+
✅ `mcp-ticketer status` / `mcp-ticketer health` - Aliases work
|
|
246
|
+
✅ `mcp-ticketer doctor` / `mcp-ticketer diagnose` - Aliases work
|
|
247
|
+
✅ Old commands show deprecation warnings
|
|
248
|
+
|
|
249
|
+
## Benefits
|
|
250
|
+
|
|
251
|
+
1. **Better Organization** - Commands are logically grouped by function
|
|
252
|
+
2. **Cleaner Top Level** - Reduced clutter at the main help level
|
|
253
|
+
3. **Improved Discoverability** - Users can explore commands by category
|
|
254
|
+
4. **Future-Proof** - Easy to add new platforms without polluting the top level
|
|
255
|
+
5. **Backward Compatible** - Existing scripts continue to work (with warnings)
|
|
256
|
+
6. **Consistent Pattern** - Follows established CLI patterns (kuzu-memory style)
|
|
257
|
+
7. **Alias Convenience** - Common operations have intuitive aliases
|
|
258
|
+
|
|
259
|
+
## Next Steps
|
|
260
|
+
|
|
261
|
+
1. ✅ Implement restructuring
|
|
262
|
+
2. ✅ Add deprecation warnings
|
|
263
|
+
3. ✅ Test all command paths
|
|
264
|
+
4. 📝 Update documentation (in progress)
|
|
265
|
+
5. 🔄 Deprecation cycle (6-12 months before removing old commands)
|
|
266
|
+
6. 🚀 Implement platform-specific commands for JIRA and GitHub
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
**Version:** 1.0.0
|
|
271
|
+
**Date:** October 26, 2025
|
|
272
|
+
**Author:** Generated via Claude Code MPM
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-ticketer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
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>
|
|
@@ -24,9 +24,10 @@ from ..queue.ticket_registry import TicketRegistry
|
|
|
24
24
|
from .configure import configure_wizard, set_adapter_config, show_current_config
|
|
25
25
|
from .diagnostics import run_diagnostics
|
|
26
26
|
from .discover import app as discover_app
|
|
27
|
-
from .linear_commands import app as linear_app
|
|
28
27
|
from .migrate_config import migrate_config_command
|
|
28
|
+
from .platform_commands import app as platform_app
|
|
29
29
|
from .queue_commands import app as queue_app
|
|
30
|
+
from .ticket_commands import app as ticket_app
|
|
30
31
|
|
|
31
32
|
# Load environment variables from .env files
|
|
32
33
|
# Priority: .env.local (highest) > .env (base)
|
|
@@ -1142,9 +1143,14 @@ def migrate_config(
|
|
|
1142
1143
|
migrate_config_command(dry_run=dry_run)
|
|
1143
1144
|
|
|
1144
1145
|
|
|
1145
|
-
@app.command("status")
|
|
1146
|
-
def
|
|
1147
|
-
"""Show queue and worker status.
|
|
1146
|
+
@app.command("queue-status", deprecated=True, hidden=True)
|
|
1147
|
+
def old_queue_status_command():
|
|
1148
|
+
"""Show queue and worker status.
|
|
1149
|
+
|
|
1150
|
+
DEPRECATED: Use 'mcp-ticketer queue status' instead.
|
|
1151
|
+
"""
|
|
1152
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue status' instead.[/yellow]\n")
|
|
1153
|
+
|
|
1148
1154
|
queue = Queue()
|
|
1149
1155
|
manager = WorkerManager()
|
|
1150
1156
|
|
|
@@ -1169,12 +1175,12 @@ def status_command():
|
|
|
1169
1175
|
console.print("\n[red]○ Worker is not running[/red]")
|
|
1170
1176
|
if pending > 0:
|
|
1171
1177
|
console.print(
|
|
1172
|
-
"[yellow]Note: There are pending items. Start worker with 'mcp-ticketer worker start'[/yellow]"
|
|
1178
|
+
"[yellow]Note: There are pending items. Start worker with 'mcp-ticketer queue worker start'[/yellow]"
|
|
1173
1179
|
)
|
|
1174
1180
|
|
|
1175
1181
|
|
|
1176
|
-
@app.command()
|
|
1177
|
-
def
|
|
1182
|
+
@app.command("queue-health", deprecated=True, hidden=True)
|
|
1183
|
+
def old_queue_health_command(
|
|
1178
1184
|
auto_repair: bool = typer.Option(
|
|
1179
1185
|
False, "--auto-repair", help="Attempt automatic repair of issues"
|
|
1180
1186
|
),
|
|
@@ -1182,7 +1188,11 @@ def health(
|
|
|
1182
1188
|
False, "--verbose", "-v", help="Show detailed health information"
|
|
1183
1189
|
),
|
|
1184
1190
|
) -> None:
|
|
1185
|
-
"""Check queue system health and detect issues immediately.
|
|
1191
|
+
"""Check queue system health and detect issues immediately.
|
|
1192
|
+
|
|
1193
|
+
DEPRECATED: Use 'mcp-ticketer queue health' instead.
|
|
1194
|
+
"""
|
|
1195
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer queue health' instead.[/yellow]\n")
|
|
1186
1196
|
health_monitor = QueueHealthMonitor()
|
|
1187
1197
|
health = health_monitor.check_health()
|
|
1188
1198
|
|
|
@@ -1251,7 +1261,7 @@ def health(
|
|
|
1251
1261
|
raise typer.Exit(2)
|
|
1252
1262
|
|
|
1253
1263
|
|
|
1254
|
-
@app.command()
|
|
1264
|
+
@app.command(deprecated=True, hidden=True)
|
|
1255
1265
|
def create(
|
|
1256
1266
|
title: str = typer.Argument(..., help="Ticket title"),
|
|
1257
1267
|
description: Optional[str] = typer.Option(
|
|
@@ -1280,7 +1290,12 @@ def create(
|
|
|
1280
1290
|
None, "--adapter", help="Override default adapter"
|
|
1281
1291
|
),
|
|
1282
1292
|
) -> None:
|
|
1283
|
-
"""Create a new ticket with comprehensive health checks.
|
|
1293
|
+
"""Create a new ticket with comprehensive health checks.
|
|
1294
|
+
|
|
1295
|
+
DEPRECATED: Use 'mcp-ticketer ticket create' instead.
|
|
1296
|
+
"""
|
|
1297
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket create' instead.[/yellow]\n")
|
|
1298
|
+
|
|
1284
1299
|
# IMMEDIATE HEALTH CHECK - Critical for reliability
|
|
1285
1300
|
health_monitor = QueueHealthMonitor()
|
|
1286
1301
|
health = health_monitor.check_health()
|
|
@@ -1476,7 +1491,7 @@ def create(
|
|
|
1476
1491
|
)
|
|
1477
1492
|
|
|
1478
1493
|
|
|
1479
|
-
@app.command("list")
|
|
1494
|
+
@app.command("list", deprecated=True, hidden=True)
|
|
1480
1495
|
def list_tickets(
|
|
1481
1496
|
state: Optional[TicketState] = typer.Option(
|
|
1482
1497
|
None, "--state", "-s", help="Filter by state"
|
|
@@ -1489,7 +1504,11 @@ def list_tickets(
|
|
|
1489
1504
|
None, "--adapter", help="Override default adapter"
|
|
1490
1505
|
),
|
|
1491
1506
|
) -> None:
|
|
1492
|
-
"""List tickets with optional filters.
|
|
1507
|
+
"""List tickets with optional filters.
|
|
1508
|
+
|
|
1509
|
+
DEPRECATED: Use 'mcp-ticketer ticket list' instead.
|
|
1510
|
+
"""
|
|
1511
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket list' instead.[/yellow]\n")
|
|
1493
1512
|
|
|
1494
1513
|
async def _list():
|
|
1495
1514
|
adapter_instance = get_adapter(
|
|
@@ -1531,7 +1550,7 @@ def list_tickets(
|
|
|
1531
1550
|
console.print(table)
|
|
1532
1551
|
|
|
1533
1552
|
|
|
1534
|
-
@app.command()
|
|
1553
|
+
@app.command(deprecated=True, hidden=True)
|
|
1535
1554
|
def show(
|
|
1536
1555
|
ticket_id: str = typer.Argument(..., help="Ticket ID"),
|
|
1537
1556
|
comments: bool = typer.Option(False, "--comments", "-c", help="Show comments"),
|
|
@@ -1539,7 +1558,11 @@ def show(
|
|
|
1539
1558
|
None, "--adapter", help="Override default adapter"
|
|
1540
1559
|
),
|
|
1541
1560
|
) -> None:
|
|
1542
|
-
"""Show detailed ticket information.
|
|
1561
|
+
"""Show detailed ticket information.
|
|
1562
|
+
|
|
1563
|
+
DEPRECATED: Use 'mcp-ticketer ticket show' instead.
|
|
1564
|
+
"""
|
|
1565
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket show' instead.[/yellow]\n")
|
|
1543
1566
|
|
|
1544
1567
|
async def _show():
|
|
1545
1568
|
adapter_instance = get_adapter(
|
|
@@ -1581,7 +1604,7 @@ def show(
|
|
|
1581
1604
|
console.print(comment.content)
|
|
1582
1605
|
|
|
1583
1606
|
|
|
1584
|
-
@app.command()
|
|
1607
|
+
@app.command(deprecated=True, hidden=True)
|
|
1585
1608
|
def comment(
|
|
1586
1609
|
ticket_id: str = typer.Argument(..., help="Ticket ID"),
|
|
1587
1610
|
content: str = typer.Argument(..., help="Comment content"),
|
|
@@ -1589,7 +1612,11 @@ def comment(
|
|
|
1589
1612
|
None, "--adapter", help="Override default adapter"
|
|
1590
1613
|
),
|
|
1591
1614
|
) -> None:
|
|
1592
|
-
"""Add a comment to a ticket.
|
|
1615
|
+
"""Add a comment to a ticket.
|
|
1616
|
+
|
|
1617
|
+
DEPRECATED: Use 'mcp-ticketer ticket comment' instead.
|
|
1618
|
+
"""
|
|
1619
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket comment' instead.[/yellow]\n")
|
|
1593
1620
|
|
|
1594
1621
|
async def _comment():
|
|
1595
1622
|
adapter_instance = get_adapter(
|
|
@@ -1617,7 +1644,7 @@ def comment(
|
|
|
1617
1644
|
raise typer.Exit(1)
|
|
1618
1645
|
|
|
1619
1646
|
|
|
1620
|
-
@app.command()
|
|
1647
|
+
@app.command(deprecated=True, hidden=True)
|
|
1621
1648
|
def update(
|
|
1622
1649
|
ticket_id: str = typer.Argument(..., help="Ticket ID"),
|
|
1623
1650
|
title: Optional[str] = typer.Option(None, "--title", help="New title"),
|
|
@@ -1634,7 +1661,11 @@ def update(
|
|
|
1634
1661
|
None, "--adapter", help="Override default adapter"
|
|
1635
1662
|
),
|
|
1636
1663
|
) -> None:
|
|
1637
|
-
"""Update ticket fields.
|
|
1664
|
+
"""Update ticket fields.
|
|
1665
|
+
|
|
1666
|
+
DEPRECATED: Use 'mcp-ticketer ticket update' instead.
|
|
1667
|
+
"""
|
|
1668
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket update' instead.[/yellow]\n")
|
|
1638
1669
|
updates = {}
|
|
1639
1670
|
if title:
|
|
1640
1671
|
updates["title"] = title
|
|
@@ -1681,7 +1712,7 @@ def update(
|
|
|
1681
1712
|
console.print("[dim]Worker started to process request[/dim]")
|
|
1682
1713
|
|
|
1683
1714
|
|
|
1684
|
-
@app.command()
|
|
1715
|
+
@app.command(deprecated=True, hidden=True)
|
|
1685
1716
|
def transition(
|
|
1686
1717
|
ticket_id: str = typer.Argument(..., help="Ticket ID"),
|
|
1687
1718
|
state_positional: Optional[TicketState] = typer.Argument(
|
|
@@ -1696,15 +1727,19 @@ def transition(
|
|
|
1696
1727
|
) -> None:
|
|
1697
1728
|
"""Change ticket state with validation.
|
|
1698
1729
|
|
|
1730
|
+
DEPRECATED: Use 'mcp-ticketer ticket transition' instead.
|
|
1731
|
+
|
|
1699
1732
|
Examples:
|
|
1700
1733
|
# Recommended syntax with flag:
|
|
1701
|
-
mcp-ticketer transition BTA-215 --state done
|
|
1702
|
-
mcp-ticketer transition BTA-215 -s in_progress
|
|
1734
|
+
mcp-ticketer ticket transition BTA-215 --state done
|
|
1735
|
+
mcp-ticketer ticket transition BTA-215 -s in_progress
|
|
1703
1736
|
|
|
1704
1737
|
# Legacy positional syntax (still supported):
|
|
1705
|
-
mcp-ticketer transition BTA-215 done
|
|
1738
|
+
mcp-ticketer ticket transition BTA-215 done
|
|
1706
1739
|
|
|
1707
1740
|
"""
|
|
1741
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket transition' instead.[/yellow]\n")
|
|
1742
|
+
|
|
1708
1743
|
# Determine which state to use (prefer flag over positional)
|
|
1709
1744
|
target_state = state if state is not None else state_positional
|
|
1710
1745
|
|
|
@@ -1747,7 +1782,7 @@ def transition(
|
|
|
1747
1782
|
console.print("[dim]Worker started to process request[/dim]")
|
|
1748
1783
|
|
|
1749
1784
|
|
|
1750
|
-
@app.command()
|
|
1785
|
+
@app.command(deprecated=True, hidden=True)
|
|
1751
1786
|
def search(
|
|
1752
1787
|
query: Optional[str] = typer.Argument(None, help="Search query"),
|
|
1753
1788
|
state: Optional[TicketState] = typer.Option(None, "--state", "-s"),
|
|
@@ -1758,7 +1793,11 @@ def search(
|
|
|
1758
1793
|
None, "--adapter", help="Override default adapter"
|
|
1759
1794
|
),
|
|
1760
1795
|
) -> None:
|
|
1761
|
-
"""Search tickets with advanced query.
|
|
1796
|
+
"""Search tickets with advanced query.
|
|
1797
|
+
|
|
1798
|
+
DEPRECATED: Use 'mcp-ticketer ticket search' instead.
|
|
1799
|
+
"""
|
|
1800
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket search' instead.[/yellow]\n")
|
|
1762
1801
|
|
|
1763
1802
|
async def _search():
|
|
1764
1803
|
adapter_instance = get_adapter(
|
|
@@ -1790,6 +1829,12 @@ def search(
|
|
|
1790
1829
|
console.print()
|
|
1791
1830
|
|
|
1792
1831
|
|
|
1832
|
+
# Add ticket command group to main app
|
|
1833
|
+
app.add_typer(ticket_app, name="ticket")
|
|
1834
|
+
|
|
1835
|
+
# Add platform command group to main app
|
|
1836
|
+
app.add_typer(platform_app, name="platform")
|
|
1837
|
+
|
|
1793
1838
|
# Add queue command to main app
|
|
1794
1839
|
app.add_typer(queue_app, name="queue")
|
|
1795
1840
|
|
|
@@ -1798,8 +1843,8 @@ app.add_typer(discover_app, name="discover")
|
|
|
1798
1843
|
|
|
1799
1844
|
|
|
1800
1845
|
# Add diagnostics command
|
|
1801
|
-
@app.command()
|
|
1802
|
-
def
|
|
1846
|
+
@app.command("diagnose")
|
|
1847
|
+
def diagnose_command(
|
|
1803
1848
|
output_file: Optional[str] = typer.Option(
|
|
1804
1849
|
None, "--output", "-o", help="Save full report to file"
|
|
1805
1850
|
),
|
|
@@ -1810,7 +1855,7 @@ def diagnose(
|
|
|
1810
1855
|
False, "--simple", help="Use simple diagnostics (no heavy dependencies)"
|
|
1811
1856
|
),
|
|
1812
1857
|
) -> None:
|
|
1813
|
-
"""Run comprehensive system diagnostics and health check."""
|
|
1858
|
+
"""Run comprehensive system diagnostics and health check (alias: doctor)."""
|
|
1814
1859
|
if simple:
|
|
1815
1860
|
from .simple_health import simple_diagnose
|
|
1816
1861
|
|
|
@@ -1845,9 +1890,36 @@ def diagnose(
|
|
|
1845
1890
|
raise typer.Exit(1)
|
|
1846
1891
|
|
|
1847
1892
|
|
|
1848
|
-
@app.command()
|
|
1849
|
-
def
|
|
1850
|
-
|
|
1893
|
+
@app.command("doctor")
|
|
1894
|
+
def doctor_alias(
|
|
1895
|
+
output_file: Optional[str] = typer.Option(
|
|
1896
|
+
None, "--output", "-o", help="Save full report to file"
|
|
1897
|
+
),
|
|
1898
|
+
json_output: bool = typer.Option(
|
|
1899
|
+
False, "--json", help="Output report in JSON format"
|
|
1900
|
+
),
|
|
1901
|
+
simple: bool = typer.Option(
|
|
1902
|
+
False, "--simple", help="Use simple diagnostics (no heavy dependencies)"
|
|
1903
|
+
),
|
|
1904
|
+
) -> None:
|
|
1905
|
+
"""Run comprehensive system diagnostics and health check (alias for diagnose)."""
|
|
1906
|
+
# Call the diagnose_command function with the same parameters
|
|
1907
|
+
diagnose_command(output_file=output_file, json_output=json_output, simple=simple)
|
|
1908
|
+
|
|
1909
|
+
|
|
1910
|
+
@app.command("status")
|
|
1911
|
+
def status_command() -> None:
|
|
1912
|
+
"""Quick health check - shows system status summary (alias: health)."""
|
|
1913
|
+
from .simple_health import simple_health_check
|
|
1914
|
+
|
|
1915
|
+
result = simple_health_check()
|
|
1916
|
+
if result != 0:
|
|
1917
|
+
raise typer.Exit(result)
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
@app.command("health")
|
|
1921
|
+
def health_alias() -> None:
|
|
1922
|
+
"""Quick health check - shows system status summary (alias for status)."""
|
|
1851
1923
|
from .simple_health import simple_health_check
|
|
1852
1924
|
|
|
1853
1925
|
result = simple_health_check()
|
|
@@ -1863,9 +1935,13 @@ mcp_app = typer.Typer(
|
|
|
1863
1935
|
)
|
|
1864
1936
|
|
|
1865
1937
|
|
|
1866
|
-
@app.command()
|
|
1938
|
+
@app.command(deprecated=True, hidden=True)
|
|
1867
1939
|
def check(queue_id: str = typer.Argument(..., help="Queue ID to check")):
|
|
1868
|
-
"""Check status of a queued operation.
|
|
1940
|
+
"""Check status of a queued operation.
|
|
1941
|
+
|
|
1942
|
+
DEPRECATED: Use 'mcp-ticketer ticket check' instead.
|
|
1943
|
+
"""
|
|
1944
|
+
console.print("[yellow]⚠️ This command is deprecated. Use 'mcp-ticketer ticket check' instead.[/yellow]\n")
|
|
1869
1945
|
queue = Queue()
|
|
1870
1946
|
item = queue.get_item(queue_id)
|
|
1871
1947
|
|
|
@@ -2141,7 +2217,6 @@ def mcp_auggie(
|
|
|
2141
2217
|
|
|
2142
2218
|
|
|
2143
2219
|
# Add command groups to main app (must be after all subcommands are defined)
|
|
2144
|
-
app.add_typer(linear_app, name="linear")
|
|
2145
2220
|
app.add_typer(mcp_app, name="mcp")
|
|
2146
2221
|
|
|
2147
2222
|
|