marhup 0.1.8 → 0.1.9
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 +419 -2
- package/dist/cli.js +659 -78
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +29 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/errors.js.map +1 -0
- package/dist/generator/code.d.ts +4 -3
- package/dist/generator/code.d.ts.map +1 -1
- package/dist/generator/code.js +7 -7
- package/dist/generator/code.js.map +1 -1
- package/dist/generator/gen-animations.d.ts +13 -0
- package/dist/generator/gen-animations.d.ts.map +1 -0
- package/dist/generator/gen-animations.js +77 -0
- package/dist/generator/gen-animations.js.map +1 -0
- package/dist/generator/image.d.ts +4 -3
- package/dist/generator/image.d.ts.map +1 -1
- package/dist/generator/image.js +67 -80
- package/dist/generator/image.js.map +1 -1
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +9 -18
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/list.d.ts +4 -3
- package/dist/generator/list.d.ts.map +1 -1
- package/dist/generator/list.js +15 -17
- package/dist/generator/list.js.map +1 -1
- package/dist/generator/mermaid.d.ts +9 -4
- package/dist/generator/mermaid.d.ts.map +1 -1
- package/dist/generator/mermaid.js +120 -85
- package/dist/generator/mermaid.js.map +1 -1
- package/dist/generator/pptx.d.ts +1 -1
- package/dist/generator/pptx.d.ts.map +1 -1
- package/dist/generator/pptx.js +232 -60
- package/dist/generator/pptx.js.map +1 -1
- package/dist/generator/presentation.d.ts +149 -0
- package/dist/generator/presentation.d.ts.map +1 -0
- package/dist/generator/presentation.js +163 -0
- package/dist/generator/presentation.js.map +1 -0
- package/dist/generator/table.d.ts +4 -3
- package/dist/generator/table.d.ts.map +1 -1
- package/dist/generator/table.js +12 -33
- package/dist/generator/table.js.map +1 -1
- package/dist/generator/text.d.ts +5 -4
- package/dist/generator/text.d.ts.map +1 -1
- package/dist/generator/text.js +34 -20
- package/dist/generator/text.js.map +1 -1
- package/dist/generator/video.d.ts +18 -0
- package/dist/generator/video.d.ts.map +1 -0
- package/dist/generator/video.js +83 -0
- package/dist/generator/video.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +144 -55
- package/dist/index.js.map +1 -1
- package/dist/layout/auto.d.ts +14 -2
- package/dist/layout/auto.d.ts.map +1 -1
- package/dist/layout/auto.js +129 -37
- package/dist/layout/auto.js.map +1 -1
- package/dist/layout/engine.d.ts +1 -1
- package/dist/layout/engine.d.ts.map +1 -1
- package/dist/layout/engine.js +10 -12
- package/dist/layout/engine.js.map +1 -1
- package/dist/layout/index.d.ts +1 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +2 -10
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/types.d.ts +1 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +1 -2
- package/dist/layout/types.js.map +1 -1
- package/dist/mcp-handlers.d.ts.map +1 -1
- package/dist/mcp-handlers.js +15 -51
- package/dist/mcp-handlers.js.map +1 -1
- package/dist/mcp.js +10 -12
- package/dist/mcp.js.map +1 -1
- package/dist/parser/frontmatter.d.ts.map +1 -1
- package/dist/parser/frontmatter.js +95 -16
- package/dist/parser/frontmatter.js.map +1 -1
- package/dist/parser/grid.d.ts +5 -7
- package/dist/parser/grid.d.ts.map +1 -1
- package/dist/parser/grid.js +190 -19
- package/dist/parser/grid.js.map +1 -1
- package/dist/parser/index.js +3 -13
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/markdown.d.ts +1 -1
- package/dist/parser/markdown.d.ts.map +1 -1
- package/dist/parser/markdown.js +247 -137
- package/dist/parser/markdown.js.map +1 -1
- package/dist/theme/default.d.ts.map +1 -1
- package/dist/theme/default.js +13 -8
- package/dist/theme/default.js.map +1 -1
- package/dist/theme/index.d.ts +11 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +70 -7
- package/dist/theme/index.js.map +1 -1
- package/dist/types/index.d.ts +54 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -6
- package/dist/types/index.js.map +1 -1
- package/dist/types/plugin.d.ts +50 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +5 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/file-lock.d.ts +27 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +118 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/i18n.d.ts +5 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +41 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +43 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path-validation.d.ts +20 -0
- package/dist/utils/path-validation.d.ts.map +1 -0
- package/dist/utils/path-validation.js +39 -0
- package/dist/utils/path-validation.js.map +1 -0
- package/dist/utils/plugin-manager.d.ts +18 -0
- package/dist/utils/plugin-manager.d.ts.map +1 -0
- package/dist/utils/plugin-manager.js +108 -0
- package/dist/utils/plugin-manager.js.map +1 -0
- package/dist/utils/sanitizer.d.ts +14 -0
- package/dist/utils/sanitizer.d.ts.map +1 -0
- package/dist/utils/sanitizer.js +73 -0
- package/dist/utils/sanitizer.js.map +1 -0
- package/package.json +23 -8
package/dist/layout/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* レイアウトモジュール
|
|
3
3
|
*/
|
|
4
4
|
export { layoutSlide, gridToCoordinates } from './engine.js';
|
|
5
|
-
export { autoPlaceElements, estimateElementHeight, findAvailablePosition } from './auto.js';
|
|
5
|
+
export { autoPlaceElements, estimateElementHeight, estimateElementWidth, findAvailablePosition, findBestAvailablePosition, validateGridPosition } from './auto.js';
|
|
6
6
|
export type { PlacedElement, GridMap, LayoutResult } from './types.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACnK,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/layout/index.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* レイアウトモジュール
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var engine_js_1 = require("./engine.js");
|
|
8
|
-
Object.defineProperty(exports, "layoutSlide", { enumerable: true, get: function () { return engine_js_1.layoutSlide; } });
|
|
9
|
-
Object.defineProperty(exports, "gridToCoordinates", { enumerable: true, get: function () { return engine_js_1.gridToCoordinates; } });
|
|
10
|
-
var auto_js_1 = require("./auto.js");
|
|
11
|
-
Object.defineProperty(exports, "autoPlaceElements", { enumerable: true, get: function () { return auto_js_1.autoPlaceElements; } });
|
|
12
|
-
Object.defineProperty(exports, "estimateElementHeight", { enumerable: true, get: function () { return auto_js_1.estimateElementHeight; } });
|
|
13
|
-
Object.defineProperty(exports, "findAvailablePosition", { enumerable: true, get: function () { return auto_js_1.findAvailablePosition; } });
|
|
4
|
+
export { layoutSlide, gridToCoordinates } from './engine.js';
|
|
5
|
+
export { autoPlaceElements, estimateElementHeight, estimateElementWidth, findAvailablePosition, findBestAvailablePosition, validateGridPosition } from './auto.js';
|
|
14
6
|
//# sourceMappingURL=index.js.map
|
package/dist/layout/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/layout/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,OAAO,GAAG,QAAQ,EAAE,EAAE,CAAC;AAGnC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,OAAO,GAAG,QAAQ,EAAE,EAAE,CAAC;AAGnC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
package/dist/layout/types.js
CHANGED
package/dist/layout/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/layout/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-handlers.d.ts","sourceRoot":"","sources":["../src/mcp-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"mcp-handlers.d.ts","sourceRoot":"","sources":["../src/mcp-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAyDrD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA0HvC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CA0GrB"}
|
package/dist/mcp-handlers.js
CHANGED
|
@@ -1,52 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* MCP ツールハンドラー
|
|
4
3
|
* テスト可能な形でMCPツールのロジックを提供
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.getToolDefinitions = getToolDefinitions;
|
|
41
|
-
exports.getMarhupGuide = getMarhupGuide;
|
|
42
|
-
exports.handleToolCall = handleToolCall;
|
|
43
|
-
const fs = __importStar(require("fs"));
|
|
44
|
-
const path = __importStar(require("path"));
|
|
45
|
-
const index_1 = require("./index");
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { marhup, marhupFile } from './index.js';
|
|
8
|
+
import { MarhupError } from './errors.js';
|
|
9
|
+
import { t } from './utils/i18n.js';
|
|
46
10
|
/**
|
|
47
11
|
* 利用可能なツール一覧を取得
|
|
48
12
|
*/
|
|
49
|
-
function getToolDefinitions() {
|
|
13
|
+
export function getToolDefinitions() {
|
|
50
14
|
return [
|
|
51
15
|
{
|
|
52
16
|
name: 'convert_markdown_to_pptx',
|
|
@@ -102,7 +66,7 @@ function getToolDefinitions() {
|
|
|
102
66
|
/**
|
|
103
67
|
* Markdownテキストから記法ガイドを生成
|
|
104
68
|
*/
|
|
105
|
-
function getMarhupGuide() {
|
|
69
|
+
export function getMarhupGuide() {
|
|
106
70
|
return `# marhup Markdown記法ガイド
|
|
107
71
|
|
|
108
72
|
## 基本構造
|
|
@@ -228,20 +192,20 @@ graph TD
|
|
|
228
192
|
/**
|
|
229
193
|
* ツールを実行
|
|
230
194
|
*/
|
|
231
|
-
async function handleToolCall(name, args) {
|
|
195
|
+
export async function handleToolCall(name, args) {
|
|
232
196
|
try {
|
|
233
197
|
switch (name) {
|
|
234
198
|
case 'convert_markdown_to_pptx': {
|
|
235
199
|
const { markdown, outputPath, basePath } = args;
|
|
236
200
|
if (!markdown || !outputPath) {
|
|
237
|
-
throw new
|
|
201
|
+
throw new MarhupError(t('errors.requiredParameters', { params: 'markdown and outputPath' }), 'MISSING_PARAMETERS', t('errors.specifyBothMarkdownAndOutputPath'));
|
|
238
202
|
}
|
|
239
203
|
// 出力ディレクトリが存在しない場合は作成
|
|
240
204
|
const outputDir = path.dirname(outputPath);
|
|
241
205
|
if (!fs.existsSync(outputDir)) {
|
|
242
206
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
243
207
|
}
|
|
244
|
-
await
|
|
208
|
+
await marhup(markdown, {
|
|
245
209
|
output: outputPath,
|
|
246
210
|
basePath: basePath || process.cwd(),
|
|
247
211
|
});
|
|
@@ -257,17 +221,17 @@ async function handleToolCall(name, args) {
|
|
|
257
221
|
case 'convert_file_to_pptx': {
|
|
258
222
|
const { inputPath, outputPath } = args;
|
|
259
223
|
if (!inputPath || !outputPath) {
|
|
260
|
-
throw new
|
|
224
|
+
throw new MarhupError(t('errors.requiredParameters', { params: 'inputPath and outputPath' }), 'MISSING_PARAMETERS', t('errors.specifyBothInputPathAndOutputPath'));
|
|
261
225
|
}
|
|
262
226
|
if (!fs.existsSync(inputPath)) {
|
|
263
|
-
throw new
|
|
227
|
+
throw new MarhupError(t('errors.inputFileNotFound', { path: inputPath }), 'FILE_NOT_FOUND', t('errors.suggestionCheckFilePath'), inputPath);
|
|
264
228
|
}
|
|
265
229
|
// 出力ディレクトリが存在しない場合は作成
|
|
266
230
|
const outputDir = path.dirname(outputPath);
|
|
267
231
|
if (!fs.existsSync(outputDir)) {
|
|
268
232
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
269
233
|
}
|
|
270
|
-
await
|
|
234
|
+
await marhupFile(inputPath, { output: outputPath });
|
|
271
235
|
return {
|
|
272
236
|
content: [
|
|
273
237
|
{
|
|
@@ -292,12 +256,12 @@ async function handleToolCall(name, args) {
|
|
|
292
256
|
}
|
|
293
257
|
}
|
|
294
258
|
catch (error) {
|
|
295
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
259
|
+
const errorMessage = error instanceof MarhupError ? error.toString() : (error instanceof Error ? error.message : String(error));
|
|
296
260
|
return {
|
|
297
261
|
content: [
|
|
298
262
|
{
|
|
299
263
|
type: 'text',
|
|
300
|
-
text:
|
|
264
|
+
text: t('errors.errorPrefix', { message: errorMessage }),
|
|
301
265
|
},
|
|
302
266
|
],
|
|
303
267
|
isError: true,
|
package/dist/mcp-handlers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-handlers.js","sourceRoot":"","sources":["../src/mcp-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-handlers.js","sourceRoot":"","sources":["../src/mcp-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
2
|
/**
|
|
4
3
|
* marhup MCP Server
|
|
5
4
|
* Model Context Protocol サーバーとしてmarhup機能を提供
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const server = new index_js_1.Server({
|
|
6
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
7
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
8
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
9
|
+
import { getToolDefinitions, handleToolCall } from './mcp-handlers.js';
|
|
10
|
+
const server = new Server({
|
|
13
11
|
name: 'marhup',
|
|
14
12
|
version: '0.1.0',
|
|
15
13
|
}, {
|
|
@@ -18,22 +16,22 @@ const server = new index_js_1.Server({
|
|
|
18
16
|
},
|
|
19
17
|
});
|
|
20
18
|
// ツール一覧
|
|
21
|
-
server.setRequestHandler(
|
|
19
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
22
20
|
return {
|
|
23
|
-
tools:
|
|
21
|
+
tools: getToolDefinitions(),
|
|
24
22
|
};
|
|
25
23
|
});
|
|
26
24
|
// ツール実行
|
|
27
|
-
server.setRequestHandler(
|
|
25
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
28
26
|
const { name, arguments: args } = request.params;
|
|
29
|
-
const result = await
|
|
27
|
+
const result = await handleToolCall(name, args);
|
|
30
28
|
return {
|
|
31
29
|
...result,
|
|
32
30
|
};
|
|
33
31
|
});
|
|
34
32
|
// サーバー起動
|
|
35
33
|
async function main() {
|
|
36
|
-
const transport = new
|
|
34
|
+
const transport = new StdioServerTransport();
|
|
37
35
|
await server.connect(transport);
|
|
38
36
|
console.error('marhup MCP server started');
|
|
39
37
|
}
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,QAAQ;AACR,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE,kBAAkB,EAAE;KAC5B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAC;IAC3E,OAAO;QACL,GAAG,MAAM;KACD,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/parser/frontmatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/parser/frontmatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAuD,MAAM,mBAAmB,CAAC;AAuI/G;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAwCA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS/E"}
|
|
@@ -1,18 +1,93 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* YAML Front Matter パーサー
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
4
|
+
import YAML from 'yaml';
|
|
5
|
+
import { FrontmatterError } from '../errors.js';
|
|
6
|
+
/**
|
|
7
|
+
* Front Matterの構造を検証
|
|
8
|
+
*/
|
|
9
|
+
function validateFrontmatter(frontmatter) {
|
|
10
|
+
const validated = {};
|
|
11
|
+
for (const [key, value] of Object.entries(frontmatter)) {
|
|
12
|
+
switch (key) {
|
|
13
|
+
case 'title':
|
|
14
|
+
if (typeof value !== 'string') {
|
|
15
|
+
throw new FrontmatterError(`'title' must be a string, got ${typeof value}`, 'title', value, 'Use a string value for the title, e.g., title: "My Presentation"');
|
|
16
|
+
}
|
|
17
|
+
validated.title = value;
|
|
18
|
+
break;
|
|
19
|
+
case 'grid':
|
|
20
|
+
if (typeof value !== 'string') {
|
|
21
|
+
throw new FrontmatterError(`'grid' must be a string, got ${typeof value}`, 'grid', value, 'Use a grid size string like "12x9" or "16x10"');
|
|
22
|
+
}
|
|
23
|
+
validated.grid = value;
|
|
24
|
+
break;
|
|
25
|
+
case 'layout':
|
|
26
|
+
if (typeof value !== 'string') {
|
|
27
|
+
throw new FrontmatterError(`'layout' must be a string, got ${typeof value}`, 'layout', value, 'Use "auto" for automatic layout or "manual" for custom positioning');
|
|
28
|
+
}
|
|
29
|
+
validated.layout = value;
|
|
30
|
+
break;
|
|
31
|
+
case 'theme':
|
|
32
|
+
if (typeof value === 'string') {
|
|
33
|
+
validated.theme = value;
|
|
34
|
+
}
|
|
35
|
+
else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
36
|
+
// Allow partial theme overrides
|
|
37
|
+
validated.theme = value;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new FrontmatterError(`'theme' must be a string or an object, got ${typeof value}`, 'theme', value, 'Use a theme name like "default" or an object with theme properties');
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case 'classes':
|
|
44
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
45
|
+
throw new FrontmatterError(`'classes' must be an object, got ${typeof value}`, 'classes', value, 'Use an object with class names as keys and style objects as values');
|
|
46
|
+
}
|
|
47
|
+
for (const [className, classProps] of Object.entries(value)) {
|
|
48
|
+
if (typeof classProps !== 'object' || classProps === null || Array.isArray(classProps)) {
|
|
49
|
+
throw new FrontmatterError(`Class '${className}' must be an object, got ${typeof classProps}`, `classes.${className}`, classProps, 'Each class should be an object with CSS properties');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
validated.classes = value;
|
|
53
|
+
break;
|
|
54
|
+
case 'aliases':
|
|
55
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
56
|
+
throw new FrontmatterError(`'aliases' must be an object, got ${typeof value}`, 'aliases', value, 'Use an object with alias names as keys and grid positions as values');
|
|
57
|
+
}
|
|
58
|
+
for (const [aliasKey, aliasValue] of Object.entries(value)) {
|
|
59
|
+
if (typeof aliasValue !== 'string') {
|
|
60
|
+
throw new FrontmatterError(`Alias '${aliasKey}' must be a string, got ${typeof aliasValue}`, `aliases.${aliasKey}`, aliasValue, 'Each alias should be a grid position string like "[1-6,1-4]"');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
validated.aliases = value;
|
|
64
|
+
break;
|
|
65
|
+
case 'animations':
|
|
66
|
+
if (!Array.isArray(value)) {
|
|
67
|
+
throw new FrontmatterError(`'animations' must be an array, got ${typeof value}`, 'animations', value, 'Use an array of animation objects');
|
|
68
|
+
}
|
|
69
|
+
// Basic validation - more detailed validation can be added later
|
|
70
|
+
validated.animations = value;
|
|
71
|
+
break;
|
|
72
|
+
case 'transition':
|
|
73
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
74
|
+
throw new FrontmatterError(`'transition' must be an object, got ${typeof value}`, 'transition', value, 'Use an object with transition properties like { type: "fade", duration: 1, direction: "left" }');
|
|
75
|
+
}
|
|
76
|
+
// Basic validation - more detailed validation can be added later
|
|
77
|
+
validated.transition = value;
|
|
78
|
+
break;
|
|
79
|
+
default:
|
|
80
|
+
// その他のキーはそのまま
|
|
81
|
+
validated[key] = value;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return validated;
|
|
86
|
+
}
|
|
12
87
|
/**
|
|
13
88
|
* Front Matterを抽出してパース
|
|
14
89
|
*/
|
|
15
|
-
function parseFrontmatter(content) {
|
|
90
|
+
export function parseFrontmatter(content) {
|
|
16
91
|
const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n?/;
|
|
17
92
|
const match = content.match(frontmatterRegex);
|
|
18
93
|
if (!match) {
|
|
@@ -24,21 +99,25 @@ function parseFrontmatter(content) {
|
|
|
24
99
|
const yamlContent = match[1];
|
|
25
100
|
const body = content.slice(match[0].length);
|
|
26
101
|
try {
|
|
27
|
-
const
|
|
102
|
+
const parsed = YAML.parse(yamlContent) || {};
|
|
103
|
+
const frontmatter = validateFrontmatter(parsed);
|
|
28
104
|
return { frontmatter, body };
|
|
29
105
|
}
|
|
30
106
|
catch (error) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
107
|
+
if (error instanceof FrontmatterError) {
|
|
108
|
+
// Validation error - re-throw with file context
|
|
109
|
+
throw new FrontmatterError(error.message, error.code, undefined, 'Check your YAML syntax and ensure all values have correct types', undefined, // filePath will be added by caller
|
|
110
|
+
undefined // lineNumber
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
// YAML parsing error
|
|
114
|
+
throw new FrontmatterError(`Invalid YAML syntax: ${error instanceof Error ? error.message : 'Unknown YAML error'}`, undefined, undefined, 'Check your YAML syntax. Ensure proper indentation and valid YAML format.', undefined, undefined);
|
|
36
115
|
}
|
|
37
116
|
}
|
|
38
117
|
/**
|
|
39
118
|
* グリッド文字列をパース
|
|
40
119
|
*/
|
|
41
|
-
function parseGridString(gridStr) {
|
|
120
|
+
export function parseGridString(gridStr) {
|
|
42
121
|
const match = gridStr.match(/^(\d+)\s*x\s*(\d+)$/i);
|
|
43
122
|
if (!match) {
|
|
44
123
|
return { cols: 12, rows: 9 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/parser/frontmatter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/parser/frontmatter.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/grid.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* グリッド記法パーサー
|
|
3
3
|
*/
|
|
4
|
-
import type { GridPosition, StyleOptions } from '../types/index';
|
|
5
|
-
|
|
6
|
-
* 行からグリッド位置を抽出
|
|
7
|
-
*/
|
|
8
|
-
export declare function extractGridPosition(text: string, aliases?: Record<string, string>): {
|
|
4
|
+
import type { GridPosition, StyleOptions, AnimationConfig, GridConfig } from '../types/index.js';
|
|
5
|
+
export declare function extractGridPosition(text: string, aliases?: Record<string, string>, gridConfig?: GridConfig): {
|
|
9
6
|
position: GridPosition | undefined;
|
|
10
7
|
cleanText: string;
|
|
11
8
|
};
|
|
@@ -19,16 +16,17 @@ export declare function extractStyle(text: string): {
|
|
|
19
16
|
/**
|
|
20
17
|
* テキストからグリッド位置とスタイルを両方抽出
|
|
21
18
|
*/
|
|
22
|
-
export declare function extractGridAndStyle(text: string, aliases?: Record<string, string
|
|
19
|
+
export declare function extractGridAndStyle(text: string, aliases?: Record<string, string>, gridConfig?: GridConfig): {
|
|
23
20
|
position: GridPosition | undefined;
|
|
24
21
|
style: StyleOptions | undefined;
|
|
22
|
+
animation: AnimationConfig | undefined;
|
|
25
23
|
cleanText: string;
|
|
26
24
|
};
|
|
27
25
|
/**
|
|
28
26
|
* ブロックの開始行からグリッド位置を抽出(ブロック用)
|
|
29
27
|
* 例: "[1-6, 2-8]" で始まる行
|
|
30
28
|
*/
|
|
31
|
-
export declare function parseBlockGridLine(line: string, aliases?: Record<string, string
|
|
29
|
+
export declare function parseBlockGridLine(line: string, aliases?: Record<string, string>, gridConfig?: GridConfig): {
|
|
32
30
|
isGridBlock: boolean;
|
|
33
31
|
position: GridPosition | undefined;
|
|
34
32
|
style: StyleOptions | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/parser/grid.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/parser/grid.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0EjG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG;IAC5G,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAuCA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAC1C,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAyHA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG;IAC5G,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB,CAmBA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG;IAC3G,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;CACjC,CAkBA"}
|