Add mokksy/ai-mocks column to competitive matrix - #131
Merged
Conversation
commit: |
…matrix Adds mokksy/ai-mocks to the competitive-matrix updater's COMPETITORS list and exposes a mokksy/ai-mocks column in the front-page comparison table at docs/index.html. mokksy/ai-mocks has had real code commits within the past six months, verified against the repo's commit history rather than GitHub's pushed_at field. Three other candidates evaluated in the prior iteration of this branch (cclank/modelbox, higress-group/mock-server, chihebnabil/openai-api-mock) were dropped pending a deeper signal-quality review; they can be re-added later on their own evidence. The 32 new <td class="no">No</td> cells are the initial state for the mokksy column; the weekly update-competitive-matrix workflow flips applicable cells to Yes when README/package.json signals match.
jpr5
force-pushed
the
add/live-competitors
branch
from
April 23, 2026 15:37
d14950e to
696d74a
Compare
…arser regression test Link all 6 competitor <th> elements in the comparison table to their GitHub repos (previously only mokksy had a link). Correct mokksy/ai-mocks cells based on their README: cross-process interception, chat completions SSE, responses API SSE, Claude messages API, Gemini streaming, embeddings, programmatic API (Kotlin/JVM), A2A agent mocking, and multi-provider support (5 providers). Add parseCurrentMatrix unit test asserting all 6 headers are extracted and correctly indexed, with regression test for plain-text headers.
jpr5
force-pushed
the
add/live-competitors
branch
from
April 23, 2026 16:07
3c06a9c to
e3d09b6
Compare
Reorganize the 32-row comparison table into logical clusters: transport, LLM providers, media APIs, protocol mocking (AG-UI/MCP/A2A), storage, testing capabilities, tooling, and infrastructure.
jpr5
added a commit
that referenced
this pull request
Jul 15, 2026
## Summary - Adds mokksy/ai-mocks to the COMPETITORS list in the updater script and surfaces a visible column in the front-page comparison table. - Links all 6 competitor headers in the comparison table to their GitHub repos (previously only mokksy had a link). - Corrects mokksy/ai-mocks feature cells based on their README: cross-process interception, chat completions SSE, responses API SSE, Claude Messages API, Gemini streaming, embeddings API, programmatic API (Kotlin/JVM), A2A agent mocking, multi-provider (5 providers), and dependencies (JVM). - Adds parseCurrentMatrix unit test asserting all 6 headers are extracted, correctly indexed, and that stripping anchor tags causes the parser to return 0 headers (regression guard). ## Why The competitive-matrix updater's header regex requires an <a> inside each <th>. With only mokksy linked, the parser saw 1 column instead of 6, producing zero-change dry-runs. Linking all headers fixes the parser and makes the table consistent. The mokksy cells were all initialized to "No" but the README clearly documents support for multiple features. ## Dry-run output Parser now correctly identifies 6 competitor columns and 32 capability rows. The 1 remaining auto-detected change (GitHub Action for mokksy) is a false positive from a CI badge URL in their README. ## Mokksy cells corrected (evidence from README) | Feature | Evidence | |---|---| | Cross-process interception | "mock HTTP server built with Kotlin and Ktor" -- real server | | Chat Completions SSE | "response streaming and Server-Side Events (SSE)", feature matrix shows Chat Completions YES for all providers | | Responses API SSE | Feature matrix shows "Responses" under OpenAI Additional APIs | | Claude Messages API | Anthropic listed as supported service #2 with Chat Completions and Streaming YES | | Gemini streaming | Google VertexAI Gemini listed as service #3 with Streaming YES | | Embeddings API | Feature matrix shows Embeddings YES for OpenAI and Ollama | | Programmatic API | Kotlin/JVM library with Maven Central artifacts | | A2A agent mocking | A2A Protocol listed as service #5 with full protocol support | | Multi-provider | 5 services: OpenAI, Anthropic, Gemini, Ollama, A2A | | Dependencies | JVM (Kotlin) -- not "No" | ## Test plan - [x] pnpm lint -- clean - [x] pnpm test -- 2492 passed, 36 skipped - [x] Dry-run: parser identifies 6 columns, 32 rows - [x] New parseCurrentMatrix tests: 4 assertions covering header count, index mapping, row data, and plain-text regression - [ ] CI green on this PR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
The competitive-matrix updater's header regex requires an inside each . With only mokksy linked, the parser saw 1 column instead of 6, producing zero-change dry-runs. Linking all headers fixes the parser and makes the table consistent. The mokksy cells were all initialized to "No" but the README clearly documents support for multiple features.
Dry-run output
Parser now correctly identifies 6 competitor columns and 32 capability rows. The 1 remaining auto-detected change (GitHub Action for mokksy) is a false positive from a CI badge URL in their README.
Mokksy cells corrected (evidence from README)
Test plan