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
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
"url": "https://github.com/jjackson"
},
"metadata": {
"version": "0.13.328"
"version": "0.13.330"
},
"plugins": [
{
"name": "ace",
"source": "./",
"version": "0.13.328",
"version": "0.13.330",
"description": "AI Connect Engine — orchestrates the CRISPR-Connect lifecycle from idea through app building, Connect setup, LLO management, and closeout"
}
]
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": "ace",
"version": "0.13.328",
"version": "0.13.330",
"description": "AI Connect Engine — orchestrates the CRISPR-Connect lifecycle from idea through app building, Connect setup, LLO management, and closeout",
"author": {
"name": "Jonathan Jackson",
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ All notable changes to the ACE plugin will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and the plugin follows [semantic versioning](https://semver.org/spec/v2.0.0.html).

## 0.13.330 — 2026-05-22

**Update MCP registration-coverage snapshots; register 5 orphan OCS authoring atoms.**

The `test/mcp/registration-coverage.test.ts` snapshot test had drifted: atoms were added to the connect, ocs, and google-drive MCP servers without updating the expected-count snapshots, and 5 newer OCS authoring atoms (`create_chatbot`, `link_action_to_node`, `add_custom_action`, `add_chatbot_event`, `add_pipeline_node`) were registered on the server but missing from `mcp/ocs/capability-map.ts`, breaking the "every prefixed server tool has a capability-map entry (no orphan atoms)" invariant.

Snapshot bumps: connect 30 → 47, ocs 27 → 32, google-drive 31 → 32. Added the 5 orphan atoms to the OCS capability-map under the Authoring section with PLAYWRIGHT backend annotations describing their CSRF-protected form views (none yet exposed as first-class REST endpoints). Suite now 1314/1314 passing locally.

(Note: `## 0.13.329` was the prior CHANGELOG entry for the idea.md cleanup; main's `VERSION` lagged by one bump due to a merge race in PR #402, so this PR jumps to `0.13.330` to bring VERSION + CHANGELOG back in sync.)

## 0.13.329 — 2026-05-22

**Retire `idea.md` / `--idea` operator-seed pathway.**
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.13.328
0.13.330
12 changes: 11 additions & 1 deletion mcp/ocs/capability-map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@ export interface CapabilityRoute {
}

export type Capability =
// Authoring (15)
// Authoring (20)
| 'clone_chatbot'
| 'create_chatbot'
| 'set_chatbot_system_prompt'
| 'set_chatbot_pipeline'
| 'add_pipeline_node'
| 'add_custom_action'
| 'link_action_to_node'
| 'add_chatbot_event'
| 'create_collection'
| 'upload_collection_files'
| 'wait_for_collection_indexing'
Expand Down Expand Up @@ -39,8 +44,13 @@ export type Capability =
export const CAPABILITY_MAP: Record<Capability, CapabilityRoute> = {
// Authoring
clone_chatbot: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/experiments/' },
create_chatbot: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/experiments/ (not yet shipped — CSRF-protected ChatbotForm only)' },
set_chatbot_system_prompt: { backend: 'PLAYWRIGHT', restTarget: 'PATCH /api/experiments/{id}/prompt/' },
set_chatbot_pipeline: { backend: 'PLAYWRIGHT', restTarget: 'PATCH /api/experiments/{id}/pipeline/' },
add_pipeline_node: { backend: 'PLAYWRIGHT', restTarget: 'PATCH /api/pipelines/{id}/nodes/ (not yet shipped — GET/POST pipeline JSON at /pipelines/data/{id}/)' },
add_custom_action: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/custom_actions/ (not yet shipped — CSRF-protected CustomActionForm only)' },
link_action_to_node: { backend: 'PLAYWRIGHT', restTarget: 'PATCH /api/pipelines/{id}/nodes/{node_id}/ (not yet shipped — appends to data.params.custom_actions)' },
add_chatbot_event: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/experiments/{id}/events/ (not yet shipped — CSRF-protected combined-form view)' },
create_collection: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/collections/' },
upload_collection_files: { backend: 'PLAYWRIGHT', restTarget: 'POST /api/collections/{id}/files/' },
wait_for_collection_indexing: { backend: 'PLAYWRIGHT', restTarget: 'GET /api/collections/{id}/files/{fid}/status/' },
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ace",
"version": "0.13.328",
"version": "0.13.330",
"description": "AI Connect Engine - orchestrator for building Connect Opps using AI",
"type": "module",
"scripts": {
Expand Down
6 changes: 3 additions & 3 deletions test/mcp/registration-coverage.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ interface ServerSpec {
const SERVERS: Record<string, ServerSpec> = {
connect: {
file: 'mcp/connect-server.ts',
expectedCount: 30,
expectedCount: 47,
// `connect_*` are Connect atoms; `commcare_*` are CommCare HQ atoms
// (build/release/upload-multimedia) registered alongside because they
// close the LLO-deploy loop through the same MCP.
Expand All @@ -71,7 +71,7 @@ const SERVERS: Record<string, ServerSpec> = {
},
ocs: {
file: 'mcp/ocs-server.ts',
expectedCount: 27,
expectedCount: 32,
allowedPrefixes: ['ocs_'],
capabilityMap: OCS_MAP,
capabilityPrefix: 'ocs_',
Expand All @@ -87,7 +87,7 @@ const SERVERS: Record<string, ServerSpec> = {
},
'google-drive': {
file: 'mcp/google-drive-server.ts',
expectedCount: 31,
expectedCount: 32,
// gdrive bridges four Google APIs — one prefix per surface plus two
// custom helpers that aren't in any one namespace.
allowedPrefixes: [
Expand Down
Loading