mcp-probe-kit 3.2.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/README.md +25 -7
  2. package/build/index.js +45 -79
  3. package/build/lib/__tests__/agents-md-template.unit.test.js +1 -0
  4. package/build/lib/__tests__/dev-workflow.unit.test.js +22 -0
  5. package/build/lib/__tests__/handles.unit.test.js +19 -0
  6. package/build/lib/__tests__/mcp-apps.unit.test.d.ts +1 -0
  7. package/build/lib/__tests__/mcp-apps.unit.test.js +52 -0
  8. package/build/lib/__tests__/mcp-tool-skill-registry.unit.test.d.ts +1 -0
  9. package/build/lib/__tests__/mcp-tool-skill-registry.unit.test.js +18 -0
  10. package/build/lib/__tests__/memory-client.unit.test.js +105 -0
  11. package/build/lib/__tests__/memory-orchestration.unit.test.d.ts +1 -0
  12. package/build/lib/__tests__/memory-orchestration.unit.test.js +88 -0
  13. package/build/lib/__tests__/memory-payload.unit.test.d.ts +1 -0
  14. package/build/lib/__tests__/memory-payload.unit.test.js +35 -0
  15. package/build/lib/__tests__/quality-constraints.unit.test.d.ts +1 -0
  16. package/build/lib/__tests__/quality-constraints.unit.test.js +54 -0
  17. package/build/lib/__tests__/spec-gate.unit.test.d.ts +1 -0
  18. package/build/lib/__tests__/spec-gate.unit.test.js +54 -0
  19. package/build/lib/__tests__/spec-validator.unit.test.js +106 -74
  20. package/build/lib/__tests__/task-defaults.unit.test.d.ts +1 -0
  21. package/build/lib/__tests__/task-defaults.unit.test.js +27 -0
  22. package/build/lib/__tests__/workflow-skill-installer.unit.test.d.ts +1 -0
  23. package/build/lib/__tests__/workflow-skill-installer.unit.test.js +110 -0
  24. package/build/lib/agents-md-template.js +40 -32
  25. package/build/lib/cursor-history-client.d.ts +54 -0
  26. package/build/lib/cursor-history-client.js +240 -0
  27. package/build/lib/dev-workflow.d.ts +36 -0
  28. package/build/lib/dev-workflow.js +497 -0
  29. package/build/lib/handles.d.ts +31 -0
  30. package/build/lib/handles.js +36 -0
  31. package/build/lib/mcp-apps.d.ts +14 -0
  32. package/build/lib/mcp-apps.js +234 -0
  33. package/build/lib/mcp-tool-skill-registry.d.ts +46 -0
  34. package/build/lib/mcp-tool-skill-registry.js +256 -0
  35. package/build/lib/memory-client.d.ts +19 -0
  36. package/build/lib/memory-client.js +69 -0
  37. package/build/lib/memory-orchestration.d.ts +5 -0
  38. package/build/lib/memory-orchestration.js +20 -0
  39. package/build/lib/merge-agents-md.d.ts +2 -2
  40. package/build/lib/merge-agents-md.js +7 -4
  41. package/build/lib/output-schema-registry.d.ts +11 -0
  42. package/build/lib/output-schema-registry.js +80 -0
  43. package/build/lib/quality-constraints.d.ts +54 -0
  44. package/build/lib/quality-constraints.js +155 -0
  45. package/build/lib/skill-bridge.js +12 -12
  46. package/build/lib/spec-gate.d.ts +32 -0
  47. package/build/lib/spec-gate.js +83 -0
  48. package/build/lib/spec-validator.js +16 -3
  49. package/build/lib/task-defaults.d.ts +6 -0
  50. package/build/lib/task-defaults.js +20 -0
  51. package/build/lib/template-loader.js +83 -23
  52. package/build/lib/tool-annotations.js +3 -0
  53. package/build/lib/toolset-manager.js +2 -0
  54. package/build/lib/workflow-skill-installer.d.ts +38 -0
  55. package/build/lib/workflow-skill-installer.js +158 -0
  56. package/build/lib/workflow-skill-template.d.ts +9 -0
  57. package/build/lib/workflow-skill-template.js +85 -0
  58. package/build/lib/workflow-skill-version.d.ts +15 -0
  59. package/build/lib/workflow-skill-version.js +68 -0
  60. package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
  61. package/build/resources/ui-ux-data/metadata.json +30 -30
  62. package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
  63. package/build/resources/ui-ux-data/shadcn/components.json +997 -997
  64. package/build/resources/ui-ux-data/themes/presets.json +483 -483
  65. package/build/schemas/index.d.ts +110 -0
  66. package/build/schemas/index.js +1 -0
  67. package/build/schemas/memory-tools.d.ts +83 -0
  68. package/build/schemas/memory-tools.js +43 -0
  69. package/build/schemas/orchestration-tools.d.ts +8 -0
  70. package/build/schemas/orchestration-tools.js +8 -0
  71. package/build/schemas/output/code-insight-tools.d.ts +65 -0
  72. package/build/schemas/output/code-insight-tools.js +42 -0
  73. package/build/schemas/output/memory-tools.d.ts +576 -0
  74. package/build/schemas/output/memory-tools.js +148 -0
  75. package/build/schemas/project-tools.d.ts +19 -0
  76. package/build/schemas/project-tools.js +20 -0
  77. package/build/tools/__tests__/cursor-history.unit.test.d.ts +1 -0
  78. package/build/tools/__tests__/cursor-history.unit.test.js +38 -0
  79. package/build/tools/__tests__/delete_memory_asset.unit.test.d.ts +1 -0
  80. package/build/tools/__tests__/delete_memory_asset.unit.test.js +87 -0
  81. package/build/tools/__tests__/search_memory.unit.test.js +1 -0
  82. package/build/tools/__tests__/start_bugfix.unit.test.js +34 -1
  83. package/build/tools/__tests__/update_memory_asset.unit.test.d.ts +1 -0
  84. package/build/tools/__tests__/update_memory_asset.unit.test.js +82 -0
  85. package/build/tools/__tests__/workflow.unit.test.d.ts +1 -0
  86. package/build/tools/__tests__/workflow.unit.test.js +24 -0
  87. package/build/tools/check_spec.js +16 -16
  88. package/build/tools/code_insight.js +46 -42
  89. package/build/tools/code_review.js +11 -4
  90. package/build/tools/cursor_read_conversation.d.ts +7 -0
  91. package/build/tools/cursor_read_conversation.js +36 -0
  92. package/build/tools/delete_memory_asset.d.ts +7 -0
  93. package/build/tools/delete_memory_asset.js +57 -0
  94. package/build/tools/fix_bug.js +161 -161
  95. package/build/tools/gencommit.js +60 -60
  96. package/build/tools/index.d.ts +3 -0
  97. package/build/tools/index.js +3 -0
  98. package/build/tools/init_project_context.js +432 -432
  99. package/build/tools/search_memory.js +5 -2
  100. package/build/tools/start_bugfix.js +37 -4
  101. package/build/tools/start_feature.js +4 -3
  102. package/build/tools/start_product.js +1 -1
  103. package/build/tools/start_ui.js +22 -4
  104. package/build/tools/ui-ux-tools.d.ts +3 -0
  105. package/build/tools/ui-ux-tools.js +302 -290
  106. package/build/tools/update_memory_asset.d.ts +7 -0
  107. package/build/tools/update_memory_asset.js +98 -0
  108. package/build/tools/workflow.d.ts +13 -0
  109. package/build/tools/workflow.js +69 -0
  110. package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
  111. package/build/utils/design-reasoning-engine.d.ts +2 -0
  112. package/build/utils/design-reasoning-engine.js +3 -0
  113. package/build/utils/themes-sync.js +8 -8
  114. package/package.json +6 -3
  115. package/build/resources/index.d.ts +0 -4
  116. package/build/resources/index.js +0 -4
  117. package/build/resources/tool-params-guide.d.ts +0 -571
  118. package/build/resources/tool-params-guide.js +0 -488
  119. package/build/tools/analyze_project.d.ts +0 -1
  120. package/build/tools/analyze_project.js +0 -527
  121. package/build/tools/check_deps.d.ts +0 -13
  122. package/build/tools/check_deps.js +0 -204
  123. package/build/tools/convert.d.ts +0 -13
  124. package/build/tools/convert.js +0 -599
  125. package/build/tools/css_order.d.ts +0 -13
  126. package/build/tools/css_order.js +0 -81
  127. package/build/tools/debug.d.ts +0 -13
  128. package/build/tools/debug.js +0 -131
  129. package/build/tools/design2code.d.ts +0 -20
  130. package/build/tools/design2code.js +0 -426
  131. package/build/tools/detect_shell.d.ts +0 -6
  132. package/build/tools/detect_shell.js +0 -151
  133. package/build/tools/explain.d.ts +0 -13
  134. package/build/tools/explain.js +0 -390
  135. package/build/tools/fix.d.ts +0 -13
  136. package/build/tools/fix.js +0 -303
  137. package/build/tools/gen_mock.d.ts +0 -22
  138. package/build/tools/gen_mock.js +0 -269
  139. package/build/tools/gen_skill.d.ts +0 -13
  140. package/build/tools/gen_skill.js +0 -560
  141. package/build/tools/genapi.d.ts +0 -13
  142. package/build/tools/genapi.js +0 -174
  143. package/build/tools/genchangelog.d.ts +0 -13
  144. package/build/tools/genchangelog.js +0 -250
  145. package/build/tools/gendoc.d.ts +0 -13
  146. package/build/tools/gendoc.js +0 -232
  147. package/build/tools/genpr.d.ts +0 -13
  148. package/build/tools/genpr.js +0 -194
  149. package/build/tools/genreadme.d.ts +0 -13
  150. package/build/tools/genreadme.js +0 -626
  151. package/build/tools/gensql.d.ts +0 -13
  152. package/build/tools/gensql.js +0 -320
  153. package/build/tools/genui.d.ts +0 -13
  154. package/build/tools/genui.js +0 -803
  155. package/build/tools/init_component_catalog.d.ts +0 -22
  156. package/build/tools/init_component_catalog.js +0 -809
  157. package/build/tools/init_setting.d.ts +0 -13
  158. package/build/tools/init_setting.js +0 -47
  159. package/build/tools/perf.d.ts +0 -13
  160. package/build/tools/perf.js +0 -409
  161. package/build/tools/render_ui.d.ts +0 -22
  162. package/build/tools/render_ui.js +0 -384
  163. package/build/tools/resolve_conflict.d.ts +0 -13
  164. package/build/tools/resolve_conflict.js +0 -349
  165. package/build/tools/security_scan.d.ts +0 -22
  166. package/build/tools/security_scan.js +0 -323
  167. package/build/tools/split.d.ts +0 -13
  168. package/build/tools/split.js +0 -599
  169. package/build/tools/start_api.d.ts +0 -13
  170. package/build/tools/start_api.js +0 -193
  171. package/build/tools/start_doc.d.ts +0 -13
  172. package/build/tools/start_doc.js +0 -207
  173. package/build/tools/start_refactor.d.ts +0 -13
  174. package/build/tools/start_refactor.js +0 -188
  175. package/build/tools/start_release.d.ts +0 -13
  176. package/build/tools/start_release.js +0 -167
  177. package/build/tools/start_review.d.ts +0 -13
  178. package/build/tools/start_review.js +0 -175
  179. /package/build/{utils/design-docs-generator.d.ts → lib/__tests__/dev-workflow.unit.test.d.ts} +0 -0
  180. /package/build/{utils/design-docs-generator.js → lib/__tests__/handles.unit.test.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ export declare function updateMemoryAsset(args: any): Promise<import("../lib/response.js").ToolResponse | {
2
+ content: Array<{
3
+ type: string;
4
+ text: string;
5
+ }>;
6
+ isError: true;
7
+ }>;
@@ -0,0 +1,98 @@
1
+ import { parseArgs, getString, getNumber } from '../utils/parseArgs.js';
2
+ import { okStructured } from '../lib/response.js';
3
+ import { createMemoryClient } from '../lib/memory-client.js';
4
+ import { handleToolError } from '../utils/error-handler.js';
5
+ import { attachHandles, buildMemoryAssetHandles } from '../lib/handles.js';
6
+ function fieldProvided(args, ...keys) {
7
+ const record = args?.input && typeof args.input === 'object' && !Array.isArray(args.input)
8
+ ? { ...args, ...args.input }
9
+ : args;
10
+ if (!record || typeof record !== 'object' || Array.isArray(record)) {
11
+ return false;
12
+ }
13
+ return keys.some((key) => key in record && record[key] !== undefined && record[key] !== null);
14
+ }
15
+ export async function updateMemoryAsset(args) {
16
+ try {
17
+ const parsed = parseArgs(args, {
18
+ fieldAliases: {
19
+ code_snippet: ['code', 'snippet'],
20
+ file_path: ['path'],
21
+ source_project: ['project'],
22
+ source_path: ['source'],
23
+ },
24
+ });
25
+ const assetId = getString(parsed.asset_id);
26
+ if (!assetId) {
27
+ throw new Error('缺少必填参数: asset_id');
28
+ }
29
+ const patch = {};
30
+ if (fieldProvided(args, 'name')) {
31
+ patch.name = getString(parsed.name);
32
+ }
33
+ if (fieldProvided(args, 'type')) {
34
+ patch.type = getString(parsed.type);
35
+ }
36
+ if (fieldProvided(args, 'description')) {
37
+ patch.description = getString(parsed.description);
38
+ }
39
+ if (fieldProvided(args, 'summary')) {
40
+ patch.summary = getString(parsed.summary);
41
+ }
42
+ if (fieldProvided(args, 'content', 'code_snippet', 'code', 'snippet')) {
43
+ patch.content = getString(parsed.content) || getString(parsed.code_snippet);
44
+ }
45
+ if (fieldProvided(args, 'tags')) {
46
+ patch.tags = Array.isArray(parsed.tags)
47
+ ? parsed.tags.filter((item) => typeof item === 'string')
48
+ : [];
49
+ }
50
+ if (fieldProvided(args, 'confidence')) {
51
+ patch.confidence = getNumber(parsed.confidence, 0.7);
52
+ }
53
+ if (fieldProvided(args, 'usage')) {
54
+ patch.usage = getString(parsed.usage);
55
+ }
56
+ if (fieldProvided(args, 'source_project', 'project')) {
57
+ patch.sourceProject = getString(parsed.source_project);
58
+ }
59
+ if (fieldProvided(args, 'source_path', 'source', 'file_path', 'path')) {
60
+ patch.sourcePath = getString(parsed.source_path) || getString(parsed.file_path);
61
+ }
62
+ if (Object.keys(patch).length === 0) {
63
+ throw new Error('至少提供一个待更新字段: name, type, description, summary, content, tags, confidence, usage 等');
64
+ }
65
+ const client = createMemoryClient();
66
+ if (!client.isEnabled()) {
67
+ return okStructured('记忆服务未开启,已跳过更新。', { enabled: false, updated: false, asset: null });
68
+ }
69
+ const warnings = [];
70
+ const nextType = patch.type;
71
+ const nextContent = patch.content;
72
+ if (nextType === 'bugfix' && nextContent) {
73
+ const requiredSections = ['【现象】', '【根因】', '【修复】'];
74
+ const missing = requiredSections.filter((section) => !nextContent.includes(section));
75
+ if (missing.length > 0) {
76
+ warnings.push(`建议 content 包含 ${missing.join('、')},便于跨仓库检索与复用`);
77
+ }
78
+ }
79
+ if (patch.sourceProject || patch.sourcePath) {
80
+ warnings.push('跨仓库共享记忆时请勿依赖 source_project/source_path;路径请写入 content 正文(可选)');
81
+ }
82
+ const { updated, asset } = await client.updateAsset(assetId, patch);
83
+ if (!updated || !asset) {
84
+ return okStructured(`未找到记忆资产: ${assetId}`, { enabled: true, updated: false, asset: null });
85
+ }
86
+ return okStructured(`已更新记忆资产: ${asset.name}`, attachHandles({
87
+ enabled: true,
88
+ updated: true,
89
+ asset,
90
+ warnings: warnings.length > 0 ? warnings : undefined,
91
+ }, {
92
+ memory_assets: buildMemoryAssetHandles([{ id: asset.id, name: asset.name, type: asset.type, summary: asset.summary }], 'update_memory_asset'),
93
+ }));
94
+ }
95
+ catch (error) {
96
+ return handleToolError(error, 'update_memory_asset');
97
+ }
98
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * workflow — 开发工作流路由(只读指南)
3
+ *
4
+ * 根据用户意图生成「何时调哪个 MCP 工具」的分阶段计划,
5
+ * 用于约束 Agent 先走 start_* / code_insight / check_spec,而不是直接写代码。
6
+ */
7
+ export declare function workflow(args: unknown): Promise<import("../lib/response.js").ToolResponse | {
8
+ content: Array<{
9
+ type: string;
10
+ text: string;
11
+ }>;
12
+ isError: true;
13
+ }>;
@@ -0,0 +1,69 @@
1
+ import { parseArgs, getString } from '../utils/parseArgs.js';
2
+ import { okStructured } from '../lib/response.js';
3
+ import { handleToolError } from '../utils/error-handler.js';
4
+ import { buildDevWorkflow, renderWorkflowMarkdown } from '../lib/dev-workflow.js';
5
+ import { ensureMcpProbeKitBootstrap } from '../lib/workflow-skill-installer.js';
6
+ import { resolveWorkspaceRoot } from '../lib/workspace-root.js';
7
+ /**
8
+ * workflow — 开发工作流路由(只读指南)
9
+ *
10
+ * 根据用户意图生成「何时调哪个 MCP 工具」的分阶段计划,
11
+ * 用于约束 Agent 先走 start_* / code_insight / check_spec,而不是直接写代码。
12
+ */
13
+ export async function workflow(args) {
14
+ try {
15
+ const parsed = parseArgs(args, {
16
+ defaultValues: {
17
+ intent: '',
18
+ input: '',
19
+ scenario: 'auto',
20
+ description: '',
21
+ },
22
+ primaryField: 'intent',
23
+ fieldAliases: {
24
+ intent: ['input', 'description', 'goal', 'task', '需求', '目标', '描述'],
25
+ scenario: ['mode', 'type', '场景', '类型'],
26
+ },
27
+ });
28
+ const intent = getString(parsed.intent) ||
29
+ getString(parsed.input) ||
30
+ getString(parsed.description);
31
+ const scenario = getString(parsed.scenario) || 'auto';
32
+ const plan = buildDevWorkflow(intent, { scenario });
33
+ const text = renderWorkflowMarkdown(plan, intent);
34
+ const projectRoot = resolveWorkspaceRoot('');
35
+ const bootstrap = ensureMcpProbeKitBootstrap(projectRoot);
36
+ return okStructured(text, {
37
+ scenario: plan.scenario,
38
+ scenarioLabel: plan.scenarioLabel,
39
+ confidence: plan.confidence,
40
+ summary: plan.summary,
41
+ firstTool: plan.firstTool,
42
+ firstToolArgsHint: plan.firstToolArgsHint ?? null,
43
+ phases: plan.phases,
44
+ avoid: plan.avoid,
45
+ memoryNotes: plan.memoryNotes,
46
+ projectSkill: {
47
+ relPath: bootstrap.skill.skillRelPath,
48
+ existed: bootstrap.skill.existed,
49
+ created: bootstrap.skill.created,
50
+ updated: bootstrap.skill.updated,
51
+ version: bootstrap.skill.version,
52
+ previousVersion: bootstrap.skill.previousVersion,
53
+ },
54
+ agentsMd: {
55
+ path: bootstrap.agentsMd.path,
56
+ existed: bootstrap.agentsMd.existed,
57
+ created: bootstrap.agentsMd.created,
58
+ updated: bootstrap.agentsMd.updated,
59
+ },
60
+ handles: {
61
+ next_tool: plan.firstTool,
62
+ next_args: plan.firstToolArgsHint ?? {},
63
+ },
64
+ });
65
+ }
66
+ catch (error) {
67
+ return handleToolError(error, 'workflow');
68
+ }
69
+ }
@@ -4,18 +4,18 @@ import * as fs from 'fs';
4
4
  import * as path from 'path';
5
5
  describe('vercel-guidelines-sync', () => {
6
6
  it('parses MUST/SHOULD/NEVER rules from markdown', () => {
7
- const sample = `# Title
8
-
9
- ## Interactions
10
-
11
- ### Keyboard
12
-
13
- - MUST: Visible focus rings
14
- - NEVER: outline: none without replacement
15
-
16
- ## Animation
17
-
18
- - SHOULD: Prefer CSS animations
7
+ const sample = `# Title
8
+
9
+ ## Interactions
10
+
11
+ ### Keyboard
12
+
13
+ - MUST: Visible focus rings
14
+ - NEVER: outline: none without replacement
15
+
16
+ ## Animation
17
+
18
+ - SHOULD: Prefer CSS animations
19
19
  `;
20
20
  const records = parseVercelGuidelinesMarkdown(sample);
21
21
  expect(records).toHaveLength(3);
@@ -34,6 +34,8 @@ export interface DesignSystemRecommendation {
34
34
  typography: TypographyPairing;
35
35
  effects: EffectsRecommendation;
36
36
  antiPatterns: string[];
37
+ hardConstraints: string[];
38
+ bannedList: string[];
37
39
  checklist: string[];
38
40
  reasoning: string;
39
41
  }
@@ -7,6 +7,7 @@
7
7
  * 完全匹配原版 Python 实现:
8
8
  * https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
9
9
  */
10
+ import { UI_HARD_RULES, UI_BANNED_LIST } from '../lib/quality-constraints.js';
10
11
  /**
11
12
  * 设计推理引擎(完全匹配 Python 版本)
12
13
  */
@@ -98,6 +99,8 @@ export class DesignReasoningEngine {
98
99
  animations: combinedEffects,
99
100
  },
100
101
  antiPatterns: (reasoning.antiPatterns || '').split('+').map((p) => p.trim()).filter(Boolean),
102
+ hardConstraints: [...UI_HARD_RULES],
103
+ bannedList: [...UI_BANNED_LIST],
101
104
  checklist: this.generateChecklist(bestStyle, request),
102
105
  reasoning: this.generateReasoningText(productRule, bestStyle, bestColor, bestTypography, reasoning),
103
106
  };
@@ -66,14 +66,14 @@ function renderGlobalsCss(name, light, dark) {
66
66
  const toBlock = (vars) => Object.entries(vars)
67
67
  .map(([key, value]) => ` --${key}: ${value};`)
68
68
  .join('\n');
69
- return `@layer base {
70
- /* Theme: ${name} — paste into globals.css */
71
- :root {
72
- ${toBlock(light)}
73
- }
74
- .dark {
75
- ${toBlock(dark)}
76
- }
69
+ return `@layer base {
70
+ /* Theme: ${name} — paste into globals.css */
71
+ :root {
72
+ ${toBlock(light)}
73
+ }
74
+ .dark {
75
+ ${toBlock(dark)}
76
+ }
77
77
  }`;
78
78
  }
79
79
  function buildTheme(input) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mcp-probe-kit",
3
- "version": "3.2.0",
4
- "description": "AI-Powered Development Toolkit - MCP Server with 27 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, UI/UX Pro Max, and Requirements Interview.",
3
+ "version": "3.6.0",
4
+ "description": "AI-Powered Development Toolkit - MCP Server with 30 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, MCP Skill auto-sync, UI/UX Pro Max, and Requirements Interview.",
5
5
  "mcpName": "io.github.mybolide/mcp-probe-kit",
6
6
  "type": "module",
7
7
  "main": "build/index.js",
@@ -20,7 +20,10 @@
20
20
  "prepare": "npm run build",
21
21
  "prepublishOnly": "npm run build",
22
22
  "sync-ui-data": "tsx scripts/sync-ui-data.ts",
23
- "prebuild": "npm run sync-ui-data",
23
+ "sync-version": "node scripts/sync-version.mjs",
24
+ "verify-workflow-skill": "tsx scripts/verify-workflow-skill.ts",
25
+ "sync-workflow-skill": "tsx scripts/sync-workflow-skill.ts",
26
+ "prebuild": "npm run sync-version && npm run sync-ui-data && npm run verify-workflow-skill && npm run sync-workflow-skill",
24
27
  "docs:serve": "npx http-server docs -p 8080 -o"
25
28
  },
26
29
  "keywords": [
@@ -1,4 +0,0 @@
1
- /**
2
- * MCP Resources 统一导出
3
- */
4
- export { getToolParamsGuide } from "./tool-params-guide.js";
@@ -1,4 +0,0 @@
1
- /**
2
- * MCP Resources 统一导出
3
- */
4
- export { getToolParamsGuide } from "./tool-params-guide.js";