{"_id":"@amykit/plugin-agent-relay","_rev":"4-4590059645d95d44244bcd65bb005425","name":"@amykit/plugin-agent-relay","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@amykit/plugin-agent-relay","version":"0.2.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/plugin-agent-relay@0.2.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"43306d8fc6ccd9b26736ea6d56dcb3d56c7fa05c","tarball":"https://registry.npmjs.org/@amykit/plugin-agent-relay/-/plugin-agent-relay-0.2.0.tgz","fileCount":22,"integrity":"sha512-9d4ioIBP4TXJ2q6v+aN6Ra8qu63MlgpAFq/zImirSLFmNxT+1dqGHp2NVh9Zlb0zhsRQo7fyLxlxpHPO85YBaA==","signatures":[{"sig":"MEQCIHRbhaVjUv3xMExDcs6I9ijca7FNAQd0fwKpkRLygJtTAiAHDiP5X2zRZK1Wk75x5gY08l5Ma4g9TAueoDn8jV3ziA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fplugin-agent-relay@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38734},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b7903f5c95e8154f5db6fd4df6ca2633a628812d","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"plugins/agent-relay"},"_npmVersion":"11.19.0","description":"One agent made of several: swaps harness on a quota, escalates model on a failure.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.2.0","@amykit/agent-kit":"^0.2.0","@amykit/workflow-ticket-to-qa":"^0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-agent-relay_0.2.0_1788658159086_0.5843104016677791","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amykit/plugin-agent-relay","version":"0.3.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/plugin-agent-relay@0.3.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"1d1ed526513ecee7cc62c47fd3cb01a675a94aa8","tarball":"https://registry.npmjs.org/@amykit/plugin-agent-relay/-/plugin-agent-relay-0.3.0.tgz","fileCount":26,"integrity":"sha512-0WkaRtgKKUChtECcHNzipYH4Lamq9RuS5PQVsdzTkJrBmwZQJ1I7D277TJ0+8BHQzZpF2b0zuIWe4U+SSlJXPQ==","signatures":[{"sig":"MEQCIEwqFpyD5XVJqRq/r3gKG3yn1Rz8VhQhesjs1+V0zwPQAiA700PsIXTMm2ZiUbILVFgVbdAXT0zjZZfKg6txAjtGHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fplugin-agent-relay@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48801},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a9e241e87a00d8267ad9e992c4ab8fd97bd04480","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"plugins/agent-relay"},"_npmVersion":"11.19.0","description":"One agent made of several: swaps harness on a quota, escalates model on a failure.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.3.0","@amykit/agent-kit":"^0.3.0","@amykit/model-specs":"^0.3.0","@amykit/workflow-ticket-to-qa":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-agent-relay_0.3.0_1788922140040_0.6908227179833273","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amykit/plugin-agent-relay","version":"0.3.1","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/plugin-agent-relay@0.3.1","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"bf55cce4b45caa04f2a1bd6bc899edbb266275ab","tarball":"https://registry.npmjs.org/@amykit/plugin-agent-relay/-/plugin-agent-relay-0.3.1.tgz","fileCount":26,"integrity":"sha512-DISNffFFjRhDI5uih8yeUh66HG8T5rpW0alvGaT37sGUbettp33GmgBLzRAI9m61UiVbhBqjekfGHauHPkgPNg==","signatures":[{"sig":"MEUCIDwTwqFg9cYRRmxXa8b2LOapIdIuz87GHdG2FzPuz6/hAiEAh/kaCtGKvoJs5Vpc1fCOPLUv6dF1hD6b6lLLNre2E34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fplugin-agent-relay@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48801},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6a4c559ad368c51e232a33c4c2221f02709ceb2f","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"plugins/agent-relay"},"_npmVersion":"11.19.0","description":"One agent made of several: swaps harness on a quota, escalates model on a failure.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.3.1","@amykit/agent-kit":"^0.3.1","@amykit/model-specs":"^0.3.1","@amykit/workflow-ticket-to-qa":"^0.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-agent-relay_0.3.1_1788973029510_0.3627191759005699","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@amykit/plugin-agent-relay@0.4.0","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"72b5f6ff93a98a1f242e85e46c63cfd632299d02","tarball":"https://registry.npmjs.org/@amykit/plugin-agent-relay/-/plugin-agent-relay-0.4.0.tgz","fileCount":26,"integrity":"sha512-r14A81igfY1d2QYFBb4GTtHe/pvKjwKHW3FYXbKw7owEdA6oXKlnu4eEXtA1wJgikQPeX2Dk+NKdfPg3AdGAgw==","signatures":[{"sig":"MEQCIHiqD8zuchY4QOVcKrJjuReNX4rWaq6Mm1DzfNsOKYTdAiAuUTXoIt5sQKd3/YcUcncSF/SbSWjFdnqm9fYm6uK9DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCfDaj7vMvoIokr+pUrXt0Q4zZ1Q2HzNEIcdrcMxbfwZwIgH30nVLxZDwOzIdPKb0iMC0xgQnTSkrU/iHBqNabfzhg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fplugin-agent-relay@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49072},"main":"./dist/index.js","name":"@amykit/plugin-agent-relay","type":"module","types":"./dist/index.d.ts","author":{"name":"Nicolas Melo"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ac437aba051bd8e109e1eb8b3c32b0365c6b4e2e","license":"MIT","version":"0.4.0","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"plugins/agent-relay"},"_npmVersion":"11.19.0","description":"One agent made of several: swaps harness on a quota, escalates model on a failure.","directories":{},"maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.4.0","@amykit/agent-kit":"^0.4.0","@amykit/model-specs":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-agent-relay_0.4.0_1789739856383_0.9175743013436808"}}},"time":{"created":"2026-09-06T01:29:18.900Z","modified":"2026-09-18T13:57:36.841Z","0.2.0":"2026-09-06T01:29:19.225Z","0.3.0":"2026-09-09T02:49:00.210Z","0.3.1":"2026-09-09T16:57:09.665Z","0.4.0":"2026-09-18T13:57:36.465Z"},"bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"author":{"name":"Nicolas Melo"},"license":"MIT","homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"plugins/agent-relay"},"description":"One agent made of several: swaps harness on a quota, escalates model on a failure.","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"readme":"<!-- Generated by `npm run docs:generate` from the package itself. Do not edit by hand. -->\n\n# @amykit/plugin-agent-relay\n\nOne agent made of several: swaps harness on a quota, escalates model on a failure.\n\nA plugin for [amy](https://github.com/nicolasmelo1/amy). It provides the `agent` port.\n\n## Install\n\n```sh\nnpm install -g @amykit/plugin-agent-relay\n```\n\nThen name it in `~/.amy/config.yaml`:\n\n```yaml\nworkflows:\n  your-profile:\n    plugins:\n      - \"@amykit/plugin-agent-relay\"\n```\n\n## Configuration\n\n```yaml\nplugins:\n  \"@amykit/plugin-agent-relay\":\n    budget: {}\n    ladder: []\n    ladderByStep: {}\n    skillRoots: []\n    skills: {}\n```\n\n| Setting | Type | Required | Default | What it is |\n| :-- | :-- | :-- | :-- | :-- |\n| `budget` | `record` | no | `{}` | what the agents may spend, per window: perFiveHours and perWeek, each with tokens and/or costUsd, plus stopAt, the fraction of a ceiling at which new work stops being started |\n| `ladder` | `string[]` | no | `[]` | the contributed agents to try, in order, such as [claude:sonnet, claude:opus, codex:gpt-5]. Empty means every contributed agent, in the order the plugins were mounted |\n| `ladderByStep` | `record` | no | `{}` | a ladder for one step, overriding the one above, keyed by the workflow's action name: {\"triage\": [\"claude:haiku\"], \"implement\": [\"claude:opus\"]}. Reading a ticket and writing the change are not the same job, and one list for both means paying the expensive model to do the cheap step |\n| `skillRoots` | `string[]` | no | `[]` | where installed skills are looked for. Empty means ~/.claude/skills, which is where the harness looks |\n| `skills` | `record` | no | `{}` | which skills answer for a step, in the order they are tried, keyed by the workflow's action name: {\"triage\": [\"/logion\"]}. A skill named here must be installed, or the mount is refused |\n\nEvery field is checked at boot against the schema this package declares. A key that is\nnot one of the above is a refusal naming the plugin and the key, not a setting that\nsilently never applied.\n\n## Where the reasoning is\n\n- [Writing a plugin](https://github.com/nicolasmelo1/amy/tree/main/docs/build/write-a-plugin.md)\n- [Reference: plugins](https://github.com/nicolasmelo1/amy/tree/main/docs/reference/plugins.md)\n- [Ports and the registry](https://github.com/nicolasmelo1/amy/tree/main/docs/concepts/ports.md)\n\n## Licence\n\nMIT\n","readmeFilename":"README.md"}