@mytechtoday/augment-extensions 0.2.0 → 0.4.0
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 +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- package/augment-extensions/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- package/augment-extensions/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/writing-standards/screenplay/README.md +171 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +142 -9
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +29 -99
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- package/cli/dist/utils/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.js.map +1 -0
- package/cli/dist/utils/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +153 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +528 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +518 -106
- package/package.json +12 -3
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Integration Utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides integration with Model Context Protocol (MCP) servers
|
|
6
|
+
* using mcporter-inspired patterns for CLI wrapping.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.getMCPConfigDir = getMCPConfigDir;
|
|
43
|
+
exports.loadMCPConfigs = loadMCPConfigs;
|
|
44
|
+
exports.saveMCPConfigs = saveMCPConfigs;
|
|
45
|
+
exports.addMCPServer = addMCPServer;
|
|
46
|
+
exports.removeMCPServer = removeMCPServer;
|
|
47
|
+
exports.executeMCPCommand = executeMCPCommand;
|
|
48
|
+
exports.generateMCPSkillWrapper = generateMCPSkillWrapper;
|
|
49
|
+
exports.discoverMCPTools = discoverMCPTools;
|
|
50
|
+
exports.isMCPorterAvailable = isMCPorterAvailable;
|
|
51
|
+
exports.generateCLIWithMCPorter = generateCLIWithMCPorter;
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const child_process_1 = require("child_process");
|
|
55
|
+
/**
|
|
56
|
+
* Get MCP configuration directory
|
|
57
|
+
*/
|
|
58
|
+
function getMCPConfigDir(repoRoot) {
|
|
59
|
+
const root = repoRoot || process.cwd();
|
|
60
|
+
return path.join(root, '.augment', 'mcp');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Load MCP server configurations
|
|
64
|
+
*/
|
|
65
|
+
function loadMCPConfigs(repoRoot) {
|
|
66
|
+
const configDir = getMCPConfigDir(repoRoot);
|
|
67
|
+
const configFile = path.join(configDir, 'servers.json');
|
|
68
|
+
if (!fs.existsSync(configFile)) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const content = fs.readFileSync(configFile, 'utf-8');
|
|
73
|
+
const config = JSON.parse(content);
|
|
74
|
+
return config.servers || [];
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.warn(`Failed to load MCP configs: ${error}`);
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Save MCP server configurations
|
|
83
|
+
*/
|
|
84
|
+
function saveMCPConfigs(configs, repoRoot) {
|
|
85
|
+
const configDir = getMCPConfigDir(repoRoot);
|
|
86
|
+
const configFile = path.join(configDir, 'servers.json');
|
|
87
|
+
// Ensure directory exists
|
|
88
|
+
if (!fs.existsSync(configDir)) {
|
|
89
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
90
|
+
}
|
|
91
|
+
fs.writeFileSync(configFile, JSON.stringify({ servers: configs }, null, 2), 'utf-8');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Add MCP server configuration
|
|
95
|
+
*/
|
|
96
|
+
function addMCPServer(config, repoRoot) {
|
|
97
|
+
const configs = loadMCPConfigs(repoRoot);
|
|
98
|
+
// Check if server already exists
|
|
99
|
+
const existing = configs.findIndex(c => c.name === config.name);
|
|
100
|
+
if (existing >= 0) {
|
|
101
|
+
configs[existing] = config;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
configs.push(config);
|
|
105
|
+
}
|
|
106
|
+
saveMCPConfigs(configs, repoRoot);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Remove MCP server configuration
|
|
110
|
+
*/
|
|
111
|
+
function removeMCPServer(name, repoRoot) {
|
|
112
|
+
const configs = loadMCPConfigs(repoRoot);
|
|
113
|
+
const filtered = configs.filter(c => c.name !== name);
|
|
114
|
+
if (filtered.length === configs.length) {
|
|
115
|
+
return false; // Server not found
|
|
116
|
+
}
|
|
117
|
+
saveMCPConfigs(filtered, repoRoot);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Execute MCP server command (stdio transport)
|
|
122
|
+
*/
|
|
123
|
+
function executeMCPCommand(serverName, toolName, args, repoRoot) {
|
|
124
|
+
return new Promise((resolve, reject) => {
|
|
125
|
+
const configs = loadMCPConfigs(repoRoot);
|
|
126
|
+
const config = configs.find(c => c.name === serverName);
|
|
127
|
+
if (!config) {
|
|
128
|
+
reject(new Error(`MCP server not found: ${serverName}`));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (config.transport !== 'stdio') {
|
|
132
|
+
reject(new Error(`Only stdio transport is currently supported`));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Spawn the MCP server process
|
|
136
|
+
const child = (0, child_process_1.spawn)(config.command, config.args || [], {
|
|
137
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
138
|
+
env: { ...process.env, ...config.env }
|
|
139
|
+
});
|
|
140
|
+
let stdout = '';
|
|
141
|
+
let stderr = '';
|
|
142
|
+
child.stdout?.on('data', (data) => {
|
|
143
|
+
stdout += data.toString();
|
|
144
|
+
});
|
|
145
|
+
child.stderr?.on('data', (data) => {
|
|
146
|
+
stderr += data.toString();
|
|
147
|
+
});
|
|
148
|
+
child.on('error', (error) => {
|
|
149
|
+
reject(new Error(`Failed to spawn MCP server: ${error.message}`));
|
|
150
|
+
});
|
|
151
|
+
child.on('exit', (code) => {
|
|
152
|
+
if (code !== 0) {
|
|
153
|
+
reject(new Error(`MCP server exited with code ${code}\nStderr: ${stderr}`));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
// Parse JSON-RPC response
|
|
158
|
+
const response = JSON.parse(stdout);
|
|
159
|
+
resolve(response);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
reject(new Error(`Failed to parse MCP response: ${error}\nStdout: ${stdout}`));
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
// Send JSON-RPC request
|
|
166
|
+
const request = {
|
|
167
|
+
jsonrpc: '2.0',
|
|
168
|
+
id: 1,
|
|
169
|
+
method: `tools/${toolName}`,
|
|
170
|
+
params: args
|
|
171
|
+
};
|
|
172
|
+
child.stdin?.write(JSON.stringify(request) + '\n');
|
|
173
|
+
child.stdin?.end();
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Generate CLI wrapper for MCP server
|
|
178
|
+
*
|
|
179
|
+
* This creates a skill file that wraps an MCP server tool as a CLI command.
|
|
180
|
+
*/
|
|
181
|
+
function generateMCPSkillWrapper(serverName, toolName, skillId, category, repoRoot) {
|
|
182
|
+
const configs = loadMCPConfigs(repoRoot);
|
|
183
|
+
const config = configs.find(c => c.name === serverName);
|
|
184
|
+
if (!config) {
|
|
185
|
+
throw new Error(`MCP server not found: ${serverName}`);
|
|
186
|
+
}
|
|
187
|
+
// Generate skill file content
|
|
188
|
+
const skillContent = `---
|
|
189
|
+
id: ${skillId}
|
|
190
|
+
name: ${toolName} (MCP)
|
|
191
|
+
version: 1.0.0
|
|
192
|
+
category: ${category}
|
|
193
|
+
tags: [mcp, ${serverName}, ${toolName}]
|
|
194
|
+
tokenBudget: 1500
|
|
195
|
+
priority: medium
|
|
196
|
+
dependencies: []
|
|
197
|
+
cliCommand: augx mcp exec ${serverName} ${toolName}
|
|
198
|
+
mcpServer: ${serverName}
|
|
199
|
+
autoLoad: false
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
# ${toolName} (MCP Tool)
|
|
203
|
+
|
|
204
|
+
## Purpose
|
|
205
|
+
|
|
206
|
+
This skill wraps the \`${toolName}\` tool from the \`${serverName}\` MCP server.
|
|
207
|
+
|
|
208
|
+
## Usage
|
|
209
|
+
|
|
210
|
+
Execute this skill using the MCP integration:
|
|
211
|
+
|
|
212
|
+
\`\`\`bash
|
|
213
|
+
augx mcp exec ${serverName} ${toolName} --args '{"key": "value"}'
|
|
214
|
+
\`\`\`
|
|
215
|
+
|
|
216
|
+
Or inject into context:
|
|
217
|
+
|
|
218
|
+
\`\`\`bash
|
|
219
|
+
augx skill inject ${skillId}
|
|
220
|
+
\`\`\`
|
|
221
|
+
|
|
222
|
+
## MCP Server Configuration
|
|
223
|
+
|
|
224
|
+
- **Server**: ${serverName}
|
|
225
|
+
- **Transport**: ${config.transport}
|
|
226
|
+
- **Command**: ${config.command}
|
|
227
|
+
|
|
228
|
+
## Notes
|
|
229
|
+
|
|
230
|
+
This is an auto-generated skill wrapper for an MCP server tool.
|
|
231
|
+
The actual tool execution is handled by the MCP integration layer.
|
|
232
|
+
`;
|
|
233
|
+
return skillContent;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Discover available MCP tools from a server
|
|
237
|
+
*
|
|
238
|
+
* Note: This is a simplified version. Full implementation would require
|
|
239
|
+
* proper MCP protocol negotiation and tool discovery.
|
|
240
|
+
*/
|
|
241
|
+
async function discoverMCPTools(serverName, repoRoot) {
|
|
242
|
+
// Placeholder implementation
|
|
243
|
+
// In a full implementation, this would:
|
|
244
|
+
// 1. Connect to the MCP server
|
|
245
|
+
// 2. Send a tools/list request
|
|
246
|
+
// 3. Parse the response
|
|
247
|
+
// 4. Return the list of available tools
|
|
248
|
+
console.warn('MCP tool discovery not yet fully implemented');
|
|
249
|
+
return [];
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Check if mcporter is available
|
|
253
|
+
*/
|
|
254
|
+
function isMCPorterAvailable() {
|
|
255
|
+
try {
|
|
256
|
+
const { execSync } = require('child_process');
|
|
257
|
+
execSync('npx mcporter --version', { stdio: 'ignore' });
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate CLI using mcporter (if available)
|
|
266
|
+
*/
|
|
267
|
+
async function generateCLIWithMCPorter(serverCommand, outputPath) {
|
|
268
|
+
const { spawn } = require('child_process');
|
|
269
|
+
return new Promise((resolve, reject) => {
|
|
270
|
+
const child = spawn('npx', [
|
|
271
|
+
'mcporter',
|
|
272
|
+
'generate-cli',
|
|
273
|
+
'--command',
|
|
274
|
+
serverCommand,
|
|
275
|
+
'--bundle',
|
|
276
|
+
outputPath
|
|
277
|
+
], {
|
|
278
|
+
stdio: 'inherit'
|
|
279
|
+
});
|
|
280
|
+
child.on('error', (error) => {
|
|
281
|
+
reject(new Error(`Failed to run mcporter: ${error.message}`));
|
|
282
|
+
});
|
|
283
|
+
child.on('exit', (code) => {
|
|
284
|
+
if (code !== 0) {
|
|
285
|
+
reject(new Error(`mcporter exited with code ${code}`));
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
resolve();
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=mcp-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-integration.js","sourceRoot":"","sources":["../../src/utils/mcp-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module metadata interface
|
|
3
|
+
*/
|
|
4
|
+
export interface ModuleMetadata {
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
description: string;
|
|
9
|
+
type: 'coding-standards' | 'domain-rules' | 'workflows' | 'examples';
|
|
10
|
+
tags?: string[];
|
|
11
|
+
augment?: {
|
|
12
|
+
characterCount?: number;
|
|
13
|
+
priority?: 'high' | 'medium' | 'low';
|
|
14
|
+
category?: string;
|
|
15
|
+
};
|
|
16
|
+
installation?: 'required' | 'optional';
|
|
17
|
+
dependencies?: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Module structure interface
|
|
21
|
+
*/
|
|
22
|
+
export interface Module {
|
|
23
|
+
metadata: ModuleMetadata;
|
|
24
|
+
path: string;
|
|
25
|
+
fullName: string;
|
|
26
|
+
rules: string[];
|
|
27
|
+
examples: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validation result interface
|
|
31
|
+
*/
|
|
32
|
+
export interface ValidationResult {
|
|
33
|
+
valid: boolean;
|
|
34
|
+
errors: string[];
|
|
35
|
+
warnings: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the modules directory path
|
|
39
|
+
*/
|
|
40
|
+
export declare function getModulesDir(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Validate module.json structure
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateModuleMetadata(metadata: any): ValidationResult;
|
|
45
|
+
/**
|
|
46
|
+
* Validate semantic version format
|
|
47
|
+
* Supports: MAJOR.MINOR.PATCH[-prerelease][+build]
|
|
48
|
+
* Examples: 1.0.0, 1.0.0-alpha, 1.0.0-beta.1, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85
|
|
49
|
+
*/
|
|
50
|
+
export declare function isValidSemanticVersion(version: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Parse semantic version into components
|
|
53
|
+
*/
|
|
54
|
+
export interface SemanticVersion {
|
|
55
|
+
major: number;
|
|
56
|
+
minor: number;
|
|
57
|
+
patch: number;
|
|
58
|
+
prerelease?: string;
|
|
59
|
+
build?: string;
|
|
60
|
+
}
|
|
61
|
+
export declare function parseSemanticVersion(version: string): SemanticVersion | null;
|
|
62
|
+
/**
|
|
63
|
+
* Compare two semantic versions
|
|
64
|
+
* Returns: -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2
|
|
65
|
+
*/
|
|
66
|
+
export declare function compareSemanticVersions(v1: string, v2: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* Check if version satisfies a range (simple implementation)
|
|
69
|
+
* Supports: ^1.0.0 (compatible), ~1.0.0 (patch), >=1.0.0, >1.0.0, <=1.0.0, <1.0.0, 1.0.0 (exact)
|
|
70
|
+
*/
|
|
71
|
+
export declare function satisfiesVersionRange(version: string, range: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Load module from path
|
|
74
|
+
*/
|
|
75
|
+
export declare function loadModule(modulePath: string): Module | null;
|
|
76
|
+
/**
|
|
77
|
+
* Discover all modules in the modules directory
|
|
78
|
+
*/
|
|
79
|
+
export declare function discoverModules(): Module[];
|
|
80
|
+
/**
|
|
81
|
+
* Collection metadata interface
|
|
82
|
+
*/
|
|
83
|
+
export interface CollectionMetadata {
|
|
84
|
+
name: string;
|
|
85
|
+
version: string;
|
|
86
|
+
displayName: string;
|
|
87
|
+
description: string;
|
|
88
|
+
type: 'collection';
|
|
89
|
+
tags?: string[];
|
|
90
|
+
modules: Array<{
|
|
91
|
+
id: string;
|
|
92
|
+
version: string;
|
|
93
|
+
required: boolean;
|
|
94
|
+
}>;
|
|
95
|
+
augment?: {
|
|
96
|
+
priority?: 'high' | 'medium' | 'low';
|
|
97
|
+
category?: string;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Collection structure interface
|
|
102
|
+
*/
|
|
103
|
+
export interface Collection {
|
|
104
|
+
metadata: CollectionMetadata;
|
|
105
|
+
path: string;
|
|
106
|
+
fullName: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Discover all collections in the collections directory
|
|
110
|
+
*/
|
|
111
|
+
export declare function discoverCollections(): Collection[];
|
|
112
|
+
/**
|
|
113
|
+
* Find module by name (supports both "category/module" and "module" formats)
|
|
114
|
+
*/
|
|
115
|
+
export declare function findModule(moduleName: string): Module | null;
|
|
116
|
+
/**
|
|
117
|
+
* Find collection by name (supports both "collections/name" and "name" formats)
|
|
118
|
+
*/
|
|
119
|
+
export declare function findCollection(collectionName: string): Collection | null;
|
|
120
|
+
/**
|
|
121
|
+
* Resolve collection to its constituent modules
|
|
122
|
+
* Returns array of module IDs that are part of the collection
|
|
123
|
+
*/
|
|
124
|
+
export declare function resolveCollection(collection: Collection): string[];
|
|
125
|
+
/**
|
|
126
|
+
* Resolve collection by name to its constituent modules
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveCollectionByName(collectionName: string): string[] | null;
|
|
129
|
+
/**
|
|
130
|
+
* Check if a name refers to a collection
|
|
131
|
+
*/
|
|
132
|
+
export declare function isCollection(name: string): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Check if a name refers to a module
|
|
135
|
+
*/
|
|
136
|
+
export declare function isModule(name: string): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Validate module structure
|
|
139
|
+
*/
|
|
140
|
+
export declare function validateModuleStructure(modulePath: string): ValidationResult;
|
|
141
|
+
/**
|
|
142
|
+
* Validate module category matches directory structure
|
|
143
|
+
*/
|
|
144
|
+
export declare function validateModuleCategory(module: Module): ValidationResult;
|
|
145
|
+
/**
|
|
146
|
+
* Calculate character count for a module
|
|
147
|
+
*/
|
|
148
|
+
export declare function calculateModuleCharacterCount(modulePath: string): number;
|
|
149
|
+
/**
|
|
150
|
+
* Validate module is project-agnostic (no hardcoded paths or URLs)
|
|
151
|
+
*/
|
|
152
|
+
export declare function validateProjectAgnostic(modulePath: string): ValidationResult;
|
|
153
|
+
//# sourceMappingURL=module-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-system.d.ts","sourceRoot":"","sources":["../../src/utils/module-system.ts"],"names":[],"mappings":"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"}
|