mcp-adr-analysis-server 2.0.11 โ 2.0.13
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.
- package/README.md +45 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +210 -26
- package/dist/src/index.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts +23 -0
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -0
- package/dist/src/tools/deployment-readiness-tool.js +696 -0
- package/dist/src/tools/deployment-readiness-tool.js.map +1 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts +69 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -0
- package/dist/src/tools/smart-git-push-tool-v2.js +922 -0
- package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -0
- package/dist/src/tools/smart-git-push-tool.d.ts +23 -15
- package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool.js +401 -29
- package/dist/src/tools/smart-git-push-tool.js.map +1 -1
- package/dist/src/tools/todo-management-tool-v2.d.ts +39 -0
- package/dist/src/tools/todo-management-tool-v2.d.ts.map +1 -1
- package/dist/src/tools/todo-management-tool-v2.js +229 -5
- package/dist/src/tools/todo-management-tool-v2.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +4 -4
- package/dist/src/utils/knowledge-graph-manager.d.ts +13 -0
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +40 -0
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,7 @@ The Model Context Protocol enables seamless integration between AI assistants an
|
|
|
25
25
|
๐ **Workflow Automation** - Todo generation, deployment tracking, and rule validation
|
|
26
26
|
๐งช **TDD Integration** - Two-phase Test-Driven Development with ADR linking and validation
|
|
27
27
|
๐ **Mock Detection** - Sophisticated analysis to distinguish mock from production code
|
|
28
|
+
๐ **Deployment Readiness** - Zero-tolerance test validation with deployment history tracking and hard blocking
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
|
|
@@ -296,6 +297,50 @@ const rules = await generateRules({
|
|
|
296
297
|
});
|
|
297
298
|
```
|
|
298
299
|
|
|
300
|
+
### Deployment Readiness & Safety
|
|
301
|
+
```typescript
|
|
302
|
+
// Comprehensive deployment validation with zero tolerance
|
|
303
|
+
const deploymentCheck = await deploymentReadiness({
|
|
304
|
+
operation: "full_audit",
|
|
305
|
+
projectPath: "/path/to/project",
|
|
306
|
+
targetEnvironment: "production",
|
|
307
|
+
|
|
308
|
+
// Test validation (zero tolerance by default)
|
|
309
|
+
maxTestFailures: 0, // Hard block on any test failures
|
|
310
|
+
requireTestCoverage: 80, // Minimum coverage requirement
|
|
311
|
+
blockOnFailingTests: true, // Prevent deployment with failing tests
|
|
312
|
+
|
|
313
|
+
// Deployment history validation
|
|
314
|
+
maxRecentFailures: 2, // Max recent deployment failures
|
|
315
|
+
deploymentSuccessThreshold: 80, // Required success rate
|
|
316
|
+
rollbackFrequencyThreshold: 20, // Max rollback frequency
|
|
317
|
+
|
|
318
|
+
// Integration options
|
|
319
|
+
integrateTodoTasks: true, // Auto-create blocking tasks
|
|
320
|
+
updateHealthScoring: true, // Update project metrics
|
|
321
|
+
strictMode: true // Enable all safety checks
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
// Enhanced git push with deployment readiness
|
|
325
|
+
const pushResult = await smartGitPush({
|
|
326
|
+
message: "Deploy feature X",
|
|
327
|
+
branch: "main",
|
|
328
|
+
|
|
329
|
+
// Deployment readiness integration
|
|
330
|
+
checkDeploymentReadiness: true, // Validate before push
|
|
331
|
+
enforceDeploymentReadiness: true, // Hard block on issues
|
|
332
|
+
targetEnvironment: "production", // Environment-specific checks
|
|
333
|
+
strictDeploymentMode: true // Maximum safety
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
// Emergency override for critical fixes
|
|
337
|
+
const override = await deploymentReadiness({
|
|
338
|
+
operation: "emergency_override",
|
|
339
|
+
businessJustification: "Critical security patch - CVE-2024-XXXX",
|
|
340
|
+
approvalRequired: true
|
|
341
|
+
});
|
|
342
|
+
```
|
|
343
|
+
|
|
299
344
|
## ๐ฏ Use Cases
|
|
300
345
|
|
|
301
346
|
### ๐จโ๐ป **AI Coding Assistants**
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AA2EH;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAwB;;IAyBzC;;OAEG;YACW,qBAAqB;IAUnC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;OAEG;IACH,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AA2EH;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAwB;;IAyBzC;;OAEG;YACW,qBAAqB;IAUnC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAkhErB;;OAEG;YACW,sBAAsB;YAgGtB,mBAAmB;YAqMnB,sBAAsB;YAmQtB,uBAAuB;YA+VvB,uBAAuB;YA0PvB,mBAAmB;YA6RnB,eAAe;YA2Hf,kBAAkB;IAyFhC;;OAEG;YACW,+BAA+B;IA0K7C;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAyClC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAmFvC;;OAEG;YACW,sBAAsB;YAKtB,sBAAsB;YAKtB,uBAAuB;YAKvB,wBAAwB;YAKxB,sBAAsB;YAKtB,WAAW;YAkJX,sBAAsB;IAuHpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAyDnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyF3B;;OAEG;YACW,WAAW;YAKX,uBAAuB;YAKvB,oBAAoB;IAKlC;;OAEG;YACW,mBAAmB;YAKnB,sBAAsB;YAKtB,yBAAyB;IAKvC;;OAEG;YACW,aAAa;YAKb,aAAa;YAKb,aAAa;IAK3B;;OAEG;YACW,kBAAkB;IAKhC;;OAEG;YACW,yBAAyB;IAKvC;;OAEG;YACW,yBAAyB;IAKvC;;OAEG;IACH;;OAEG;YACW,kBAAkB;YAwFlB,kBAAkB;IAWhC;;OAEG;YACW,YAAY;IAmF1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;OAEG;YACW,QAAQ;YAiCR,SAAS;YAqCT,aAAa;YAuCb,cAAc;YAiBd,0BAA0B;YAY1B,YAAY;YAYZ,mBAAmB;YAYnB,0BAA0B;YAY1B,UAAU;CAWzB"}
|
package/dist/src/index.js
CHANGED
|
@@ -1513,7 +1513,7 @@ export class McpAdrAnalysisServer {
|
|
|
1513
1513
|
},
|
|
1514
1514
|
{
|
|
1515
1515
|
name: 'smart_git_push',
|
|
1516
|
-
description: '
|
|
1516
|
+
description: 'AI-driven security-focused git push with credential detection, file filtering, and deployment metrics tracking. Tests should be run by calling AI and results provided.',
|
|
1517
1517
|
inputSchema: {
|
|
1518
1518
|
type: 'object',
|
|
1519
1519
|
properties: {
|
|
@@ -1525,48 +1525,197 @@ export class McpAdrAnalysisServer {
|
|
|
1525
1525
|
type: 'string',
|
|
1526
1526
|
description: 'Commit message (optional, commits staged files if provided)'
|
|
1527
1527
|
},
|
|
1528
|
-
|
|
1528
|
+
testResults: {
|
|
1529
|
+
type: 'object',
|
|
1530
|
+
description: 'Test results from AI-executed tests (required for proper deployment tracking)',
|
|
1531
|
+
properties: {
|
|
1532
|
+
success: {
|
|
1533
|
+
type: 'boolean',
|
|
1534
|
+
description: 'Whether all tests passed'
|
|
1535
|
+
},
|
|
1536
|
+
testsRun: {
|
|
1537
|
+
type: 'number',
|
|
1538
|
+
description: 'Total number of tests executed'
|
|
1539
|
+
},
|
|
1540
|
+
testsPassed: {
|
|
1541
|
+
type: 'number',
|
|
1542
|
+
description: 'Number of tests that passed'
|
|
1543
|
+
},
|
|
1544
|
+
testsFailed: {
|
|
1545
|
+
type: 'number',
|
|
1546
|
+
description: 'Number of tests that failed'
|
|
1547
|
+
},
|
|
1548
|
+
duration: {
|
|
1549
|
+
type: 'number',
|
|
1550
|
+
description: 'Test execution duration in seconds'
|
|
1551
|
+
},
|
|
1552
|
+
command: {
|
|
1553
|
+
type: 'string',
|
|
1554
|
+
description: 'Test command that was executed by AI'
|
|
1555
|
+
},
|
|
1556
|
+
output: {
|
|
1557
|
+
type: 'string',
|
|
1558
|
+
description: 'Test execution output'
|
|
1559
|
+
},
|
|
1560
|
+
failureDetails: {
|
|
1561
|
+
type: 'array',
|
|
1562
|
+
items: { type: 'string' },
|
|
1563
|
+
description: 'Details of test failures'
|
|
1564
|
+
},
|
|
1565
|
+
testTypes: {
|
|
1566
|
+
type: 'object',
|
|
1567
|
+
description: 'Results broken down by test type (unit, integration, etc.)',
|
|
1568
|
+
additionalProperties: {
|
|
1569
|
+
type: 'object',
|
|
1570
|
+
properties: {
|
|
1571
|
+
passed: { type: 'number' },
|
|
1572
|
+
failed: { type: 'number' }
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
required: ['success', 'testsRun', 'testsPassed', 'testsFailed']
|
|
1578
|
+
},
|
|
1579
|
+
skipSecurity: {
|
|
1529
1580
|
type: 'boolean',
|
|
1530
1581
|
default: false,
|
|
1531
|
-
description: 'Skip
|
|
1582
|
+
description: 'Skip security scanning (NOT RECOMMENDED)'
|
|
1532
1583
|
},
|
|
1533
|
-
|
|
1534
|
-
type: '
|
|
1535
|
-
|
|
1536
|
-
description: '
|
|
1584
|
+
dryRun: {
|
|
1585
|
+
type: 'boolean',
|
|
1586
|
+
default: false,
|
|
1587
|
+
description: 'Show what would be pushed without actually pushing'
|
|
1537
1588
|
},
|
|
1538
|
-
|
|
1589
|
+
projectPath: {
|
|
1539
1590
|
type: 'string',
|
|
1540
|
-
|
|
1541
|
-
default: 'moderate',
|
|
1542
|
-
description: 'Sensitivity level for content detection'
|
|
1591
|
+
description: 'Path to project directory (defaults to current working directory)'
|
|
1543
1592
|
},
|
|
1544
|
-
|
|
1545
|
-
type: 'boolean',
|
|
1546
|
-
default: true,
|
|
1547
|
-
description: 'Enable interactive approval workflow'
|
|
1548
|
-
},
|
|
1549
|
-
dryRun: {
|
|
1593
|
+
forceUnsafe: {
|
|
1550
1594
|
type: 'boolean',
|
|
1551
1595
|
default: false,
|
|
1552
|
-
description: '
|
|
1596
|
+
description: 'Override security blocks and test failures (DANGEROUS)'
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
},
|
|
1601
|
+
{
|
|
1602
|
+
name: 'deployment_readiness',
|
|
1603
|
+
description: 'Comprehensive deployment readiness validation with test failure tracking, deployment history analysis, and hard blocking for unsafe deployments. Integrates with smart_git_push for deployment gating.',
|
|
1604
|
+
inputSchema: {
|
|
1605
|
+
type: 'object',
|
|
1606
|
+
properties: {
|
|
1607
|
+
operation: {
|
|
1608
|
+
type: 'string',
|
|
1609
|
+
enum: ['check_readiness', 'validate_production', 'test_validation', 'deployment_history', 'full_audit', 'emergency_override'],
|
|
1610
|
+
description: 'Type of deployment readiness check to perform'
|
|
1553
1611
|
},
|
|
1554
1612
|
projectPath: {
|
|
1555
1613
|
type: 'string',
|
|
1556
1614
|
description: 'Path to project directory (defaults to current working directory)'
|
|
1557
1615
|
},
|
|
1558
|
-
|
|
1616
|
+
targetEnvironment: {
|
|
1617
|
+
type: 'string',
|
|
1618
|
+
enum: ['staging', 'production', 'integration'],
|
|
1619
|
+
default: 'production',
|
|
1620
|
+
description: 'Target deployment environment'
|
|
1621
|
+
},
|
|
1622
|
+
strictMode: {
|
|
1623
|
+
type: 'boolean',
|
|
1624
|
+
default: true,
|
|
1625
|
+
description: 'Enable strict validation (recommended for production)'
|
|
1626
|
+
},
|
|
1627
|
+
allowMockCode: {
|
|
1559
1628
|
type: 'boolean',
|
|
1560
1629
|
default: false,
|
|
1561
|
-
description: '
|
|
1630
|
+
description: 'Allow mock code in deployment (NOT RECOMMENDED)'
|
|
1631
|
+
},
|
|
1632
|
+
productionCodeThreshold: {
|
|
1633
|
+
type: 'number',
|
|
1634
|
+
default: 85,
|
|
1635
|
+
description: 'Minimum production code quality score (0-100)'
|
|
1562
1636
|
},
|
|
1563
|
-
|
|
1637
|
+
mockCodeMaxAllowed: {
|
|
1638
|
+
type: 'number',
|
|
1639
|
+
default: 0,
|
|
1640
|
+
description: 'Maximum mock code indicators allowed'
|
|
1641
|
+
},
|
|
1642
|
+
maxTestFailures: {
|
|
1643
|
+
type: 'number',
|
|
1644
|
+
default: 0,
|
|
1645
|
+
description: 'Maximum test failures allowed (0 = zero tolerance)'
|
|
1646
|
+
},
|
|
1647
|
+
requireTestCoverage: {
|
|
1648
|
+
type: 'number',
|
|
1649
|
+
default: 80,
|
|
1650
|
+
description: 'Minimum test coverage percentage required'
|
|
1651
|
+
},
|
|
1652
|
+
blockOnFailingTests: {
|
|
1653
|
+
type: 'boolean',
|
|
1654
|
+
default: true,
|
|
1655
|
+
description: 'Block deployment if tests are failing'
|
|
1656
|
+
},
|
|
1657
|
+
testSuiteRequired: {
|
|
1658
|
+
type: 'array',
|
|
1659
|
+
items: { type: 'string' },
|
|
1660
|
+
default: [],
|
|
1661
|
+
description: 'Required test suites that must pass'
|
|
1662
|
+
},
|
|
1663
|
+
maxRecentFailures: {
|
|
1664
|
+
type: 'number',
|
|
1665
|
+
default: 2,
|
|
1666
|
+
description: 'Maximum recent deployment failures allowed'
|
|
1667
|
+
},
|
|
1668
|
+
deploymentSuccessThreshold: {
|
|
1669
|
+
type: 'number',
|
|
1670
|
+
default: 80,
|
|
1671
|
+
description: 'Minimum deployment success rate required (%)'
|
|
1672
|
+
},
|
|
1673
|
+
blockOnRecentFailures: {
|
|
1674
|
+
type: 'boolean',
|
|
1675
|
+
default: true,
|
|
1676
|
+
description: 'Block if recent deployments failed'
|
|
1677
|
+
},
|
|
1678
|
+
rollbackFrequencyThreshold: {
|
|
1679
|
+
type: 'number',
|
|
1680
|
+
default: 20,
|
|
1681
|
+
description: 'Maximum rollback frequency allowed (%)'
|
|
1682
|
+
},
|
|
1683
|
+
requireAdrCompliance: {
|
|
1684
|
+
type: 'boolean',
|
|
1685
|
+
default: true,
|
|
1686
|
+
description: 'Require ADR compliance validation'
|
|
1687
|
+
},
|
|
1688
|
+
integrateTodoTasks: {
|
|
1689
|
+
type: 'boolean',
|
|
1690
|
+
default: true,
|
|
1691
|
+
description: 'Auto-create blocking tasks for issues'
|
|
1692
|
+
},
|
|
1693
|
+
updateHealthScoring: {
|
|
1694
|
+
type: 'boolean',
|
|
1695
|
+
default: true,
|
|
1696
|
+
description: 'Update project health scores'
|
|
1697
|
+
},
|
|
1698
|
+
triggerSmartGitPush: {
|
|
1699
|
+
type: 'boolean',
|
|
1700
|
+
default: false,
|
|
1701
|
+
description: 'Trigger smart git push validation'
|
|
1702
|
+
},
|
|
1703
|
+
emergencyBypass: {
|
|
1704
|
+
type: 'boolean',
|
|
1705
|
+
default: false,
|
|
1706
|
+
description: 'Emergency bypass for critical fixes'
|
|
1707
|
+
},
|
|
1708
|
+
businessJustification: {
|
|
1564
1709
|
type: 'string',
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1710
|
+
description: 'Business justification for overrides (required for emergency_override)'
|
|
1711
|
+
},
|
|
1712
|
+
approvalRequired: {
|
|
1713
|
+
type: 'boolean',
|
|
1714
|
+
default: true,
|
|
1715
|
+
description: 'Require approval for overrides'
|
|
1568
1716
|
}
|
|
1569
|
-
}
|
|
1717
|
+
},
|
|
1718
|
+
required: ['operation']
|
|
1570
1719
|
}
|
|
1571
1720
|
},
|
|
1572
1721
|
{
|
|
@@ -1895,6 +2044,9 @@ export class McpAdrAnalysisServer {
|
|
|
1895
2044
|
case 'smart_git_push':
|
|
1896
2045
|
response = await this.smartGitPush(args);
|
|
1897
2046
|
break;
|
|
2047
|
+
case 'deployment_readiness':
|
|
2048
|
+
response = await this.deploymentReadiness(args);
|
|
2049
|
+
break;
|
|
1898
2050
|
case 'troubleshoot_guided_workflow':
|
|
1899
2051
|
response = await this.troubleshootGuidedWorkflow(args);
|
|
1900
2052
|
break;
|
|
@@ -2675,6 +2827,27 @@ ${environmentResult.content[0].text}
|
|
|
2675
2827
|
temperature: 0.1,
|
|
2676
2828
|
maxTokens: 6000,
|
|
2677
2829
|
});
|
|
2830
|
+
// Step 6: Record project structure to knowledge graph
|
|
2831
|
+
try {
|
|
2832
|
+
this.logger.info('Recording project structure to knowledge graph');
|
|
2833
|
+
const projectStructureSnapshot = {
|
|
2834
|
+
projectPath,
|
|
2835
|
+
analysisDepth,
|
|
2836
|
+
recursiveDepth,
|
|
2837
|
+
technologyFocus,
|
|
2838
|
+
analysisScope,
|
|
2839
|
+
includeEnvironment,
|
|
2840
|
+
timestamp: new Date().toISOString(),
|
|
2841
|
+
structureData: baseProjectAnalysisPrompt.context || {}
|
|
2842
|
+
};
|
|
2843
|
+
await this.kgManager.recordProjectStructure(projectStructureSnapshot);
|
|
2844
|
+
this.logger.info('โ
Project structure recorded to knowledge graph');
|
|
2845
|
+
}
|
|
2846
|
+
catch (kgError) {
|
|
2847
|
+
this.logger.warn('Failed to record project structure to knowledge graph:', kgError);
|
|
2848
|
+
// Don't fail the entire analysis if KG recording fails
|
|
2849
|
+
}
|
|
2850
|
+
// Return appropriate response based on execution result
|
|
2678
2851
|
if (executionResult.isAIGenerated) {
|
|
2679
2852
|
// AI execution successful - return actual analysis results
|
|
2680
2853
|
return formatMCPResponse({
|
|
@@ -2693,6 +2866,7 @@ ${environmentResult.content[0].text}
|
|
|
2693
2866
|
- **Reflexion Learning**: ${enhancedMode && learningEnabled ? 'โ
Enabled' : 'โ Disabled'}
|
|
2694
2867
|
- **Enhanced Mode**: ${enhancedMode ? 'โ
Enabled' : 'โ Disabled'}
|
|
2695
2868
|
- **Technology Focus**: ${technologyFocus.length > 0 ? technologyFocus.join(', ') : 'Auto-detect'}
|
|
2869
|
+
- **Knowledge Graph**: โ
Project structure recorded
|
|
2696
2870
|
|
|
2697
2871
|
${knowledgeContext}
|
|
2698
2872
|
|
|
@@ -2761,6 +2935,7 @@ This comprehensive analysis provides deep recursive project understanding with i
|
|
|
2761
2935
|
- **Enhanced Mode**: ${enhancedMode ? 'โ
Enabled' : 'โ Disabled'}
|
|
2762
2936
|
- **Technology Focus**: ${technologyFocus.length > 0 ? technologyFocus.join(', ') : 'Auto-detect'}
|
|
2763
2937
|
- **Include Patterns**: ${includePatterns?.length ? includePatterns.join(', ') : 'Default patterns'}
|
|
2938
|
+
- **Knowledge Graph**: โ
Project structure recorded
|
|
2764
2939
|
|
|
2765
2940
|
${knowledgeContext}
|
|
2766
2941
|
|
|
@@ -4556,13 +4731,22 @@ Please provide:
|
|
|
4556
4731
|
}
|
|
4557
4732
|
async smartGitPush(args) {
|
|
4558
4733
|
try {
|
|
4559
|
-
const { smartGitPush } = await import('./tools/smart-git-push-tool.js');
|
|
4734
|
+
const { smartGitPush } = await import('./tools/smart-git-push-tool-v2.js');
|
|
4560
4735
|
return await smartGitPush(args);
|
|
4561
4736
|
}
|
|
4562
4737
|
catch (error) {
|
|
4563
4738
|
throw new McpAdrError(`Smart git push failed: ${error instanceof Error ? error.message : String(error)}`, 'SMART_GIT_PUSH_ERROR');
|
|
4564
4739
|
}
|
|
4565
4740
|
}
|
|
4741
|
+
async deploymentReadiness(args) {
|
|
4742
|
+
try {
|
|
4743
|
+
const { deploymentReadiness } = await import('./tools/deployment-readiness-tool.js');
|
|
4744
|
+
return await deploymentReadiness(args);
|
|
4745
|
+
}
|
|
4746
|
+
catch (error) {
|
|
4747
|
+
throw new McpAdrError(`Deployment readiness check failed: ${error instanceof Error ? error.message : String(error)}`, 'DEPLOYMENT_READINESS_ERROR');
|
|
4748
|
+
}
|
|
4749
|
+
}
|
|
4566
4750
|
async troubleshootGuidedWorkflow(args) {
|
|
4567
4751
|
try {
|
|
4568
4752
|
const { troubleshootGuidedWorkflow } = await import('./tools/troubleshoot-guided-workflow-tool.js');
|