diff --git a/extensions/brave/src/brave-web-search-provider.ts b/extensions/brave/src/brave-web-search-provider.ts index 266f7dd666c..370fe77e854 100644 --- a/extensions/brave/src/brave-web-search-provider.ts +++ b/extensions/brave/src/brave-web-search-provider.ts @@ -1,33 +1,30 @@ import { Type } from "@sinclair/typebox"; -import { readNumberParam, readStringParam } from "../../../src/agents/tools/common.js"; -import type { SearchConfigRecord } from "../../../src/agents/tools/web-search-provider-common.js"; import { buildSearchCacheKey, DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, + formatCliCommand, normalizeFreshness, normalizeToIsoDate, readCachedSearchPayload, readConfiguredSecretString, + readNumberParam, readProviderEnvValue, + readStringParam, resolveSearchCacheTtlMs, resolveSearchCount, resolveSearchTimeoutSeconds, resolveSiteName, - withTrustedWebSearchEndpoint, - writeCachedSearchPayload, -} from "../../../src/agents/tools/web-search-provider-common.js"; -import { resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import { formatCliCommand } from "../../../src/cli/command-format.js"; -import type { OpenClawConfig } from "../../../src/config/config.js"; -import type { - WebSearchProviderPlugin, - WebSearchProviderToolDefinition, -} from "../../../src/plugins/types.js"; -import { wrapWebContent } from "../../../src/security/external-content.js"; + type OpenClawConfig, + type SearchConfigRecord, + type WebSearchProviderPlugin, + type WebSearchProviderToolDefinition, + withTrustedWebSearchEndpoint, + wrapWebContent, + writeCachedSearchPayload, +} from "openclaw/plugin-sdk/provider-web-search"; const BRAVE_SEARCH_ENDPOINT = "https://api.search.brave.com/res/v1/web/search"; const BRAVE_LLM_CONTEXT_ENDPOINT = "https://api.search.brave.com/res/v1/llm/context"; diff --git a/extensions/firecrawl/src/firecrawl-search-provider.ts b/extensions/firecrawl/src/firecrawl-search-provider.ts index bb2a8aa2864..11a0fa0788d 100644 --- a/extensions/firecrawl/src/firecrawl-search-provider.ts +++ b/extensions/firecrawl/src/firecrawl-search-provider.ts @@ -1,10 +1,10 @@ import { Type } from "@sinclair/typebox"; import { + enablePluginInConfig, resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import { enablePluginInConfig } from "../../../src/plugins/enable.js"; -import type { WebSearchProviderPlugin } from "../../../src/plugins/types.js"; + type WebSearchProviderPlugin, +} from "openclaw/plugin-sdk/provider-web-search"; import { runFirecrawlSearch } from "./firecrawl-client.js"; const GenericFirecrawlSearchSchema = Type.Object( diff --git a/extensions/google/src/gemini-web-search-provider.ts b/extensions/google/src/gemini-web-search-provider.ts index 1d56f36e13f..b0b5d56da66 100644 --- a/extensions/google/src/gemini-web-search-provider.ts +++ b/extensions/google/src/gemini-web-search-provider.ts @@ -1,30 +1,27 @@ import { Type } from "@sinclair/typebox"; -import { readNumberParam, readStringParam } from "../../../src/agents/tools/common.js"; -import { resolveCitationRedirectUrl } from "../../../src/agents/tools/web-search-citation-redirect.js"; -import type { SearchConfigRecord } from "../../../src/agents/tools/web-search-provider-common.js"; import { buildSearchCacheKey, DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, readCachedSearchPayload, readConfiguredSecretString, + readNumberParam, readProviderEnvValue, + readStringParam, + resolveCitationRedirectUrl, resolveSearchCacheTtlMs, resolveSearchCount, resolveSearchTimeoutSeconds, - withTrustedWebSearchEndpoint, - writeCachedSearchPayload, -} from "../../../src/agents/tools/web-search-provider-common.js"; -import { resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import type { OpenClawConfig } from "../../../src/config/config.js"; -import type { - WebSearchProviderPlugin, - WebSearchProviderToolDefinition, -} from "../../../src/plugins/types.js"; -import { wrapWebContent } from "../../../src/security/external-content.js"; + type OpenClawConfig, + type SearchConfigRecord, + type WebSearchProviderPlugin, + type WebSearchProviderToolDefinition, + withTrustedWebSearchEndpoint, + wrapWebContent, + writeCachedSearchPayload, +} from "openclaw/plugin-sdk/provider-web-search"; const DEFAULT_GEMINI_MODEL = "gemini-2.5-flash"; const GEMINI_API_BASE = "https://generativelanguage.googleapis.com/v1beta"; diff --git a/extensions/moonshot/src/kimi-web-search-provider.ts b/extensions/moonshot/src/kimi-web-search-provider.ts index ab76814201a..9224f86e3a6 100644 --- a/extensions/moonshot/src/kimi-web-search-provider.ts +++ b/extensions/moonshot/src/kimi-web-search-provider.ts @@ -1,29 +1,26 @@ import { Type } from "@sinclair/typebox"; -import { readNumberParam, readStringParam } from "../../../src/agents/tools/common.js"; -import type { SearchConfigRecord } from "../../../src/agents/tools/web-search-provider-common.js"; import { buildSearchCacheKey, DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, readCachedSearchPayload, readConfiguredSecretString, + readNumberParam, readProviderEnvValue, + readStringParam, resolveSearchCacheTtlMs, resolveSearchCount, resolveSearchTimeoutSeconds, - withTrustedWebSearchEndpoint, - writeCachedSearchPayload, -} from "../../../src/agents/tools/web-search-provider-common.js"; -import { resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import type { OpenClawConfig } from "../../../src/config/config.js"; -import type { - WebSearchProviderPlugin, - WebSearchProviderToolDefinition, -} from "../../../src/plugins/types.js"; -import { wrapWebContent } from "../../../src/security/external-content.js"; + type OpenClawConfig, + type SearchConfigRecord, + type WebSearchProviderPlugin, + type WebSearchProviderToolDefinition, + withTrustedWebSearchEndpoint, + wrapWebContent, + writeCachedSearchPayload, +} from "openclaw/plugin-sdk/provider-web-search"; const DEFAULT_KIMI_BASE_URL = "https://api.moonshot.ai/v1"; const DEFAULT_KIMI_MODEL = "moonshot-v1-128k"; diff --git a/extensions/perplexity/src/perplexity-web-search-provider.ts b/extensions/perplexity/src/perplexity-web-search-provider.ts index 6a150d64b53..53bdaaa5a98 100644 --- a/extensions/perplexity/src/perplexity-web-search-provider.ts +++ b/extensions/perplexity/src/perplexity-web-search-provider.ts @@ -3,9 +3,6 @@ import { readNumberParam, readStringArrayParam, readStringParam, -} from "../../../src/agents/tools/common.js"; -import type { SearchConfigRecord } from "../../../src/agents/tools/web-search-provider-common.js"; -import { buildSearchCacheKey, DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, @@ -19,21 +16,18 @@ import { resolveSearchCount, resolveSearchTimeoutSeconds, resolveSiteName, - throwWebSearchApiError, - withTrustedWebSearchEndpoint, - writeCachedSearchPayload, -} from "../../../src/agents/tools/web-search-provider-common.js"; -import { resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import type { OpenClawConfig } from "../../../src/config/config.js"; -import type { - WebSearchCredentialResolutionSource, - WebSearchProviderPlugin, - WebSearchProviderToolDefinition, -} from "../../../src/plugins/types.js"; -import { wrapWebContent } from "../../../src/security/external-content.js"; + throwWebSearchApiError, + type OpenClawConfig, + type SearchConfigRecord, + type WebSearchCredentialResolutionSource, + type WebSearchProviderPlugin, + type WebSearchProviderToolDefinition, + withTrustedWebSearchEndpoint, + wrapWebContent, + writeCachedSearchPayload, +} from "openclaw/plugin-sdk/provider-web-search"; const DEFAULT_PERPLEXITY_BASE_URL = "https://openrouter.ai/api/v1"; const PERPLEXITY_DIRECT_BASE_URL = "https://api.perplexity.ai"; diff --git a/extensions/xai/src/grok-web-search-provider.ts b/extensions/xai/src/grok-web-search-provider.ts index e18b9a156ef..864f7ede9ac 100644 --- a/extensions/xai/src/grok-web-search-provider.ts +++ b/extensions/xai/src/grok-web-search-provider.ts @@ -1,29 +1,26 @@ import { Type } from "@sinclair/typebox"; -import { readNumberParam, readStringParam } from "../../../src/agents/tools/common.js"; -import type { SearchConfigRecord } from "../../../src/agents/tools/web-search-provider-common.js"; import { buildSearchCacheKey, DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, readCachedSearchPayload, readConfiguredSecretString, + readNumberParam, readProviderEnvValue, + readStringParam, resolveSearchCacheTtlMs, resolveSearchCount, resolveSearchTimeoutSeconds, - withTrustedWebSearchEndpoint, - writeCachedSearchPayload, -} from "../../../src/agents/tools/web-search-provider-common.js"; -import { resolveProviderWebSearchPluginConfig, setProviderWebSearchPluginConfigValue, -} from "../../../src/agents/tools/web-search-provider-config.js"; -import type { OpenClawConfig } from "../../../src/config/config.js"; -import type { - WebSearchProviderPlugin, - WebSearchProviderToolDefinition, -} from "../../../src/plugins/types.js"; -import { wrapWebContent } from "../../../src/security/external-content.js"; + type OpenClawConfig, + type SearchConfigRecord, + type WebSearchProviderPlugin, + type WebSearchProviderToolDefinition, + withTrustedWebSearchEndpoint, + wrapWebContent, + writeCachedSearchPayload, +} from "openclaw/plugin-sdk/provider-web-search"; const XAI_API_ENDPOINT = "https://api.x.ai/v1/responses"; const DEFAULT_GROK_MODEL = "grok-4-1-fast"; diff --git a/src/plugin-sdk/provider-web-search.ts b/src/plugin-sdk/provider-web-search.ts index e158b160a6f..c130aebb9b2 100644 --- a/src/plugin-sdk/provider-web-search.ts +++ b/src/plugin-sdk/provider-web-search.ts @@ -1,17 +1,45 @@ // Public web-search registration helpers for provider plugins. -import type { WebSearchProviderPlugin } from "../plugins/types.js"; +import type { OpenClawConfig } from "../config/config.js"; +import type { + WebSearchCredentialResolutionSource, + WebSearchProviderPlugin, + WebSearchProviderToolDefinition, +} from "../plugins/types.js"; +export { readNumberParam, readStringArrayParam, readStringParam } from "../agents/tools/common.js"; +export { resolveCitationRedirectUrl } from "../agents/tools/web-search-citation-redirect.js"; export { getScopedCredentialValue, getTopLevelCredentialValue, + resolveProviderWebSearchPluginConfig, setScopedCredentialValue, + setProviderWebSearchPluginConfigValue, setTopLevelCredentialValue, } from "../agents/tools/web-search-provider-config.js"; +export type { SearchConfigRecord } from "../agents/tools/web-search-provider-common.js"; export { resolveWebSearchProviderCredential } from "../agents/tools/web-search-provider-credentials.js"; export { withTrustedWebToolsEndpoint } from "../agents/tools/web-guarded-fetch.js"; export { - DEFAULT_TIMEOUT_SECONDS, + buildSearchCacheKey, + DEFAULT_SEARCH_COUNT, + MAX_SEARCH_COUNT, + isoToPerplexityDate, + normalizeFreshness, + normalizeToIsoDate, + readCachedSearchPayload, + readConfiguredSecretString, + readProviderEnvValue, + resolveSearchCacheTtlMs, + resolveSearchCount, + resolveSearchTimeoutSeconds, + resolveSiteName, + throwWebSearchApiError, + withTrustedWebSearchEndpoint, + writeCachedSearchPayload, +} from "../agents/tools/web-search-provider-common.js"; +export { DEFAULT_CACHE_TTL_MINUTES, + DEFAULT_TIMEOUT_SECONDS, normalizeCacheKey, readCache, readResponseText, @@ -19,7 +47,15 @@ export { resolveTimeoutSeconds, writeCache, } from "../agents/tools/web-shared.js"; +export { enablePluginInConfig } from "../plugins/enable.js"; +export { formatCliCommand } from "../cli/command-format.js"; export { wrapWebContent } from "../security/external-content.js"; +export type { + OpenClawConfig, + WebSearchCredentialResolutionSource, + WebSearchProviderPlugin, + WebSearchProviderToolDefinition, +}; /** * @deprecated Implement provider-owned `createTool(...)` directly on the diff --git a/test/fixtures/extension-src-outside-plugin-sdk-inventory.json b/test/fixtures/extension-src-outside-plugin-sdk-inventory.json index 4cd9a910b0d..3c5aff2a370 100644 --- a/test/fixtures/extension-src-outside-plugin-sdk-inventory.json +++ b/test/fixtures/extension-src-outside-plugin-sdk-inventory.json @@ -1,362 +1,418 @@ [ { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 2, + "file": "extensions/discord/src/directory-config.ts", + "line": 7, "kind": "import", - "specifier": "../../../src/agents/tools/common.js", + "specifier": "../../../src/channels/read-only-account-inspect.discord.runtime.js", + "resolvedPath": "src/channels/read-only-account-inspect.discord.runtime.js", + "reason": "imports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/discord/src/directory-config.ts", + "line": 8, + "kind": "import", + "specifier": "../../../src/channels/read-only-account-inspect.js", + "resolvedPath": "src/channels/read-only-account-inspect.js", + "reason": "imports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 10, + "kind": "export", + "specifier": "../../src/agents/tools/common.js", "resolvedPath": "src/agents/tools/common.js", - "reason": "imports core src path outside plugin-sdk from an extension" + "reason": "re-exports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 3, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 19, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/brave/src/brave-web-search-provider.ts", + "file": "extensions/googlechat/runtime-api.ts", "line": 23, + "kind": "export", + "specifier": "../../src/channels/mention-gating.js", + "resolvedPath": "src/channels/mention-gating.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 30, + "kind": "export", + "specifier": "../../src/channels/plugins/config-schema.js", + "resolvedPath": "src/channels/plugins/config-schema.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 34, + "kind": "export", + "specifier": "../../src/channels/plugins/config-helpers.js", + "resolvedPath": "src/channels/plugins/config-helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 38, + "kind": "export", + "specifier": "../../src/channels/plugins/directory-config-helpers.js", + "resolvedPath": "src/channels/plugins/directory-config-helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 39, + "kind": "export", + "specifier": "../../src/channels/plugins/helpers.js", + "resolvedPath": "src/channels/plugins/helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 40, + "kind": "export", + "specifier": "../../src/channels/plugins/media-limits.js", + "resolvedPath": "src/channels/plugins/media-limits.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 46, + "kind": "export", + "specifier": "../../src/channels/plugins/setup-wizard-helpers.js", + "resolvedPath": "src/channels/plugins/setup-wizard-helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 47, + "kind": "export", + "specifier": "../../src/channels/plugins/pairing-message.js", + "resolvedPath": "src/channels/plugins/pairing-message.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 52, + "kind": "export", + "specifier": "../../src/channels/plugins/setup-helpers.js", + "resolvedPath": "src/channels/plugins/setup-helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 53, + "kind": "export", + "specifier": "../../src/channels/plugins/account-helpers.js", + "resolvedPath": "src/channels/plugins/account-helpers.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 59, + "kind": "export", + "specifier": "../../src/channels/plugins/types.js", + "resolvedPath": "src/channels/plugins/types.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 60, + "kind": "export", + "specifier": "../../src/channels/plugins/types.plugin.js", + "resolvedPath": "src/channels/plugins/types.plugin.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 61, + "kind": "export", + "specifier": "../../src/channels/registry.js", + "resolvedPath": "src/channels/registry.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 62, + "kind": "export", + "specifier": "../../src/channels/reply-prefix.js", + "resolvedPath": "src/channels/reply-prefix.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 63, + "kind": "export", + "specifier": "../../src/config/config.js", + "resolvedPath": "src/config/config.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 64, + "kind": "export", + "specifier": "../../src/config/dangerous-name-matching.js", + "resolvedPath": "src/config/dangerous-name-matching.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 70, + "kind": "export", + "specifier": "../../src/config/runtime-group-policy.js", + "resolvedPath": "src/config/runtime-group-policy.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 75, + "kind": "export", + "specifier": "../../src/config/types.js", + "resolvedPath": "src/config/types.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 76, + "kind": "export", + "specifier": "../../src/config/types.secrets.js", + "resolvedPath": "src/config/types.secrets.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 77, + "kind": "export", + "specifier": "../../src/config/zod-schema.providers-core.js", + "resolvedPath": "src/config/zod-schema.providers-core.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 78, + "kind": "export", + "specifier": "../../src/infra/net/fetch-guard.js", + "resolvedPath": "src/infra/net/fetch-guard.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 79, + "kind": "export", + "specifier": "../../src/infra/outbound/target-errors.js", + "resolvedPath": "src/infra/outbound/target-errors.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 80, + "kind": "export", + "specifier": "../../src/plugins/config-schema.js", + "resolvedPath": "src/plugins/config-schema.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 81, + "kind": "export", + "specifier": "../../src/plugins/runtime/types.js", + "resolvedPath": "src/plugins/runtime/types.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 82, + "kind": "export", + "specifier": "../../src/plugins/types.js", + "resolvedPath": "src/plugins/types.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 83, + "kind": "export", + "specifier": "../../src/routing/session-key.js", + "resolvedPath": "src/routing/session-key.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 84, + "kind": "export", + "specifier": "../../src/security/dm-policy-shared.js", + "resolvedPath": "src/security/dm-policy-shared.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 85, + "kind": "export", + "specifier": "../../src/terminal/links.js", + "resolvedPath": "src/terminal/links.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 86, + "kind": "export", + "specifier": "../../src/wizard/prompts.js", + "resolvedPath": "src/wizard/prompts.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/googlechat/runtime-api.ts", + "line": 89, + "kind": "export", + "specifier": "../../src/pairing/pairing-challenge.js", + "resolvedPath": "src/pairing/pairing-challenge.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/imessage/runtime-api.ts", + "line": 1, + "kind": "export", + "specifier": "../../src/config/types.imessage.js", + "resolvedPath": "src/config/types.imessage.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/imessage/runtime-api.ts", + "line": 2, + "kind": "export", + "specifier": "../../src/channels/plugins/types.plugin.js", + "resolvedPath": "src/channels/plugins/types.plugin.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/imessage/runtime-api.ts", + "line": 15, + "kind": "export", + "specifier": "../../src/channels/plugins/media-limits.js", + "resolvedPath": "src/channels/plugins/media-limits.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/imessage/runtime-api.ts", + "line": 19, + "kind": "export", + "specifier": "../../src/channels/plugins/normalize/imessage.js", + "resolvedPath": "src/channels/plugins/normalize/imessage.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/imessage/runtime-api.ts", + "line": 20, + "kind": "export", + "specifier": "../../src/config/zod-schema.providers-core.js", + "resolvedPath": "src/config/zod-schema.providers-core.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/directory-config.ts", + "line": 8, "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", + "specifier": "../../../src/channels/plugins/normalize/slack.js", + "resolvedPath": "src/channels/plugins/normalize/slack.js", "reason": "imports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 24, + "file": "extensions/slack/src/directory-config.ts", + "line": 9, "kind": "import", - "specifier": "../../../src/cli/command-format.js", - "resolvedPath": "src/cli/command-format.js", + "specifier": "../../../src/channels/read-only-account-inspect.js", + "resolvedPath": "src/channels/read-only-account-inspect.js", "reason": "imports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 25, + "file": "extensions/slack/src/directory-config.ts", + "line": 10, "kind": "import", + "specifier": "../../../src/channels/read-only-account-inspect.slack.runtime.js", + "resolvedPath": "src/channels/read-only-account-inspect.slack.runtime.js", + "reason": "imports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/runtime-api.ts", + "line": 1, + "kind": "export", "specifier": "../../../src/config/config.js", "resolvedPath": "src/config/config.js", - "reason": "imports core src path outside plugin-sdk from an extension" + "reason": "re-exports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 29, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" + "file": "extensions/slack/src/runtime-api.ts", + "line": 2, + "kind": "export", + "specifier": "../../../src/config/types.slack.js", + "resolvedPath": "src/config/types.slack.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/brave/src/brave-web-search-provider.ts", - "line": 30, - "kind": "import", - "specifier": "../../../src/security/external-content.js", - "resolvedPath": "src/security/external-content.js", - "reason": "imports core src path outside plugin-sdk from an extension" + "file": "extensions/slack/src/runtime-api.ts", + "line": 3, + "kind": "export", + "specifier": "../../../src/channels/plugins/types.js", + "resolvedPath": "src/channels/plugins/types.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/discord/src/runtime-api.ts", - "line": 38, + "file": "extensions/slack/src/runtime-api.ts", + "line": 19, + "kind": "export", + "specifier": "../../../src/channels/plugins/normalize/slack.js", + "resolvedPath": "src/channels/plugins/normalize/slack.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/runtime-api.ts", + "line": 23, + "kind": "export", + "specifier": "../../../src/channels/account-snapshot-fields.js", + "resolvedPath": "src/channels/account-snapshot-fields.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/runtime-api.ts", + "line": 24, + "kind": "export", + "specifier": "../../../src/config/zod-schema.providers-core.js", + "resolvedPath": "src/config/zod-schema.providers-core.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/runtime-api.ts", + "line": 32, + "kind": "export", + "specifier": "../../../src/agents/tools/common.js", + "resolvedPath": "src/agents/tools/common.js", + "reason": "re-exports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/slack/src/runtime-api.ts", + "line": 33, "kind": "export", "specifier": "../../../src/agents/date-time.js", "resolvedPath": "src/agents/date-time.js", "reason": "re-exports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/discord/src/runtime-api.ts", - "line": 39, - "kind": "export", - "specifier": "../../../src/agents/sandbox-paths.js", - "resolvedPath": "src/agents/sandbox-paths.js", - "reason": "re-exports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/discord/src/runtime-api.ts", - "line": 41, - "kind": "export", - "specifier": "../../../src/polls.js", - "resolvedPath": "src/polls.js", - "reason": "re-exports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/discord/src/runtime-api.ts", - "line": 42, - "kind": "export", - "specifier": "../../../src/config/types.js", - "resolvedPath": "src/config/types.js", - "reason": "re-exports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/discord/src/runtime-api.ts", - "line": 47, - "kind": "export", - "specifier": "../../../src/config/types.secrets.js", - "resolvedPath": "src/config/types.secrets.js", - "reason": "re-exports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/firecrawl/src/firecrawl-search-provider.ts", - "line": 5, + "file": "extensions/telegram/src/directory-config.ts", + "line": 9, "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", + "specifier": "../../../src/channels/read-only-account-inspect.js", + "resolvedPath": "src/channels/read-only-account-inspect.js", "reason": "imports core src path outside plugin-sdk from an extension" }, { - "file": "extensions/firecrawl/src/firecrawl-search-provider.ts", + "file": "extensions/telegram/src/directory-config.ts", + "line": 10, + "kind": "import", + "specifier": "../../../src/channels/read-only-account-inspect.telegram.runtime.js", + "resolvedPath": "src/channels/read-only-account-inspect.telegram.runtime.js", + "reason": "imports core src path outside plugin-sdk from an extension" + }, + { + "file": "extensions/whatsapp/src/directory-config.ts", "line": 6, "kind": "import", - "specifier": "../../../src/plugins/enable.js", - "resolvedPath": "src/plugins/enable.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/firecrawl/src/firecrawl-search-provider.ts", - "line": 7, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 2, - "kind": "import", - "specifier": "../../../src/agents/tools/common.js", - "resolvedPath": "src/agents/tools/common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 3, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-citation-redirect.js", - "resolvedPath": "src/agents/tools/web-search-citation-redirect.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 4, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 17, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 21, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 22, - "kind": "import", - "specifier": "../../../src/config/config.js", - "resolvedPath": "src/config/config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 26, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/google/src/gemini-web-search-provider.ts", - "line": 27, - "kind": "import", - "specifier": "../../../src/security/external-content.js", - "resolvedPath": "src/security/external-content.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 2, - "kind": "import", - "specifier": "../../../src/agents/tools/common.js", - "resolvedPath": "src/agents/tools/common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 3, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 16, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 20, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 21, - "kind": "import", - "specifier": "../../../src/config/config.js", - "resolvedPath": "src/config/config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 25, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/moonshot/src/kimi-web-search-provider.ts", - "line": 26, - "kind": "import", - "specifier": "../../../src/security/external-content.js", - "resolvedPath": "src/security/external-content.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 6, - "kind": "import", - "specifier": "../../../src/agents/tools/common.js", - "resolvedPath": "src/agents/tools/common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 7, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 25, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 29, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 30, - "kind": "import", - "specifier": "../../../src/config/config.js", - "resolvedPath": "src/config/config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 35, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/perplexity/src/perplexity-web-search-provider.ts", - "line": 36, - "kind": "import", - "specifier": "../../../src/security/external-content.js", - "resolvedPath": "src/security/external-content.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 2, - "kind": "import", - "specifier": "../../../src/agents/tools/common.js", - "resolvedPath": "src/agents/tools/common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 3, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 16, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-common.js", - "resolvedPath": "src/agents/tools/web-search-provider-common.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 20, - "kind": "import", - "specifier": "../../../src/agents/tools/web-search-provider-config.js", - "resolvedPath": "src/agents/tools/web-search-provider-config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 21, - "kind": "import", - "specifier": "../../../src/config/config.js", - "resolvedPath": "src/config/config.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 25, - "kind": "import", - "specifier": "../../../src/plugins/types.js", - "resolvedPath": "src/plugins/types.js", - "reason": "imports core src path outside plugin-sdk from an extension" - }, - { - "file": "extensions/xai/src/grok-web-search-provider.ts", - "line": 26, - "kind": "import", - "specifier": "../../../src/security/external-content.js", - "resolvedPath": "src/security/external-content.js", + "specifier": "../../../src/whatsapp/normalize.js", + "resolvedPath": "src/whatsapp/normalize.js", "reason": "imports core src path outside plugin-sdk from an extension" } ]