Files
context-kit/check

47 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${ROOT}"
bash -n bin/context-kit
bash -n scripts/check
sh -n docker/docs/entrypoint.sh
node --check docker/web-search/patch-mcp-web-search.mjs
node --check docker/web-search/overrides/bing.js
node -e 'const fs=require("node:fs"); JSON.parse(fs.readFileSync("snippets/opencode.json", "utf8")); JSON.parse(fs.readFileSync("snippets/claude.mcp.json", "utf8"));'
bin/context-kit install opencode | node -e 'JSON.parse(require("node:fs").readFileSync(0, "utf8"))'
bin/context-kit install claude | node -e 'JSON.parse(require("node:fs").readFileSync(0, "utf8"))'
docker compose -f compose.yml config --quiet
docker compose -f compose.yml --profile mcp build web-search-mcp
bin/context-kit doctor
web_search_response="$(
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"context-kit-check","version":"0.0.0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"fetch_url","arguments":{"url":"http://127.0.0.1:1/","max_download_bytes":52428800}}}' \
| CONTEXT_KIT_WEB_SEARCH_MAX_BYTES=52428800 bin/context-kit web-search
)"
for expected in '"name":"fetch_url"' '"maximum":52428800' 'Blocked localhost/private URL'; do
[[ "${web_search_response}" == *"${expected}"* ]] || {
printf 'context-kit: web-search MCP check missing %s\n' "${expected}" >&2
exit 1
}
done
repomix_response="$(
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"context-kit-check","version":"0.0.0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"pack_codebase","arguments":{"directory":".","compress":true,"includePatterns":"README.md","ignorePatterns":"","topFilesLength":1,"style":"xml"}}}' \
| bin/context-kit repomix
)"
[[ "${repomix_response}" == *'"totalFiles":1'* ]] || {
printf 'context-kit: Repomix MCP tool call did not pack exactly README.md\n' >&2
exit 1
}
printf 'pass check\n'