mcp-probe-kit 3.0.23 → 3.1.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 (141) hide show
  1. package/README.md +755 -779
  2. package/build/index.js +38 -40
  3. package/build/lib/__tests__/memory-injection.unit.test.js +1 -0
  4. package/build/lib/agents-md-template.js +32 -32
  5. package/build/lib/memory-client.d.ts +2 -0
  6. package/build/lib/memory-client.js +1 -0
  7. package/build/lib/memory-config.d.ts +2 -0
  8. package/build/lib/memory-config.js +1 -0
  9. package/build/lib/memory-orchestration.d.ts +4 -0
  10. package/build/lib/memory-orchestration.js +28 -5
  11. package/build/lib/skill-bridge.js +12 -12
  12. package/build/resources/index.d.ts +4 -0
  13. package/build/resources/index.js +4 -0
  14. package/build/resources/tool-params-guide.d.ts +571 -0
  15. package/build/resources/tool-params-guide.js +488 -0
  16. package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
  17. package/build/resources/ui-ux-data/metadata.json +30 -30
  18. package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
  19. package/build/resources/ui-ux-data/shadcn/components.json +997 -997
  20. package/build/resources/ui-ux-data/themes/presets.json +483 -483
  21. package/build/schemas/index.d.ts +0 -22
  22. package/build/schemas/memory-tools.d.ts +0 -22
  23. package/build/schemas/memory-tools.js +0 -14
  24. package/build/tools/__tests__/read_memory_asset.unit.test.js +75 -0
  25. package/build/tools/__tests__/search_memory.unit.test.js +7 -1
  26. package/build/tools/analyze_project.d.ts +1 -0
  27. package/build/tools/analyze_project.js +527 -0
  28. package/build/tools/check_deps.d.ts +13 -0
  29. package/build/tools/check_deps.js +204 -0
  30. package/build/tools/code_insight.js +41 -41
  31. package/build/tools/convert.d.ts +13 -0
  32. package/build/tools/convert.js +599 -0
  33. package/build/tools/css_order.d.ts +13 -0
  34. package/build/tools/css_order.js +81 -0
  35. package/build/tools/debug.d.ts +13 -0
  36. package/build/tools/debug.js +131 -0
  37. package/build/tools/design2code.d.ts +20 -0
  38. package/build/tools/design2code.js +426 -0
  39. package/build/tools/detect_shell.d.ts +6 -0
  40. package/build/tools/detect_shell.js +151 -0
  41. package/build/tools/explain.d.ts +13 -0
  42. package/build/tools/explain.js +390 -0
  43. package/build/tools/fix.d.ts +13 -0
  44. package/build/tools/fix.js +303 -0
  45. package/build/tools/fix_bug.js +161 -161
  46. package/build/tools/gen_mock.d.ts +22 -0
  47. package/build/tools/gen_mock.js +269 -0
  48. package/build/tools/gen_skill.d.ts +13 -0
  49. package/build/tools/gen_skill.js +560 -0
  50. package/build/tools/genapi.d.ts +13 -0
  51. package/build/tools/genapi.js +174 -0
  52. package/build/tools/genchangelog.d.ts +13 -0
  53. package/build/tools/genchangelog.js +250 -0
  54. package/build/tools/gencommit.js +60 -60
  55. package/build/tools/gendoc.d.ts +13 -0
  56. package/build/tools/gendoc.js +232 -0
  57. package/build/tools/genpr.d.ts +13 -0
  58. package/build/tools/genpr.js +194 -0
  59. package/build/tools/genreadme.d.ts +13 -0
  60. package/build/tools/genreadme.js +626 -0
  61. package/build/tools/gensql.d.ts +13 -0
  62. package/build/tools/gensql.js +320 -0
  63. package/build/tools/genui.d.ts +13 -0
  64. package/build/tools/genui.js +803 -0
  65. package/build/tools/index.d.ts +0 -1
  66. package/build/tools/index.js +0 -1
  67. package/build/tools/init_component_catalog.d.ts +22 -0
  68. package/build/tools/init_component_catalog.js +809 -0
  69. package/build/tools/init_project_context.js +432 -432
  70. package/build/tools/init_setting.d.ts +13 -0
  71. package/build/tools/init_setting.js +47 -0
  72. package/build/tools/perf.d.ts +13 -0
  73. package/build/tools/perf.js +409 -0
  74. package/build/tools/read_memory_asset.js +2 -1
  75. package/build/tools/render_ui.d.ts +22 -0
  76. package/build/tools/render_ui.js +384 -0
  77. package/build/tools/resolve_conflict.d.ts +13 -0
  78. package/build/tools/resolve_conflict.js +349 -0
  79. package/build/tools/search_memory.js +1 -0
  80. package/build/tools/security_scan.d.ts +22 -0
  81. package/build/tools/security_scan.js +323 -0
  82. package/build/tools/split.d.ts +13 -0
  83. package/build/tools/split.js +599 -0
  84. package/build/tools/start_api.d.ts +13 -0
  85. package/build/tools/start_api.js +193 -0
  86. package/build/tools/start_bugfix.js +233 -233
  87. package/build/tools/start_doc.d.ts +13 -0
  88. package/build/tools/start_doc.js +207 -0
  89. package/build/tools/start_feature.js +117 -117
  90. package/build/tools/start_product.js +1 -1
  91. package/build/tools/start_refactor.d.ts +13 -0
  92. package/build/tools/start_refactor.js +188 -0
  93. package/build/tools/start_release.d.ts +13 -0
  94. package/build/tools/start_release.js +167 -0
  95. package/build/tools/start_review.d.ts +13 -0
  96. package/build/tools/start_review.js +175 -0
  97. package/build/tools/start_ui.js +399 -399
  98. package/build/tools/ui-ux-tools.js +290 -290
  99. package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
  100. package/build/utils/themes-sync.js +8 -8
  101. package/package.json +81 -83
  102. package/build/lib/__tests__/memory-orchestration.unit.test.js +0 -84
  103. package/build/lib/__tests__/memory-payload.unit.test.js +0 -35
  104. package/build/lib/cursor-history-client.d.ts +0 -54
  105. package/build/lib/cursor-history-client.js +0 -240
  106. package/build/tools/__tests__/cursor-history.unit.test.js +0 -38
  107. package/build/tools/cursor_read_conversation.d.ts +0 -7
  108. package/build/tools/cursor_read_conversation.js +0 -36
  109. package/docs/.mcp-probe/layout.json +0 -11
  110. package/docs/CNAME +0 -1
  111. package/docs/assets/font/MaterialSymbolsOutlined.codepoints +0 -4102
  112. package/docs/assets/font/MaterialSymbolsOutlined.ttf +0 -0
  113. package/docs/assets/font/noto-sans-sc-400.ttf +0 -0
  114. package/docs/assets/font/noto-sans-sc-700.ttf +0 -0
  115. package/docs/assets/font/noto-sans-sc-900.ttf +0 -0
  116. package/docs/assets/js/i18n.js +0 -375
  117. package/docs/assets/js/tailwind.js +0 -83
  118. package/docs/assets/logo-zh.png +0 -0
  119. package/docs/assets/logo.png +0 -0
  120. package/docs/data/tools.js +0 -523
  121. package/docs/i18n/all-tools/en.json +0 -190
  122. package/docs/i18n/all-tools/ja.json +0 -171
  123. package/docs/i18n/all-tools/ko.json +0 -171
  124. package/docs/i18n/all-tools/zh-CN.json +0 -190
  125. package/docs/i18n/en.json +0 -626
  126. package/docs/i18n/ja.json +0 -602
  127. package/docs/i18n/ko.json +0 -602
  128. package/docs/i18n/zh-CN.json +0 -626
  129. package/docs/index.html +0 -327
  130. package/docs/memory-local-setup.md +0 -314
  131. package/docs/memory-local-setup.zh-CN.md +0 -283
  132. package/docs/pages/all-tools.html +0 -515
  133. package/docs/pages/examples.html +0 -717
  134. package/docs/pages/getting-started.html +0 -964
  135. package/docs/pages/migration.html +0 -308
  136. package/docs/specs/user-auth/design.md +0 -82
  137. package/docs/specs/user-auth/requirements.md +0 -52
  138. package/docs/specs/user-auth/tasks.md +0 -55
  139. /package/build/{lib/__tests__/memory-orchestration.unit.test.d.ts → tools/__tests__/read_memory_asset.unit.test.d.ts} +0 -0
  140. /package/build/{lib/__tests__/memory-payload.unit.test.d.ts → utils/design-docs-generator.d.ts} +0 -0
  141. /package/build/{tools/__tests__/cursor-history.unit.test.d.ts → utils/design-docs-generator.js} +0 -0
@@ -837,26 +837,4 @@ export declare const allToolSchemas: ({
837
837
  readonly required: readonly [];
838
838
  readonly additionalProperties: true;
839
839
  };
840
- } | {
841
- readonly name: "cursor_read_conversation";
842
- readonly description: "按 composer_id 读取一条 Cursor 本地会话的消息时间线。";
843
- readonly inputSchema: {
844
- readonly type: "object";
845
- readonly properties: {
846
- readonly composer_id: {
847
- readonly type: "string";
848
- readonly description: "Cursor 会话 ID";
849
- };
850
- readonly limit: {
851
- readonly type: "number";
852
- readonly description: "最多返回多少条消息,默认 200,最大 2000";
853
- };
854
- readonly include_empty: {
855
- readonly type: "boolean";
856
- readonly description: "是否包含空文本消息,默认 false";
857
- };
858
- };
859
- readonly required: readonly ["composer_id"];
860
- readonly additionalProperties: true;
861
- };
862
840
  })[];
@@ -147,26 +147,4 @@ export declare const memoryToolSchemas: readonly [{
147
147
  readonly required: readonly [];
148
148
  readonly additionalProperties: true;
149
149
  };
150
- }, {
151
- readonly name: "cursor_read_conversation";
152
- readonly description: "按 composer_id 读取一条 Cursor 本地会话的消息时间线。";
153
- readonly inputSchema: {
154
- readonly type: "object";
155
- readonly properties: {
156
- readonly composer_id: {
157
- readonly type: "string";
158
- readonly description: "Cursor 会话 ID";
159
- };
160
- readonly limit: {
161
- readonly type: "number";
162
- readonly description: "最多返回多少条消息,默认 200,最大 2000";
163
- };
164
- readonly include_empty: {
165
- readonly type: "boolean";
166
- readonly description: "是否包含空文本消息,默认 false";
167
- };
168
- };
169
- readonly required: readonly ["composer_id"];
170
- readonly additionalProperties: true;
171
- };
172
150
  }];
@@ -75,18 +75,4 @@ export const memoryToolSchemas = [
75
75
  additionalProperties: true,
76
76
  },
77
77
  },
78
- {
79
- name: 'cursor_read_conversation',
80
- description: '按 composer_id 读取一条 Cursor 本地会话的消息时间线。',
81
- inputSchema: {
82
- type: 'object',
83
- properties: {
84
- composer_id: { type: 'string', description: 'Cursor 会话 ID' },
85
- limit: { type: 'number', description: '最多返回多少条消息,默认 200,最大 2000' },
86
- include_empty: { type: 'boolean', description: '是否包含空文本消息,默认 false' },
87
- },
88
- required: ['composer_id'],
89
- additionalProperties: true,
90
- },
91
- },
92
78
  ];
@@ -0,0 +1,75 @@
1
+ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
2
+ const getAssetMock = vi.fn();
3
+ const isReadEnabledMock = vi.fn();
4
+ vi.mock('../../lib/memory-client.js', () => ({
5
+ createMemoryClient: () => ({
6
+ isReadEnabled: isReadEnabledMock,
7
+ getAsset: getAssetMock,
8
+ }),
9
+ }));
10
+ import { readMemoryAsset } from '../read_memory_asset.js';
11
+ import { formatReadMemoryAssetText } from '../../lib/memory-orchestration.js';
12
+ beforeEach(() => {
13
+ isReadEnabledMock.mockReset();
14
+ getAssetMock.mockReset();
15
+ });
16
+ afterEach(() => {
17
+ vi.clearAllMocks();
18
+ });
19
+ describe('formatReadMemoryAssetText', () => {
20
+ test('includes full content body', () => {
21
+ const text = formatReadMemoryAssetText({
22
+ id: 'asset-1',
23
+ name: 'playwright-e2e-testing-speed-pattern',
24
+ type: 'pattern',
25
+ description: 'Speed up Playwright E2E suites',
26
+ summary: 'Playwright E2E parallelization pattern',
27
+ content: 'export const parallelWorkers = 4;\n// use sharding',
28
+ tags: ['pattern', 'e2e'],
29
+ confidence: 0.9,
30
+ createdAt: '2026-01-01T00:00:00.000Z',
31
+ updatedAt: '2026-01-01T00:00:00.000Z',
32
+ });
33
+ expect(text).toContain('已读取记忆资产: playwright-e2e-testing-speed-pattern');
34
+ expect(text).toContain('--- content ---');
35
+ expect(text).toContain('export const parallelWorkers = 4;');
36
+ expect(text).toContain('asset_id: asset-1');
37
+ });
38
+ });
39
+ describe('read_memory_asset 单元测试', () => {
40
+ test('记忆服务未开启时返回跳过结果', async () => {
41
+ isReadEnabledMock.mockReturnValue(false);
42
+ const result = await readMemoryAsset({ asset_id: 'asset-1' });
43
+ expect(result.isError).toBe(false);
44
+ expect('structuredContent' in result).toBe(true);
45
+ if (!('structuredContent' in result)) {
46
+ throw new Error('structuredContent 缺失');
47
+ }
48
+ expect(result.content[0].text).toContain('记忆服务未开启');
49
+ expect(getAssetMock).not.toHaveBeenCalled();
50
+ });
51
+ test('命中资产时文本输出包含完整 content', async () => {
52
+ isReadEnabledMock.mockReturnValue(true);
53
+ getAssetMock.mockResolvedValue({
54
+ id: 'asset-1',
55
+ name: 'feishu-proxy-bug',
56
+ type: 'bugfix',
57
+ description: 'Feishu proxy mismatch',
58
+ summary: 'proxy caused 400 on HTTPS',
59
+ content: '【现象】submit 成功\n【根因】HTTP_PROXY 污染\n【修复】proxy:false',
60
+ tags: ['bugfix'],
61
+ confidence: 0.9,
62
+ createdAt: '2026-01-01T00:00:00.000Z',
63
+ updatedAt: '2026-01-01T00:00:00.000Z',
64
+ });
65
+ const result = await readMemoryAsset({ asset_id: 'asset-1' });
66
+ expect(result.isError).toBe(false);
67
+ expect('structuredContent' in result).toBe(true);
68
+ if (!('structuredContent' in result)) {
69
+ throw new Error('structuredContent 缺失');
70
+ }
71
+ expect(result.content[0].text).toContain('【现象】submit 成功');
72
+ expect(result.content[0].text).toContain('【修复】proxy:false');
73
+ expect(result.structuredContent.asset.content).toContain('【根因】HTTP_PROXY 污染');
74
+ });
75
+ });
@@ -17,7 +17,7 @@ afterEach(() => {
17
17
  vi.clearAllMocks();
18
18
  });
19
19
  describe('formatSearchMemoryResultsText', () => {
20
- test('renders id, summary, description and read hint', () => {
20
+ test('renders id, summary, description, content and read hint', () => {
21
21
  const text = formatSearchMemoryResultsText([
22
22
  {
23
23
  id: '6c97bd10-654e-4f25-a560-99f7469dc11a',
@@ -26,6 +26,7 @@ describe('formatSearchMemoryResultsText', () => {
26
26
  type: 'pattern',
27
27
  description: 'Speed up Playwright E2E suites',
28
28
  summary: 'Playwright E2E parallelization pattern',
29
+ content: 'export const parallelWorkers = 4;\n// use project-based sharding',
29
30
  tags: ['pattern', 'e2e'],
30
31
  },
31
32
  ]);
@@ -33,6 +34,8 @@ describe('formatSearchMemoryResultsText', () => {
33
34
  expect(text).toContain('id: 6c97bd10-654e-4f25-a560-99f7469dc11a');
34
35
  expect(text).toContain('摘要: Playwright E2E parallelization pattern');
35
36
  expect(text).toContain('描述: Speed up Playwright E2E suites');
37
+ expect(text).toContain('--- content ---');
38
+ expect(text).toContain('export const parallelWorkers = 4;');
36
39
  expect(text).toContain('read_memory_asset {"asset_id": "6c97bd10-654e-4f25-a560-99f7469dc11a"}');
37
40
  });
38
41
  test('returns empty-state text', () => {
@@ -62,6 +65,7 @@ describe('search_memory 单元测试', () => {
62
65
  type: 'bugfix',
63
66
  description: 'Feishu proxy mismatch',
64
67
  summary: 'proxy caused 400 on HTTPS',
68
+ content: '【现象】HTTPS 400\n【修复】修正 proxy 配置',
65
69
  tags: ['bugfix', 'proxy'],
66
70
  },
67
71
  ]);
@@ -74,6 +78,8 @@ describe('search_memory 单元测试', () => {
74
78
  expect(result.content[0].text).toContain('id: asset-1');
75
79
  expect(result.content[0].text).toContain('摘要: proxy caused 400 on HTTPS');
76
80
  expect(result.content[0].text).toContain('描述: Feishu proxy mismatch');
81
+ expect(result.content[0].text).toContain('--- content ---');
82
+ expect(result.content[0].text).toContain('【修复】修正 proxy 配置');
77
83
  expect(result.structuredContent.results[0]).toEqual(expect.objectContaining({
78
84
  id: 'asset-1',
79
85
  description: 'Feishu proxy mismatch',
@@ -0,0 +1 @@
1
+ export declare function analyzeProject(args: any): Promise<any>;