Files
magpie/internal/plugin/testdata/github/npm/@slkiser_opencode-quota.json
T
yetone f6f960e42c plugins: a GitHub repository tagged magpie-plugin shows on the Plugins page under Discover, as an unofficial plugin nobody at magpie has reviewed
GitHub's search for topic:magpie-plugin (not archived, not a fork, not
magpie-community's own, which the market lists) is asked at most every six
hours and kept on disk, so a restart or GitHub being down shows what it said
last. Each repository is read from its package.json on the default branch.
When npm has that package published from the same repository, it is
installed from npm, because a repository often builds its dist only to
publish and Bun runs no build for a git install. Otherwise it is installed as
github:owner/repo, and only if the file it loads (exports, main or
magpie.middleware) is in the repository. Its page warns that it is
unofficial, says whether npm or the repository is what gets installed, and
shows the repository's README until it is installed. MAGPIE_PLUGIN_MARKET=off
asks GitHub nothing.

Checked against real GitHub with the topic set to opencode-plugin in a
sandbox: 43 repositories came back, and 32 were kept (30 from npm, 2 from
git). github:ndom91/open-plan-annotator, one of the git ones, really
installed and loaded. alfaoz/opencode-see-image, whose dist isn't in its
repository, failed to load before the entry check and is now left out. The
test fixtures are GitHub's and npm's real answers.

Ran: go test -race -count=3 ./internal/plugin, go test ./internal/gui, go
vet, and plugin-github.test.cjs (Chromium and WebKit, 980/440, en/zh/ja/de,
18/18). The full GUI suite passed 3343 of 3348. The 5 failures were WebKit
number-units, purpose-filter and routing-failed-open, which pass 3/3 on
their own and don't touch the Plugins page.
2026-10-07 10:13:20 +08:00

1 line
4.5 KiB
JSON

{"bin":{"opencode-quota":"dist/bin/opencode-quota.js"},"bugs":{"url":"https://github.com/slkiser/opencode-quota/issues"},"dist":{"shasum":"3def785003b03a719fbe1cdc09a74dfb0a014429","tarball":"https://registry.npmjs.org/@slkiser/opencode-quota/-/opencode-quota-5.0.2.tgz","fileCount":663,"integrity":"sha512-8NuHpP0joxhRvcYYRaFvBjdi1hAX0b/WEq+tQlDJh//YxXlbYY2SL6bFojg1D8QC8o6Sb40lQvswa6Nuek9KiA==","signatures":[{"sig":"MEUCIQCdZ9nosILn51g/MbRdtUX/qHtybvIryGXTrKU89QvFuAIgAa5tPLFg/M0CyHUTy7IF/q+vih6qJviCqNadqBSlU78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC2NkBfkX0UYddUH3DzMcrdQIZIH1KRzT73p1l3wiavyAIhANgR8+HXq1pzbsDi+NZ+f35Zfxl88aa/P3FdpXOuu9Q9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@slkiser%2fopencode-quota@5.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3126452},"main":"./dist/index.js","name":"@slkiser/opencode-quota","type":"module","_from":"file:package-artifacts/slkiser-opencode-quota-5.0.2.tgz","types":"./dist/index.d.ts","author":"","engines":{"node":"^22.13.0 || >=23.4.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./tui":{"types":"./dist/tui.d.ts","default":"./dist/tui.js"},"./server":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"license":"MIT","scripts":{"lint":"biome lint .","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc && node scripts/copy-data.mjs && node scripts/prepare-tui-dist.mjs","check":"biome check .","format":"biome format --write .","verify":"pnpm run check && pnpm run verify:typescript-version && pnpm run verify:v4-history && pnpm run typecheck && pnpm run build && pnpm test && pnpm run test:four-surfaces && pnpm run verify:package-contents","typecheck":"tsc --noEmit","test:watch":"vitest","build:check":"pnpm run build && pnpm pack --dry-run","format:check":"biome format .","release:check":"pnpm verify && pnpm run verify:release-version","smoke:package":"node scripts/smoke-packed-package.mjs","upstream:sync":"node scripts/sync-upstream-plugin-references.mjs","upstream:check":"node scripts/check-upstream-plugin-updates.mjs","pricing:refresh":"node scripts/refresh-modelsdev-pricing.mjs","verify:v4-history":"node scripts/verify-v4-history.mjs","test:four-surfaces":"vitest run tests/v4-phase5-cross-surface.test.ts","pack:release-package":"node scripts/pack-release-package.mjs","verify:release-package":"node scripts/verify-release-package.mjs","verify:release-version":"node scripts/verify-release-version.mjs","upstream:prepare-review":"node scripts/prepare-upstream-plugin-review.mjs","verify:package-contents":"node scripts/verify-package-contents.mjs","pricing:refresh:if-stale":"node scripts/refresh-modelsdev-pricing-if-stale.mjs","verify:typescript-version":"node scripts/verify-typescript-version.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"7b1aebec-13eb-4027-b667-6cb8aac61130"}},"homepage":"https://github.com/slkiser/opencode-quota#readme","keywords":["opencode","plugin","quota","toast","github","copilot","google","gemini","claude"],"_resolved":"/home/runner/work/opencode-quota/opencode-quota/package-artifacts/slkiser-opencode-quota-5.0.2.tgz","_integrity":"sha512-8NuHpP0joxhRvcYYRaFvBjdi1hAX0b/WEq+tQlDJh//YxXlbYY2SL6bFojg1D8QC8o6Sb40lQvswa6Nuek9KiA==","repository":{"url":"git+https://github.com/slkiser/opencode-quota.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode quota & tokens usage with zero context window pollution. Supports GitHub Copilot, OpenAI (Plus/Pro), Chutes AI, Synthetic, Google AGY, Z.ai coding plan and more.","directories":{},"maintainers":[{"name":"slkiser","email":"ringed-halcyon9d@icloud.com"}],"_nodeVersion":"24.21.0","dependencies":{"solid-js":"^1.9.12","comment-json":"^5.0.0","jsonc-parser":"^3.3.1","@opentui/core":"^0.5.10","@clack/prompts":"^1.2.0","@opentui/solid":"^0.5.10","@opentelemetry/api":"^1.9.1"},"_hasShrinkwrap":false,"devDependencies":{"yaml":"^2.8.3","vitest":"^4.0.17","lefthook":"2.0.15","typescript":"7.0.2","@babel/core":"^7.28.0","@types/node":"^22.0.0","@biomejs/biome":"2.3.11","@opencode/plugin":"2.0.16","babel-preset-solid":"^1.9.12","@babel/preset-typescript":"^7.27.1","@opentelemetry/sdk-metrics":"2.10.0"},"peerDependencies":{"@opencode/plugin":"2.0.16"},"_npmOperationalInternal":{"tmp":"tmp/opencode-quota_5.0.2_1791285766641_0.5334631555493552","host":"s3://npm-registry-packages-npm-production"},"_id":"@slkiser/opencode-quota@5.0.2","version":"5.0.2"}