@ama-work/ama-hello-world
v1.0.5
Published
Minimal end-to-end test plugin for the ama-mesh Orchestrator plugin system. See issue #1 for the full goal and acceptance criteria.
Readme
@ama-work/ama-hello-world
Minimal end-to-end test plugin for the ama-mesh Orchestrator plugin system. See issue #1 for the full goal and acceptance criteria.
This repo exists to verify the full plugin chain — scaffold (via create-ama-plugin), build, install, enable/disable, console panel render, and public npm publish — works end-to-end for a real third-party-style plugin, before Agent Manager becomes the first production plugin.
Quick Start
bun install
bun run devCommands
| Command | Description |
|---|---|
| bun run dev | Start with hot-reload |
| bun run build | Compile to dist/ |
| bun run lint | Typecheck + knip + eslint |
| bun test | Run tests |
| bun run release | Publish via semantic-release |
Project Structure
src/
├── index.ts # Plugin entry point (named `plugin` export)
├── plugin.route.ts # Hono router serving plugin assets
├── config/env.ts # Zod-validated env config
├── panels/
│ ├── console.ts # ConsolePanel definition (absolute templateUrl)
│ ├── index.ts # Panel exports
│ └── template.ts # Hello world panel template (embedded HTML)
tests/
└── plugin.test.ts # MockBridge-based testsPlugin Entrypoint
The package.json declares the runtime entrypoint that the Orchestrator uses to load this plugin:
main:dist/index.js— the compiled entrypointtypes:dist/index.d.ts— TypeScript declarations
The Orchestrator resolves plugins by reading the main field from the installed package's package.json. This is the interface contract: every published Orchestrator plugin must declare main pointing to the compiled output.
CI/CD
- CI: GitHub Actions runs lint, typecheck, and tests on push/PR to
main. - Release: semantic-release on
mainpush → publishes to npmjs (NPM_TOKENsecret in Actions). Verdaccio resolves this package via its npmjs uplink proxy — it is never published to directly. Requires a conventional squash-commit subject (fix: .../feat: ...), otherwise semantic-release skips the release. SeeAGENTS.md§8.
