Files
2026-09-15 19:44:43 +00:00

144 lines
4.1 KiB
YAML

# Manifest for the plugin-fixture SDK plugin (docs/plans/plugins/GRPC-CONTRACT.md
# §6). Used by Go integration tests and Playwright e2e tests — see
# apps/backend/cmd/plugin-fixture and the `e2e-plugin-package` Makefile
# target, which stages this directory, builds the plugin-fixture binary for
# the host platform into server/, and packs the whole tree with
# cmd/plugin-pack into apps/backend/.build/kandev-plugin-e2e-1.0.0.tar.gz.
id: "kandev-plugin-e2e"
api_version: 2
min_kandev_version: "0.91.1"
version: "1.0.0"
display_name: "Kandev E2E Fixture Plugin"
description: "SDK-based plugin backend used by backend integration tests and Playwright e2e tests"
author: "kandev"
categories: ["tools"]
repo_url: "https://github.com/kdlbs/kandev-plugin-template"
runtime:
type: binary
executables:
linux-amd64: "server/plugin-linux-amd64"
linux-arm64: "server/plugin-linux-arm64"
darwin-amd64: "server/plugin-darwin-amd64"
darwin-arm64: "server/plugin-darwin-arm64"
windows-amd64: "server/plugin-windows-amd64.exe"
capabilities:
api_read: ["messages"]
events: ["task.created"]
api_write: ["tasks"]
agent_invoke: true
state: true
secrets: true
user_state: true
# These provider-neutral declarations keep the package fixture useful as a
# second-provider contract: the labels and canned data resemble a Bitbucket
# pull-request integration, while the host only sees generic provider IDs,
# authenticated actions, and composer source descriptors.
repository_providers: ["fixture-source-control"]
actions:
- key: "connection-status"
scope: "workspace"
max_body_bytes: 4096
- key: "utility-default"
scope: "workspace"
max_body_bytes: 4096
- key: "utility-preference"
scope: "workspace"
max_body_bytes: 4096
- key: "repositories.inspect"
scope: "workspace"
max_body_bytes: 16384
- key: "repositories.branches"
scope: "workspace"
max_body_bytes: 16384
- key: "link-pull-request"
scope: "task"
max_body_bytes: 4096
- key: "watch-create-task"
scope: "workspace"
max_body_bytes: 4096
reference_sources:
- source: "fixture-pull-requests"
provider: "fixture-source-control"
kind: "pull_request"
display_name: "Bitbucket Pull Requests"
kind_label: "Pull request"
order: 50
agent_tools:
- name: test_echo
description: Echoes test input and invocation context for plugin MCP tests
surfaces: [kanban-task, office-task]
input_schema:
type: object
additionalProperties: false
required: [value]
properties:
value:
type: string
output_schema:
type: object
additionalProperties: false
required: [value, task_id, surface]
properties:
value:
type: string
task_id:
type: string
surface:
type: string
annotations:
read_only_hint: true
destructive_hint: false
idempotent_hint: true
webhooks:
- key: "test-hook"
description: "Records inbound webhooks for e2e polling"
method: "POST"
- key: "public-hook"
description: "Public counterpart of test-hook for exercising the anonymous auth-gate opt-in"
method: "POST"
access: public
ui:
bundle: "/ui/bundle.js"
keybindings:
- id: open-demo
default: mod+shift+j
description: Open the demo modal
config_schema:
type: object
required: ["api_token"]
properties:
api_token:
type: string
title: "API token"
description: "Secret token; masked on the operator API, delivered to the plugin via the Host GetConfig RPC."
secret: true
greeting:
type: string
title: "Greeting"
agent_profile:
type: string
format: agent-profile
title: "Utility agent profile"
description: "Optional profile used for utility-agent completion actions."
automation_conditions:
- key: "signed-event"
access: "public"
verification_headers: ["x-fixture-signature"]
config_version: 1
label: "Fixture signed event"
description: "Signed event fixture"
default_config: {}
config_schema:
type: "object"
properties: {}