Files
PaperClipAI/packages/plugins/examples/plugin-orchestration-smoke-example
Devin Foley 31d308bc1b refactor(deps-dev): bump vitest from 3.2.4 to 4.1.8
Major-version Vitest upgrade across the workspace. Refactors
server/vitest.config.ts to use top-level minWorkers/maxWorkers
(replacing nested poolOptions.forks.{maxForks,minForks}, which
Vitest 4 ignores at top level), updates scripts/run-vitest-stable.mjs
for the new CLI surface, and adds explicit vi.fn() generics required
by Vitest 4's stricter inference in two UI tests. Lockfile changes
intentionally excluded — refresh bot will regenerate.
2026-06-05 21:02:34 -07:00
..

Plugin Orchestration Smoke Example

This first-party example validates the orchestration-grade plugin host surface. It is intentionally small and exists as an acceptance fixture rather than a product plugin.

What it exercises

  • apiRoutes under /api/plugins/:pluginId/api/*
  • restricted database migrations and runtime ctx.db
  • plugin-owned rows joined to public.issues
  • plugin-created child issues with namespaced origin metadata
  • billing codes, workspace inheritance, blocker relations, documents, wakeups, and orchestration summaries
  • issue detail and settings UI slots that surface route, capability, namespace, and smoke status

Development

pnpm install
pnpm typecheck
pnpm test
pnpm build

Install Into Paperclip

Use an absolute local path during development:

curl -X POST http://127.0.0.1:3100/api/plugins/install \
  -H "Content-Type: application/json" \
  -d '{"packageName":"/absolute/path/to/paperclip/packages/plugins/examples/plugin-orchestration-smoke-example","isLocalPath":true}'

Scoped Route Smoke

After the plugin is ready, run the scoped route against an existing issue:

curl -X POST http://127.0.0.1:3100/api/plugins/paperclipai.plugin-orchestration-smoke-example/api/issues/<issue-id>/smoke \
  -H "Content-Type: application/json" \
  -d '{"assigneeAgentId":"<agent-id>"}'

The route returns the generated child issue, resolved blocker, billing code, subtree ids, and wakeup result.