@schemyx/mcp 0.1.0 → 0.1.1
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 +76 -2
- package/dist/backend-client.d.ts +1 -17
- package/dist/backend-client.js +15 -91
- package/dist/backend-client.js.map +1 -1
- package/dist/client/backend-client.d.ts +17 -0
- package/dist/client/backend-client.js +97 -0
- package/dist/client/backend-client.js.map +1 -0
- package/dist/client/local-theme-source.d.ts +19 -0
- package/dist/client/local-theme-source.js +737 -0
- package/dist/client/local-theme-source.js.map +1 -0
- package/dist/client/mcp-client.d.ts +15 -0
- package/dist/client/mcp-client.js +46 -0
- package/dist/client/mcp-client.js.map +1 -0
- package/dist/codebase-scanner/backend.d.ts +12 -0
- package/dist/codebase-scanner/backend.js +814 -0
- package/dist/codebase-scanner/backend.js.map +1 -0
- package/dist/codebase-scanner/bundle.d.ts +81 -0
- package/dist/codebase-scanner/bundle.js +2177 -0
- package/dist/codebase-scanner/bundle.js.map +1 -0
- package/dist/codebase-scanner/constants.d.ts +26 -0
- package/dist/codebase-scanner/constants.js +230 -0
- package/dist/codebase-scanner/constants.js.map +1 -0
- package/dist/codebase-scanner/extractors.d.ts +187 -0
- package/dist/codebase-scanner/extractors.js +2600 -0
- package/dist/codebase-scanner/extractors.js.map +1 -0
- package/dist/codebase-scanner/files.d.ts +16 -0
- package/dist/codebase-scanner/files.js +233 -0
- package/dist/codebase-scanner/files.js.map +1 -0
- package/dist/codebase-scanner/index.d.ts +217 -0
- package/dist/codebase-scanner/index.js +387 -0
- package/dist/codebase-scanner/index.js.map +1 -0
- package/dist/codebase-scanner/recipes.d.ts +74 -0
- package/dist/codebase-scanner/recipes.js +585 -0
- package/dist/codebase-scanner/recipes.js.map +1 -0
- package/dist/codebase-scanner/storage.d.ts +19 -0
- package/dist/codebase-scanner/storage.js +103 -0
- package/dist/codebase-scanner/storage.js.map +1 -0
- package/dist/codebase-scanner/types.d.ts +522 -0
- package/dist/codebase-scanner/types.js +3 -0
- package/dist/codebase-scanner/types.js.map +1 -0
- package/dist/codebase-scanner/utils.d.ts +37 -0
- package/dist/codebase-scanner/utils.js +259 -0
- package/dist/codebase-scanner/utils.js.map +1 -0
- package/dist/codebase-scanner.d.ts +1 -0
- package/dist/codebase-scanner.js +18 -0
- package/dist/codebase-scanner.js.map +1 -0
- package/dist/config.d.ts +1 -2
- package/dist/config.js +15 -37
- package/dist/config.js.map +1 -1
- package/dist/local-theme-source.d.ts +1 -0
- package/dist/local-theme-source.js +18 -0
- package/dist/local-theme-source.js.map +1 -0
- package/dist/main.js +3 -3
- package/dist/main.js.map +1 -1
- package/dist/mcp-client.d.ts +1 -0
- package/dist/mcp-client.js +18 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/prompts.d.ts +1 -7
- package/dist/prompts.js +15 -52
- package/dist/prompts.js.map +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.js +163 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/prompts.d.ts +7 -0
- package/dist/server/prompts.js +55 -0
- package/dist/server/prompts.js.map +1 -0
- package/dist/server/tool-definitions.d.ts +22 -0
- package/dist/server/tool-definitions.js +531 -0
- package/dist/server/tool-definitions.js.map +1 -0
- package/dist/server.d.ts +3 -3
- package/dist/server.js +33 -0
- package/dist/server.js.map +1 -1
- package/dist/shared/config.d.ts +2 -0
- package/dist/shared/config.js +54 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/text.d.ts +14 -0
- package/dist/shared/text.js +33 -0
- package/dist/shared/text.js.map +1 -0
- package/dist/shared/types.d.ts +118 -0
- package/dist/shared/types.js +3 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/shared/uri.d.ts +6 -0
- package/dist/shared/uri.js +24 -0
- package/dist/shared/uri.js.map +1 -0
- package/dist/style-recipes.d.ts +1 -0
- package/dist/style-recipes.js +18 -0
- package/dist/style-recipes.js.map +1 -0
- package/dist/text.d.ts +1 -14
- package/dist/text.js +15 -30
- package/dist/text.js.map +1 -1
- package/dist/theme/style-recipes.d.ts +26 -0
- package/dist/theme/style-recipes.js +129 -0
- package/dist/theme/style-recipes.js.map +1 -0
- package/dist/tool-definitions.d.ts +1 -11
- package/dist/tool-definitions.js +15 -127
- package/dist/tool-definitions.js.map +1 -1
- package/dist/types.d.ts +1 -106
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -1
- package/dist/uri.d.ts +1 -6
- package/dist/uri.js +15 -21
- package/dist/uri.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLocalMcpServer = createLocalMcpServer;
|
|
4
|
+
exports.runLocalMcpServer = runLocalMcpServer;
|
|
5
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
6
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
7
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
8
|
+
const codebase_scanner_1 = require("../codebase-scanner");
|
|
9
|
+
const text_1 = require("../shared/text");
|
|
10
|
+
const uri_1 = require("../shared/uri");
|
|
11
|
+
const prompts_1 = require("./prompts");
|
|
12
|
+
const tool_definitions_1 = require("./tool-definitions");
|
|
13
|
+
function createLocalMcpServer(client) {
|
|
14
|
+
const server = new index_js_1.Server({
|
|
15
|
+
name: 'schemyx-mcp',
|
|
16
|
+
version: '0.1.0',
|
|
17
|
+
}, {
|
|
18
|
+
capabilities: {
|
|
19
|
+
resources: { listChanged: true },
|
|
20
|
+
tools: { listChanged: true },
|
|
21
|
+
prompts: { listChanged: true },
|
|
22
|
+
},
|
|
23
|
+
instructions: 'Use Schemyx resources and tools to read approved project configs, Theme Forge artifacts, and implementation guides before generating UI code.',
|
|
24
|
+
});
|
|
25
|
+
server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => ({
|
|
26
|
+
resources: await listResources(client),
|
|
27
|
+
}));
|
|
28
|
+
server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
|
|
29
|
+
const { configId, resourceId } = (0, uri_1.parseLocalResourceUri)(request.params.uri);
|
|
30
|
+
const resource = await client.readResource(configId, resourceId);
|
|
31
|
+
return {
|
|
32
|
+
contents: [
|
|
33
|
+
{
|
|
34
|
+
uri: request.params.uri,
|
|
35
|
+
mimeType: resource.resource.mimeType,
|
|
36
|
+
text: (0, text_1.stringifyMcpContent)(resource.content),
|
|
37
|
+
_meta: {
|
|
38
|
+
backendUri: resource.resource.uri,
|
|
39
|
+
resourceId: resource.resource.id,
|
|
40
|
+
configId,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
47
|
+
tools: tool_definitions_1.localTools,
|
|
48
|
+
}));
|
|
49
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
50
|
+
try {
|
|
51
|
+
return await callLocalTool(client, request.params.name, request.params.arguments ?? {});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
return (0, text_1.errorToolResult)(error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => ({
|
|
58
|
+
prompts: prompts_1.localPrompts,
|
|
59
|
+
}));
|
|
60
|
+
server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => (0, prompts_1.getLocalPrompt)(client, request.params.name, request.params.arguments));
|
|
61
|
+
return server;
|
|
62
|
+
}
|
|
63
|
+
async function runLocalMcpServer(client) {
|
|
64
|
+
const server = createLocalMcpServer(client);
|
|
65
|
+
await server.connect(new stdio_js_1.StdioServerTransport());
|
|
66
|
+
}
|
|
67
|
+
async function listResources(client) {
|
|
68
|
+
const discovered = await client.discoverConfigs();
|
|
69
|
+
return discovered.flatMap(({ config, manifest }) => manifest.resources.map((resource) => toMcpResource(config, resource)));
|
|
70
|
+
}
|
|
71
|
+
function toMcpResource(config, resource) {
|
|
72
|
+
return {
|
|
73
|
+
uri: (0, uri_1.createLocalResourceUri)(config.id, resource.id),
|
|
74
|
+
name: `${config.key}.${resource.id}`,
|
|
75
|
+
title: `${config.name}: ${resource.name}`,
|
|
76
|
+
description: `${resource.description} Config: ${config.name} (${config.key}).`,
|
|
77
|
+
mimeType: resource.mimeType,
|
|
78
|
+
_meta: {
|
|
79
|
+
configId: config.id,
|
|
80
|
+
configKey: config.key,
|
|
81
|
+
resourceId: resource.id,
|
|
82
|
+
backendUri: resource.uri,
|
|
83
|
+
...resource.metadata,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async function callLocalTool(client, name, args) {
|
|
88
|
+
switch (name) {
|
|
89
|
+
case tool_definitions_1.localToolNames.listConfigs:
|
|
90
|
+
return (0, text_1.textToolResult)(await client.listConfigs());
|
|
91
|
+
case tool_definitions_1.localToolNames.getLatestConfig:
|
|
92
|
+
return (0, text_1.textToolResult)(await client.getLatestConfig(await client.resolveConfigId(stringArg(args, 'configId'))));
|
|
93
|
+
case tool_definitions_1.localToolNames.getManifest:
|
|
94
|
+
return (0, text_1.textToolResult)(await client.getManifest(await client.resolveConfigId(stringArg(args, 'configId'))));
|
|
95
|
+
case tool_definitions_1.localToolNames.readResource:
|
|
96
|
+
return (0, text_1.textToolResult)((await client.readResource(requiredStringArg(args, 'configId'), requiredStringArg(args, 'resourceId'))).content);
|
|
97
|
+
case tool_definitions_1.localToolNames.callBackendTool:
|
|
98
|
+
return (0, text_1.textToolResult)(await client.executeTool(requiredStringArg(args, 'configId'), requiredStringArg(args, 'toolName'), recordArg(args, 'arguments')));
|
|
99
|
+
case tool_definitions_1.localToolNames.getThemeFile:
|
|
100
|
+
return (0, text_1.textToolResult)((await client.executeTool(await client.resolveConfigId(stringArg(args, 'configId')), 'theme-forge.get-file', {
|
|
101
|
+
fileName: stringArg(args, 'fileName'),
|
|
102
|
+
fileId: stringArg(args, 'fileId'),
|
|
103
|
+
})).content);
|
|
104
|
+
case tool_definitions_1.localToolNames.listStyleRecipes:
|
|
105
|
+
return (0, text_1.textToolResult)((await client.executeTool(await client.resolveConfigId(stringArg(args, 'configId')), 'theme-forge.list-style-recipes', {
|
|
106
|
+
query: stringArg(args, 'query'),
|
|
107
|
+
group: stringArg(args, 'group'),
|
|
108
|
+
})).content);
|
|
109
|
+
case tool_definitions_1.localToolNames.getStyleRecipe:
|
|
110
|
+
return (0, text_1.textToolResult)((await client.executeTool(await client.resolveConfigId(stringArg(args, 'configId')), 'theme-forge.get-style-recipe', {
|
|
111
|
+
key: requiredStringArg(args, 'key'),
|
|
112
|
+
includeDeps: booleanArg(args, 'includeDeps'),
|
|
113
|
+
})).content);
|
|
114
|
+
case tool_definitions_1.localToolNames.getImplementationGuide:
|
|
115
|
+
return (0, text_1.textToolResult)((await client.executeTool(await client.resolveConfigId(stringArg(args, 'configId')), 'theme-forge.get-implementation-guide', {})).content);
|
|
116
|
+
case tool_definitions_1.localToolNames.scanCodebase:
|
|
117
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.scanLocalCodebase)(args));
|
|
118
|
+
case tool_definitions_1.localToolNames.searchCodebase:
|
|
119
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.searchCodebase)(args));
|
|
120
|
+
case tool_definitions_1.localToolNames.listCodebaseRecipes:
|
|
121
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.listCodebaseRecipes)(args));
|
|
122
|
+
case tool_definitions_1.localToolNames.getCodebaseRecipe:
|
|
123
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.getCodebaseRecipe)(args));
|
|
124
|
+
case tool_definitions_1.localToolNames.getContextPack:
|
|
125
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.getContextPack)(args));
|
|
126
|
+
case tool_definitions_1.localToolNames.getCodebaseGraph:
|
|
127
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.getCodebaseGraph)(args));
|
|
128
|
+
case tool_definitions_1.localToolNames.listReviewItems:
|
|
129
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.listReviewItems)(args));
|
|
130
|
+
case tool_definitions_1.localToolNames.checkContextFreshness:
|
|
131
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.checkContextFreshness)(args));
|
|
132
|
+
case tool_definitions_1.localToolNames.readCodebaseFile:
|
|
133
|
+
return (0, text_1.textToolResult)(await (0, codebase_scanner_1.readCodebaseFile)(args));
|
|
134
|
+
default:
|
|
135
|
+
throw new Error(`Unknown Schemyx local MCP tool: ${name}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function stringArg(args, key) {
|
|
139
|
+
const value = args[key];
|
|
140
|
+
return typeof value === 'string' && value.trim() ? value : undefined;
|
|
141
|
+
}
|
|
142
|
+
function requiredStringArg(args, key) {
|
|
143
|
+
const value = stringArg(args, key);
|
|
144
|
+
if (!value) {
|
|
145
|
+
throw new Error(`Tool argument "${key}" is required.`);
|
|
146
|
+
}
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
function booleanArg(args, key) {
|
|
150
|
+
const value = args[key];
|
|
151
|
+
return typeof value === 'boolean' ? value : undefined;
|
|
152
|
+
}
|
|
153
|
+
function recordArg(args, key) {
|
|
154
|
+
const value = args[key];
|
|
155
|
+
if (!value) {
|
|
156
|
+
return {};
|
|
157
|
+
}
|
|
158
|
+
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
159
|
+
throw new Error(`Tool argument "${key}" must be an object.`);
|
|
160
|
+
}
|
|
161
|
+
return value;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GetPromptResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { SchemyxMcpSource } from '../shared/types';
|
|
3
|
+
export declare const localPromptNames: {
|
|
4
|
+
readonly applyTheme: "schemyx_apply_theme";
|
|
5
|
+
};
|
|
6
|
+
export declare const localPrompts: Prompt[];
|
|
7
|
+
export declare function getLocalPrompt(client: SchemyxMcpSource, name: string, args: Record<string, string> | undefined): Promise<GetPromptResult>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.localPrompts = exports.localPromptNames = void 0;
|
|
4
|
+
exports.getLocalPrompt = getLocalPrompt;
|
|
5
|
+
const text_1 = require("../shared/text");
|
|
6
|
+
exports.localPromptNames = {
|
|
7
|
+
applyTheme: 'schemyx_apply_theme',
|
|
8
|
+
};
|
|
9
|
+
exports.localPrompts = [
|
|
10
|
+
{
|
|
11
|
+
name: exports.localPromptNames.applyTheme,
|
|
12
|
+
title: 'Apply Schemyx Theme',
|
|
13
|
+
description: 'Use the saved Schemyx theme contract before building or restyling UI.',
|
|
14
|
+
arguments: [
|
|
15
|
+
{
|
|
16
|
+
name: 'task',
|
|
17
|
+
description: 'The UI or product workflow to build.',
|
|
18
|
+
required: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'configId',
|
|
22
|
+
description: 'Schemyx config id. Optional when only one config is available.',
|
|
23
|
+
required: false,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
async function getLocalPrompt(client, name, args) {
|
|
29
|
+
if (name !== exports.localPromptNames.applyTheme) {
|
|
30
|
+
throw new Error(`Unknown Schemyx prompt: ${name}`);
|
|
31
|
+
}
|
|
32
|
+
const configId = await client.resolveConfigId(args?.configId);
|
|
33
|
+
const guide = await client.executeTool(configId, 'theme-forge.get-implementation-guide', {});
|
|
34
|
+
const task = args?.task ?? 'Build the requested UI.';
|
|
35
|
+
return {
|
|
36
|
+
description: 'Apply the saved Schemyx theme contract to a codebase.',
|
|
37
|
+
messages: [
|
|
38
|
+
{
|
|
39
|
+
role: 'user',
|
|
40
|
+
content: {
|
|
41
|
+
type: 'text',
|
|
42
|
+
text: [
|
|
43
|
+
`Task: ${task}`,
|
|
44
|
+
'',
|
|
45
|
+
'Use the Schemyx config as source of truth before writing UI code.',
|
|
46
|
+
'Read generated artifacts from this MCP server instead of inventing colors, radius, spacing, shadows, or typography.',
|
|
47
|
+
'',
|
|
48
|
+
(0, text_1.stringifyMcpContent)(guide.content),
|
|
49
|
+
].join('\n'),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/server/prompts.ts"],"names":[],"mappings":";;;AA4BA,wCAgCC;AA3DD,yCAAqD;AAGxC,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,qBAAqB;CACzB,CAAC;AAEE,QAAA,YAAY,GAAa;IACpC;QACE,IAAI,EAAE,wBAAgB,CAAC,UAAU;QACjC,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,uEAAuE;QACpF,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;gBACnD,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,gEAAgE;gBAC7E,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;CACF,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,MAAwB,EACxB,IAAY,EACZ,IAAwC;IAExC,IAAI,IAAI,KAAK,wBAAgB,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,yBAAyB,CAAC;IAErD,OAAO;QACL,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,SAAS,IAAI,EAAE;wBACf,EAAE;wBACF,mEAAmE;wBACnE,qHAAqH;wBACrH,EAAE;wBACF,IAAA,0BAAmB,EAAC,KAAK,CAAC,OAAO,CAAC;qBACnC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
export declare const localToolNames: {
|
|
3
|
+
readonly listConfigs: "schemyx_list_configs";
|
|
4
|
+
readonly getLatestConfig: "schemyx_get_latest_config";
|
|
5
|
+
readonly getManifest: "schemyx_get_manifest";
|
|
6
|
+
readonly readResource: "schemyx_read_resource";
|
|
7
|
+
readonly callBackendTool: "schemyx_call_backend_tool";
|
|
8
|
+
readonly getThemeFile: "schemyx_get_theme_file";
|
|
9
|
+
readonly listStyleRecipes: "schemyx_list_style_recipes";
|
|
10
|
+
readonly getStyleRecipe: "schemyx_get_style_recipe";
|
|
11
|
+
readonly getImplementationGuide: "schemyx_get_implementation_guide";
|
|
12
|
+
readonly scanCodebase: "schemyx_scan_codebase";
|
|
13
|
+
readonly searchCodebase: "schemyx_search_codebase";
|
|
14
|
+
readonly listCodebaseRecipes: "schemyx_list_codebase_recipes";
|
|
15
|
+
readonly getCodebaseRecipe: "schemyx_get_codebase_recipe";
|
|
16
|
+
readonly getContextPack: "schemyx_get_context_pack";
|
|
17
|
+
readonly getCodebaseGraph: "schemyx_get_codebase_graph";
|
|
18
|
+
readonly listReviewItems: "schemyx_list_review_items";
|
|
19
|
+
readonly checkContextFreshness: "schemyx_check_context_freshness";
|
|
20
|
+
readonly readCodebaseFile: "schemyx_read_codebase_file";
|
|
21
|
+
};
|
|
22
|
+
export declare const localTools: Tool[];
|