@decaf-ts/mcp-server 0.0.2 → 0.0.4
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/LICENSE.md +86 -21
- package/README.md +13 -13
- package/dist/mcp-server.cjs +893 -187
- package/dist/mcp-server.esm.cjs +888 -180
- package/lib/McpWrapper.cjs +189 -0
- package/lib/McpWrapper.d.ts +101 -0
- package/lib/bin/cli.cjs +30 -54
- package/lib/bin/cli.d.ts +18 -44
- package/lib/constants.cjs +12 -0
- package/lib/constants.d.ts +8 -0
- package/lib/esm/McpWrapper.d.ts +101 -0
- package/lib/esm/McpWrapper.js +182 -0
- package/lib/esm/bin/cli.d.ts +18 -44
- package/lib/esm/bin/cli.js +28 -55
- package/lib/esm/constants.d.ts +8 -0
- package/lib/esm/constants.js +9 -0
- package/lib/esm/index.d.ts +5 -26
- package/lib/esm/index.js +6 -27
- package/lib/esm/mcp/index.d.ts +1 -0
- package/lib/esm/mcp/index.js +2 -0
- package/lib/esm/metadata.d.ts +9 -0
- package/lib/esm/metadata.js +22 -0
- package/lib/esm/modules/decoration/index.d.ts +0 -0
- package/lib/esm/modules/decoration/index.js +2 -0
- package/lib/esm/modules/mcp/decoration-assist.d.ts +39 -0
- package/lib/esm/modules/mcp/decoration-assist.js +353 -0
- package/lib/esm/modules/mcp/decorator-tools.d.ts +118 -0
- package/lib/esm/modules/mcp/decorator-tools.js +237 -0
- package/lib/esm/modules/mcp/index.d.ts +2 -0
- package/lib/esm/modules/mcp/index.js +3 -0
- package/lib/esm/modules/mcp/mcp-module.d.ts +230 -0
- package/lib/esm/modules/mcp/mcp-module.js +406 -0
- package/lib/esm/types.d.ts +15 -0
- package/lib/esm/types.js +2 -0
- package/lib/esm/utils.d.ts +54 -13
- package/lib/esm/utils.js +78 -15
- package/lib/index.cjs +6 -28
- package/lib/index.d.ts +5 -26
- package/lib/mcp/index.cjs +17 -0
- package/lib/mcp/index.d.ts +1 -0
- package/lib/metadata.cjs +25 -0
- package/lib/metadata.d.ts +9 -0
- package/lib/modules/decoration/index.cjs +2 -0
- package/lib/modules/decoration/index.d.ts +0 -0
- package/lib/modules/mcp/decoration-assist.cjs +360 -0
- package/lib/modules/mcp/decoration-assist.d.ts +39 -0
- package/lib/modules/mcp/decorator-tools.cjs +243 -0
- package/lib/modules/mcp/decorator-tools.d.ts +118 -0
- package/lib/modules/mcp/index.cjs +24 -0
- package/lib/modules/mcp/index.d.ts +2 -0
- package/lib/modules/mcp/mcp-module.cjs +452 -0
- package/lib/modules/mcp/mcp-module.d.ts +230 -0
- package/lib/types.cjs +3 -0
- package/lib/types.d.ts +15 -0
- package/lib/utils.cjs +116 -16
- package/lib/utils.d.ts +54 -13
- package/package.json +35 -7
- package/lib/esm/namespace/Class.d.ts +0 -74
- package/lib/esm/namespace/Class.js +0 -73
- package/lib/esm/namespace/Interface.d.ts +0 -17
- package/lib/esm/namespace/Interface.js +0 -2
- package/lib/esm/namespace/children/ChildClass.d.ts +0 -44
- package/lib/esm/namespace/children/ChildClass.js +0 -43
- package/lib/esm/namespace/children/ChildInterface.d.ts +0 -22
- package/lib/esm/namespace/children/ChildInterface.js +0 -2
- package/lib/esm/namespace/children/Enum.d.ts +0 -14
- package/lib/esm/namespace/children/Enum.js +0 -16
- package/lib/esm/namespace/children/function.d.ts +0 -31
- package/lib/esm/namespace/children/function.js +0 -33
- package/lib/esm/namespace/children/index.d.ts +0 -25
- package/lib/esm/namespace/children/index.js +0 -26
- package/lib/esm/namespace/index.d.ts +0 -18
- package/lib/esm/namespace/index.js +0 -19
- package/lib/esm/namespace/type.d.ts +0 -28
- package/lib/esm/namespace/type.js +0 -2
- package/lib/namespace/Class.cjs +0 -77
- package/lib/namespace/Class.d.ts +0 -74
- package/lib/namespace/Interface.cjs +0 -3
- package/lib/namespace/Interface.d.ts +0 -17
- package/lib/namespace/children/ChildClass.cjs +0 -47
- package/lib/namespace/children/ChildClass.d.ts +0 -44
- package/lib/namespace/children/ChildInterface.cjs +0 -3
- package/lib/namespace/children/ChildInterface.d.ts +0 -22
- package/lib/namespace/children/Enum.cjs +0 -19
- package/lib/namespace/children/Enum.d.ts +0 -14
- package/lib/namespace/children/function.cjs +0 -36
- package/lib/namespace/children/function.d.ts +0 -31
- package/lib/namespace/children/index.cjs +0 -42
- package/lib/namespace/children/index.d.ts +0 -25
- package/lib/namespace/index.cjs +0 -35
- package/lib/namespace/index.d.ts +0 -18
- package/lib/namespace/type.cjs +0 -3
- package/lib/namespace/type.d.ts +0 -28
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/* istanbul ignore file */
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { MCP_FILE_NAME } from "./constants";
|
|
5
|
+
import { McpUtils } from "./utils";
|
|
6
|
+
import { FastMCP } from "fastmcp";
|
|
7
|
+
import { LoggedClass } from "@decaf-ts/logging";
|
|
8
|
+
import { VERSION } from "./metadata";
|
|
9
|
+
/**
|
|
10
|
+
* @description Utility class to handle CLI functionality from all Decaf modules
|
|
11
|
+
* @summary This class provides a wrapper around Commander.js to handle CLI commands from different Decaf modules.
|
|
12
|
+
* It crawls the filesystem to find CLI modules, loads them, and registers their commands.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} [basePath] The base path to look for modules in. Defaults to `./`
|
|
15
|
+
* @param {number} [crawlLevels] Number of folder levels to crawl to find modules from the basePath. Defaults to 4
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Create a new CLI wrapper and run it with custom options
|
|
19
|
+
* const cli = new CliWrapper('./src', 2);
|
|
20
|
+
* cli.run(process.argv).then(() => {
|
|
21
|
+
* console.log('CLI commands executed successfully');
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* @class McpWrapper
|
|
25
|
+
*/
|
|
26
|
+
export class McpWrapper extends LoggedClass {
|
|
27
|
+
constructor(basePath = "./", crawlLevels = 4) {
|
|
28
|
+
super();
|
|
29
|
+
this.basePath = basePath;
|
|
30
|
+
this.crawlLevels = crawlLevels;
|
|
31
|
+
this.modules = {};
|
|
32
|
+
this.rootPath = path.resolve(__dirname, "..");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @description Retrieves and initializes the Commander Command object
|
|
36
|
+
* @summary Lazy-loads the Command object, initializing it with the package name, description, and version
|
|
37
|
+
* @return {Command} The initialized Command object
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
get mcp() {
|
|
41
|
+
if (!this._mcp) {
|
|
42
|
+
this._mcp = new FastMCP({
|
|
43
|
+
name: "decaf-ts MCP server",
|
|
44
|
+
instructions: "",
|
|
45
|
+
version: VERSION,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return this._mcp;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @description Loads and registers an mcp extension module from a file
|
|
52
|
+
* @summary Dynamically imports an mcp extension module from the specified file path, initializes it, and registers it in the modules collection
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
async load(server, filePath) {
|
|
56
|
+
const log = this.log.for(this.load);
|
|
57
|
+
let pkg, version, enrich;
|
|
58
|
+
try {
|
|
59
|
+
const res = await McpUtils.loadFromFile(filePath);
|
|
60
|
+
pkg = res.PACKAGE_NAME;
|
|
61
|
+
version = res.VERSION;
|
|
62
|
+
enrich = res.enrich;
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
throw new Error(e.message || e);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
log.info(`Enriching mcp server with module ${pkg} v${version}`);
|
|
69
|
+
const result = enrich(server);
|
|
70
|
+
server = result instanceof Promise ? await result : result;
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
throw new Error(`failed to enrich mcp with module ${pkg || "unnamed"} under ${filePath}: ${e instanceof Error ? e.message : e}`);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
mcp: server,
|
|
77
|
+
package: pkg,
|
|
78
|
+
version: version,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @description Finds and loads all CLI modules in the basePath
|
|
83
|
+
* @summary Uses the crawl method to find all CLI modules in the specified base path,
|
|
84
|
+
* then loads and registers each module as a subcommand
|
|
85
|
+
*
|
|
86
|
+
* @return {Promise<void>} A promise that resolves when all modules are loaded
|
|
87
|
+
*
|
|
88
|
+
* @private
|
|
89
|
+
* @mermaid
|
|
90
|
+
* sequenceDiagram
|
|
91
|
+
* participant CliWrapper
|
|
92
|
+
* participant Filesystem
|
|
93
|
+
* participant Module
|
|
94
|
+
*
|
|
95
|
+
* CliWrapper->>Filesystem: Join basePath with cwd
|
|
96
|
+
* CliWrapper->>CliWrapper: crawl(basePath, crawlLevels)
|
|
97
|
+
* CliWrapper-->>CliWrapper: modules[]
|
|
98
|
+
* loop For each module
|
|
99
|
+
* alt Not @decaf-ts/cli
|
|
100
|
+
* CliWrapper->>CliWrapper: load(module, cwd)
|
|
101
|
+
* CliWrapper-->>CliWrapper: name
|
|
102
|
+
* CliWrapper->>CliWrapper: Check if command exists
|
|
103
|
+
* alt Command doesn't exist
|
|
104
|
+
* CliWrapper->>Command: command(name).addCommand(modules[name])
|
|
105
|
+
* end
|
|
106
|
+
* end
|
|
107
|
+
* end
|
|
108
|
+
* CliWrapper->>Console: Log loaded modules
|
|
109
|
+
*/
|
|
110
|
+
async boot() {
|
|
111
|
+
const log = this.log.for(this.boot);
|
|
112
|
+
const basePath = path.resolve(this.rootPath, this.basePath);
|
|
113
|
+
const modules = this.crawl(basePath, this.crawlLevels);
|
|
114
|
+
let server = this.mcp;
|
|
115
|
+
for (const module of modules) {
|
|
116
|
+
if (module.includes("@decaf-ts/mcp")) {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const res = await this.load(server, module);
|
|
121
|
+
server = res.mcp;
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
log.error(`Failed to load MCP configs for ${module}: ${e}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
console.log(`loaded modules:\n${Object.keys(this.modules)
|
|
128
|
+
.map((k) => `- ${k}`)
|
|
129
|
+
.join("\n")}`);
|
|
130
|
+
return server;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @description Recursively searches for CLI module files in the directory structure
|
|
134
|
+
* @summary Crawls the basePath up to the specified number of folder levels to find files named according to CLI_FILE_NAME
|
|
135
|
+
*
|
|
136
|
+
* @param {string} basePath The absolute base path to start searching in
|
|
137
|
+
* @param {number} [levels=2] The maximum number of directory levels to crawl
|
|
138
|
+
* @return {string[]} An array of file paths to CLI modules
|
|
139
|
+
*
|
|
140
|
+
* @private
|
|
141
|
+
*/
|
|
142
|
+
crawl(basePath, levels = 2) {
|
|
143
|
+
if (levels <= 0)
|
|
144
|
+
return [];
|
|
145
|
+
return fs.readdirSync(basePath).reduce((accum, file) => {
|
|
146
|
+
file = path.join(basePath, file);
|
|
147
|
+
if (fs.statSync(file).isDirectory()) {
|
|
148
|
+
accum.push(...this.crawl(file, levels - 1));
|
|
149
|
+
}
|
|
150
|
+
else if (file.match(new RegExp(`${MCP_FILE_NAME}.[cm]?js$`, "gm"))) {
|
|
151
|
+
accum.push(file);
|
|
152
|
+
}
|
|
153
|
+
return accum;
|
|
154
|
+
}, []);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* @description Executes the CLI with the provided arguments
|
|
158
|
+
* @summary Boots the CLI by loading all modules, then parses and executes the command specified in the arguments
|
|
159
|
+
*
|
|
160
|
+
* @param {string[]} [args=process.argv] Command line arguments to parse and execute
|
|
161
|
+
* @return {Promise<void>} A promise that resolves when the command execution is complete
|
|
162
|
+
*
|
|
163
|
+
* @mermaid
|
|
164
|
+
* sequenceDiagram
|
|
165
|
+
* participant Client
|
|
166
|
+
* participant CliWrapper
|
|
167
|
+
* participant Command
|
|
168
|
+
*
|
|
169
|
+
* Client->>CliWrapper: run(args)
|
|
170
|
+
* CliWrapper->>CliWrapper: boot()
|
|
171
|
+
* Note over CliWrapper: Loads all modules
|
|
172
|
+
* CliWrapper->>Command: parseAsync(args)
|
|
173
|
+
* Command-->>CliWrapper: result
|
|
174
|
+
* CliWrapper-->>Client: result
|
|
175
|
+
*/
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
177
|
+
async run(args = process.argv) {
|
|
178
|
+
const server = await this.boot();
|
|
179
|
+
await server.start({ transportType: "stdio" });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWNwV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9NY3BXcmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQUMxQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBS3pDLFlBQ1UsV0FBbUIsSUFBSSxFQUN2QixjQUFjLENBQUM7UUFFdkIsS0FBSyxFQUFFLENBQUM7UUFIQSxhQUFRLEdBQVIsUUFBUSxDQUFlO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBTGpCLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBUTNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBWSxHQUFHO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUUsT0FBYzthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxD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QztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBNQ1BfRklMRV9OQU1FIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBNY3BVdGlscyB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBGYXN0TUNQIH0gZnJvbSBcImZhc3RtY3BcIjtcbmltcG9ydCB7IExvZ2dlZENsYXNzIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4vbWV0YWRhdGFcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVXRpbGl0eSBjbGFzcyB0byBoYW5kbGUgQ0xJIGZ1bmN0aW9uYWxpdHkgZnJvbSBhbGwgRGVjYWYgbW9kdWxlc1xuICogQHN1bW1hcnkgVGhpcyBjbGFzcyBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kIENvbW1hbmRlci5qcyB0byBoYW5kbGUgQ0xJIGNvbW1hbmRzIGZyb20gZGlmZmVyZW50IERlY2FmIG1vZHVsZXMuXG4gKiBJdCBjcmF3bHMgdGhlIGZpbGVzeXN0ZW0gdG8gZmluZCBDTEkgbW9kdWxlcywgbG9hZHMgdGhlbSwgYW5kIHJlZ2lzdGVycyB0aGVpciBjb21tYW5kcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Jhc2VQYXRoXSBUaGUgYmFzZSBwYXRoIHRvIGxvb2sgZm9yIG1vZHVsZXMgaW4uIERlZmF1bHRzIHRvIGAuL2BcbiAqIEBwYXJhbSB7bnVtYmVyfSBbY3Jhd2xMZXZlbHNdIE51bWJlciBvZiBmb2xkZXIgbGV2ZWxzIHRvIGNyYXdsIHRvIGZpbmQgbW9kdWxlcyBmcm9tIHRoZSBiYXNlUGF0aC4gRGVmYXVsdHMgdG8gNFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBuZXcgQ0xJIHdyYXBwZXIgYW5kIHJ1biBpdCB3aXRoIGN1c3RvbSBvcHRpb25zXG4gKiBjb25zdCBjbGkgPSBuZXcgQ2xpV3JhcHBlcignLi9zcmMnLCAyKTtcbiAqIGNsaS5ydW4ocHJvY2Vzcy5hcmd2KS50aGVuKCgpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ0NMSSBjb21tYW5kcyBleGVjdXRlZCBzdWNjZXNzZnVsbHknKTtcbiAqIH0pO1xuICpcbiAqIEBjbGFzcyBNY3BXcmFwcGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBNY3BXcmFwcGVyIGV4dGVuZHMgTG9nZ2VkQ2xhc3Mge1xuICBwcml2YXRlIF9tY3A/OiBGYXN0TUNQO1xuICBwcml2YXRlIG1vZHVsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSByb290UGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzZVBhdGg6IHN0cmluZyA9IFwiLi9cIixcbiAgICBwcml2YXRlIGNyYXdsTGV2ZWxzID0gNFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucm9vdFBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi4uXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYW5kIGluaXRpYWxpemVzIHRoZSBDb21tYW5kZXIgQ29tbWFuZCBvYmplY3RcbiAgICogQHN1bW1hcnkgTGF6eS1sb2FkcyB0aGUgQ29tbWFuZCBvYmplY3QsIGluaXRpYWxpemluZyBpdCB3aXRoIHRoZSBwYWNrYWdlIG5hbWUsIGRlc2NyaXB0aW9uLCBhbmQgdmVyc2lvblxuICAgKiBAcmV0dXJuIHtDb21tYW5kfSBUaGUgaW5pdGlhbGl6ZWQgQ29tbWFuZCBvYmplY3RcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0IG1jcCgpIHtcbiAgICBpZiAoIXRoaXMuX21jcCkge1xuICAgICAgdGhpcy5fbWNwID0gbmV3IEZhc3RNQ1Aoe1xuICAgICAgICBuYW1lOiBcImRlY2FmLXRzIE1DUCBzZXJ2ZXJcIixcbiAgICAgICAgaW5zdHJ1Y3Rpb25zOiBcIlwiLFxuICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OIGFzIGFueSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbWNwO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2FkcyBhbmQgcmVnaXN0ZXJzIGFuIG1jcCBleHRlbnNpb24gbW9kdWxlIGZyb20gYSBmaWxlXG4gICAqIEBzdW1tYXJ5IER5bmFtaWNhbGx5IGltcG9ydHMgYW4gbWNwIGV4dGVuc2lvbiBtb2R1bGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUgcGF0aCwgaW5pdGlhbGl6ZXMgaXQsIGFuZCByZWdpc3RlcnMgaXQgaW4gdGhlIG1vZHVsZXMgY29sbGVjdGlvblxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKFxuICAgIHNlcnZlcjogRmFzdE1DUCxcbiAgICBmaWxlUGF0aDogc3RyaW5nXG4gICk6IFByb21pc2U8eyBtY3A6IEZhc3RNQ1A7IHBhY2thZ2U6IHN0cmluZzsgdmVyc2lvbjogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5sb2FkKTtcblxuICAgIGxldCBwa2c6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCBlbnJpY2g6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgTWNwVXRpbHMubG9hZEZyb21GaWxlKGZpbGVQYXRoKTtcbiAgICAgIHBrZyA9IHJlcy5QQUNLQUdFX05BTUU7XG4gICAgICB2ZXJzaW9uID0gcmVzLlZFUlNJT047XG4gICAgICBlbnJpY2ggPSByZXMuZW5yaWNoO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigoZSBhcyBhbnkpLm1lc3NhZ2UgfHwgKGUgYXMgYW55KSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBsb2cuaW5mbyhgRW5yaWNoaW5nIG1jcCBzZXJ2ZXIgd2l0aCBtb2R1bGUgJHtwa2d9IHYke3ZlcnNpb259YCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBlbnJpY2goc2VydmVyKTtcbiAgICAgIHNlcnZlciA9IHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBhd2FpdCByZXN1bHQgOiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmFpbGVkIHRvIGVucmljaCBtY3Agd2l0aCBtb2R1bGUgJHtwa2cgfHwgXCJ1bm5hbWVkXCJ9IHVuZGVyICR7ZmlsZVBhdGh9OiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1jcDogc2VydmVyLFxuICAgICAgcGFja2FnZTogcGtnLFxuICAgICAgdmVyc2lvbjogdmVyc2lvbixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5kcyBhbmQgbG9hZHMgYWxsIENMSSBtb2R1bGVzIGluIHRoZSBiYXNlUGF0aFxuICAgKiBAc3VtbWFyeSBVc2VzIHRoZSBjcmF3bCBtZXRob2QgdG8gZmluZCBhbGwgQ0xJIG1vZHVsZXMgaW4gdGhlIHNwZWNpZmllZCBiYXNlIHBhdGgsXG4gICAqIHRoZW4gbG9hZHMgYW5kIHJlZ2lzdGVycyBlYWNoIG1vZHVsZSBhcyBhIHN1YmNvbW1hbmRcbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgbW9kdWxlcyBhcmUgbG9hZGVkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENsaVdyYXBwZXJcbiAgICogICBwYXJ0aWNpcGFudCBGaWxlc3lzdGVtXG4gICAqICAgcGFydGljaXBhbnQgTW9kdWxlXG4gICAqXG4gICAqICAgQ2xpV3JhcHBlci0+PkZpbGVzeXN0ZW06IEpvaW4gYmFzZVBhdGggd2l0aCBjd2RcbiAgICogICBDbGlXcmFwcGVyLT4+Q2xpV3JhcHBlcjogY3Jhd2woYmFzZVBhdGgsIGNyYXdsTGV2ZWxzKVxuICAgKiAgIENsaVdyYXBwZXItLT4+Q2xpV3JhcHBlcjogbW9kdWxlc1tdXG4gICAqICAgbG9vcCBGb3IgZWFjaCBtb2R1bGVcbiAgICogICAgIGFsdCBOb3QgQGRlY2FmLXRzL2NsaVxuICAgKiAgICAgICBDbGlXcmFwcGVyLT4+Q2xpV3JhcHBlcjogbG9hZChtb2R1bGUsIGN3ZClcbiAgICogICAgICAgQ2xpV3JhcHBlci0tPj5DbGlXcmFwcGVyOiBuYW1lXG4gICAqICAgICAgIENsaVdyYXBwZXItPj5DbGlXcmFwcGVyOiBDaGVjayBpZiBjb21tYW5kIGV4aXN0c1xuICAgKiAgICAgICBhbHQgQ29tbWFuZCBkb2Vzbid0IGV4aXN0XG4gICAqICAgICAgICAgQ2xpV3JhcHBlci0+PkNvbW1hbmQ6IGNvbW1hbmQobmFtZSkuYWRkQ29tbWFuZChtb2R1bGVzW25hbWVdKVxuICAgKiAgICAgICBlbmRcbiAgICogICAgIGVuZFxuICAgKiAgIGVuZFxuICAgKiAgIENsaVdyYXBwZXItPj5Db25zb2xlOiBMb2cgbG9hZGVkIG1vZHVsZXNcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYm9vdCgpIHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5ib290KTtcblxuICAgIGNvbnN0IGJhc2VQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMucm9vdFBhdGgsIHRoaXMuYmFzZVBhdGgpO1xuICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmNyYXdsKGJhc2VQYXRoLCB0aGlzLmNyYXdsTGV2ZWxzKTtcbiAgICBsZXQgc2VydmVyID0gdGhpcy5tY3A7XG4gICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbW9kdWxlcykge1xuICAgICAgaWYgKG1vZHVsZS5pbmNsdWRlcyhcIkBkZWNhZi10cy9tY3BcIikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmxvYWQoc2VydmVyLCBtb2R1bGUpO1xuICAgICAgICBzZXJ2ZXIgPSByZXMubWNwO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB0byBsb2FkIE1DUCBjb25maWdzIGZvciAke21vZHVsZX06ICR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgbG9hZGVkIG1vZHVsZXM6XFxuJHtPYmplY3Qua2V5cyh0aGlzLm1vZHVsZXMpXG4gICAgICAgIC5tYXAoKGspID0+IGAtICR7a31gKVxuICAgICAgICAuam9pbihcIlxcblwiKX1gXG4gICAgKTtcbiAgICByZXR1cm4gc2VydmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWN1cnNpdmVseSBzZWFyY2hlcyBmb3IgQ0xJIG1vZHVsZSBmaWxlcyBpbiB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZVxuICAgKiBAc3VtbWFyeSBDcmF3bHMgdGhlIGJhc2VQYXRoIHVwIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGZvbGRlciBsZXZlbHMgdG8gZmluZCBmaWxlcyBuYW1lZCBhY2NvcmRpbmcgdG8gQ0xJX0ZJTEVfTkFNRVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVBhdGggVGhlIGFic29sdXRlIGJhc2UgcGF0aCB0byBzdGFydCBzZWFyY2hpbmcgaW5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtsZXZlbHM9Ml0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpcmVjdG9yeSBsZXZlbHMgdG8gY3Jhd2xcbiAgICogQHJldHVybiB7c3RyaW5nW119IEFuIGFycmF5IG9mIGZpbGUgcGF0aHMgdG8gQ0xJIG1vZHVsZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY3Jhd2woYmFzZVBhdGg6IHN0cmluZywgbGV2ZWxzOiBudW1iZXIgPSAyKSB7XG4gICAgaWYgKGxldmVscyA8PSAwKSByZXR1cm4gW107XG4gICAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKGJhc2VQYXRoKS5yZWR1Y2UoKGFjY3VtOiBzdHJpbmdbXSwgZmlsZSkgPT4ge1xuICAgICAgZmlsZSA9IHBhdGguam9pbihiYXNlUGF0aCwgZmlsZSk7XG4gICAgICBpZiAoZnMuc3RhdFN5bmMoZmlsZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBhY2N1bS5wdXNoKC4uLnRoaXMuY3Jhd2woZmlsZSwgbGV2ZWxzIC0gMSkpO1xuICAgICAgfSBlbHNlIGlmIChmaWxlLm1hdGNoKG5ldyBSZWdFeHAoYCR7TUNQX0ZJTEVfTkFNRX0uW2NtXT9qcyRgLCBcImdtXCIpKSkge1xuICAgICAgICBhY2N1bS5wdXNoKGZpbGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgdGhlIENMSSB3aXRoIHRoZSBwcm92aWRlZCBhcmd1bWVudHNcbiAgICogQHN1bW1hcnkgQm9vdHMgdGhlIENMSSBieSBsb2FkaW5nIGFsbCBtb2R1bGVzLCB0aGVuIHBhcnNlcyBhbmQgZXhlY3V0ZXMgdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVudHNcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2FyZ3M9cHJvY2Vzcy5hcmd2XSBDb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHBhcnNlIGFuZCBleGVjdXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbW1hbmQgZXhlY3V0aW9uIGlzIGNvbXBsZXRlXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICAgKiAgIHBhcnRpY2lwYW50IENsaVdyYXBwZXJcbiAgICogICBwYXJ0aWNpcGFudCBDb21tYW5kXG4gICAqXG4gICAqICAgQ2xpZW50LT4+Q2xpV3JhcHBlcjogcnVuKGFyZ3MpXG4gICAqICAgQ2xpV3JhcHBlci0+PkNsaVdyYXBwZXI6IGJvb3QoKVxuICAgKiAgIE5vdGUgb3ZlciBDbGlXcmFwcGVyOiBMb2FkcyBhbGwgbW9kdWxlc1xuICAgKiAgIENsaVdyYXBwZXItPj5Db21tYW5kOiBwYXJzZUFzeW5jKGFyZ3MpXG4gICAqICAgQ29tbWFuZC0tPj5DbGlXcmFwcGVyOiByZXN1bHRcbiAgICogICBDbGlXcmFwcGVyLS0+PkNsaWVudDogcmVzdWx0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGFzeW5jIHJ1bihhcmdzOiBzdHJpbmdbXSA9IHByb2Nlc3MuYXJndikge1xuICAgIGNvbnN0IHNlcnZlciA9IGF3YWl0IHRoaXMuYm9vdCgpO1xuICAgIGF3YWl0IHNlcnZlci5zdGFydCh7IHRyYW5zcG9ydFR5cGU6IFwic3RkaW9cIiB9KTtcbiAgfVxufVxuIl19
|
package/lib/esm/bin/cli.d.ts
CHANGED
|
@@ -1,51 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* BIN_CALL_PLACEHOLDER - DO NOT REMOVE
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @description Decaf-ts' CLI entry point
|
|
6
|
+
* @summary This file serves as the main executable entry point for the Decaf CLI. It creates a CliWrapper instance
|
|
7
|
+
* and runs it with the process arguments. The CLI will crawl the current working directory for files called
|
|
8
|
+
* MCP_FILE_NAME within the @decaf-ts namespace and load them as subcommands.
|
|
8
9
|
*
|
|
9
10
|
* @example
|
|
10
|
-
* // Run
|
|
11
|
-
*
|
|
11
|
+
* // Run a module command
|
|
12
|
+
* $ npx decaf <module name> <module command> ...<module command options>
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* participant User
|
|
16
|
-
* participant CLI
|
|
17
|
-
* participant Timer
|
|
18
|
-
* User->>CLI: Run script
|
|
19
|
-
* CLI->>User: Display initial message
|
|
20
|
-
* CLI->>Timer: Start countdown
|
|
21
|
-
* loop Every second
|
|
22
|
-
* Timer->>CLI: Decrement counter
|
|
23
|
-
* CLI->>User: Display current count
|
|
24
|
-
* end
|
|
25
|
-
* Timer->>CLI: Counter reaches 0
|
|
26
|
-
* CLI->>User: Exit process
|
|
14
|
+
* // Get help for a specific module
|
|
15
|
+
* $ npx decaf help <module name>
|
|
27
16
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* @const counter
|
|
34
|
-
* @name counter
|
|
35
|
-
* @description The countdown timer, initialized to 60 seconds.
|
|
36
|
-
* @summary Used to track the remaining time in the countdown.
|
|
37
|
-
* @type {number}
|
|
38
|
-
* @memberOf module:ts-workspace.cli
|
|
39
|
-
*/
|
|
40
|
-
declare let counter: number;
|
|
41
|
-
/**
|
|
42
|
-
* @function iterator
|
|
43
|
-
* @description A recursive function that manages the countdown timer.
|
|
44
|
-
* @summary It uses setTimeout to create a delay of 1 second between each count.
|
|
45
|
-
* The function decrements the counter, logs the current count, and calls itself
|
|
46
|
-
* until the counter reaches 0. When the counter reaches 0, the process exits.
|
|
17
|
+
* // List all imported modules
|
|
18
|
+
* $ npx decaf list
|
|
19
|
+
*
|
|
20
|
+
* // Get general CLI help
|
|
21
|
+
* $ npx decaf help
|
|
47
22
|
*
|
|
48
|
-
* @
|
|
49
|
-
* @memberOf module:ts-workspace.cli
|
|
23
|
+
* @memberOf module:MCP
|
|
50
24
|
*/
|
|
51
|
-
|
|
25
|
+
export {};
|
package/lib/esm/bin/cli.js
CHANGED
|
@@ -1,62 +1,35 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
2
|
+
* BIN_CALL_PLACEHOLDER - DO NOT REMOVE
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @description Decaf-ts' CLI entry point
|
|
6
|
+
* @summary This file serves as the main executable entry point for the Decaf CLI. It creates a CliWrapper instance
|
|
7
|
+
* and runs it with the process arguments. The CLI will crawl the current working directory for files called
|
|
8
|
+
* MCP_FILE_NAME within the @decaf-ts namespace and load them as subcommands.
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
|
-
* // Run
|
|
12
|
-
*
|
|
11
|
+
* // Run a module command
|
|
12
|
+
* $ npx decaf <module name> <module command> ...<module command options>
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* participant User
|
|
17
|
-
* participant CLI
|
|
18
|
-
* participant Timer
|
|
19
|
-
* User->>CLI: Run script
|
|
20
|
-
* CLI->>User: Display initial message
|
|
21
|
-
* CLI->>Timer: Start countdown
|
|
22
|
-
* loop Every second
|
|
23
|
-
* Timer->>CLI: Decrement counter
|
|
24
|
-
* CLI->>User: Display current count
|
|
25
|
-
* end
|
|
26
|
-
* Timer->>CLI: Counter reaches 0
|
|
27
|
-
* CLI->>User: Exit process
|
|
14
|
+
* // Get help for a specific module
|
|
15
|
+
* $ npx decaf help <module name>
|
|
28
16
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* @const counter
|
|
35
|
-
* @name counter
|
|
36
|
-
* @description The countdown timer, initialized to 60 seconds.
|
|
37
|
-
* @summary Used to track the remaining time in the countdown.
|
|
38
|
-
* @type {number}
|
|
39
|
-
* @memberOf module:ts-workspace.cli
|
|
40
|
-
*/
|
|
41
|
-
let counter = 60;
|
|
42
|
-
console.log(`This is a poor example of a cli. will stop in ${60} seconds`);
|
|
43
|
-
/**
|
|
44
|
-
* @function iterator
|
|
45
|
-
* @description A recursive function that manages the countdown timer.
|
|
46
|
-
* @summary It uses setTimeout to create a delay of 1 second between each count.
|
|
47
|
-
* The function decrements the counter, logs the current count, and calls itself
|
|
48
|
-
* until the counter reaches 0. When the counter reaches 0, the process exits.
|
|
17
|
+
* // List all imported modules
|
|
18
|
+
* $ npx decaf list
|
|
19
|
+
*
|
|
20
|
+
* // Get general CLI help
|
|
21
|
+
* $ npx decaf help
|
|
49
22
|
*
|
|
50
|
-
* @
|
|
51
|
-
* @memberOf module:ts-workspace.cli
|
|
23
|
+
* @memberOf module:MCP
|
|
52
24
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
25
|
+
import { McpWrapper } from "../McpWrapper";
|
|
26
|
+
new McpWrapper()
|
|
27
|
+
.run(process.argv)
|
|
28
|
+
.then(() => {
|
|
29
|
+
console.log("Thank you for using decaf-ts' mcp server");
|
|
30
|
+
})
|
|
31
|
+
.catch((e) => {
|
|
32
|
+
console.error(`${e instanceof Error ? e.message : e}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLElBQUksVUFBVSxFQUFFO0tBQ2IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDakIsSUFBSSxDQUFDLEdBQUcsRUFBRTtJQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7S0FDRCxLQUFLLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtJQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCSU5fQ0FMTF9QTEFDRUhPTERFUiAtIERPIE5PVCBSRU1PVkVcbiAqL1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjYWYtdHMnIENMSSBlbnRyeSBwb2ludFxuICogQHN1bW1hcnkgVGhpcyBmaWxlIHNlcnZlcyBhcyB0aGUgbWFpbiBleGVjdXRhYmxlIGVudHJ5IHBvaW50IGZvciB0aGUgRGVjYWYgQ0xJLiBJdCBjcmVhdGVzIGEgQ2xpV3JhcHBlciBpbnN0YW5jZVxuICogYW5kIHJ1bnMgaXQgd2l0aCB0aGUgcHJvY2VzcyBhcmd1bWVudHMuIFRoZSBDTEkgd2lsbCBjcmF3bCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBmb3IgZmlsZXMgY2FsbGVkXG4gKiBNQ1BfRklMRV9OQU1FIHdpdGhpbiB0aGUgQGRlY2FmLXRzIG5hbWVzcGFjZSBhbmQgbG9hZCB0aGVtIGFzIHN1YmNvbW1hbmRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSdW4gYSBtb2R1bGUgY29tbWFuZFxuICogJCBucHggZGVjYWYgPG1vZHVsZSBuYW1lPiA8bW9kdWxlIGNvbW1hbmQ+IC4uLjxtb2R1bGUgY29tbWFuZCBvcHRpb25zPlxuICpcbiAqIC8vIEdldCBoZWxwIGZvciBhIHNwZWNpZmljIG1vZHVsZVxuICogJCBucHggZGVjYWYgaGVscCA8bW9kdWxlIG5hbWU+XG4gKlxuICogLy8gTGlzdCBhbGwgaW1wb3J0ZWQgbW9kdWxlc1xuICogJCBucHggZGVjYWYgbGlzdFxuICpcbiAqIC8vIEdldCBnZW5lcmFsIENMSSBoZWxwXG4gKiAkIG5weCBkZWNhZiBoZWxwXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpNQ1BcbiAqL1xuXG5pbXBvcnQgeyBNY3BXcmFwcGVyIH0gZnJvbSBcIi4uL01jcFdyYXBwZXJcIjtcbm5ldyBNY3BXcmFwcGVyKClcbiAgLnJ1bihwcm9jZXNzLmFyZ3YpXG4gIC50aGVuKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhcIlRoYW5rIHlvdSBmb3IgdXNpbmcgZGVjYWYtdHMnIG1jcCBzZXJ2ZXJcIik7XG4gIH0pXG4gIC5jYXRjaCgoZTogdW5rbm93bikgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoYCR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH0pO1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The filename that identifies Decaf CLI modules
|
|
3
|
+
* @summary The standard filename for CLI module files where each library must export a single CliModule function
|
|
4
|
+
*
|
|
5
|
+
* @const MCP_FILE_NAME
|
|
6
|
+
* @memberOf module:MCP
|
|
7
|
+
*/
|
|
8
|
+
export declare const MCP_FILE_NAME = "mcp-module";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description The filename that identifies Decaf CLI modules
|
|
3
|
+
* @summary The standard filename for CLI module files where each library must export a single CliModule function
|
|
4
|
+
*
|
|
5
|
+
* @const MCP_FILE_NAME
|
|
6
|
+
* @memberOf module:MCP
|
|
7
|
+
*/
|
|
8
|
+
export const MCP_FILE_NAME = "mcp-module";
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIGZpbGVuYW1lIHRoYXQgaWRlbnRpZmllcyBEZWNhZiBDTEkgbW9kdWxlc1xuICogQHN1bW1hcnkgVGhlIHN0YW5kYXJkIGZpbGVuYW1lIGZvciBDTEkgbW9kdWxlIGZpbGVzIHdoZXJlIGVhY2ggbGlicmFyeSBtdXN0IGV4cG9ydCBhIHNpbmdsZSBDbGlNb2R1bGUgZnVuY3Rpb25cbiAqXG4gKiBAY29uc3QgTUNQX0ZJTEVfTkFNRVxuICogQG1lbWJlck9mIG1vZHVsZTpNQ1BcbiAqL1xuZXhwb3J0IGNvbnN0IE1DUF9GSUxFX05BTUUgPSBcIm1jcC1tb2R1bGVcIjtcbiJdfQ==
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,31 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module
|
|
2
|
+
* @module MCP
|
|
3
3
|
* @description This module serves as the main entry point for the ts-workspace library.
|
|
4
4
|
* @summary Aggregates and exports functionality from various submodules and utilities within the project.
|
|
5
|
-
*
|
|
6
|
-
* The module includes:
|
|
7
|
-
* 1. Utility functions and types from the "./utils" directory:
|
|
8
|
-
* - These likely contain helper functions, common types, and shared functionality used throughout the project.
|
|
9
|
-
* - May include operations for data manipulation, type checking, or other general-purpose utilities.
|
|
10
|
-
*
|
|
11
|
-
* 2. A namespace and related types from the "./namespace" directory:
|
|
12
|
-
* - This could contain domain-specific code or a collection of related functionality.
|
|
13
|
-
* - Might include interfaces, types, or classes that represent core concepts in the library.
|
|
14
|
-
*
|
|
15
|
-
* 3. A VERSION constant:
|
|
16
|
-
* - Represents the current version of the module.
|
|
17
|
-
* - Useful for version checking and compatibility purposes.
|
|
18
|
-
*
|
|
19
|
-
* This structure provides a clean and organized export of the module's functionality, allowing consumers
|
|
20
|
-
* to easily import and use specific parts of the library as needed.
|
|
21
5
|
*/
|
|
6
|
+
export * from "./mcp";
|
|
7
|
+
export * from "./constants";
|
|
8
|
+
export * from "./McpWrapper";
|
|
9
|
+
export * from "./types";
|
|
22
10
|
export * from "./utils";
|
|
23
|
-
export * from "./namespace";
|
|
24
|
-
/**
|
|
25
|
-
* @const VERSION
|
|
26
|
-
* @name VERSION
|
|
27
|
-
* @description Represents the current version of the ts-workspace module.
|
|
28
|
-
* @summary The actual version number is replaced during the build process.
|
|
29
|
-
* @type {string}
|
|
30
|
-
*/
|
|
31
|
-
export declare const VERSION = "0.0.2";
|
package/lib/esm/index.js
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module
|
|
2
|
+
* @module MCP
|
|
3
3
|
* @description This module serves as the main entry point for the ts-workspace library.
|
|
4
4
|
* @summary Aggregates and exports functionality from various submodules and utilities within the project.
|
|
5
|
-
*
|
|
6
|
-
* The module includes:
|
|
7
|
-
* 1. Utility functions and types from the "./utils" directory:
|
|
8
|
-
* - These likely contain helper functions, common types, and shared functionality used throughout the project.
|
|
9
|
-
* - May include operations for data manipulation, type checking, or other general-purpose utilities.
|
|
10
|
-
*
|
|
11
|
-
* 2. A namespace and related types from the "./namespace" directory:
|
|
12
|
-
* - This could contain domain-specific code or a collection of related functionality.
|
|
13
|
-
* - Might include interfaces, types, or classes that represent core concepts in the library.
|
|
14
|
-
*
|
|
15
|
-
* 3. A VERSION constant:
|
|
16
|
-
* - Represents the current version of the module.
|
|
17
|
-
* - Useful for version checking and compatibility purposes.
|
|
18
|
-
*
|
|
19
|
-
* This structure provides a clean and organized export of the module's functionality, allowing consumers
|
|
20
|
-
* to easily import and use specific parts of the library as needed.
|
|
21
5
|
*/
|
|
6
|
+
export * from "./mcp";
|
|
7
|
+
export * from "./constants";
|
|
8
|
+
export * from "./McpWrapper";
|
|
9
|
+
export * from "./types";
|
|
22
10
|
export * from "./utils";
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @const VERSION
|
|
26
|
-
* @name VERSION
|
|
27
|
-
* @description Represents the current version of the ts-workspace module.
|
|
28
|
-
* @summary The actual version number is replaced during the build process.
|
|
29
|
-
* @type {string}
|
|
30
|
-
*/
|
|
31
|
-
export const VERSION = "0.0.2";
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFFNUI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSB0cy13b3Jrc3BhY2VcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIG1vZHVsZSBzZXJ2ZXMgYXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoZSB0cy13b3Jrc3BhY2UgbGlicmFyeS5cbiAqIEBzdW1tYXJ5IEFnZ3JlZ2F0ZXMgYW5kIGV4cG9ydHMgZnVuY3Rpb25hbGl0eSBmcm9tIHZhcmlvdXMgc3VibW9kdWxlcyBhbmQgdXRpbGl0aWVzIHdpdGhpbiB0aGUgcHJvamVjdC5cbiAqIFxuICogVGhlIG1vZHVsZSBpbmNsdWRlczpcbiAqIDEuIFV0aWxpdHkgZnVuY3Rpb25zIGFuZCB0eXBlcyBmcm9tIHRoZSBcIi4vdXRpbHNcIiBkaXJlY3Rvcnk6XG4gKiAgICAtIFRoZXNlIGxpa2VseSBjb250YWluIGhlbHBlciBmdW5jdGlvbnMsIGNvbW1vbiB0eXBlcywgYW5kIHNoYXJlZCBmdW5jdGlvbmFsaXR5IHVzZWQgdGhyb3VnaG91dCB0aGUgcHJvamVjdC5cbiAqICAgIC0gTWF5IGluY2x1ZGUgb3BlcmF0aW9ucyBmb3IgZGF0YSBtYW5pcHVsYXRpb24sIHR5cGUgY2hlY2tpbmcsIG9yIG90aGVyIGdlbmVyYWwtcHVycG9zZSB1dGlsaXRpZXMuXG4gKiBcbiAqIDIuIEEgbmFtZXNwYWNlIGFuZCByZWxhdGVkIHR5cGVzIGZyb20gdGhlIFwiLi9uYW1lc3BhY2VcIiBkaXJlY3Rvcnk6XG4gKiAgICAtIFRoaXMgY291bGQgY29udGFpbiBkb21haW4tc3BlY2lmaWMgY29kZSBvciBhIGNvbGxlY3Rpb24gb2YgcmVsYXRlZCBmdW5jdGlvbmFsaXR5LlxuICogICAgLSBNaWdodCBpbmNsdWRlIGludGVyZmFjZXMsIHR5cGVzLCBvciBjbGFzc2VzIHRoYXQgcmVwcmVzZW50IGNvcmUgY29uY2VwdHMgaW4gdGhlIGxpYnJhcnkuXG4gKiBcbiAqIDMuIEEgVkVSU0lPTiBjb25zdGFudDpcbiAqICAgIC0gUmVwcmVzZW50cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUuXG4gKiAgICAtIFVzZWZ1bCBmb3IgdmVyc2lvbiBjaGVja2luZyBhbmQgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbiAqIFxuICogVGhpcyBzdHJ1Y3R1cmUgcHJvdmlkZXMgYSBjbGVhbiBhbmQgb3JnYW5pemVkIGV4cG9ydCBvZiB0aGUgbW9kdWxlJ3MgZnVuY3Rpb25hbGl0eSwgYWxsb3dpbmcgY29uc3VtZXJzXG4gKiB0byBlYXNpbHkgaW1wb3J0IGFuZCB1c2Ugc3BlY2lmaWMgcGFydHMgb2YgdGhlIGxpYnJhcnkgYXMgbmVlZGVkLlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9uYW1lc3BhY2VcIjtcblxuLyoqXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG5hbWUgVkVSU0lPTlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgdHMtd29ya3NwYWNlIG1vZHVsZS5cbiAqIEBzdW1tYXJ5IFRoZSBhY3R1YWwgdmVyc2lvbiBudW1iZXIgaXMgcmVwbGFjZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLlxuICogQHR5cGUge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXX0=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIE1DUFxuICogQGRlc2NyaXB0aW9uIFRoaXMgbW9kdWxlIHNlcnZlcyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIHRzLXdvcmtzcGFjZSBsaWJyYXJ5LlxuICogQHN1bW1hcnkgQWdncmVnYXRlcyBhbmQgZXhwb3J0cyBmdW5jdGlvbmFsaXR5IGZyb20gdmFyaW91cyBzdWJtb2R1bGVzIGFuZCB1dGlsaXRpZXMgd2l0aGluIHRoZSBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL21jcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9NY3BXcmFwcGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default, enrich, tools, setWorkspaceRoot, getWorkspaceRoot, buildResourceTemplates, buildDocPrompts, PACKAGE_NAME, VERSION } from "../modules/mcp";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { default, enrich, tools, setWorkspaceRoot, getWorkspaceRoot, buildResourceTemplates, buildDocPrompts, PACKAGE_NAME, VERSION } from "../modules/mcp";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWNwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCwgZW5yaWNoLCB0b29scywgc2V0V29ya3NwYWNlUm9vdCwgZ2V0V29ya3NwYWNlUm9vdCwgYnVpbGRSZXNvdXJjZVRlbXBsYXRlcywgYnVpbGREb2NQcm9tcHRzLCBQQUNLQUdFX05BTUUsIFZFUlNJT04gfSBmcm9tIFwiLi4vbW9kdWxlcy9tY3BcIjtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @const VERSION
|
|
3
|
+
* @name VERSION
|
|
4
|
+
* @description Represents the current version of the ts-workspace module.
|
|
5
|
+
* @summary The actual version number is replaced during the build process.
|
|
6
|
+
* @type {string}
|
|
7
|
+
*/
|
|
8
|
+
export declare const VERSION = "0.0.3";
|
|
9
|
+
export declare const PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
2
|
+
/**
|
|
3
|
+
* @const VERSION
|
|
4
|
+
* @name VERSION
|
|
5
|
+
* @description Represents the current version of the ts-workspace module.
|
|
6
|
+
* @summary The actual version number is replaced during the build process.
|
|
7
|
+
* @type {string}
|
|
8
|
+
*/
|
|
9
|
+
export const VERSION = "0.0.3";
|
|
10
|
+
export const PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
11
|
+
try {
|
|
12
|
+
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error instanceof Error && error.message.includes("already")) {
|
|
16
|
+
// Ignore duplicate registration during tests/bundling checks.
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDO0FBRS9DLElBQUksQ0FBQztJQUNILFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2YsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDaEUsOERBQThEO0lBQ2hFLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBuYW1lIFZFUlNJT05cbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIHRzLXdvcmtzcGFjZSBtb2R1bGUuXG4gKiBAc3VtbWFyeSBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVyIGlzIHJlcGxhY2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFwiIyNQQUNLQUdFX05BTUUjI1wiO1xuXG50cnkge1xuICBNZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoUEFDS0FHRV9OQU1FLCBWRVJTSU9OKTtcbn0gY2F0Y2ggKGVycm9yKSB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5XCIpKSB7XG4gICAgLy8gSWdub3JlIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gZHVyaW5nIHRlc3RzL2J1bmRsaW5nIGNoZWNrcy5cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl19
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { FastMCP } from "fastmcp";
|
|
3
|
+
declare const analyzeRepoSchema: z.ZodObject<{
|
|
4
|
+
repoPath: z.ZodString;
|
|
5
|
+
includeTests: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
includeDocs: z.ZodDefault<z.ZodBoolean>;
|
|
7
|
+
}, "strict", z.ZodTypeAny, {
|
|
8
|
+
repoPath: string;
|
|
9
|
+
includeTests: boolean;
|
|
10
|
+
includeDocs: boolean;
|
|
11
|
+
}, {
|
|
12
|
+
repoPath: string;
|
|
13
|
+
includeTests?: boolean | undefined;
|
|
14
|
+
includeDocs?: boolean | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
declare const enumerateCapabilitiesSchema: z.ZodObject<{
|
|
17
|
+
repoPath: z.ZodString;
|
|
18
|
+
}, "strict", z.ZodTypeAny, {
|
|
19
|
+
repoPath: string;
|
|
20
|
+
}, {
|
|
21
|
+
repoPath: string;
|
|
22
|
+
}>;
|
|
23
|
+
declare const planFeatureSchema: z.ZodObject<{
|
|
24
|
+
feature: z.ZodString;
|
|
25
|
+
repoPath: z.ZodDefault<z.ZodString>;
|
|
26
|
+
}, "strict", z.ZodTypeAny, {
|
|
27
|
+
repoPath: string;
|
|
28
|
+
feature: string;
|
|
29
|
+
}, {
|
|
30
|
+
feature: string;
|
|
31
|
+
repoPath?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
export type AnalyzeRepoArgs = z.infer<typeof analyzeRepoSchema>;
|
|
34
|
+
export type EnumerateCapabilitiesArgs = z.infer<typeof enumerateCapabilitiesSchema>;
|
|
35
|
+
export type PlanFeatureArgs = z.infer<typeof planFeatureSchema>;
|
|
36
|
+
export default function enrich(mcp: FastMCP): FastMCP<Record<string, unknown> | undefined>;
|
|
37
|
+
export declare const VERSION = "0.0.3";
|
|
38
|
+
export declare const PACKAGE_NAME = "##PACKAGE_NAME##/decoration-assist";
|
|
39
|
+
export {};
|