Step 2 (part 3) of the build order in docs/spec.md.
src/index.ts: Plugin.define({ id: "fastcrw.websearch" }); setup resolves config (throws on bad options), registers provider fastcrw ("fastCRW") and sets it as the default
tsconfig.json: rewriteRelativeImportExtensions so source imports of ./x.ts compile to ./x.js; built dist/index.js loads
Wiring tests with a fake plugin context (registration, default, throw-on-bad-options, end-to-end through a mocked fetch); 30 tests total; npm run check passes
Typings checked against @opencode/plugin 2.0.22: a result is { url, title?, content?, time: { published?: number } }, so time: {} is valid
Step 2 (part 3) of the build order in `docs/spec.md`.
- `src/index.ts`: `Plugin.define({ id: "fastcrw.websearch" })`; `setup` resolves config (throws on bad options), registers provider `fastcrw` ("fastCRW") and sets it as the default
- `tsconfig.json`: `rewriteRelativeImportExtensions` so source imports of `./x.ts` compile to `./x.js`; built `dist/index.js` loads
- Wiring tests with a fake plugin context (registration, default, throw-on-bad-options, end-to-end through a mocked fetch); 30 tests total; `npm run check` passes
- Typings checked against `@opencode/plugin` 2.0.22: a result is `{ url, title?, content?, time: { published?: number } }`, so `time: {}` is valid
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Step 2 (part 3) of the build order in
docs/spec.md.src/index.ts:Plugin.define({ id: "fastcrw.websearch" });setupresolves config (throws on bad options), registers providerfastcrw("fastCRW") and sets it as the defaulttsconfig.json:rewriteRelativeImportExtensionsso source imports of./x.tscompile to./x.js; builtdist/index.jsloadsnpm run checkpasses@opencode/plugin2.0.22: a result is{ url, title?, content?, time: { published?: number } }, sotime: {}is valid🤖 Generated with Claude Code