@alfe.ai/openclaw-search 0.0.2 → 0.0.3

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/plugin.d.cts CHANGED
@@ -6,6 +6,7 @@ interface PluginApi {
6
6
  error: (...args: unknown[]) => void;
7
7
  debug: (...args: unknown[]) => void;
8
8
  };
9
+ registrationMode?: "full" | "setup-only" | "setup-runtime" | "cli-metadata";
9
10
  registerTool(tool: unknown): void;
10
11
  }
11
12
  declare const plugin: {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";UAGU,SAAA;EAAA,MAAA,EAAA;IAKJ,IAAA,EA2BL,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAAA,IAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAtBe,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAmBE,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;EAAS,CAAA;;;cAxBrB;;;;gBAKU;kBAmBE"}
1
+ {"version":3,"file":"plugin.d.cts","names":[],"sources":["../src/plugin.ts"],"mappings":";UAGU,SAAA;EAAA,MAAA,EAAA;IAMJ,IAAA,EAiCL,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAAA,IAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IA5Be,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAyBE,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;EAAS,CAAA;;;;cA9BrB;;;;gBAKU;kBAyBE"}
package/dist/plugin.d.ts CHANGED
@@ -6,6 +6,7 @@ interface PluginApi {
6
6
  error: (...args: unknown[]) => void;
7
7
  debug: (...args: unknown[]) => void;
8
8
  };
9
+ registrationMode?: "full" | "setup-only" | "setup-runtime" | "cli-metadata";
9
10
  registerTool(tool: unknown): void;
10
11
  }
11
12
  declare const plugin: {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/plugin.ts"],"mappings":";UAGU,SAAA;EAAA,MAAA,EAAA;IAKJ,IAAA,EA2BL,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAAA,IAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAtBe,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAmBE,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;EAAS,CAAA;;;cAxBrB;;;;gBAKU;kBAmBE"}
1
+ {"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/plugin.ts"],"mappings":";UAGU,SAAA;EAAA,MAAA,EAAA;IAMJ,IAAA,EAiCL,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAAA,IAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IA5Be,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;IAyBE,KAAA,EAAA,CAAA,GAAA,IAAA,EAAA,OAAA,EAAA,EAAA,GAAA,IAAA;EAAS,CAAA;;;;cA9BrB;;;;gBAKU;kBAyBE"}
package/dist/plugin2.cjs CHANGED
@@ -105,6 +105,7 @@ const plugin = {
105
105
  version: "0.0.1",
106
106
  activate(api) {
107
107
  const log = api.logger;
108
+ if (api.registrationMode && api.registrationMode !== "full") return;
108
109
  log.info("Search plugin activating...");
109
110
  let apiUrl;
110
111
  let apiKey;
package/dist/plugin2.js CHANGED
@@ -105,6 +105,7 @@ const plugin = {
105
105
  version: "0.0.1",
106
106
  activate(api) {
107
107
  const log = api.logger;
108
+ if (api.registrationMode && api.registrationMode !== "full") return;
108
109
  log.info("Search plugin activating...");
109
110
  let apiUrl;
110
111
  let apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin2.js","names":[],"sources":["../src/tools.ts","../src/plugin.ts"],"sourcesContent":["interface PluginApi {\n registerTool(tool: ToolDef): void;\n}\n\ninterface ToolDef {\n name: string;\n description: string;\n label: string;\n parameters: Record<string, unknown>;\n execute: (toolCallId: string, params: Record<string, unknown>) => Promise<unknown>;\n}\n\nasync function searchRequest(\n apiUrl: string,\n apiKey: string,\n type: \"web\" | \"images\" | \"news\",\n params: Record<string, unknown>,\n): Promise<unknown> {\n const res = await fetch(`${apiUrl}/agents/search/${type}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => \"\");\n throw new Error(`Search API error: ${String(res.status)} ${body}`);\n }\n\n const json = await res.json() as { data?: unknown };\n return json.data ?? json;\n}\n\nexport function registerTools(api: PluginApi, apiUrl: string, apiKey: string): void {\n // ── Web Search ──────────────────────────────────────\n\n api.registerTool({\n name: \"brave_web_search\",\n label: \"brave_web_search\",\n description: \"Search the web using Brave Search. Returns web pages with titles, URLs, and descriptions.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n offset: { type: \"number\", description: \"Pagination offset (0-9)\", default: 0 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"web\", params);\n },\n });\n\n // ── Image Search ────────────────────────────────────\n\n api.registerTool({\n name: \"brave_image_search\",\n label: \"brave_image_search\",\n description: \"Search for images using Brave Search. Returns image URLs, thumbnails, and metadata.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"images\", params);\n },\n });\n\n // ── News Search ─────────────────────────────────────\n\n api.registerTool({\n name: \"brave_news_search\",\n label: \"brave_news_search\",\n description: \"Search for news articles using Brave Search. Returns articles with titles, sources, and publication dates.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n offset: { type: \"number\", description: \"Pagination offset (0-9)\", default: 0 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"news\", params);\n },\n });\n}\n","import { registerTools } from \"./tools.js\";\nimport { resolveConfig } from \"@alfe.ai/config\";\n\ninterface PluginApi {\n logger: { info: (...args: unknown[]) => void; warn: (...args: unknown[]) => void; error: (...args: unknown[]) => void; debug: (...args: unknown[]) => void };\n registerTool(tool: unknown): void;\n}\n\nconst plugin = {\n id: \"@alfe.ai/openclaw-search\",\n name: \"Brave Search\",\n version: \"0.0.1\",\n\n activate(api: PluginApi) {\n const log = api.logger;\n log.info(\"Search plugin activating...\");\n\n let apiUrl: string;\n let apiKey: string;\n try {\n const config = resolveConfig();\n apiUrl = config.apiUrl;\n apiKey = config.apiKey;\n } catch (err) {\n log.error(`Search plugin: failed to resolve config — ${err instanceof Error ? err.message : String(err)}`);\n return;\n }\n\n registerTools(api, apiUrl, apiKey);\n log.info(\"Search plugin activated — brave_web_search, brave_image_search, brave_news_search tools registered\");\n },\n\n deactivate(api: PluginApi) {\n api.logger.info(\"Search plugin deactivating...\");\n },\n};\n\nexport default plugin;\n"],"mappings":";;AAYA,eAAe,cACb,QACA,QACA,MACA,QACkB;CAClB,MAAM,MAAM,MAAM,MAAM,GAAG,OAAO,iBAAiB,QAAQ;EACzD,QAAQ;EACR,SAAS;GACP,gBAAgB;GAChB,eAAe,UAAU;GAC1B;EACD,MAAM,KAAK,UAAU,OAAO;EAC7B,CAAC;AAEF,KAAI,CAAC,IAAI,IAAI;EACX,MAAM,OAAO,MAAM,IAAI,MAAM,CAAC,YAAY,GAAG;AAC7C,QAAM,IAAI,MAAM,qBAAqB,OAAO,IAAI,OAAO,CAAC,GAAG,OAAO;;CAGpE,MAAM,OAAO,MAAM,IAAI,MAAM;AAC7B,QAAO,KAAK,QAAQ;;AAGtB,SAAgB,cAAc,KAAgB,QAAgB,QAAsB;AAGlF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IACzF,QAAQ;KAAE,MAAM;KAAU,aAAa;KAA2B,SAAS;KAAG;IAC/E;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,OAAO,OAAO;;EAEtD,CAAC;AAIF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IAC1F;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,UAAU,OAAO;;EAEzD,CAAC;AAIF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IACzF,QAAQ;KAAE,MAAM;KAAU,aAAa;KAA2B,SAAS;KAAG;IAC/E;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,QAAQ,OAAO;;EAEvD,CAAC;;;;ACtFJ,MAAM,SAAS;CACb,IAAI;CACJ,MAAM;CACN,SAAS;CAET,SAAS,KAAgB;EACvB,MAAM,MAAM,IAAI;AAChB,MAAI,KAAK,8BAA8B;EAEvC,IAAI;EACJ,IAAI;AACJ,MAAI;GACF,MAAM,SAAS,eAAe;AAC9B,YAAS,OAAO;AAChB,YAAS,OAAO;WACT,KAAK;AACZ,OAAI,MAAM,6CAA6C,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI,GAAG;AAC1G;;AAGF,gBAAc,KAAK,QAAQ,OAAO;AAClC,MAAI,KAAK,qGAAqG;;CAGhH,WAAW,KAAgB;AACzB,MAAI,OAAO,KAAK,gCAAgC;;CAEnD"}
1
+ {"version":3,"file":"plugin2.js","names":[],"sources":["../src/tools.ts","../src/plugin.ts"],"sourcesContent":["interface PluginApi {\n registerTool(tool: ToolDef): void;\n}\n\ninterface ToolDef {\n name: string;\n description: string;\n label: string;\n parameters: Record<string, unknown>;\n execute: (toolCallId: string, params: Record<string, unknown>) => Promise<unknown>;\n}\n\nasync function searchRequest(\n apiUrl: string,\n apiKey: string,\n type: \"web\" | \"images\" | \"news\",\n params: Record<string, unknown>,\n): Promise<unknown> {\n const res = await fetch(`${apiUrl}/agents/search/${type}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify(params),\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => \"\");\n throw new Error(`Search API error: ${String(res.status)} ${body}`);\n }\n\n const json = await res.json() as { data?: unknown };\n return json.data ?? json;\n}\n\nexport function registerTools(api: PluginApi, apiUrl: string, apiKey: string): void {\n // ── Web Search ──────────────────────────────────────\n\n api.registerTool({\n name: \"brave_web_search\",\n label: \"brave_web_search\",\n description: \"Search the web using Brave Search. Returns web pages with titles, URLs, and descriptions.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n offset: { type: \"number\", description: \"Pagination offset (0-9)\", default: 0 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"web\", params);\n },\n });\n\n // ── Image Search ────────────────────────────────────\n\n api.registerTool({\n name: \"brave_image_search\",\n label: \"brave_image_search\",\n description: \"Search for images using Brave Search. Returns image URLs, thumbnails, and metadata.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"images\", params);\n },\n });\n\n // ── News Search ─────────────────────────────────────\n\n api.registerTool({\n name: \"brave_news_search\",\n label: \"brave_news_search\",\n description: \"Search for news articles using Brave Search. Returns articles with titles, sources, and publication dates.\",\n parameters: {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"The search query\" },\n count: { type: \"number\", description: \"Number of results to return (1-20)\", default: 10 },\n offset: { type: \"number\", description: \"Pagination offset (0-9)\", default: 0 },\n },\n required: [\"query\"],\n },\n execute: async (_id, params) => {\n return searchRequest(apiUrl, apiKey, \"news\", params);\n },\n });\n}\n","import { registerTools } from \"./tools.js\";\nimport { resolveConfig } from \"@alfe.ai/config\";\n\ninterface PluginApi {\n logger: { info: (...args: unknown[]) => void; warn: (...args: unknown[]) => void; error: (...args: unknown[]) => void; debug: (...args: unknown[]) => void };\n registrationMode?: \"full\" | \"setup-only\" | \"setup-runtime\" | \"cli-metadata\";\n registerTool(tool: unknown): void;\n}\n\nconst plugin = {\n id: \"@alfe.ai/openclaw-search\",\n name: \"Brave Search\",\n version: \"0.0.1\",\n\n activate(api: PluginApi) {\n const log = api.logger;\n\n // Only run during full gateway execution — skip CLI commands, setup, etc.\n if (api.registrationMode && api.registrationMode !== \"full\") {\n return;\n }\n\n log.info(\"Search plugin activating...\");\n\n let apiUrl: string;\n let apiKey: string;\n try {\n const config = resolveConfig();\n apiUrl = config.apiUrl;\n apiKey = config.apiKey;\n } catch (err) {\n log.error(`Search plugin: failed to resolve config — ${err instanceof Error ? err.message : String(err)}`);\n return;\n }\n\n registerTools(api, apiUrl, apiKey);\n log.info(\"Search plugin activated — brave_web_search, brave_image_search, brave_news_search tools registered\");\n },\n\n deactivate(api: PluginApi) {\n api.logger.info(\"Search plugin deactivating...\");\n },\n};\n\nexport default plugin;\n"],"mappings":";;AAYA,eAAe,cACb,QACA,QACA,MACA,QACkB;CAClB,MAAM,MAAM,MAAM,MAAM,GAAG,OAAO,iBAAiB,QAAQ;EACzD,QAAQ;EACR,SAAS;GACP,gBAAgB;GAChB,eAAe,UAAU;GAC1B;EACD,MAAM,KAAK,UAAU,OAAO;EAC7B,CAAC;AAEF,KAAI,CAAC,IAAI,IAAI;EACX,MAAM,OAAO,MAAM,IAAI,MAAM,CAAC,YAAY,GAAG;AAC7C,QAAM,IAAI,MAAM,qBAAqB,OAAO,IAAI,OAAO,CAAC,GAAG,OAAO;;CAGpE,MAAM,OAAO,MAAM,IAAI,MAAM;AAC7B,QAAO,KAAK,QAAQ;;AAGtB,SAAgB,cAAc,KAAgB,QAAgB,QAAsB;AAGlF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IACzF,QAAQ;KAAE,MAAM;KAAU,aAAa;KAA2B,SAAS;KAAG;IAC/E;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,OAAO,OAAO;;EAEtD,CAAC;AAIF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IAC1F;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,UAAU,OAAO;;EAEzD,CAAC;AAIF,KAAI,aAAa;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;GACV,MAAM;GACN,YAAY;IACV,OAAO;KAAE,MAAM;KAAU,aAAa;KAAoB;IAC1D,OAAO;KAAE,MAAM;KAAU,aAAa;KAAsC,SAAS;KAAI;IACzF,QAAQ;KAAE,MAAM;KAAU,aAAa;KAA2B,SAAS;KAAG;IAC/E;GACD,UAAU,CAAC,QAAQ;GACpB;EACD,SAAS,OAAO,KAAK,WAAW;AAC9B,UAAO,cAAc,QAAQ,QAAQ,QAAQ,OAAO;;EAEvD,CAAC;;;;ACrFJ,MAAM,SAAS;CACb,IAAI;CACJ,MAAM;CACN,SAAS;CAET,SAAS,KAAgB;EACvB,MAAM,MAAM,IAAI;AAGhB,MAAI,IAAI,oBAAoB,IAAI,qBAAqB,OACnD;AAGF,MAAI,KAAK,8BAA8B;EAEvC,IAAI;EACJ,IAAI;AACJ,MAAI;GACF,MAAM,SAAS,eAAe;AAC9B,YAAS,OAAO;AAChB,YAAS,OAAO;WACT,KAAK;AACZ,OAAI,MAAM,6CAA6C,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI,GAAG;AAC1G;;AAGF,gBAAc,KAAK,QAAQ,OAAO;AAClC,MAAI,KAAK,qGAAqG;;CAGhH,WAAW,KAAgB;AACzB,MAAI,OAAO,KAAK,gCAAgC;;CAEnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfe.ai/openclaw-search",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "OpenClaw search plugin — web, image, and news search via Brave Search API",
5
5
  "type": "module",
6
6
  "main": "./dist/plugin.js",