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.
1 line
6.0 KiB
JSON
1 line
6.0 KiB
JSON
{"bin":{"meridian":"dist/cli.js","claude-max-proxy":"dist/cli.js"},"bugs":{"url":"https://github.com/rynfar/meridian/issues"},"dist":{"shasum":"9d60a764970249e850db5a754beb388920ceef7f","tarball":"https://registry.npmjs.org/@rynfar/meridian/-/meridian-1.79.0.tgz","fileCount":382,"integrity":"sha512-ZB40fhpDX9nuz68pgHcTTGa/ThPKhQHnhTbAguXw7wx1PNqTHkAxWLqj+tyPSm+pjo3M93oJ+SQc2VhS59gxaA==","signatures":[{"sig":"MEYCIQClHytf4oBFuZngseCLkFpthQAXt4YoewHOIXdpGBkjAwIhAKWdqs1drw6XZ3WF8B8JYQQ9bU614hQpTjEY5md3sIcm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC7YSZts9Q3ZYCx0fsIQEUIMEjBuMcWDZkDHrDvQQWsGgIhAP9Lcw4eA9vsJPeGqR8e1vMkauan/otmii1hld3ckdqY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@rynfar%2fmeridian@1.79.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5221930},"main":"./dist/server.js","name":"@rynfar/meridian","type":"module","types":"./dist/proxy/server.d.ts","author":{"name":"rynfar"},"engines":{"node":">=22"},"exports":{".":{"types":"./dist/proxy/server.d.ts","default":"./dist/server.js"}},"gitHead":"0ec52a28d9c70d0f9aa84767613c7a08125d25e4","license":"MIT","private":false,"scripts":{"test":"bun test --timeout 30000 --path-ignore-patterns '**/*session-store*' --path-ignore-patterns '**/*session-fingerprint-context*' --path-ignore-patterns '**/*priority-routing-integration*' --path-ignore-patterns '**/*proxy-async-ops*' --path-ignore-patterns '**/*models-auth-status*' --path-ignore-patterns '**/*proxy-context-usage-store*' --path-ignore-patterns '**/*proxy-passthrough-thinking*' --path-ignore-patterns '**/*proxy-thinking-setting*' --path-ignore-patterns '**/*session-recovery*' --path-ignore-patterns '**/*models.test*' --path-ignore-patterns '**/*proxy-health-build*' --path-ignore-patterns '**/*follow-active-integration*' && bun test --timeout 30000 src/__tests__/proxy-async-ops.test.ts && bun test --timeout 30000 src/__tests__/proxy-session-store.test.ts && bun test --timeout 30000 src/__tests__/session-store-pruning.test.ts && bun test --timeout 30000 src/__tests__/proxy-session-store-locking.test.ts && bun test --timeout 30000 src/__tests__/session-fingerprint-context.test.ts && bun test --timeout 30000 src/__tests__/proxy-context-usage-store.test.ts && bun test --timeout 30000 src/__tests__/models-auth-status.test.ts && bun test --timeout 30000 src/__tests__/proxy-passthrough-thinking.test.ts && bun test --timeout 30000 src/__tests__/proxy-session-recovery.test.ts && bun test --timeout 30000 src/__tests__/proxy-thinking-setting.test.ts && bun test --timeout 30000 src/__tests__/models.test.ts && bun test --timeout 30000 src/__tests__/proxy-health-build.test.ts && bun test --timeout 30000 src/__tests__/priority-routing-integration.test.ts && bun test --timeout 30000 src/__tests__/follow-active-integration.test.ts","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && bun build bin/cli.ts src/proxy/server.ts plugin/meridian-v2.ts --outdir dist --target node --splitting --external @anthropic-ai/claude-agent-sdk --external jsonc-parser --entry-naming \"[name].js\" && bun build plugin/meridian/index.js --outdir dist/meridian --target node --splitting --external @anthropic-ai/claude-agent-sdk --external jsonc-parser --entry-naming \"[name].js\" && bun build plugin/meridian-v2/index.js --outdir dist/meridian-v2 --target node --splitting --external @anthropic-ai/claude-agent-sdk --external jsonc-parser --entry-naming \"[name].js\" && node scripts/package-opencode-plugins.mjs && tsc -p tsconfig.build.json","proxy":"./bin/claude-proxy-supervisor.sh","start":"./bin/claude-proxy-supervisor.sh","pretest":"tsc --noEmit","nix:lock":"bun2nix -o bun.nix","postbuild":"node scripts/fix-bun-exports.mjs && node --check dist/cli.js && node --check dist/server.js && node --check dist/meridian-v2.js && node --check dist/meridian/index.js && node --check dist/meridian-v2/index.js && node -e \"if(!require('fs').existsSync('dist/proxy/server.d.ts'))process.exit(1)\"","typecheck":"tsc --noEmit","postinstall":"node -e \"try{require('child_process').spawnSync(process.execPath,[require.resolve('@anthropic-ai/claude-code/install.cjs')],{stdio:'inherit'})}catch(e){console.error('[meridian] claude-code postinstall skipped:',e.message)}\"","proxy:direct":"bun run ./bin/cli.ts","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"5343fc60-c008-4b3b-8a5f-92ef46526ac0"}},"homepage":"https://github.com/rynfar/meridian#readme","keywords":["meridian","claude","claude-max","claude-code","anthropic","anthropic-api","claude-agent-sdk","ai-coding","ai-assistant","proxy","opencode","cline","aider","crush","charmbracelet","droid","factory-ai","pi-coding-agent","open-webui","llm","coding-assistant","opencode-claude-max-proxy","antigravity","google-antigravity","gemini","openai-compatible","ai-agents"],"repository":{"url":"git+https://github.com/rynfar/meridian.git","type":"git"},"_npmVersion":"11.19.1","description":"Use Claude and Antigravity subscriptions with Pi, OpenCode and other coding clients. Local API bridge, usage dashboard and optional Mac app.","directories":{},"maintainers":[{"name":"rynfar","email":"rynfar@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.20.0","zod":"4.4.3","libsql":"^0.5.29","ajv-formats":"^3.0.1","cross-spawn":"7.0.6","jsonc-parser":"^3.3.1","@anthropic-ai/claude-code":"^2.1.284","@anthropic-ai/claude-agent-sdk":"^0.2.141"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"glob":"^13.0.0","hono":"^4.12.34","bun2nix":"^2.0.8","@types/bun":"^1.3.11","typescript":"^5.8.2","@types/node":"^22.0.0","@hono/node-server":"^1.19.15","@types/cross-spawn":"6.0.6","@opencode-ai/plugin":"0.0.0-beta-18314"},"_npmOperationalInternal":{"tmp":"tmp/meridian_1.79.0_1790704941239_0.989653156470637","host":"s3://npm-registry-packages-npm-production"},"_id":"@rynfar/meridian@1.79.0","version":"1.79.0"} |