mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-04 00:15:28 +08:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
224462018a | ||
|
|
35e89230fd | ||
|
|
9a57af6092 | ||
|
|
2e1bd8a481 | ||
|
|
1e678ecc1a |
@@ -263,14 +263,6 @@ function filterToolCalls(parsed, toolNames) {
|
|||||||
}
|
}
|
||||||
out.push({ name: tc.name, input: tc.input || {} });
|
out.push({ name: tc.name, input: tc.input || {} });
|
||||||
}
|
}
|
||||||
if (out.length === 0 && parsed.length > 0) {
|
|
||||||
for (const tc of parsed) {
|
|
||||||
if (!tc || !tc.name) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
out.push({ name: tc.name, input: tc.input || {} });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,11 +52,19 @@ test('parseToolCalls keeps non-object argument strings as _raw (Go parity)', ()
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('parseToolCalls still intercepts unknown schema names to avoid leaks', () => {
|
test('parseToolCalls drops unknown schema names when toolNames is provided', () => {
|
||||||
const payload = JSON.stringify({
|
const payload = JSON.stringify({
|
||||||
tool_calls: [{ name: 'not_in_schema', input: { q: 'go' } }],
|
tool_calls: [{ name: 'not_in_schema', input: { q: 'go' } }],
|
||||||
});
|
});
|
||||||
const calls = parseToolCalls(payload, ['search']);
|
const calls = parseToolCalls(payload, ['search']);
|
||||||
|
assert.equal(calls.length, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('parseToolCalls keeps unknown names when toolNames is empty', () => {
|
||||||
|
const payload = JSON.stringify({
|
||||||
|
tool_calls: [{ name: 'not_in_schema', input: { q: 'go' } }],
|
||||||
|
});
|
||||||
|
const calls = parseToolCalls(payload, []);
|
||||||
assert.equal(calls.length, 1);
|
assert.equal(calls.length, 1);
|
||||||
assert.equal(calls[0].name, 'not_in_schema');
|
assert.equal(calls[0].name, 'not_in_schema');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,4 +5,18 @@ ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|||||||
cd "$ROOT_DIR"
|
cd "$ROOT_DIR"
|
||||||
|
|
||||||
./tests/scripts/check-node-split-syntax.sh
|
./tests/scripts/check-node-split-syntax.sh
|
||||||
node --test tests/node/stream-tool-sieve.test.js tests/node/chat-stream.test.js tests/node/js_compat_test.js "$@"
|
|
||||||
|
# Keep Node's file-level test scheduling serial to avoid intermittent cross-file
|
||||||
|
# interference when multiple suites import mutable module singletons.
|
||||||
|
NODE_TEST_LOG="$(mktemp)"
|
||||||
|
cleanup() {
|
||||||
|
rm -f "$NODE_TEST_LOG"
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
if ! node --test --test-concurrency=1 tests/node/stream-tool-sieve.test.js tests/node/chat-stream.test.js tests/node/js_compat_test.js "$@" 2>&1 | tee "$NODE_TEST_LOG"; then
|
||||||
|
echo
|
||||||
|
echo "[run-unit-node] Node tests failed. 失败摘要如下:"
|
||||||
|
rg -n "^(not ok|# fail)|ERR_TEST_FAILURE" "$NODE_TEST_LOG" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user