Skip to content

Releases: JeffSteinbok/carapace-plugin-sdk

v2.0.0

05 Jun 02:58

Choose a tag to compare

v2.0.0 — Breaking: definePlugin required

⚠️ Breaking Change

ensureContracts() has been removed. All plugins must now use definePlugin() to declare their tools. The old-style createEntry()/register() pattern without contracts.tools will fail at both build time and load time.

If you see this error after upgrading:

Plugin "my-plugin" is missing contracts.tools.
Migrate to definePlugin() from carapace-plugin-sdk

You need to migrate your plugin to use definePlugin(). See the migration example below.

What changed

  • Removed ensureContracts() function and its backward-compat fallback
  • createAdapter() now throws if contracts.tools is missing
  • carapace-generate-cli validates contracts.tools before generating artifacts
  • Updated ARCHITECTURE.md to reflect v2 behavior

Migration

Replace your manual createEntry() with definePlugin():

// Before (v1.x) — no longer works
function createEntry() {
  return {
    id: "my-plugin",
    register(api) {
      api.registerTool({ name: "my_tool", ... });
    },
  };
}
export { createEntry };

// After (v2.0) — required
import { definePlugin } from "carapace-plugin-sdk";
import { Type } from "@sinclair/typebox";

export const createEntry = definePlugin({
  id: "my-plugin",
  name: "My Plugin",
  tools: (tool) => [
    tool({
      name: "my_tool",
      description: "Does the thing.",
      parameters: Type.Object({ input: Type.String() }),
      execute: async ({ input }, config) => ({ result: input }),
    }),
  ],
});

Installation

npm install carapace-plugin-sdk@latest

v1.0.5

04 Jun 02:36

Choose a tag to compare

v1.0.5

Installation

npm install carapace-plugin-sdk@latest

Changes

  • fix: Publish SDK to npm on release publish instead of workflow dispatch
    • Split release workflow into two: release.yml (prepare release) and publish.yml (publish to npm with OIDC provenance)
    • npm publish now only happens after reviewing the draft release
  • chore: Upgrade vitest from ^2.1.8 to ^4.1.8

Full Changelog: v1.0.4...v1.0.5

v1.0.4

01 Jun 21:08

Choose a tag to compare

v1.0.4

Installation

npm install carapace-plugin-sdk@latest

Changes

What's Changed

Full Changelog: v1.0.3...v1.0.4

v1.0.3

21 May 03:39

Choose a tag to compare

v1.0.3

Fix for OpenClaw's plugin discovery model introduced in the path-scanning migration (April 28, 2026) and native TS plugin migration (May 3, 2026) — OpenClaw ^2026.4.23.

What changed

  • Auto-discover contracts.tools — plugins using raw register() (instead of definePlugin()) now get their tool names auto-discovered at build time and adapter load time via a dry-run register() call. This ensures the manifest always includes contracts.tools.
  • Default configSchema — when a plugin omits configSchema, the manifest now defaults to { "type": "object", "properties": {} } instead of omitting the field entirely.
  • Test coverage — 7 new tests for ensureContracts() covering discovery, error handling, and edge cases.

Installation

npm install carapace-plugin-sdk@latest

v1.0.2

13 May 03:40

Choose a tag to compare

v1.0.2

Initial Release!

Installation

npm install carapace-plugin-sdk@latest

Changes