nodebench-mcp 3.0.0 → 3.0.2

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 (171) hide show
  1. package/NODEBENCH_AGENTS.md +74 -67
  2. package/README.md +36 -34
  3. package/dist/dashboard/operatingDashboardHtml.js +2 -1
  4. package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
  5. package/dist/dashboard/operatingServer.js +3 -2
  6. package/dist/dashboard/operatingServer.js.map +1 -1
  7. package/dist/db.js +51 -3
  8. package/dist/db.js.map +1 -1
  9. package/dist/index.js +19 -18
  10. package/dist/index.js.map +1 -1
  11. package/dist/packageInfo.d.ts +3 -0
  12. package/dist/packageInfo.js +32 -0
  13. package/dist/packageInfo.js.map +1 -0
  14. package/dist/sandboxApi.js +2 -1
  15. package/dist/sandboxApi.js.map +1 -1
  16. package/dist/tools/boilerplateTools.js +10 -9
  17. package/dist/tools/boilerplateTools.js.map +1 -1
  18. package/dist/tools/documentationTools.js +2 -1
  19. package/dist/tools/documentationTools.js.map +1 -1
  20. package/dist/tools/progressiveDiscoveryTools.js +2 -1
  21. package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
  22. package/dist/tools/toolRegistry.js +11 -0
  23. package/dist/tools/toolRegistry.js.map +1 -1
  24. package/dist/toolsetRegistry.js +74 -1
  25. package/dist/toolsetRegistry.js.map +1 -1
  26. package/package.json +7 -6
  27. package/scripts/install.sh +14 -14
  28. package/dist/__tests__/analytics.test.d.ts +0 -11
  29. package/dist/__tests__/analytics.test.js +0 -546
  30. package/dist/__tests__/analytics.test.js.map +0 -1
  31. package/dist/__tests__/architectComplex.test.d.ts +0 -1
  32. package/dist/__tests__/architectComplex.test.js +0 -373
  33. package/dist/__tests__/architectComplex.test.js.map +0 -1
  34. package/dist/__tests__/architectSmoke.test.d.ts +0 -1
  35. package/dist/__tests__/architectSmoke.test.js +0 -92
  36. package/dist/__tests__/architectSmoke.test.js.map +0 -1
  37. package/dist/__tests__/audit-registry.d.ts +0 -1
  38. package/dist/__tests__/audit-registry.js +0 -60
  39. package/dist/__tests__/audit-registry.js.map +0 -1
  40. package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
  41. package/dist/__tests__/batchAutopilot.test.js +0 -218
  42. package/dist/__tests__/batchAutopilot.test.js.map +0 -1
  43. package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
  44. package/dist/__tests__/cliSubcommands.test.js +0 -138
  45. package/dist/__tests__/cliSubcommands.test.js.map +0 -1
  46. package/dist/__tests__/comparativeBench.test.d.ts +0 -1
  47. package/dist/__tests__/comparativeBench.test.js +0 -722
  48. package/dist/__tests__/comparativeBench.test.js.map +0 -1
  49. package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
  50. package/dist/__tests__/critterCalibrationEval.js +0 -370
  51. package/dist/__tests__/critterCalibrationEval.js.map +0 -1
  52. package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
  53. package/dist/__tests__/dynamicLoading.test.js +0 -280
  54. package/dist/__tests__/dynamicLoading.test.js.map +0 -1
  55. package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
  56. package/dist/__tests__/embeddingProvider.test.js +0 -86
  57. package/dist/__tests__/embeddingProvider.test.js.map +0 -1
  58. package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
  59. package/dist/__tests__/evalDatasetBench.test.js +0 -738
  60. package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
  61. package/dist/__tests__/evalHarness.test.d.ts +0 -1
  62. package/dist/__tests__/evalHarness.test.js +0 -1107
  63. package/dist/__tests__/evalHarness.test.js.map +0 -1
  64. package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
  65. package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
  66. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
  67. package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
  68. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
  69. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
  70. package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
  71. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
  72. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
  73. package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
  74. package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
  75. package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
  76. package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
  77. package/dist/__tests__/forecastingDogfood.test.js +0 -284
  78. package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
  79. package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
  80. package/dist/__tests__/forecastingScoring.test.js +0 -202
  81. package/dist/__tests__/forecastingScoring.test.js.map +0 -1
  82. package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
  83. package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
  84. package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
  85. package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
  86. package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
  87. package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
  88. package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
  89. package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
  90. package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
  91. package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
  92. package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
  93. package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
  94. package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
  95. package/dist/__tests__/helpers/answerMatch.js +0 -267
  96. package/dist/__tests__/helpers/answerMatch.js.map +0 -1
  97. package/dist/__tests__/helpers/textLlm.d.ts +0 -25
  98. package/dist/__tests__/helpers/textLlm.js +0 -214
  99. package/dist/__tests__/helpers/textLlm.js.map +0 -1
  100. package/dist/__tests__/localDashboard.test.d.ts +0 -1
  101. package/dist/__tests__/localDashboard.test.js +0 -226
  102. package/dist/__tests__/localDashboard.test.js.map +0 -1
  103. package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
  104. package/dist/__tests__/multiHopDogfood.test.js +0 -303
  105. package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
  106. package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
  107. package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
  108. package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
  109. package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
  110. package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
  111. package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
  112. package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
  113. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
  114. package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
  115. package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
  116. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
  117. package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
  118. package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
  119. package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
  120. package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
  121. package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
  122. package/dist/__tests__/openclawDogfood.test.js +0 -535
  123. package/dist/__tests__/openclawDogfood.test.js.map +0 -1
  124. package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
  125. package/dist/__tests__/openclawMessaging.test.js +0 -232
  126. package/dist/__tests__/openclawMessaging.test.js.map +0 -1
  127. package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
  128. package/dist/__tests__/presetRealWorldBench.test.js +0 -859
  129. package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
  130. package/dist/__tests__/tools.test.d.ts +0 -1
  131. package/dist/__tests__/tools.test.js +0 -3201
  132. package/dist/__tests__/tools.test.js.map +0 -1
  133. package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
  134. package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
  135. package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
  136. package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
  137. package/dist/__tests__/traceabilityDogfood.test.js +0 -241
  138. package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
  139. package/dist/__tests__/webmcpTools.test.d.ts +0 -7
  140. package/dist/__tests__/webmcpTools.test.js +0 -195
  141. package/dist/__tests__/webmcpTools.test.js.map +0 -1
  142. package/dist/benchmarks/testProviderBus.d.ts +0 -7
  143. package/dist/benchmarks/testProviderBus.js +0 -272
  144. package/dist/benchmarks/testProviderBus.js.map +0 -1
  145. package/dist/hooks/postCompaction.d.ts +0 -14
  146. package/dist/hooks/postCompaction.js +0 -51
  147. package/dist/hooks/postCompaction.js.map +0 -1
  148. package/dist/security/__tests__/security.test.d.ts +0 -8
  149. package/dist/security/__tests__/security.test.js +0 -295
  150. package/dist/security/__tests__/security.test.js.map +0 -1
  151. package/dist/sync/hyperloopEval.test.d.ts +0 -4
  152. package/dist/sync/hyperloopEval.test.js +0 -60
  153. package/dist/sync/hyperloopEval.test.js.map +0 -1
  154. package/dist/sync/store.test.d.ts +0 -4
  155. package/dist/sync/store.test.js +0 -43
  156. package/dist/sync/store.test.js.map +0 -1
  157. package/dist/tools/documentTools.d.ts +0 -5
  158. package/dist/tools/documentTools.js +0 -524
  159. package/dist/tools/documentTools.js.map +0 -1
  160. package/dist/tools/financialTools.d.ts +0 -10
  161. package/dist/tools/financialTools.js +0 -403
  162. package/dist/tools/financialTools.js.map +0 -1
  163. package/dist/tools/memoryTools.d.ts +0 -5
  164. package/dist/tools/memoryTools.js +0 -137
  165. package/dist/tools/memoryTools.js.map +0 -1
  166. package/dist/tools/planningTools.d.ts +0 -5
  167. package/dist/tools/planningTools.js +0 -147
  168. package/dist/tools/planningTools.js.map +0 -1
  169. package/dist/tools/searchTools.d.ts +0 -5
  170. package/dist/tools/searchTools.js +0 -145
  171. package/dist/tools/searchTools.js.map +0 -1
@@ -1,373 +0,0 @@
1
- /**
2
- * Complex end-to-end tests for architect tools — exercises all 3 tools against
3
- * real files in the monorepo with diverse patterns (React components, backend
4
- * servers, MCP tool files) to verify accuracy at scale.
5
- */
6
- import { describe, it, expect } from "vitest";
7
- import { architectTools } from "../tools/architectTools.js";
8
- import { resolve } from "node:path";
9
- const callTool = async (name, args) => {
10
- const tool = architectTools.find((t) => t.name === name);
11
- if (!tool)
12
- throw new Error(`Tool not found: ${name}`);
13
- return tool.handler(args);
14
- };
15
- // ── Real files in the monorepo ──────────────────────────────────────────────
16
- /** React component with useState, useEffect, useRef, useCallback, framer-motion, lazy loading */
17
- const MAIN_LAYOUT = resolve(import.meta.dirname, "../../../../src/components/MainLayout.tsx");
18
- /** React component with useState, useEffect, useRef, useMemo, framer-motion, keyboard input */
19
- const COMMAND_PALETTE = resolve(import.meta.dirname, "../../../../src/components/CommandPalette.tsx");
20
- /** HTTP server with routes, middleware-like patterns, auth token check */
21
- const HTTP_SERVER = resolve(import.meta.dirname, "../../../../mcp_tools/gateway_server/httpServer.ts");
22
- /** MCP tool file — pure Node.js, SQLite, McpTool pattern, no React */
23
- const SEO_TOOLS = resolve(import.meta.dirname, "../tools/seoTools.ts");
24
- /** Progressive discovery — hybrid search, complex logic, no React */
25
- const DISCOVERY_TOOLS = resolve(import.meta.dirname, "../tools/progressiveDiscoveryTools.ts");
26
- // ── 1. scan_capabilities — React component (MainLayout) ────────────────────
27
- describe("Architect Tools — Complex E2E: scan_capabilities", () => {
28
- it("detects React hooks in MainLayout.tsx", async () => {
29
- const r = (await callTool("scan_capabilities", {
30
- file_path: MAIN_LAYOUT,
31
- }));
32
- // MainLayout imports useState, useEffect, useCallback
33
- // Note: useRef regex requires `useRef<` (with generic) — MainLayout uses useRef() without generic
34
- expect(r.state_management.effects).toBeGreaterThan(0); // has useEffect
35
- expect(r.state_management.callbacks).toBeGreaterThan(0); // has useCallback
36
- // imports
37
- expect(r.imports.has_react).toBe(true);
38
- expect(r.imports.count).toBeGreaterThan(5); // many imports
39
- // Note: framer-motion was removed in the Jony Ive animation pass; animation check skipped
40
- });
41
- it("detects keyboard shortcuts in CommandPalette.tsx", async () => {
42
- const r = (await callTool("scan_capabilities", {
43
- file_path: COMMAND_PALETTE,
44
- }));
45
- // CommandPalette uses useState, useEffect, useRef, useMemo
46
- expect(r.state_management.effects).toBeGreaterThan(0);
47
- expect(r.state_management.memos).toBeGreaterThan(0);
48
- expect(r.imports.has_react).toBe(true);
49
- // Note: framer-motion was removed; animation check skipped
50
- // dynamic lists (.map(() => ...))
51
- expect(r.rendering_capabilities.dynamic_lists).toBeGreaterThan(0);
52
- });
53
- it("detects backend patterns in httpServer.ts", async () => {
54
- const r = (await callTool("scan_capabilities", {
55
- file_path: HTTP_SERVER,
56
- }));
57
- // No React
58
- expect(r.imports.has_react).toBe(false);
59
- expect(r.state_management.boolean_flags).toBe(0);
60
- expect(r.state_management.effects).toBe(0);
61
- // Has imports and exports
62
- expect(r.imports.count).toBeGreaterThan(0);
63
- // backend file characteristics
64
- expect(r.file.lines).toBeGreaterThan(50);
65
- });
66
- it("detects MCP tool patterns in seoTools.ts", async () => {
67
- const r = (await callTool("scan_capabilities", {
68
- file_path: SEO_TOOLS,
69
- }));
70
- // No React — pure Node.js tool file
71
- expect(r.imports.has_react).toBe(false);
72
- expect(r.state_management.effects).toBe(0);
73
- // Has named exports (the tools array)
74
- expect(r.exports.named_exports).toBeGreaterThan(0);
75
- // Has imports
76
- expect(r.imports.count).toBeGreaterThan(0);
77
- // dynamic lists (likely .map calls in the tool logic)
78
- expect(r.rendering_capabilities.dynamic_lists).toBeGreaterThanOrEqual(0);
79
- });
80
- });
81
- // ── 2. verify_concept_support — concept verification at scale ───────────────
82
- describe("Architect Tools — Complex E2E: verify_concept_support", () => {
83
- it("verifies 'React SPA with Routing' against MainLayout → Fully Implemented", async () => {
84
- const r = (await callTool("verify_concept_support", {
85
- file_path: MAIN_LAYOUT,
86
- concept_name: "React SPA with Routing",
87
- required_signatures: [
88
- "useState",
89
- "useEffect",
90
- "useCallback",
91
- "useRef",
92
- "from.*react",
93
- ],
94
- }));
95
- expect(r.status).toBe("Fully Implemented");
96
- expect(r.match_score).toBe("100%");
97
- expect(r.gap_analysis).toHaveLength(0);
98
- expect(r.id).toMatch(/^cv_/);
99
- });
100
- it.skip("verifies 'Animation System' against MainLayout → detects framer-motion", async () => {
101
- const r = (await callTool("verify_concept_support", {
102
- file_path: MAIN_LAYOUT,
103
- concept_name: "Animation System",
104
- required_signatures: [
105
- "framer-motion",
106
- "AnimatePresence",
107
- "motion",
108
- ],
109
- }));
110
- expect(r.status).toBe("Fully Implemented");
111
- expect(r.match_score).toBe("100%");
112
- expect(r.evidence_found).toContain("framer-motion");
113
- expect(r.evidence_found).toContain("AnimatePresence");
114
- });
115
- it("verifies 'WebSocket Support' against MainLayout → Not Implemented", async () => {
116
- const r = (await callTool("verify_concept_support", {
117
- file_path: MAIN_LAYOUT,
118
- concept_name: "WebSocket Support",
119
- required_signatures: [
120
- "WebSocket",
121
- "wss://",
122
- "socket\\.on",
123
- "onmessage",
124
- ],
125
- }));
126
- expect(r.status).toBe("Not Implemented");
127
- expect(r.match_score).toBe("0%");
128
- expect(r.gap_analysis).toHaveLength(4);
129
- });
130
- it("verifies 'MCP Tool Pattern' against seoTools → Fully Implemented", async () => {
131
- const r = (await callTool("verify_concept_support", {
132
- file_path: SEO_TOOLS,
133
- concept_name: "MCP Tool Pattern",
134
- required_signatures: [
135
- "McpTool",
136
- "name:",
137
- "description:",
138
- "inputSchema",
139
- "handler",
140
- ],
141
- }));
142
- expect(r.status).toBe("Fully Implemented");
143
- expect(r.match_score).toBe("100%");
144
- expect(r.evidence_found).toHaveLength(5);
145
- });
146
- it("verifies 'Hybrid Search' against progressiveDiscoveryTools → detects search patterns", async () => {
147
- const r = (await callTool("verify_concept_support", {
148
- file_path: DISCOVERY_TOOLS,
149
- concept_name: "Hybrid Search System",
150
- required_signatures: [
151
- "hybridSearch",
152
- "score",
153
- "keyword|fuzzy|prefix|semantic",
154
- "WORKFLOW_CHAINS",
155
- ],
156
- }));
157
- expect(r.status).toBe("Fully Implemented");
158
- expect(r.match_score).toBe("100%");
159
- });
160
- it("verifies 'GraphQL API' against httpServer → Not Implemented", async () => {
161
- const r = (await callTool("verify_concept_support", {
162
- file_path: HTTP_SERVER,
163
- concept_name: "GraphQL API",
164
- required_signatures: [
165
- "typeDefs",
166
- "resolvers",
167
- "gql`",
168
- "graphqlHTTP",
169
- ],
170
- }));
171
- expect(r.status).toBe("Not Implemented");
172
- expect(r.match_score).toBe("0%");
173
- expect(r.gap_analysis).toHaveLength(4);
174
- });
175
- it("handles partial implementation correctly (50-99%)", async () => {
176
- // CommandPalette has useState, useEffect, useMemo but NOT useReducer or useContext
177
- const r = (await callTool("verify_concept_support", {
178
- file_path: COMMAND_PALETTE,
179
- concept_name: "Advanced State Management",
180
- required_signatures: [
181
- "useState",
182
- "useEffect",
183
- "useMemo",
184
- "useReducer",
185
- "useContext",
186
- ],
187
- }));
188
- expect(r.status).toBe("Partially Implemented");
189
- expect(parseInt(r.match_score)).toBe(60); // 3/5 = 60%
190
- expect(r.evidence_found).toContain("useState");
191
- expect(r.evidence_found).toContain("useEffect");
192
- expect(r.evidence_found).toContain("useMemo");
193
- expect(r.gap_analysis).toContain("useReducer");
194
- expect(r.gap_analysis).toContain("useContext");
195
- });
196
- });
197
- // ── 3. Full self-discovery loop: scan → verify → plan ───────────────────────
198
- describe("Architect Tools — Complex E2E: Full Self-Discovery Loop", () => {
199
- it("scan → verify → plan for 'Real-time Collaboration' on MainLayout", async () => {
200
- // Step 1: Scan the file
201
- const scan = (await callTool("scan_capabilities", {
202
- file_path: MAIN_LAYOUT,
203
- }));
204
- expect(scan.file.lines).toBeGreaterThan(100);
205
- // Step 2: Verify the concept
206
- const verify = (await callTool("verify_concept_support", {
207
- file_path: MAIN_LAYOUT,
208
- concept_name: "Real-time Collaboration",
209
- required_signatures: [
210
- "WebSocket|socket\\.io",
211
- "cursor.*position|presence",
212
- "conflict.*resolution|CRDT",
213
- "broadcast|emit",
214
- ],
215
- }));
216
- expect(verify.status).toBe("Not Implemented");
217
- expect(verify.gap_analysis.length).toBeGreaterThan(0);
218
- // Step 3: Generate implementation plan from the gaps
219
- const plan = (await callTool("generate_implementation_plan", {
220
- concept_name: "Real-time Collaboration",
221
- missing_signatures: verify.gap_analysis,
222
- current_context: JSON.stringify({
223
- has_react: scan.imports.has_react,
224
- has_effects: scan.state_management.effects > 0,
225
- has_refs: scan.state_management.refs > 0,
226
- has_animation: scan.interaction_patterns.animation,
227
- }),
228
- target_file: MAIN_LAYOUT,
229
- }));
230
- expect(plan.concept).toBe("Real-time Collaboration");
231
- expect(plan.total_steps).toBe(verify.gap_analysis.length);
232
- expect(plan.context_provided).toBe(true);
233
- expect(plan.steps.length).toBe(verify.gap_analysis.length);
234
- // Each step should have a strategy
235
- for (const step of plan.steps) {
236
- expect(step.strategy).toBeTruthy();
237
- expect(step.requirement).toBeTruthy();
238
- expect(step.conflicts).toContain("Review current context");
239
- }
240
- });
241
- it("scan → verify → plan for 'Canvas Artifacts' on CommandPalette", async () => {
242
- // Step 1: Scan
243
- const scan = (await callTool("scan_capabilities", {
244
- file_path: COMMAND_PALETTE,
245
- }));
246
- // Step 2: Verify
247
- const verify = (await callTool("verify_concept_support", {
248
- file_path: COMMAND_PALETTE,
249
- concept_name: "Canvas Artifacts",
250
- required_signatures: [
251
- "canvas|Canvas",
252
- "getContext\\(['\"]2d",
253
- "drawImage|fillRect",
254
- "useRef.*canvas",
255
- "onMouseDown|onPointerDown",
256
- ],
257
- }));
258
- expect(verify.status).toBe("Not Implemented");
259
- // Step 3: Plan
260
- const plan = (await callTool("generate_implementation_plan", {
261
- concept_name: "Canvas Artifacts",
262
- missing_signatures: verify.gap_analysis,
263
- current_context: `React component with ${scan.state_management.effects} effects, ${scan.state_management.memos} memos, animation: ${scan.interaction_patterns.animation}`,
264
- target_file: COMMAND_PALETTE,
265
- }));
266
- expect(plan.total_steps).toBe(5);
267
- expect(plan.estimated_complexity).toBe("medium"); // 5 steps = medium
268
- expect(plan.workflow).toHaveLength(4);
269
- });
270
- it("scan → verify → plan for 'REST API with Auth' on httpServer", async () => {
271
- // Step 1: Scan
272
- const scan = (await callTool("scan_capabilities", {
273
- file_path: HTTP_SERVER,
274
- }));
275
- // Step 2: Verify REST API with auth
276
- const verify = (await callTool("verify_concept_support", {
277
- file_path: HTTP_SERVER,
278
- concept_name: "REST API with Authentication",
279
- required_signatures: [
280
- "http|express",
281
- "createServer|listen",
282
- "JSON\\.parse|json\\(",
283
- "token|auth|bearer",
284
- ],
285
- }));
286
- // httpServer.ts should have most of these
287
- expect(parseInt(verify.match_score)).toBeGreaterThanOrEqual(75);
288
- // Step 3: Plan for any gaps
289
- if (verify.gap_analysis.length > 0) {
290
- const plan = (await callTool("generate_implementation_plan", {
291
- concept_name: "REST API with Authentication",
292
- missing_signatures: verify.gap_analysis,
293
- current_context: JSON.stringify(scan.backend_patterns),
294
- target_file: HTTP_SERVER,
295
- }));
296
- expect(plan.total_steps).toBe(verify.gap_analysis.length);
297
- expect(plan.context_provided).toBe(true);
298
- }
299
- });
300
- it("handles zero-gap scenario gracefully (plan with 0 steps)", async () => {
301
- // Verify something that fully exists
302
- const verify = (await callTool("verify_concept_support", {
303
- file_path: SEO_TOOLS,
304
- concept_name: "MCP Tool Pattern",
305
- required_signatures: ["McpTool", "handler", "inputSchema"],
306
- }));
307
- expect(verify.status).toBe("Fully Implemented");
308
- expect(verify.gap_analysis).toHaveLength(0);
309
- // Plan with empty missing_signatures
310
- const plan = (await callTool("generate_implementation_plan", {
311
- concept_name: "MCP Tool Pattern",
312
- missing_signatures: [],
313
- target_file: SEO_TOOLS,
314
- }));
315
- expect(plan.total_steps).toBe(0);
316
- expect(plan.steps).toHaveLength(0);
317
- expect(plan.estimated_complexity).toBe("low");
318
- });
319
- });
320
- // ── 4. Edge cases and stress tests ──────────────────────────────────────────
321
- describe("Architect Tools — Complex E2E: Edge Cases", () => {
322
- it("scan_capabilities handles large files (progressiveDiscoveryTools)", async () => {
323
- const r = (await callTool("scan_capabilities", {
324
- file_path: DISCOVERY_TOOLS,
325
- }));
326
- // Large file
327
- expect(r.file.lines).toBeGreaterThan(200);
328
- expect(r.file.sizeBytes).toBeGreaterThan(5000);
329
- // Has exports
330
- expect(r.exports.named_exports).toBeGreaterThan(0);
331
- });
332
- it("verify_concept_support handles regex-heavy signatures", async () => {
333
- const r = (await callTool("verify_concept_support", {
334
- file_path: DISCOVERY_TOOLS,
335
- concept_name: "Search Engine Internals",
336
- required_signatures: [
337
- "toLowerCase\\(\\)",
338
- "for \\(",
339
- "hybridSearch",
340
- "WORKFLOW_CHAINS",
341
- ],
342
- }));
343
- // Progressive discovery uses toLowerCase, for loops, hybridSearch function, WORKFLOW_CHAINS
344
- expect(parseInt(r.match_score)).toBe(100);
345
- });
346
- it("generate_implementation_plan infers correct strategies for diverse patterns", async () => {
347
- const r = (await callTool("generate_implementation_plan", {
348
- concept_name: "Full Stack Feature",
349
- missing_signatures: [
350
- "useState",
351
- "app.post(",
352
- "db.prepare(",
353
- "verifyToken",
354
- "WebSocket",
355
- "onKeyDown",
356
- "navigator.clipboard",
357
- ],
358
- current_context: "Empty file, starting from scratch",
359
- }));
360
- expect(r.total_steps).toBe(7);
361
- expect(r.estimated_complexity).toBe("high"); // 7 steps > 5
362
- // Verify each strategy maps to the correct category
363
- const strategies = r.steps.map((s) => s.strategy);
364
- expect(strategies[0]).toContain("React hook"); // useState
365
- expect(strategies[1]).toContain("route"); // app.post
366
- expect(strategies[2]).toContain("database"); // db.prepare
367
- expect(strategies[3]).toContain("auth"); // verifyToken
368
- expect(strategies[4]).toContain("WebSocket"); // WebSocket
369
- expect(strategies[5]).toContain("keyboard"); // onKeyDown
370
- expect(strategies[6]).toContain("clipboard"); // navigator.clipboard
371
- });
372
- });
373
- //# sourceMappingURL=architectComplex.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"architectComplex.test.js","sourceRoot":"","sources":["../../src/__tests__/architectComplex.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,92 +0,0 @@
1
- /**
2
- * Smoke test for architect tools — runs all 3 tools against real files.
3
- */
4
- import { describe, it, expect } from "vitest";
5
- import { architectTools } from "../tools/architectTools.js";
6
- import { resolve } from "node:path";
7
- const callTool = async (name, args) => {
8
- const tool = architectTools.find((t) => t.name === name);
9
- if (!tool)
10
- throw new Error(`Tool not found: ${name}`);
11
- return tool.handler(args);
12
- };
13
- // Use a known file in the repo
14
- const FIXTURE_PATH = resolve(import.meta.dirname, "../tools/critterTools.ts");
15
- describe("Architect Tools — Smoke Tests", () => {
16
- it("scan_capabilities returns structured capability report", async () => {
17
- const result = (await callTool("scan_capabilities", {
18
- file_path: FIXTURE_PATH,
19
- }));
20
- console.log("scan_capabilities result:", JSON.stringify(result, null, 2));
21
- // Should have all top-level sections
22
- expect(result.file).toBeDefined();
23
- expect(result.file.path).toBe(FIXTURE_PATH);
24
- expect(result.file.lines).toBeGreaterThan(0);
25
- expect(result.state_management).toBeDefined();
26
- expect(result.layout_structure).toBeDefined();
27
- expect(result.interaction_patterns).toBeDefined();
28
- expect(result.rendering_capabilities).toBeDefined();
29
- expect(result.backend_patterns).toBeDefined();
30
- expect(result.imports).toBeDefined();
31
- expect(result.exports).toBeDefined();
32
- // critterTools.ts should have some imports and exports
33
- expect(result.imports.count).toBeGreaterThan(0);
34
- expect(result.exports.named_exports).toBeGreaterThan(0);
35
- });
36
- it("verify_concept_support detects patterns and persists to SQLite", async () => {
37
- const result = (await callTool("verify_concept_support", {
38
- file_path: FIXTURE_PATH,
39
- concept_name: "SQLite Persistence",
40
- required_signatures: [
41
- "getDb",
42
- "CREATE TABLE",
43
- "db\\.prepare",
44
- "McpTool",
45
- ],
46
- }));
47
- console.log("verify_concept_support result:", JSON.stringify(result, null, 2));
48
- expect(result.concept).toBe("SQLite Persistence");
49
- expect(result.status).toBe("Fully Implemented");
50
- expect(result.match_score).toBe("100%");
51
- expect(result.evidence_found).toHaveLength(4);
52
- expect(result.gap_analysis).toHaveLength(0);
53
- expect(result.id).toMatch(/^cv_/);
54
- });
55
- it("verify_concept_support reports gaps correctly", async () => {
56
- const result = (await callTool("verify_concept_support", {
57
- file_path: FIXTURE_PATH,
58
- concept_name: "React UI Component",
59
- required_signatures: [
60
- "useState",
61
- "useEffect",
62
- "return.*<div",
63
- "export default",
64
- ],
65
- }));
66
- console.log("verify_concept_support (gaps) result:", JSON.stringify(result, null, 2));
67
- expect(result.status).toBe("Not Implemented");
68
- expect(result.gap_analysis.length).toBeGreaterThan(0);
69
- expect(parseInt(result.match_score)).toBeLessThan(50);
70
- });
71
- it("generate_implementation_plan builds structured plan", async () => {
72
- const result = (await callTool("generate_implementation_plan", {
73
- concept_name: "Dark Mode Toggle",
74
- missing_signatures: [
75
- "prefers-color-scheme",
76
- "theme.*dark",
77
- "useEffect",
78
- ],
79
- current_context: "File has getDb import, McpTool exports, no React hooks",
80
- target_file: FIXTURE_PATH,
81
- }));
82
- console.log("generate_implementation_plan result:", JSON.stringify(result, null, 2));
83
- expect(result.concept).toBe("Dark Mode Toggle");
84
- expect(result.total_steps).toBe(3);
85
- expect(result.steps).toHaveLength(3);
86
- expect(result.steps[0].requirement).toBe("prefers-color-scheme");
87
- expect(result.steps[0].strategy).toBeTruthy();
88
- expect(result.workflow).toHaveLength(4);
89
- expect(result.context_provided).toBe(true);
90
- });
91
- });
92
- //# sourceMappingURL=architectSmoke.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"architectSmoke.test.js","sourceRoot":"","sources":["../../src/__tests__/architectSmoke.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,60 +0,0 @@
1
- import { TOOL_REGISTRY } from "../tools/toolRegistry.js";
2
- import { verificationTools } from "../tools/verificationTools.js";
3
- import { evalTools } from "../tools/evalTools.js";
4
- import { qualityGateTools } from "../tools/qualityGateTools.js";
5
- import { learningTools } from "../tools/learningTools.js";
6
- import { flywheelTools } from "../tools/flywheelTools.js";
7
- import { reconTools } from "../tools/reconTools.js";
8
- import { uiCaptureTools } from "../tools/uiCaptureTools.js";
9
- import { visionTools } from "../tools/visionTools.js";
10
- import { localFileTools } from "../tools/localFileTools.js";
11
- import { webTools } from "../tools/webTools.js";
12
- import { githubTools } from "../tools/githubTools.js";
13
- import { documentationTools } from "../tools/documentationTools.js";
14
- import { agentBootstrapTools } from "../tools/agentBootstrapTools.js";
15
- import { selfEvalTools } from "../tools/selfEvalTools.js";
16
- import { parallelAgentTools } from "../tools/parallelAgentTools.js";
17
- import { llmTools } from "../tools/llmTools.js";
18
- import { securityTools } from "../tools/securityTools.js";
19
- import { platformTools } from "../tools/platformTools.js";
20
- import { researchWritingTools } from "../tools/researchWritingTools.js";
21
- import { flickerDetectionTools } from "../tools/flickerDetectionTools.js";
22
- import { figmaFlowTools } from "../tools/figmaFlowTools.js";
23
- import { boilerplateTools } from "../tools/boilerplateTools.js";
24
- import { cCompilerBenchmarkTools } from "../tools/cCompilerBenchmarkTools.js";
25
- import { createMetaTools } from "../tools/metaTools.js";
26
- import { createProgressiveDiscoveryTools } from "../tools/progressiveDiscoveryTools.js";
27
- const domain = [
28
- ...verificationTools, ...evalTools, ...qualityGateTools, ...learningTools,
29
- ...flywheelTools, ...reconTools, ...uiCaptureTools, ...visionTools,
30
- ...localFileTools, ...webTools, ...githubTools, ...documentationTools,
31
- ...agentBootstrapTools, ...selfEvalTools, ...parallelAgentTools,
32
- ...llmTools, ...securityTools, ...platformTools, ...researchWritingTools,
33
- ...flickerDetectionTools, ...figmaFlowTools, ...boilerplateTools,
34
- ...cCompilerBenchmarkTools,
35
- ];
36
- const meta = createMetaTools(domain);
37
- const base = [...domain, ...meta];
38
- const discovery = createProgressiveDiscoveryTools(base);
39
- const all = [...base, ...discovery];
40
- const allNames = all.map(t => t.name);
41
- const registryNames = new Set([...TOOL_REGISTRY.keys()]);
42
- const missing = allNames.filter(n => !registryNames.has(n));
43
- const extra = [...registryNames].filter(n => !allNames.includes(n));
44
- console.log(`Actual tools: ${allNames.length}`);
45
- console.log(`Registry entries: ${registryNames.size}`);
46
- console.log(`\nMISSING from registry (${missing.length}):`);
47
- missing.forEach(n => console.log(` - ${n}`));
48
- console.log(`\nExtra in registry, not actual tools (${extra.length}):`);
49
- extra.forEach(n => console.log(` - ${n}`));
50
- // Also check search quality
51
- import { hybridSearch } from "../tools/toolRegistry.js";
52
- const toolDescs = all.map(t => ({ name: t.name, description: t.description }));
53
- const queries = ["verify", "test", "search", "benchmark", "scaffold", "parallel", "security"];
54
- console.log(`\n--- SEARCH QUALITY AUDIT ---`);
55
- for (const q of queries) {
56
- const results = hybridSearch(q, toolDescs, { limit: 5 });
57
- console.log(`\nQuery: "${q}" → ${results.length} results`);
58
- results.forEach((r, i) => console.log(` ${i + 1}. ${r.name} (score: ${r.score})`));
59
- }
60
- //# sourceMappingURL=audit-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-registry.js","sourceRoot":"","sources":["../../src/__tests__/audit-registry.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * batchAutopilot.test.ts — Tests for Batch Autopilot MCP tools
3
- *
4
- * Validates the 5 batch autopilot tools added to openclawTools:
5
- * setup_operator_profile, get_autopilot_status, trigger_batch_run,
6
- * get_batch_run_history, sync_operator_profile
7
- */
8
- export {};