diff --git a/extensions/tsconfig.package-boundary.paths.json b/extensions/tsconfig.package-boundary.paths.json index 5c49336a4ae..09a25252eee 100644 --- a/extensions/tsconfig.package-boundary.paths.json +++ b/extensions/tsconfig.package-boundary.paths.json @@ -9,8 +9,10 @@ "../packages/plugin-sdk/dist/packages/plugin-sdk/src/*.d.ts" ], "openclaw/plugin-sdk/account-id": ["../src/plugin-sdk/account-id.ts"], - "@openclaw/*": ["../extensions/*"], - "@openclaw/plugin-sdk/*": ["../packages/plugin-sdk/dist/packages/plugin-sdk/src/*.d.ts"] + "@openclaw/*": ["../packages/plugin-sdk/dist/packages/plugin-sdk/src/extensions/*"], + "@openclaw/plugin-sdk/*": [ + "../packages/plugin-sdk/dist/packages/plugin-sdk/src/src/plugin-sdk/*" + ] } } } diff --git a/extensions/xai/api.ts b/extensions/xai/api.ts index 1a0d9fe8bb9..3208079cb44 100644 --- a/extensions/xai/api.ts +++ b/extensions/xai/api.ts @@ -3,11 +3,11 @@ import { normalizeNativeXaiModelId, normalizeProviderId, resolveProviderEndpoint, -} from "openclaw/plugin-sdk/provider-model-shared"; +} from "@openclaw/plugin-sdk/provider-model-shared"; import { applyXaiModelCompat, resolveXaiModelCompatPatch, -} from "openclaw/plugin-sdk/provider-tools"; +} from "@openclaw/plugin-sdk/provider-tools"; export { buildXaiProvider } from "./provider-catalog.js"; export { applyXaiConfig, applyXaiProviderConfig } from "./onboard.js"; @@ -27,7 +27,7 @@ export { HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING, XAI_TOOL_SCHEMA_PROFILE, resolveXaiModelCompatPatch, -} from "openclaw/plugin-sdk/provider-tools"; +} from "@openclaw/plugin-sdk/provider-tools"; function isXaiNativeEndpoint(baseUrl: unknown): boolean { return ( diff --git a/extensions/xai/code-execution.ts b/extensions/xai/code-execution.ts index e77d8e37d53..066af33b562 100644 --- a/extensions/xai/code-execution.ts +++ b/extensions/xai/code-execution.ts @@ -1,6 +1,6 @@ +import { getRuntimeConfigSnapshot, type OpenClawConfig } from "@openclaw/plugin-sdk/config-runtime"; +import { jsonResult, readStringParam } from "@openclaw/plugin-sdk/provider-web-search"; import { Type } from "@sinclair/typebox"; -import { getRuntimeConfigSnapshot, type OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; -import { jsonResult, readStringParam } from "openclaw/plugin-sdk/provider-web-search"; import { buildXaiCodeExecutionPayload, requestXaiCodeExecution, diff --git a/extensions/xai/index.ts b/extensions/xai/index.ts index 18e86ee07fc..d0ca2f9970f 100644 --- a/extensions/xai/index.ts +++ b/extensions/xai/index.ts @@ -1,8 +1,8 @@ +import type { OpenClawConfig } from "@openclaw/plugin-sdk/config-runtime"; +import { defineSingleProviderPluginEntry } from "@openclaw/plugin-sdk/provider-entry"; +import { buildProviderReplayFamilyHooks } from "@openclaw/plugin-sdk/provider-model-shared"; +import { jsonResult, readProviderEnvValue } from "@openclaw/plugin-sdk/provider-web-search"; import { Type } from "@sinclair/typebox"; -import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; -import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry"; -import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared"; -import { jsonResult, readProviderEnvValue } from "openclaw/plugin-sdk/provider-web-search"; import { applyXaiModelCompat, normalizeXaiModelId, diff --git a/extensions/xai/model-definitions.ts b/extensions/xai/model-definitions.ts index 628f59a2583..3de78c5b741 100644 --- a/extensions/xai/model-definitions.ts +++ b/extensions/xai/model-definitions.ts @@ -1,4 +1,4 @@ -import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-model-shared"; +import type { ModelDefinitionConfig } from "@openclaw/plugin-sdk/provider-model-shared"; export const XAI_BASE_URL = "https://api.x.ai/v1"; export const XAI_DEFAULT_MODEL_ID = "grok-4"; diff --git a/extensions/xai/onboard.ts b/extensions/xai/onboard.ts index bf4b4967fdf..9a9cddd0bfa 100644 --- a/extensions/xai/onboard.ts +++ b/extensions/xai/onboard.ts @@ -1,7 +1,7 @@ import { createDefaultModelsPresetAppliers, type OpenClawConfig, -} from "openclaw/plugin-sdk/provider-onboard"; +} from "@openclaw/plugin-sdk/provider-onboard"; import { XAI_BASE_URL, XAI_DEFAULT_MODEL_ID } from "./model-definitions.js"; import { buildXaiCatalogModels } from "./model-definitions.js"; diff --git a/extensions/xai/provider-catalog.ts b/extensions/xai/provider-catalog.ts index f8c248d60de..9dca2fb1957 100644 --- a/extensions/xai/provider-catalog.ts +++ b/extensions/xai/provider-catalog.ts @@ -1,4 +1,4 @@ -import type { ModelProviderConfig } from "openclaw/plugin-sdk/provider-model-shared"; +import type { ModelProviderConfig } from "@openclaw/plugin-sdk/provider-model-shared"; import { buildXaiCatalogModels, XAI_BASE_URL } from "./model-definitions.js"; export function buildXaiProvider( diff --git a/extensions/xai/provider-models.ts b/extensions/xai/provider-models.ts index e01982a1557..214044bef39 100644 --- a/extensions/xai/provider-models.ts +++ b/extensions/xai/provider-models.ts @@ -1,8 +1,8 @@ import type { ProviderResolveDynamicModelContext, ProviderRuntimeModel, -} from "openclaw/plugin-sdk/plugin-entry"; -import { normalizeModelCompat } from "openclaw/plugin-sdk/provider-model-shared"; +} from "@openclaw/plugin-sdk/plugin-entry"; +import { normalizeModelCompat } from "@openclaw/plugin-sdk/provider-model-shared"; import { applyXaiModelCompat } from "./api.js"; import { resolveXaiCatalogEntry, XAI_BASE_URL } from "./model-definitions.js"; diff --git a/extensions/xai/setup-api.ts b/extensions/xai/setup-api.ts index 9e7a0382d48..57e617c85e3 100644 --- a/extensions/xai/setup-api.ts +++ b/extensions/xai/setup-api.ts @@ -1,4 +1,4 @@ -import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry"; +import { definePluginEntry } from "@openclaw/plugin-sdk/plugin-entry"; function isRecord(value: unknown): value is Record { return Boolean(value) && typeof value === "object" && !Array.isArray(value); diff --git a/extensions/xai/src/code-execution-shared.ts b/extensions/xai/src/code-execution-shared.ts index f274348eba5..3c34c269bde 100644 --- a/extensions/xai/src/code-execution-shared.ts +++ b/extensions/xai/src/code-execution-shared.ts @@ -1,4 +1,4 @@ -import { postTrustedWebToolsJson } from "openclaw/plugin-sdk/provider-web-search"; +import { postTrustedWebToolsJson } from "@openclaw/plugin-sdk/provider-web-search"; import { buildXaiResponsesToolBody, resolveXaiResponseTextAndCitations, diff --git a/extensions/xai/src/tool-auth-shared.ts b/extensions/xai/src/tool-auth-shared.ts index c82d2da532a..778d15a4b7d 100644 --- a/extensions/xai/src/tool-auth-shared.ts +++ b/extensions/xai/src/tool-auth-shared.ts @@ -1,14 +1,14 @@ -import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; +import type { OpenClawConfig } from "@openclaw/plugin-sdk/config-runtime"; import { coerceSecretRef, resolveNonEnvSecretRefApiKeyMarker, -} from "openclaw/plugin-sdk/provider-auth"; +} from "@openclaw/plugin-sdk/provider-auth"; import { readProviderEnvValue, readConfiguredSecretString, resolveProviderWebSearchPluginConfig, -} from "openclaw/plugin-sdk/provider-web-search"; -import { normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input"; +} from "@openclaw/plugin-sdk/provider-web-search"; +import { normalizeSecretInputString } from "@openclaw/plugin-sdk/secret-input"; export type XaiFallbackAuth = { apiKey: string; diff --git a/extensions/xai/src/web-search-shared.ts b/extensions/xai/src/web-search-shared.ts index d79efc42be4..f50e249a8f7 100644 --- a/extensions/xai/src/web-search-shared.ts +++ b/extensions/xai/src/web-search-shared.ts @@ -1,4 +1,4 @@ -import { postTrustedWebToolsJson, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search"; +import { postTrustedWebToolsJson, wrapWebContent } from "@openclaw/plugin-sdk/provider-web-search"; import { normalizeXaiModelId } from "../model-id.js"; import { buildXaiResponsesToolBody, diff --git a/extensions/xai/src/x-search-config.ts b/extensions/xai/src/x-search-config.ts index 88eaac0c34e..7af8340bbdb 100644 --- a/extensions/xai/src/x-search-config.ts +++ b/extensions/xai/src/x-search-config.ts @@ -1,4 +1,4 @@ -import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; +import type { OpenClawConfig } from "@openclaw/plugin-sdk/config-runtime"; type JsonRecord = Record; diff --git a/extensions/xai/src/x-search-shared.ts b/extensions/xai/src/x-search-shared.ts index 53a41f4ed10..c32384aed84 100644 --- a/extensions/xai/src/x-search-shared.ts +++ b/extensions/xai/src/x-search-shared.ts @@ -1,4 +1,4 @@ -import { postTrustedWebToolsJson, wrapWebContent } from "openclaw/plugin-sdk/provider-web-search"; +import { postTrustedWebToolsJson, wrapWebContent } from "@openclaw/plugin-sdk/provider-web-search"; import { buildXaiResponsesToolBody, resolveXaiResponseTextCitationsAndInline, diff --git a/extensions/xai/stream.ts b/extensions/xai/stream.ts index 412f24a0e82..c55050b85e2 100644 --- a/extensions/xai/stream.ts +++ b/extensions/xai/stream.ts @@ -1,10 +1,10 @@ import type { StreamFn } from "@mariozechner/pi-agent-core"; import { streamSimple } from "@mariozechner/pi-ai"; -import type { ProviderWrapStreamFnContext } from "openclaw/plugin-sdk/plugin-entry"; +import type { ProviderWrapStreamFnContext } from "@openclaw/plugin-sdk/plugin-entry"; import { composeProviderStreamWrappers, createToolStreamWrapper, -} from "openclaw/plugin-sdk/provider-stream-shared"; +} from "@openclaw/plugin-sdk/provider-stream-shared"; const XAI_FAST_MODEL_IDS = new Map([ ["grok-3", "grok-3-fast"], diff --git a/extensions/xai/video-generation-provider.ts b/extensions/xai/video-generation-provider.ts index 48b9c70a2a5..62276dd5183 100644 --- a/extensions/xai/video-generation-provider.ts +++ b/extensions/xai/video-generation-provider.ts @@ -1,17 +1,17 @@ -import { isProviderApiKeyConfigured } from "openclaw/plugin-sdk/provider-auth"; -import { resolveApiKeyForProvider } from "openclaw/plugin-sdk/provider-auth-runtime"; +import { isProviderApiKeyConfigured } from "@openclaw/plugin-sdk/provider-auth"; +import { resolveApiKeyForProvider } from "@openclaw/plugin-sdk/provider-auth-runtime"; import { assertOkOrThrowHttpError, fetchWithTimeout, postJsonRequest, resolveProviderHttpRequestConfig, -} from "openclaw/plugin-sdk/provider-http"; +} from "@openclaw/plugin-sdk/provider-http"; import type { GeneratedVideoAsset, VideoGenerationProvider, VideoGenerationRequest, VideoGenerationSourceAsset, -} from "openclaw/plugin-sdk/video-generation"; +} from "@openclaw/plugin-sdk/video-generation"; const DEFAULT_XAI_VIDEO_BASE_URL = "https://api.x.ai/v1"; const DEFAULT_XAI_VIDEO_MODEL = "grok-imagine-video"; diff --git a/extensions/xai/web-search.ts b/extensions/xai/web-search.ts index 3f6c7c46776..8b68f509f06 100644 --- a/extensions/xai/web-search.ts +++ b/extensions/xai/web-search.ts @@ -1,4 +1,3 @@ -import { Type } from "@sinclair/typebox"; import { DEFAULT_CACHE_TTL_MINUTES, DEFAULT_TIMEOUT_SECONDS, @@ -19,7 +18,8 @@ import { type WebSearchProviderSetupContext, type WebSearchProviderPlugin, writeCache, -} from "openclaw/plugin-sdk/provider-web-search"; +} from "@openclaw/plugin-sdk/provider-web-search"; +import { Type } from "@sinclair/typebox"; import { buildXaiWebSearchPayload, extractXaiWebSearchContent, diff --git a/extensions/xai/x-search.ts b/extensions/xai/x-search.ts index b3736fe120c..f45c18f216e 100644 --- a/extensions/xai/x-search.ts +++ b/extensions/xai/x-search.ts @@ -1,4 +1,4 @@ -import { getRuntimeConfigSnapshot, type OpenClawConfig } from "openclaw/plugin-sdk/config-runtime"; +import { getRuntimeConfigSnapshot, type OpenClawConfig } from "@openclaw/plugin-sdk/config-runtime"; import { jsonResult, readCache, @@ -7,7 +7,8 @@ import { resolveCacheTtlMs, resolveTimeoutSeconds, writeCache, -} from "openclaw/plugin-sdk/provider-web-search"; +} from "@openclaw/plugin-sdk/provider-web-search"; +import { Type } from "@sinclair/typebox"; import { isXaiToolEnabled, resolveXaiToolApiKey } from "./src/tool-auth-shared.js"; import { resolveEffectiveXSearchConfig } from "./src/x-search-config.js"; import { diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index 51f66a39d89..1608fee5ffe 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -5,63 +5,63 @@ "type": "module", "exports": { "./config-runtime": { - "types": "./dist/packages/plugin-sdk/src/config-runtime.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/config-runtime.d.ts", "default": "./src/config-runtime.ts" }, "./plugin-entry": { - "types": "./dist/packages/plugin-sdk/src/plugin-entry.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/plugin-entry.d.ts", "default": "./src/plugin-entry.ts" }, "./provider-auth": { - "types": "./dist/packages/plugin-sdk/src/provider-auth.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-auth.d.ts", "default": "./src/provider-auth.ts" }, "./provider-auth-runtime": { - "types": "./dist/packages/plugin-sdk/src/provider-auth-runtime.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-auth-runtime.d.ts", "default": "./src/provider-auth-runtime.ts" }, "./provider-entry": { - "types": "./dist/packages/plugin-sdk/src/provider-entry.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-entry.d.ts", "default": "./src/provider-entry.ts" }, "./provider-http": { - "types": "./dist/packages/plugin-sdk/src/provider-http.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-http.d.ts", "default": "./src/provider-http.ts" }, "./provider-model-shared": { - "types": "./dist/packages/plugin-sdk/src/provider-model-shared.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-model-shared.d.ts", "default": "./src/provider-model-shared.ts" }, "./provider-onboard": { - "types": "./dist/packages/plugin-sdk/src/provider-onboard.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-onboard.d.ts", "default": "./src/provider-onboard.ts" }, "./provider-stream-shared": { - "types": "./dist/packages/plugin-sdk/src/provider-stream-shared.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-stream-shared.d.ts", "default": "./src/provider-stream-shared.ts" }, "./provider-tools": { - "types": "./dist/packages/plugin-sdk/src/provider-tools.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-tools.d.ts", "default": "./src/provider-tools.ts" }, "./provider-web-search": { - "types": "./dist/packages/plugin-sdk/src/provider-web-search.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/provider-web-search.d.ts", "default": "./src/provider-web-search.ts" }, "./runtime-env": { - "types": "./dist/packages/plugin-sdk/src/runtime-env.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/runtime-env.d.ts", "default": "./src/runtime-env.ts" }, "./secret-input": { - "types": "./dist/packages/plugin-sdk/src/secret-input.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/secret-input.d.ts", "default": "./src/secret-input.ts" }, "./testing": { - "types": "./dist/packages/plugin-sdk/src/testing.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/testing.d.ts", "default": "./src/testing.ts" }, "./video-generation": { - "types": "./dist/packages/plugin-sdk/src/video-generation.d.ts", + "types": "./dist/packages/plugin-sdk/src/src/plugin-sdk/video-generation.d.ts", "default": "./src/video-generation.ts" } } diff --git a/packages/plugin-sdk/tsconfig.json b/packages/plugin-sdk/tsconfig.json index fc1734f569e..9395f7a04ea 100644 --- a/packages/plugin-sdk/tsconfig.json +++ b/packages/plugin-sdk/tsconfig.json @@ -7,13 +7,38 @@ "ignoreDeprecations": "6.0", "noEmit": false, "noEmitOnError": false, - "outDir": "dist", + "outDir": "dist/packages/plugin-sdk/src", "rootDir": "../.." }, "include": [ - "src/**/*.ts", - "../../src/types/**/*.d.ts", - "../../packages/memory-host-sdk/src/**/*.ts" + "../../src/plugin-sdk/config-runtime.ts", + "../../src/plugin-sdk/lazy-value.ts", + "../../src/plugin-sdk/oauth-utils.ts", + "../../src/plugin-sdk/plugin-entry.ts", + "../../src/plugin-sdk/provider-auth-result.ts", + "../../src/plugin-sdk/provider-auth-runtime.ts", + "../../src/plugin-sdk/provider-auth.ts", + "../../src/plugin-sdk/provider-catalog-shared.ts", + "../../src/plugin-sdk/provider-entry.ts", + "../../src/plugin-sdk/provider-http.ts", + "../../src/plugin-sdk/provider-model-shared.ts", + "../../src/plugin-sdk/provider-onboard.ts", + "../../src/plugin-sdk/provider-stream-shared.ts", + "../../src/plugin-sdk/provider-tools.ts", + "../../src/plugin-sdk/provider-web-search.ts", + "../../src/plugin-sdk/runtime-env.ts", + "../../src/plugin-sdk/secret-input-schema.ts", + "../../src/plugin-sdk/secret-input.ts", + "../../src/plugin-sdk/telegram-command-config.ts", + "../../src/plugin-sdk/testing.ts", + "../../src/plugin-sdk/video-generation.ts", + "../../src/types/**/*.d.ts" ], - "exclude": ["node_modules", "dist", "../../src/**/*.test.ts"] + "exclude": [ + "node_modules", + "dist", + "../../src/**/*.test.ts", + "../../src/plugin-sdk/AGENTS.md", + "../../src/plugin-sdk/CLAUDE.md" + ] }