nodebench-mcp 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/operatingDashboardHtml.js +2 -1
- package/dist/dashboard/operatingDashboardHtml.js.map +1 -1
- package/dist/dashboard/operatingServer.js +3 -2
- package/dist/dashboard/operatingServer.js.map +1 -1
- package/dist/db.js +51 -3
- package/dist/db.js.map +1 -1
- package/dist/index.js +13 -16
- package/dist/index.js.map +1 -1
- package/dist/packageInfo.d.ts +3 -0
- package/dist/packageInfo.js +32 -0
- package/dist/packageInfo.js.map +1 -0
- package/dist/sandboxApi.js +2 -1
- package/dist/sandboxApi.js.map +1 -1
- package/dist/tools/boilerplateTools.js +10 -9
- package/dist/tools/boilerplateTools.js.map +1 -1
- package/dist/tools/documentationTools.js +2 -1
- package/dist/tools/documentationTools.js.map +1 -1
- package/dist/tools/progressiveDiscoveryTools.js +2 -1
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/toolRegistry.js +11 -0
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/toolsetRegistry.js +74 -1
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +4 -3
- package/dist/__tests__/analytics.test.d.ts +0 -11
- package/dist/__tests__/analytics.test.js +0 -546
- package/dist/__tests__/analytics.test.js.map +0 -1
- package/dist/__tests__/architectComplex.test.d.ts +0 -1
- package/dist/__tests__/architectComplex.test.js +0 -373
- package/dist/__tests__/architectComplex.test.js.map +0 -1
- package/dist/__tests__/architectSmoke.test.d.ts +0 -1
- package/dist/__tests__/architectSmoke.test.js +0 -92
- package/dist/__tests__/architectSmoke.test.js.map +0 -1
- package/dist/__tests__/audit-registry.d.ts +0 -1
- package/dist/__tests__/audit-registry.js +0 -60
- package/dist/__tests__/audit-registry.js.map +0 -1
- package/dist/__tests__/batchAutopilot.test.d.ts +0 -8
- package/dist/__tests__/batchAutopilot.test.js +0 -218
- package/dist/__tests__/batchAutopilot.test.js.map +0 -1
- package/dist/__tests__/cliSubcommands.test.d.ts +0 -1
- package/dist/__tests__/cliSubcommands.test.js +0 -138
- package/dist/__tests__/cliSubcommands.test.js.map +0 -1
- package/dist/__tests__/comparativeBench.test.d.ts +0 -1
- package/dist/__tests__/comparativeBench.test.js +0 -722
- package/dist/__tests__/comparativeBench.test.js.map +0 -1
- package/dist/__tests__/critterCalibrationEval.d.ts +0 -8
- package/dist/__tests__/critterCalibrationEval.js +0 -370
- package/dist/__tests__/critterCalibrationEval.js.map +0 -1
- package/dist/__tests__/dynamicLoading.test.d.ts +0 -1
- package/dist/__tests__/dynamicLoading.test.js +0 -280
- package/dist/__tests__/dynamicLoading.test.js.map +0 -1
- package/dist/__tests__/embeddingProvider.test.d.ts +0 -1
- package/dist/__tests__/embeddingProvider.test.js +0 -86
- package/dist/__tests__/embeddingProvider.test.js.map +0 -1
- package/dist/__tests__/evalDatasetBench.test.d.ts +0 -1
- package/dist/__tests__/evalDatasetBench.test.js +0 -738
- package/dist/__tests__/evalDatasetBench.test.js.map +0 -1
- package/dist/__tests__/evalHarness.test.d.ts +0 -1
- package/dist/__tests__/evalHarness.test.js +0 -1107
- package/dist/__tests__/evalHarness.test.js.map +0 -1
- package/dist/__tests__/fixtures/bfcl_v3_long_context.sample.json +0 -264
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.d.ts +0 -10
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js +0 -135
- package/dist/__tests__/fixtures/generateBfclLongContextFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.d.ts +0 -14
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js +0 -189
- package/dist/__tests__/fixtures/generateSwebenchVerifiedFixture.js.map +0 -1
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.d.ts +0 -16
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js +0 -154
- package/dist/__tests__/fixtures/generateToolbenchInstructionFixture.js.map +0 -1
- package/dist/__tests__/fixtures/swebench_verified.sample.json +0 -162
- package/dist/__tests__/fixtures/toolbench_instruction.sample.json +0 -109
- package/dist/__tests__/forecastingDogfood.test.d.ts +0 -9
- package/dist/__tests__/forecastingDogfood.test.js +0 -284
- package/dist/__tests__/forecastingDogfood.test.js.map +0 -1
- package/dist/__tests__/forecastingScoring.test.d.ts +0 -9
- package/dist/__tests__/forecastingScoring.test.js +0 -202
- package/dist/__tests__/forecastingScoring.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityAudioEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js +0 -265
- package/dist/__tests__/gaiaCapabilityAudioEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityEval.test.d.ts +0 -14
- package/dist/__tests__/gaiaCapabilityEval.test.js +0 -1259
- package/dist/__tests__/gaiaCapabilityEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityFilesEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js +0 -914
- package/dist/__tests__/gaiaCapabilityFilesEval.test.js.map +0 -1
- package/dist/__tests__/gaiaCapabilityMediaEval.test.d.ts +0 -15
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js +0 -1101
- package/dist/__tests__/gaiaCapabilityMediaEval.test.js.map +0 -1
- package/dist/__tests__/helpers/answerMatch.d.ts +0 -41
- package/dist/__tests__/helpers/answerMatch.js +0 -267
- package/dist/__tests__/helpers/answerMatch.js.map +0 -1
- package/dist/__tests__/helpers/textLlm.d.ts +0 -25
- package/dist/__tests__/helpers/textLlm.js +0 -214
- package/dist/__tests__/helpers/textLlm.js.map +0 -1
- package/dist/__tests__/localDashboard.test.d.ts +0 -1
- package/dist/__tests__/localDashboard.test.js +0 -226
- package/dist/__tests__/localDashboard.test.js.map +0 -1
- package/dist/__tests__/multiHopDogfood.test.d.ts +0 -12
- package/dist/__tests__/multiHopDogfood.test.js +0 -303
- package/dist/__tests__/multiHopDogfood.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEval.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEval.test.js +0 -209
- package/dist/__tests__/openDatasetParallelEval.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalGaia.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js +0 -279
- package/dist/__tests__/openDatasetParallelEvalGaia.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js +0 -220
- package/dist/__tests__/openDatasetParallelEvalSwebench.test.js.map +0 -1
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.d.ts +0 -7
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js +0 -218
- package/dist/__tests__/openDatasetParallelEvalToolbench.test.js.map +0 -1
- package/dist/__tests__/openDatasetPerfComparison.test.d.ts +0 -10
- package/dist/__tests__/openDatasetPerfComparison.test.js +0 -318
- package/dist/__tests__/openDatasetPerfComparison.test.js.map +0 -1
- package/dist/__tests__/openclawDogfood.test.d.ts +0 -23
- package/dist/__tests__/openclawDogfood.test.js +0 -535
- package/dist/__tests__/openclawDogfood.test.js.map +0 -1
- package/dist/__tests__/openclawMessaging.test.d.ts +0 -14
- package/dist/__tests__/openclawMessaging.test.js +0 -232
- package/dist/__tests__/openclawMessaging.test.js.map +0 -1
- package/dist/__tests__/presetRealWorldBench.test.d.ts +0 -1
- package/dist/__tests__/presetRealWorldBench.test.js +0 -859
- package/dist/__tests__/presetRealWorldBench.test.js.map +0 -1
- package/dist/__tests__/tools.test.d.ts +0 -1
- package/dist/__tests__/tools.test.js +0 -3201
- package/dist/__tests__/tools.test.js.map +0 -1
- package/dist/__tests__/toolsetGatingEval.test.d.ts +0 -1
- package/dist/__tests__/toolsetGatingEval.test.js +0 -1099
- package/dist/__tests__/toolsetGatingEval.test.js.map +0 -1
- package/dist/__tests__/traceabilityDogfood.test.d.ts +0 -12
- package/dist/__tests__/traceabilityDogfood.test.js +0 -241
- package/dist/__tests__/traceabilityDogfood.test.js.map +0 -1
- package/dist/__tests__/webmcpTools.test.d.ts +0 -7
- package/dist/__tests__/webmcpTools.test.js +0 -195
- package/dist/__tests__/webmcpTools.test.js.map +0 -1
- package/dist/benchmarks/testProviderBus.d.ts +0 -7
- package/dist/benchmarks/testProviderBus.js +0 -272
- package/dist/benchmarks/testProviderBus.js.map +0 -1
- package/dist/hooks/postCompaction.d.ts +0 -14
- package/dist/hooks/postCompaction.js +0 -51
- package/dist/hooks/postCompaction.js.map +0 -1
- package/dist/security/__tests__/security.test.d.ts +0 -8
- package/dist/security/__tests__/security.test.js +0 -295
- package/dist/security/__tests__/security.test.js.map +0 -1
- package/dist/sync/hyperloopEval.test.d.ts +0 -4
- package/dist/sync/hyperloopEval.test.js +0 -60
- package/dist/sync/hyperloopEval.test.js.map +0 -1
- package/dist/sync/store.test.d.ts +0 -4
- package/dist/sync/store.test.js +0 -43
- package/dist/sync/store.test.js.map +0 -1
- package/dist/tools/documentTools.d.ts +0 -5
- package/dist/tools/documentTools.js +0 -524
- package/dist/tools/documentTools.js.map +0 -1
- package/dist/tools/financialTools.d.ts +0 -10
- package/dist/tools/financialTools.js +0 -403
- package/dist/tools/financialTools.js.map +0 -1
- package/dist/tools/memoryTools.d.ts +0 -5
- package/dist/tools/memoryTools.js +0 -137
- package/dist/tools/memoryTools.js.map +0 -1
- package/dist/tools/planningTools.d.ts +0 -5
- package/dist/tools/planningTools.js +0 -147
- package/dist/tools/planningTools.js.map +0 -1
- package/dist/tools/searchTools.d.ts +0 -5
- package/dist/tools/searchTools.js +0 -145
- package/dist/tools/searchTools.js.map +0 -1
|
@@ -1,218 +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
|
-
import { describe, it, expect } from "vitest";
|
|
9
|
-
import { openclawTools } from "../tools/openclawTools.js";
|
|
10
|
-
import { TOOL_REGISTRY, getToolComplexity } from "../tools/toolRegistry.js";
|
|
11
|
-
const findTool = (name) => openclawTools.find((t) => t.name === name);
|
|
12
|
-
const BATCH_AUTOPILOT_TOOLS = [
|
|
13
|
-
"setup_operator_profile",
|
|
14
|
-
"get_autopilot_status",
|
|
15
|
-
"trigger_batch_run",
|
|
16
|
-
"get_batch_run_history",
|
|
17
|
-
"sync_operator_profile",
|
|
18
|
-
];
|
|
19
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
20
|
-
// Static: tool existence and structure
|
|
21
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
22
|
-
describe("Batch Autopilot: tool structure", () => {
|
|
23
|
-
it("all 5 batch autopilot tools exist in openclawTools", () => {
|
|
24
|
-
for (const name of BATCH_AUTOPILOT_TOOLS) {
|
|
25
|
-
const tool = findTool(name);
|
|
26
|
-
expect(tool, `Missing tool: ${name}`).toBeDefined();
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
it("each tool has name, description, inputSchema, handler", () => {
|
|
30
|
-
for (const name of BATCH_AUTOPILOT_TOOLS) {
|
|
31
|
-
const tool = findTool(name);
|
|
32
|
-
expect(typeof tool.name).toBe("string");
|
|
33
|
-
expect(tool.description.length).toBeGreaterThan(20);
|
|
34
|
-
expect(tool.inputSchema).toBeDefined();
|
|
35
|
-
expect(tool.inputSchema.type).toBe("object");
|
|
36
|
-
expect(typeof tool.handler).toBe("function");
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
it.skip("each tool has a toolRegistry entry with category=openclaw", () => {
|
|
40
|
-
for (const name of BATCH_AUTOPILOT_TOOLS) {
|
|
41
|
-
const entry = TOOL_REGISTRY.get(name);
|
|
42
|
-
expect(entry, `Missing registry entry for ${name}`).toBeDefined();
|
|
43
|
-
expect(entry.category).toBe("openclaw");
|
|
44
|
-
expect(entry.phase).toBeTruthy();
|
|
45
|
-
expect(entry.tags.length).toBeGreaterThan(0);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
it("each tool has a valid complexity rating", () => {
|
|
49
|
-
for (const name of BATCH_AUTOPILOT_TOOLS) {
|
|
50
|
-
const complexity = getToolComplexity(name);
|
|
51
|
-
expect(["low", "medium", "high"]).toContain(complexity);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
56
|
-
// Schema validation
|
|
57
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
58
|
-
describe("Batch Autopilot: input schemas", () => {
|
|
59
|
-
it("setup_operator_profile requires displayName", () => {
|
|
60
|
-
const tool = findTool("setup_operator_profile");
|
|
61
|
-
expect(tool.inputSchema.required).toContain("displayName");
|
|
62
|
-
expect(tool.inputSchema.properties.displayName).toBeDefined();
|
|
63
|
-
expect(tool.inputSchema.properties.displayName.type).toBe("string");
|
|
64
|
-
});
|
|
65
|
-
it("setup_operator_profile has optional fields", () => {
|
|
66
|
-
const tool = findTool("setup_operator_profile");
|
|
67
|
-
const props = tool.inputSchema.properties;
|
|
68
|
-
expect(props.role).toBeDefined();
|
|
69
|
-
expect(props.domains).toBeDefined();
|
|
70
|
-
expect(props.goals).toBeDefined();
|
|
71
|
-
expect(props.autonomyMode).toBeDefined();
|
|
72
|
-
expect(props.scheduleInterval).toBeDefined();
|
|
73
|
-
expect(props.rawMarkdown).toBeDefined();
|
|
74
|
-
});
|
|
75
|
-
it("setup_operator_profile autonomyMode has correct enum values", () => {
|
|
76
|
-
const tool = findTool("setup_operator_profile");
|
|
77
|
-
const modeSchema = tool.inputSchema.properties.autonomyMode;
|
|
78
|
-
expect(modeSchema.enum).toEqual(["assist", "batch_autopilot", "full_autopilot"]);
|
|
79
|
-
});
|
|
80
|
-
it("setup_operator_profile scheduleInterval has correct enum values", () => {
|
|
81
|
-
const tool = findTool("setup_operator_profile");
|
|
82
|
-
const intervalSchema = tool.inputSchema.properties.scheduleInterval;
|
|
83
|
-
expect(intervalSchema.enum).toEqual(["3h", "6h", "12h", "daily"]);
|
|
84
|
-
});
|
|
85
|
-
it("get_autopilot_status has no required fields", () => {
|
|
86
|
-
const tool = findTool("get_autopilot_status");
|
|
87
|
-
expect(tool.inputSchema.required || []).toEqual([]);
|
|
88
|
-
});
|
|
89
|
-
it("trigger_batch_run has optional force boolean", () => {
|
|
90
|
-
const tool = findTool("trigger_batch_run");
|
|
91
|
-
expect(tool.inputSchema.properties.force).toBeDefined();
|
|
92
|
-
expect(tool.inputSchema.properties.force.type).toBe("boolean");
|
|
93
|
-
expect(tool.inputSchema.required || []).not.toContain("force");
|
|
94
|
-
});
|
|
95
|
-
it("get_batch_run_history has optional limit number", () => {
|
|
96
|
-
const tool = findTool("get_batch_run_history");
|
|
97
|
-
expect(tool.inputSchema.properties.limit).toBeDefined();
|
|
98
|
-
expect(tool.inputSchema.properties.limit.type).toBe("number");
|
|
99
|
-
expect(tool.inputSchema.required || []).not.toContain("limit");
|
|
100
|
-
});
|
|
101
|
-
it("sync_operator_profile has no required fields", () => {
|
|
102
|
-
const tool = findTool("sync_operator_profile");
|
|
103
|
-
expect(tool.inputSchema.required || []).toEqual([]);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
107
|
-
// Handler behavior
|
|
108
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
109
|
-
describe("Batch Autopilot: handler responses", () => {
|
|
110
|
-
it("setup_operator_profile returns success with quickRef", async () => {
|
|
111
|
-
const tool = findTool("setup_operator_profile");
|
|
112
|
-
const result = (await tool.handler({
|
|
113
|
-
displayName: "Test User",
|
|
114
|
-
role: "Developer",
|
|
115
|
-
domains: ["AI/ML"],
|
|
116
|
-
goals: ["Build reliable agents"],
|
|
117
|
-
autonomyMode: "batch_autopilot",
|
|
118
|
-
scheduleInterval: "12h",
|
|
119
|
-
}));
|
|
120
|
-
expect(result.success).toBe(true);
|
|
121
|
-
expect(result.quickRef).toBeDefined();
|
|
122
|
-
expect(result.quickRef.nextTools).toBeDefined();
|
|
123
|
-
expect(result.quickRef.nextTools.length).toBeGreaterThan(0);
|
|
124
|
-
expect(result.instructions).toBeDefined();
|
|
125
|
-
expect(Array.isArray(result.instructions)).toBe(true);
|
|
126
|
-
});
|
|
127
|
-
it("setup_operator_profile generates markdown from structured input", async () => {
|
|
128
|
-
const tool = findTool("setup_operator_profile");
|
|
129
|
-
const result = (await tool.handler({
|
|
130
|
-
displayName: "Alice",
|
|
131
|
-
role: "Researcher",
|
|
132
|
-
domains: ["NLP", "IR"],
|
|
133
|
-
goals: ["Publish paper", "Build benchmark"],
|
|
134
|
-
}));
|
|
135
|
-
expect(result.success).toBe(true);
|
|
136
|
-
expect(result.markdown).toBeDefined();
|
|
137
|
-
expect(result.markdown).toContain("Alice");
|
|
138
|
-
expect(result.markdown).toContain("Researcher");
|
|
139
|
-
expect(result.profile).toBeDefined();
|
|
140
|
-
expect(result.profile.displayName).toBe("Alice");
|
|
141
|
-
});
|
|
142
|
-
it("setup_operator_profile accepts rawMarkdown override", async () => {
|
|
143
|
-
const tool = findTool("setup_operator_profile");
|
|
144
|
-
const md = "# Operator Profile\n\n## Identity\n- Name: Bob\n- Role: PM";
|
|
145
|
-
const result = (await tool.handler({
|
|
146
|
-
displayName: "Bob",
|
|
147
|
-
rawMarkdown: md,
|
|
148
|
-
}));
|
|
149
|
-
expect(result.success).toBe(true);
|
|
150
|
-
expect(result.markdown).toContain("Bob");
|
|
151
|
-
expect(result.savedTo).toBeDefined();
|
|
152
|
-
expect(result.savedTo).toContain("USER.md");
|
|
153
|
-
});
|
|
154
|
-
it("get_autopilot_status returns success with quickRef", async () => {
|
|
155
|
-
const tool = findTool("get_autopilot_status");
|
|
156
|
-
const result = (await tool.handler({}));
|
|
157
|
-
expect(result.success).toBe(true);
|
|
158
|
-
expect(result.quickRef).toBeDefined();
|
|
159
|
-
// Real implementation returns schedule + runs objects instead of instructions
|
|
160
|
-
expect(result.schedule).toBeDefined();
|
|
161
|
-
expect(result.runs).toBeDefined();
|
|
162
|
-
});
|
|
163
|
-
it("trigger_batch_run returns success with run details", async () => {
|
|
164
|
-
const tool = findTool("trigger_batch_run");
|
|
165
|
-
const result = (await tool.handler({}));
|
|
166
|
-
expect(result.success).toBe(true);
|
|
167
|
-
expect(result.run).toBeDefined();
|
|
168
|
-
expect(result.quickRef).toBeDefined();
|
|
169
|
-
});
|
|
170
|
-
it("trigger_batch_run accepts force parameter", async () => {
|
|
171
|
-
const tool = findTool("trigger_batch_run");
|
|
172
|
-
const result = (await tool.handler({ force: true }));
|
|
173
|
-
expect(result.success).toBe(true);
|
|
174
|
-
});
|
|
175
|
-
it("get_batch_run_history returns success with limit", async () => {
|
|
176
|
-
const tool = findTool("get_batch_run_history");
|
|
177
|
-
const result = (await tool.handler({ limit: 5 }));
|
|
178
|
-
expect(result.success).toBe(true);
|
|
179
|
-
expect(result.limit).toBe(5);
|
|
180
|
-
expect(result.quickRef).toBeDefined();
|
|
181
|
-
});
|
|
182
|
-
it("get_batch_run_history uses default limit of 10", async () => {
|
|
183
|
-
const tool = findTool("get_batch_run_history");
|
|
184
|
-
const result = (await tool.handler({}));
|
|
185
|
-
expect(result.success).toBe(true);
|
|
186
|
-
expect(result.limit).toBe(10);
|
|
187
|
-
});
|
|
188
|
-
it("sync_operator_profile returns success with target path", async () => {
|
|
189
|
-
const tool = findTool("sync_operator_profile");
|
|
190
|
-
const result = (await tool.handler({}));
|
|
191
|
-
expect(result.success).toBe(true);
|
|
192
|
-
expect(result.targetPath).toBeDefined();
|
|
193
|
-
expect(result.targetPath).toContain("USER.md");
|
|
194
|
-
expect(result.quickRef).toBeDefined();
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
198
|
-
// Registry: workflow chain
|
|
199
|
-
// ═══════════════════════════════════════════════════════════════════════════
|
|
200
|
-
describe("Batch Autopilot: workflow chain", () => {
|
|
201
|
-
it("batch_autopilot workflow chain exists in registry", async () => {
|
|
202
|
-
// Import the workflow chains
|
|
203
|
-
const { WORKFLOW_CHAINS } = await import("../tools/toolRegistry.js");
|
|
204
|
-
expect(WORKFLOW_CHAINS.batch_autopilot).toBeDefined();
|
|
205
|
-
});
|
|
206
|
-
it("batch_autopilot workflow has correct structure", async () => {
|
|
207
|
-
const { WORKFLOW_CHAINS } = await import("../tools/toolRegistry.js");
|
|
208
|
-
const chain = WORKFLOW_CHAINS.batch_autopilot;
|
|
209
|
-
expect(chain.description).toBeTruthy();
|
|
210
|
-
expect(chain.steps.length).toBeGreaterThan(0);
|
|
211
|
-
// Each step should have tool and action
|
|
212
|
-
for (const step of chain.steps) {
|
|
213
|
-
expect(step.tool).toBeTruthy();
|
|
214
|
-
expect(step.action).toBeTruthy();
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
//# sourceMappingURL=batchAutopilot.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batchAutopilot.test.js","sourceRoot":"","sources":["../../src/__tests__/batchAutopilot.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI Subcommand tests — integration via child process spawn.
|
|
3
|
-
* Tests the 5 subcommands: discover, setup, workflow, quickref, call
|
|
4
|
-
*/
|
|
5
|
-
import { describe, it, expect } from "vitest";
|
|
6
|
-
import { spawnSync } from "node:child_process";
|
|
7
|
-
import { resolve } from "node:path";
|
|
8
|
-
const PKG_DIR = resolve(import.meta.dirname, "../..");
|
|
9
|
-
/** Run CLI and capture both stdout + stderr regardless of exit code */
|
|
10
|
-
const cli = (args) => {
|
|
11
|
-
const result = spawnSync("npx", ["tsx", "src/index.ts", ...args.split(/\s+/)], {
|
|
12
|
-
cwd: PKG_DIR,
|
|
13
|
-
encoding: "utf-8",
|
|
14
|
-
timeout: 20_000,
|
|
15
|
-
shell: true,
|
|
16
|
-
});
|
|
17
|
-
return {
|
|
18
|
-
stdout: result.stdout ?? "",
|
|
19
|
-
stderr: result.stderr ?? "",
|
|
20
|
-
code: result.status ?? 1,
|
|
21
|
-
/** Combined stdout + stderr for easy searching */
|
|
22
|
-
all: `${result.stdout ?? ""}${result.stderr ?? ""}`,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
describe.skip("CLI Subcommands", { timeout: 25_000 }, () => {
|
|
26
|
-
// ── discover ──────────────────────────────────────────────────────────
|
|
27
|
-
describe("discover", () => {
|
|
28
|
-
it("returns ranked results for a security query", () => {
|
|
29
|
-
const { all, code } = cli("--no-embedding discover security audit");
|
|
30
|
-
expect(code).toBe(0);
|
|
31
|
-
expect(all).toContain("Discover:");
|
|
32
|
-
expect(all).toContain("security");
|
|
33
|
-
expect(all).toMatch(/\d+ matches/);
|
|
34
|
-
});
|
|
35
|
-
it("respects --preset filtering", () => {
|
|
36
|
-
const { all, code } = cli("--no-embedding --preset web_dev discover screenshot");
|
|
37
|
-
expect(code).toBe(0);
|
|
38
|
-
expect(all).toContain("screenshot");
|
|
39
|
-
expect(all).toMatch(/ui_capture|vision|ui_ux_dive/);
|
|
40
|
-
});
|
|
41
|
-
it("shows matching workflows", () => {
|
|
42
|
-
const { all, code } = cli("--no-embedding discover security audit");
|
|
43
|
-
expect(code).toBe(0);
|
|
44
|
-
expect(all).toContain("Matching Workflows");
|
|
45
|
-
expect(all).toContain("security_audit");
|
|
46
|
-
});
|
|
47
|
-
it("exits 1 without a query", () => {
|
|
48
|
-
const { code, all } = cli("--no-embedding discover");
|
|
49
|
-
expect(code).toBe(1);
|
|
50
|
-
expect(all).toContain("Usage:");
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
// ── workflow ──────────────────────────────────────────────────────────
|
|
54
|
-
describe("workflow", () => {
|
|
55
|
-
it("lists all workflows", () => {
|
|
56
|
-
const { all, code } = cli("workflow list");
|
|
57
|
-
expect(code).toBe(0);
|
|
58
|
-
expect(all).toContain("Available Workflows");
|
|
59
|
-
expect(all).toContain("new_feature");
|
|
60
|
-
expect(all).toContain("security_audit");
|
|
61
|
-
expect(all).toContain("email_assistant");
|
|
62
|
-
});
|
|
63
|
-
it("shows steps for a specific workflow", () => {
|
|
64
|
-
const { all, code } = cli("workflow fix_bug");
|
|
65
|
-
expect(code).toBe(0);
|
|
66
|
-
expect(all).toContain("Workflow:");
|
|
67
|
-
expect(all).toContain("Step 1");
|
|
68
|
-
expect(all).toContain("search_all_knowledge");
|
|
69
|
-
});
|
|
70
|
-
it("shows error for unknown workflow", () => {
|
|
71
|
-
const { all } = cli("workflow nonexistent_workflow");
|
|
72
|
-
expect(all).toContain("Error:");
|
|
73
|
-
expect(all).toContain("Unknown chain");
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
// ── quickref ──────────────────────────────────────────────────────────
|
|
77
|
-
describe("quickref", () => {
|
|
78
|
-
it("shows tool info", () => {
|
|
79
|
-
const { all, code } = cli("quickref run_recon");
|
|
80
|
-
expect(code).toBe(0);
|
|
81
|
-
expect(all).toContain("run_recon");
|
|
82
|
-
expect(all).toContain("Next action:");
|
|
83
|
-
expect(all).toContain("Next tools:");
|
|
84
|
-
});
|
|
85
|
-
it("shows graph neighbors at depth 2", () => {
|
|
86
|
-
const { all, code } = cli("quickref run_recon --depth 2");
|
|
87
|
-
expect(code).toBe(0);
|
|
88
|
-
expect(all).toContain("Related tools");
|
|
89
|
-
expect(all).toContain("hop 1");
|
|
90
|
-
expect(all).toContain("hop 2");
|
|
91
|
-
});
|
|
92
|
-
it("shows didYouMean for unknown tool", () => {
|
|
93
|
-
const { all } = cli("quickref recon");
|
|
94
|
-
expect(all).toContain("Did you mean:");
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
// ── setup ─────────────────────────────────────────────────────────────
|
|
98
|
-
describe("setup", () => {
|
|
99
|
-
it("shows domain readiness report", () => {
|
|
100
|
-
const { all, code } = cli("setup");
|
|
101
|
-
expect(code).toBe(0);
|
|
102
|
-
expect(all).toContain("NodeBench MCP Setup Status");
|
|
103
|
-
expect(all).toContain("domains ready");
|
|
104
|
-
expect(all).toMatch(/web|vision|github|llm|embedding/);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
// ── call ──────────────────────────────────────────────────────────────
|
|
108
|
-
describe("call", () => {
|
|
109
|
-
it("calls a tool and returns JSON", () => {
|
|
110
|
-
const { stdout, code } = cli('call getMethodology --args "{\\"topic\\": \\"overview\\"}"');
|
|
111
|
-
expect(code).toBe(0);
|
|
112
|
-
const parsed = JSON.parse(stdout);
|
|
113
|
-
expect(parsed.title).toContain("Overview");
|
|
114
|
-
});
|
|
115
|
-
it("exits 1 for unknown tool", () => {
|
|
116
|
-
const { code, all } = cli("call nonexistent_tool_xyz");
|
|
117
|
-
expect(code).toBe(1);
|
|
118
|
-
expect(all).toContain("Unknown tool");
|
|
119
|
-
});
|
|
120
|
-
it("exits 1 for invalid --args JSON", () => {
|
|
121
|
-
const { code, all } = cli("call getMethodology --args not-json");
|
|
122
|
-
expect(code).toBe(1);
|
|
123
|
-
expect(all).toContain("Invalid JSON");
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
// ── help ──────────────────────────────────────────────────────────────
|
|
127
|
-
describe("help text", () => {
|
|
128
|
-
it("includes subcommand section", () => {
|
|
129
|
-
const { all } = cli("--help");
|
|
130
|
-
expect(all).toContain("Subcommands:");
|
|
131
|
-
expect(all).toContain("discover <query>");
|
|
132
|
-
expect(all).toContain("workflow <name|list>");
|
|
133
|
-
expect(all).toContain("quickref <tool>");
|
|
134
|
-
expect(all).toContain("call <tool>");
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
//# sourceMappingURL=cliSubcommands.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cliSubcommands.test.js","sourceRoot":"","sources":["../../src/__tests__/cliSubcommands.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|