shahondin1624 e023414986 Add tests — messages unit tests + live-router integration
Runs with Node 22+ built-in test runner + --experimental-strip-types.
No external dependencies required.

tests/messages.test.ts (13 cases):
- contextToOpenAIMessages: empty, systemPrompt-only, user string content,
  user text-block array, user image-only (drops), assistant text,
  assistant tool-calls-only, assistant text + tool calls, toolResult,
  full round-trip.
- toolsToOpenAI: undefined, empty, proper OpenAI function mapping.

tests/integration.test.ts (4 cases, auto-skip if unreachable):
- GET /health returns status=ok.
- GET /models returns a non-empty data array.
- Every /models entry has a valid status.value.
- mTLS is enforced: request without client cert is rejected.

Deferred to phase 2 (needs mock HTTPS server + cert harness):
stream.ts SSE parsing — abort mid-stream, tool-call split across chunks,
reasoning deltas, usage + calculateCost, malformed events.

Run: node --experimental-strip-types --test tests/*.test.ts

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 23:12:27 +02:00
S
Description
Personal pi (pi-coding-agent) extensions: ai-server (mTLS remote provider + admin commands) and local-llama.
490 KiB
Languages
TypeScript 79.3%
JavaScript 11.3%
Shell 9.4%