Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"source": {
"source": "npm",
"package": "@copilotkit/aimock",
"version": "^1.8.0"
"version": "^1.9.0"
},
"description": "Fixture authoring skill for @copilotkit/aimock — match fields, response types, embeddings, structured output, sequential responses, streaming physics, agent loop patterns, gotchas, and debugging"
}
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "llmock",
"version": "1.8.0",
"version": "1.9.0",
"description": "Fixture authoring guidance for @copilotkit/aimock",
"author": {
"name": "CopilotKit"
Expand Down
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# @copilotkit/aimock

## 1.9.0

### Minor Changes

- Per-test sequence isolation via `X-Test-Id` header — each test gets its own fixture match counters, wired through all 12 HTTP handlers and 3 WebSocket handlers. No more test pollution from shared sequential state (#93)
- Combined `content + toolCalls` in fixture responses — new `ContentWithToolCallsResponse` type and type guard, supported across OpenAI Chat, OpenAI Responses, Anthropic Messages, and Gemini, with stream collapse support (#92)
- OpenRouter `reasoning_content` support in chat completions (#88)

### Patch Changes

- Fix `web_search_call` items to use `action.query` matching real OpenAI API format (#89)
- Clean up homepage URL (remove `/index.html` suffix) (#90)
- Center Record & Replay section title and top-align terminal panel (#87)
- Add demo video to README (#91)
- CI: Slack notifications for drift tests, competitive matrix updates, and new PRs (#86)
- CI: use `pull_request_target` for fork PR Slack alerts
- Docs: add reasoning and webSearches to Response Types table

## 1.8.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion charts/aimock/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ name: aimock
description: Mock infrastructure for AI application testing (OpenAI, Anthropic, Gemini, MCP, A2A, vector)
type: application
version: 0.1.0
appVersion: "1.8.0"
appVersion: "1.9.0"
2 changes: 1 addition & 1 deletion docs/a2a-mock.html → docs/a2a-mock/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/aimock-cli.html → docs/aimock-cli/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/aws-bedrock.html → docs/aws-bedrock/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/azure-openai.html → docs/azure-openai/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/chaos-testing.html → docs/chaos-testing/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/cohere.html → docs/cohere/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down Expand Up @@ -95,14 +95,14 @@ <h2>Supported Providers</h2>
<td>Cohere</td>
<td><code>/v1/chat/completions</code></td>
<td>
OpenAI-compatible endpoint; see <a href="cohere.html">Cohere page</a> for native
OpenAI-compatible endpoint; see <a href="/cohere">Cohere page</a> for native
endpoints
</td>
</tr>
<tr>
<td>Vertex AI</td>
<td><code>/v1/projects/.../models/:model:*</code></td>
<td>Uses Gemini handler; see <a href="vertex-ai.html">Vertex AI page</a></td>
<td>Uses Gemini handler; see <a href="/vertex-ai">Vertex AI page</a></td>
</tr>
</tbody>
</table>
Expand Down Expand Up @@ -275,7 +275,7 @@ <h2>Example Fixture</h2>
<strong>Ollama native endpoints:</strong> In addition to the OpenAI-compatible endpoint
listed above, Ollama has its own native <code>/api/chat</code> and
<code>/api/generate</code> endpoints. aimock supports these natively &mdash; see the
<a href="ollama.html">Ollama page</a> for details on the native endpoint format.
<a href="/ollama">Ollama page</a> for details on the native endpoint format.
</p>
</div>
</main>
Expand Down
2 changes: 1 addition & 1 deletion docs/docker.html → docs/docker/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
76 changes: 37 additions & 39 deletions docs/docs.html → docs/docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand All @@ -266,22 +266,22 @@
<!-- ═══ Section Bar ══════════════════════════════════════════════ -->
<div class="section-bar">
<div class="section-bar-inner">
<a href="chat-completions.html" class="section-pill pill-green">
<a href="/chat-completions" class="section-pill pill-green">
<span class="section-pill-icon">&#128225;</span> LLM Mocking
</a>
<a href="mcp-mock.html" class="section-pill pill-blue">
<a href="/mcp-mock" class="section-pill pill-blue">
<span class="section-pill-icon">&#128268;</span> MCP Protocol
</a>
<a href="a2a-mock.html" class="section-pill pill-purple">
<a href="/a2a-mock" class="section-pill pill-purple">
<span class="section-pill-icon">&#129309;</span> A2A Protocol
</a>
<a href="vector-mock.html" class="section-pill pill-amber">
<a href="/vector-mock" class="section-pill pill-amber">
<span class="section-pill-icon">&#128230;</span> Vector DBs
</a>
<a href="services.html" class="section-pill pill-red">
<a href="/services" class="section-pill pill-red">
<span class="section-pill-icon">&#128269;</span> Search &amp; Rerank
</a>
<a href="chaos-testing.html" class="section-pill pill-gray">
<a href="/chaos-testing" class="section-pill pill-gray">
<span class="section-pill-icon">&#9881;</span> Chaos &amp; DevOps
</a>
</div>
Expand Down Expand Up @@ -311,15 +311,13 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Mock 10+ LLM providers with fixture-driven responses</p>
<ul class="suite-card-links">
<li><a href="chat-completions.html">Chat Completions</a></li>
<li><a href="claude-messages.html">Claude Messages</a></li>
<li><a href="gemini.html">Gemini</a></li>
<li><a href="aws-bedrock.html">Bedrock</a></li>
<li><a href="record-replay.html">Record &amp; Replay</a></li>
<li><a href="/chat-completions">Chat Completions</a></li>
<li><a href="/claude-messages">Claude Messages</a></li>
<li><a href="/gemini">Gemini</a></li>
<li><a href="/aws-bedrock">Bedrock</a></li>
<li><a href="/record-replay">Record &amp; Replay</a></li>
</ul>
<a href="chat-completions.html" class="suite-card-cta"
>Get started <span>&rarr;</span></a
>
<a href="/chat-completions" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>

<!-- MCP Protocol -->
Expand All @@ -330,12 +328,12 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Mock MCP servers with tools, resources, and prompts</p>
<ul class="suite-card-links">
<li><a href="mcp-mock.html">Tool handlers</a></li>
<li><a href="mcp-mock.html">Resources</a></li>
<li><a href="mcp-mock.html">Prompts</a></li>
<li><a href="mcp-mock.html">Session management</a></li>
<li><a href="/mcp-mock">Tool handlers</a></li>
<li><a href="/mcp-mock">Resources</a></li>
<li><a href="/mcp-mock">Prompts</a></li>
<li><a href="/mcp-mock">Session management</a></li>
</ul>
<a href="mcp-mock.html" class="suite-card-cta">Get started <span>&rarr;</span></a>
<a href="/mcp-mock" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>

<!-- A2A Protocol -->
Expand All @@ -346,11 +344,11 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Mock agent-to-agent interactions with streaming</p>
<ul class="suite-card-links">
<li><a href="a2a-mock.html">Agent cards</a></li>
<li><a href="a2a-mock.html">Message routing</a></li>
<li><a href="a2a-mock.html">Task streaming</a></li>
<li><a href="/a2a-mock">Agent cards</a></li>
<li><a href="/a2a-mock">Message routing</a></li>
<li><a href="/a2a-mock">Task streaming</a></li>
</ul>
<a href="a2a-mock.html" class="suite-card-cta">Get started <span>&rarr;</span></a>
<a href="/a2a-mock" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>

<!-- Vector Databases -->
Expand All @@ -361,11 +359,11 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Mock Pinecone, Qdrant, and ChromaDB endpoints</p>
<ul class="suite-card-links">
<li><a href="vector-mock.html">Upsert &amp; query</a></li>
<li><a href="vector-mock.html">Collections</a></li>
<li><a href="vector-mock.html">Custom handlers</a></li>
<li><a href="/vector-mock">Upsert &amp; query</a></li>
<li><a href="/vector-mock">Collections</a></li>
<li><a href="/vector-mock">Custom handlers</a></li>
</ul>
<a href="vector-mock.html" class="suite-card-cta">Get started <span>&rarr;</span></a>
<a href="/vector-mock" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>

<!-- Services -->
Expand All @@ -376,11 +374,11 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Search, rerank, and moderation API mocks</p>
<ul class="suite-card-links">
<li><a href="services.html">Tavily search</a></li>
<li><a href="services.html">Cohere rerank</a></li>
<li><a href="services.html">OpenAI moderation</a></li>
<li><a href="/services">Tavily search</a></li>
<li><a href="/services">Cohere rerank</a></li>
<li><a href="/services">OpenAI moderation</a></li>
</ul>
<a href="services.html" class="suite-card-cta">Get started <span>&rarr;</span></a>
<a href="/services" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>

<!-- Testing & Operations -->
Expand All @@ -391,12 +389,12 @@ <h2>The Suite</h2>
</div>
<p class="suite-card-desc">Chaos testing, metrics, drift detection, Docker</p>
<ul class="suite-card-links">
<li><a href="chaos-testing.html">Chaos testing</a></li>
<li><a href="metrics.html">Prometheus</a></li>
<li><a href="drift-detection.html">Drift detection</a></li>
<li><a href="docker.html">Docker &amp; Helm</a></li>
<li><a href="/chaos-testing">Chaos testing</a></li>
<li><a href="/metrics">Prometheus</a></li>
<li><a href="/drift-detection">Drift detection</a></li>
<li><a href="/docker">Docker &amp; Helm</a></li>
</ul>
<a href="chaos-testing.html" class="suite-card-cta">Get started <span>&rarr;</span></a>
<a href="/chaos-testing" class="suite-card-cta">Get started <span>&rarr;</span></a>
</div>
</div>

Expand All @@ -418,7 +416,7 @@ <h3>I want to mock LLM APIs</h3>

<span class="op">mock</span>.<span class="fn">onMessage</span>(<span class="str">"hello"</span>, { <span class="prop">content</span>: <span class="str">"Hi there!"</span> });</code></pre>
</div>
<p><a href="docs.html">Quick Start: LLM &rarr;</a></p>
<p><a href="/docs">Quick Start: LLM &rarr;</a></p>
</div>

<!-- Path 2: Full suite -->
Expand All @@ -436,7 +434,7 @@ <h3>I want to mock my entire AI stack</h3>
<span class="key">"vector"</span>: { <span class="key">"provider"</span>: <span class="str">"pinecone"</span> }
}</code></pre>
</div>
<p><a href="aimock-cli.html">Quick Start: aimock suite &rarr;</a></p>
<p><a href="/aimock-cli">Quick Start: aimock suite &rarr;</a></p>
</div>
</div>
</main>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
2 changes: 1 addition & 1 deletion docs/embeddings.html → docs/embeddings/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down
4 changes: 2 additions & 2 deletions docs/error-injection.html → docs/error-injection/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down Expand Up @@ -179,7 +179,7 @@ <h2>Interruption Behavior</h2>

<div class="info-box">
<p>
<strong>See also: <a href="chaos-testing.html">Chaos Testing</a></strong> &mdash; for
<strong>See also: <a href="/chaos-testing">Chaos Testing</a></strong> &mdash; for
probabilistic failure injection. Chaos testing adds configurable error rates, random
latency spikes, and stream corruption that trigger based on probability rather than
deterministic fixture matching. Use error injection for specific, reproducible failure
Expand Down
6 changes: 3 additions & 3 deletions docs/fixtures.html → docs/fixtures/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
</div>
<ul class="nav-links">
<li><a href="/">Home</a></li>
<li><a href="docs.html" style="color: var(--accent)">Docs</a></li>
<li><a href="/docs" style="color: var(--accent)">Docs</a></li>
<li>
<a href="https://github.com/CopilotKit/aimock" class="gh-link" target="_blank"
><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
Expand Down Expand Up @@ -203,15 +203,15 @@ <h2>Fixture Options</h2>
<td>object</td>
<td>
Streaming physics profile: <code>{ ttftMs, tps, jitter }</code>. See
<a href="streaming-physics.html">Streaming Physics</a>
<a href="/streaming-physics">Streaming Physics</a>
</td>
</tr>
<tr>
<td>chaos</td>
<td>object</td>
<td>
Per-fixture chaos config: <code>{ errorRate, latencyMs, ... }</code>. See
<a href="chaos-testing.html">Chaos Testing</a>
<a href="/chaos-testing">Chaos Testing</a>
</td>
</tr>
</tbody>
Expand Down
Loading
Loading