@render-harness/cap-browser-browserbase 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { definePack } from '@render-harness/registry';
6
6
 
7
7
  // package.json
8
8
  var package_default = {
9
- version: "0.2.1"};
9
+ version: "0.3.0"};
10
10
 
11
11
  // src/index.ts
12
12
  var HERE = dirname(fileURLToPath(import.meta.url));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,OAqDb,CAAA;;;ACxBA,IAAM,IAAA,GAAO,OAAA,CAAQ,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAC,CAAA;AACnD,IAAM,UAAA,GAAa,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM,QAAQ,CAAA;AAS5C,SAAS,WAAW,GAAA,EAAkB;AACpC,EAAA,MAAM,MAAM,GAAA,CAAI,MAAA;AAChB,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAI,SAAA,IAAa,qBAAA;AAAA,IAC5B,YAAA,EAAc,IAAI,YAAA,IAAgB,wBAAA;AAAA,IAClC,OAAA,EAAS,IAAI,OAAA,IAAW,KAAA;AAAA,IACxB,GAAA,EAAK,IAAI,OAAA,IAAW;AAAA,GACtB;AACF;AAEA,IAAM,OAAO,UAAA,CAAW;AAAA,EACtB,IAAA,EAAM,yBAAA;AAAA,EACN,SAAS,eAAA,CAAI,OAAA;AAAA,EACb,SAAA,EAAW;AAAA,IACT;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,MAAA,EAAQ,IAAA;AAAA,MACR,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,IAAA,EAAM,wBAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,MAAA,EAAQ,KAAA;AAAA,MACR,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,WAAW,GAAA,EAAqC;AAC9C,IAAA,MAAM,GAAA,GAAM,WAAW,GAAG,CAAA;AAC1B,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,SAAS,CAAA;AACpC,IAAA,MAAM,SAAA,GAAY,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,YAAY,CAAA;AAC1C,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,SAAA,EAAW;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,iCAAA,EAAoC,GAAA,CAAI,SAAS,CAAA,IAAA,EAAO,IAAI,YAAY,CAAA,qCAAA;AAAA,OAC1E;AAAA,IACF;AACA,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,SAAA,EAAW,OAAA;AAAA,QACX,SAAS,GAAA,CAAI,OAAA;AAAA,QACb,IAAA,EAAM,CAAC,IAAA,EAAM,GAAA,CAAI,GAAG,CAAA;AAAA,QACpB,GAAA,EAAK;AAAA,UACH,mBAAA,EAAqB,MAAA;AAAA,UACrB,sBAAA,EAAwB;AAAA;AAC1B;AACF,KACF;AAAA,EACF,CAAA;AAAA,EACA,OAAO,IAAA,EAAoC;AACzC,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,WAAA,EAAa,kEAAA;AAAA,QACb,SAAA,EACE,kHAAA;AAAA,QACF,WAAA,EAAa,IAAA,CAAK,UAAA,EAAY,gBAAgB;AAAA;AAChD,KACF;AAAA,EACF;AACF,CAAC,CAAA;AAED,IAAO,WAAA,GAAQ","file":"index.js","sourcesContent":["{\n \"name\": \"@render-harness/cap-browser-browserbase\",\n \"version\": \"0.2.1\",\n \"description\": \"Browserbase headless-browser capability pack for the Render agent harness.\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"skills\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"keywords\": [\n \"render-harness-cap\",\n \"render-harness\",\n \"browser\",\n \"browserbase\",\n \"mcp\"\n ],\n \"renderHarness\": {\n \"gallery\": {\n \"label\": \"Browserbase remote browser\",\n \"envHint\": \"BROWSERBASE_API_KEY\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run --passWithNoTests\"\n },\n \"dependencies\": {\n \"@render-harness/registry\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@render-harness/core\": \"workspace:*\",\n \"@types/node\": \"^25.6.2\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"^6.0.3\",\n \"vitest\": \"^4.1.5\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/render-lab/render-agent-harness.git\",\n \"directory\": \"packages/capabilities/cap-browser-browserbase\"\n }\n}\n","/**\n * cap-browser-browserbase — wires Browserbase's headless-browser MCP\n * for any harness entry that needs to drive a real browser (login\n * flows, JS-heavy pages, scraping behind paywalls / SPAs).\n *\n * Usage in render-harness.yaml:\n *\n * capabilities:\n * - pack: \"@render-harness/cap-browser-browserbase\"\n *\n * Surfaces:\n * - One MCP server `browserbase` (stdio transport).\n * - One skill (skills/browserbase.md).\n * - envSchema entries for BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID.\n *\n * Config keys:\n * - `apiKeyEnv` (string, default \"BROWSERBASE_API_KEY\")\n * - `projectIdEnv` (string, default \"BROWSERBASE_PROJECT_ID\")\n * - `command` (string, default \"npx\")\n * - `package` (string, default \"@browserbasehq/mcp\")\n *\n * Browserbase is a hosted browser pool, so this pack does NOT declare\n * any extra Render services — sessions live on Browserbase's side.\n */\n\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport type { McpServerConfig, SkillMetadata } from \"@render-harness/core\";\nimport { definePack, type PackContext } from \"@render-harness/registry\";\nimport pkg from \"../package.json\" with { type: \"json\" };\n\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst SKILLS_DIR = join(HERE, \"..\", \"skills\");\n\ninterface BrowserbaseConfig {\n apiKeyEnv?: string;\n projectIdEnv?: string;\n command?: string;\n package?: string;\n}\n\nfunction readConfig(ctx: PackContext) {\n const cfg = ctx.config as BrowserbaseConfig;\n return {\n apiKeyEnv: cfg.apiKeyEnv ?? \"BROWSERBASE_API_KEY\",\n projectIdEnv: cfg.projectIdEnv ?? \"BROWSERBASE_PROJECT_ID\",\n command: cfg.command ?? \"npx\",\n pkg: cfg.package ?? \"@browserbasehq/mcp\",\n };\n}\n\nconst pack = definePack({\n name: \"cap-browser-browserbase\",\n version: pkg.version,\n envSchema: [\n {\n name: \"BROWSERBASE_API_KEY\",\n required: true,\n secret: true,\n description: \"API key for Browserbase (https://browserbase.com).\",\n },\n {\n name: \"BROWSERBASE_PROJECT_ID\",\n required: true,\n secret: false,\n description: \"Project ID in your Browserbase workspace.\",\n },\n ],\n mcpServers(ctx: PackContext): McpServerConfig[] {\n const cfg = readConfig(ctx);\n const apiKey = ctx.env(cfg.apiKeyEnv);\n const projectId = ctx.env(cfg.projectIdEnv);\n if (!apiKey || !projectId) {\n throw new Error(\n `cap-browser-browserbase: missing ${cfg.apiKeyEnv} or ${cfg.projectIdEnv}. Set both before starting the agent.`,\n );\n }\n return [\n {\n name: \"browserbase\",\n transport: \"stdio\",\n command: cfg.command,\n args: [\"-y\", cfg.pkg],\n env: {\n BROWSERBASE_API_KEY: apiKey,\n BROWSERBASE_PROJECT_ID: projectId,\n },\n },\n ];\n },\n skills(_ctx: PackContext): SkillMetadata[] {\n return [\n {\n name: \"browserbase\",\n description: \"Drive a real browser via Browserbase when scraping isn't enough.\",\n whenToUse:\n \"When the page requires JS execution, login, click flows, or screenshots that aren't possible with HTTP scraping.\",\n contentPath: join(SKILLS_DIR, \"browserbase.md\"),\n },\n ];\n },\n});\n\nexport default pack;\n"]}
1
+ {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,EAEE,OAAA,EAAW,OAqDb,CAAA;;;ACxBA,IAAM,IAAA,GAAO,OAAA,CAAQ,aAAA,CAAc,MAAA,CAAA,IAAA,CAAY,GAAG,CAAC,CAAA;AACnD,IAAM,UAAA,GAAa,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM,QAAQ,CAAA;AAS5C,SAAS,WAAW,GAAA,EAAkB;AACpC,EAAA,MAAM,MAAM,GAAA,CAAI,MAAA;AAChB,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAI,SAAA,IAAa,qBAAA;AAAA,IAC5B,YAAA,EAAc,IAAI,YAAA,IAAgB,wBAAA;AAAA,IAClC,OAAA,EAAS,IAAI,OAAA,IAAW,KAAA;AAAA,IACxB,GAAA,EAAK,IAAI,OAAA,IAAW;AAAA,GACtB;AACF;AAEA,IAAM,OAAO,UAAA,CAAW;AAAA,EACtB,IAAA,EAAM,yBAAA;AAAA,EACN,SAAS,eAAA,CAAI,OAAA;AAAA,EACb,SAAA,EAAW;AAAA,IACT;AAAA,MACE,IAAA,EAAM,qBAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,MAAA,EAAQ,IAAA;AAAA,MACR,WAAA,EAAa;AAAA,KACf;AAAA,IACA;AAAA,MACE,IAAA,EAAM,wBAAA;AAAA,MACN,QAAA,EAAU,IAAA;AAAA,MACV,MAAA,EAAQ,KAAA;AAAA,MACR,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,WAAW,GAAA,EAAqC;AAC9C,IAAA,MAAM,GAAA,GAAM,WAAW,GAAG,CAAA;AAC1B,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,SAAS,CAAA;AACpC,IAAA,MAAM,SAAA,GAAY,GAAA,CAAI,GAAA,CAAI,GAAA,CAAI,YAAY,CAAA;AAC1C,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,SAAA,EAAW;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,iCAAA,EAAoC,GAAA,CAAI,SAAS,CAAA,IAAA,EAAO,IAAI,YAAY,CAAA,qCAAA;AAAA,OAC1E;AAAA,IACF;AACA,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,SAAA,EAAW,OAAA;AAAA,QACX,SAAS,GAAA,CAAI,OAAA;AAAA,QACb,IAAA,EAAM,CAAC,IAAA,EAAM,GAAA,CAAI,GAAG,CAAA;AAAA,QACpB,GAAA,EAAK;AAAA,UACH,mBAAA,EAAqB,MAAA;AAAA,UACrB,sBAAA,EAAwB;AAAA;AAC1B;AACF,KACF;AAAA,EACF,CAAA;AAAA,EACA,OAAO,IAAA,EAAoC;AACzC,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,WAAA,EAAa,kEAAA;AAAA,QACb,SAAA,EACE,kHAAA;AAAA,QACF,WAAA,EAAa,IAAA,CAAK,UAAA,EAAY,gBAAgB;AAAA;AAChD,KACF;AAAA,EACF;AACF,CAAC,CAAA;AAED,IAAO,WAAA,GAAQ","file":"index.js","sourcesContent":["{\n \"name\": \"@render-harness/cap-browser-browserbase\",\n \"version\": \"0.3.0\",\n \"description\": \"Browserbase headless-browser capability pack for the Render agent harness.\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"skills\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"keywords\": [\n \"render-harness-cap\",\n \"render-harness\",\n \"browser\",\n \"browserbase\",\n \"mcp\"\n ],\n \"renderHarness\": {\n \"gallery\": {\n \"label\": \"Browserbase remote browser\",\n \"envHint\": \"BROWSERBASE_API_KEY\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"typecheck\": \"tsc --noEmit\",\n \"test\": \"vitest run --passWithNoTests\"\n },\n \"dependencies\": {\n \"@render-harness/registry\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@render-harness/core\": \"workspace:*\",\n \"@types/node\": \"^25.6.2\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"^6.0.3\",\n \"vitest\": \"^4.1.5\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/render-lab/render-agent-harness.git\",\n \"directory\": \"packages/capabilities/cap-browser-browserbase\"\n }\n}\n","/**\n * cap-browser-browserbase — wires Browserbase's headless-browser MCP\n * for any harness entry that needs to drive a real browser (login\n * flows, JS-heavy pages, scraping behind paywalls / SPAs).\n *\n * Usage in render-harness.yaml:\n *\n * capabilities:\n * - pack: \"@render-harness/cap-browser-browserbase\"\n *\n * Surfaces:\n * - One MCP server `browserbase` (stdio transport).\n * - One skill (skills/browserbase.md).\n * - envSchema entries for BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID.\n *\n * Config keys:\n * - `apiKeyEnv` (string, default \"BROWSERBASE_API_KEY\")\n * - `projectIdEnv` (string, default \"BROWSERBASE_PROJECT_ID\")\n * - `command` (string, default \"npx\")\n * - `package` (string, default \"@browserbasehq/mcp\")\n *\n * Browserbase is a hosted browser pool, so this pack does NOT declare\n * any extra Render services — sessions live on Browserbase's side.\n */\n\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport type { McpServerConfig, SkillMetadata } from \"@render-harness/core\";\nimport { definePack, type PackContext } from \"@render-harness/registry\";\nimport pkg from \"../package.json\" with { type: \"json\" };\n\nconst HERE = dirname(fileURLToPath(import.meta.url));\nconst SKILLS_DIR = join(HERE, \"..\", \"skills\");\n\ninterface BrowserbaseConfig {\n apiKeyEnv?: string;\n projectIdEnv?: string;\n command?: string;\n package?: string;\n}\n\nfunction readConfig(ctx: PackContext) {\n const cfg = ctx.config as BrowserbaseConfig;\n return {\n apiKeyEnv: cfg.apiKeyEnv ?? \"BROWSERBASE_API_KEY\",\n projectIdEnv: cfg.projectIdEnv ?? \"BROWSERBASE_PROJECT_ID\",\n command: cfg.command ?? \"npx\",\n pkg: cfg.package ?? \"@browserbasehq/mcp\",\n };\n}\n\nconst pack = definePack({\n name: \"cap-browser-browserbase\",\n version: pkg.version,\n envSchema: [\n {\n name: \"BROWSERBASE_API_KEY\",\n required: true,\n secret: true,\n description: \"API key for Browserbase (https://browserbase.com).\",\n },\n {\n name: \"BROWSERBASE_PROJECT_ID\",\n required: true,\n secret: false,\n description: \"Project ID in your Browserbase workspace.\",\n },\n ],\n mcpServers(ctx: PackContext): McpServerConfig[] {\n const cfg = readConfig(ctx);\n const apiKey = ctx.env(cfg.apiKeyEnv);\n const projectId = ctx.env(cfg.projectIdEnv);\n if (!apiKey || !projectId) {\n throw new Error(\n `cap-browser-browserbase: missing ${cfg.apiKeyEnv} or ${cfg.projectIdEnv}. Set both before starting the agent.`,\n );\n }\n return [\n {\n name: \"browserbase\",\n transport: \"stdio\",\n command: cfg.command,\n args: [\"-y\", cfg.pkg],\n env: {\n BROWSERBASE_API_KEY: apiKey,\n BROWSERBASE_PROJECT_ID: projectId,\n },\n },\n ];\n },\n skills(_ctx: PackContext): SkillMetadata[] {\n return [\n {\n name: \"browserbase\",\n description: \"Drive a real browser via Browserbase when scraping isn't enough.\",\n whenToUse:\n \"When the page requires JS execution, login, click flows, or screenshots that aren't possible with HTTP scraping.\",\n contentPath: join(SKILLS_DIR, \"browserbase.md\"),\n },\n ];\n },\n});\n\nexport default pack;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@render-harness/cap-browser-browserbase",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Browserbase headless-browser capability pack for the Render agent harness.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -34,14 +34,14 @@
34
34
  }
35
35
  },
36
36
  "dependencies": {
37
- "@render-harness/registry": "0.2.3"
37
+ "@render-harness/registry": "0.3.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^25.6.2",
41
41
  "tsup": "^8.5.1",
42
42
  "typescript": "^6.0.3",
43
43
  "vitest": "^4.1.5",
44
- "@render-harness/core": "0.2.2"
44
+ "@render-harness/core": "0.3.0"
45
45
  },
46
46
  "repository": {
47
47
  "type": "git",