Skip to content

Commit 0bd0097

Browse files
huntharovincentkoc
andauthored
refactor: add xai plugin-sdk boundary canary (#61548)
* docs: plan real plugin-sdk workspace rollout * build: add xai plugin-sdk boundary canary * build: generate plugin-sdk package types * build: hide plugin-sdk core export * build: alias scoped plugin-sdk runtime imports * build: repair plugin-sdk boundary drift * fix(plugins): remove duplicated plugin-sdk entrypoints * test(plugins): make tsc boundary canary portable --------- Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
1 parent 0430bab commit 0bd0097

53 files changed

Lines changed: 952 additions & 51 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/plans/2026-04-05-002-refactor-real-plugin-sdk-workspace-plan.md

Lines changed: 580 additions & 0 deletions
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "../tsconfig.json",
3+
"compilerOptions": {
4+
"baseUrl": "..",
5+
"ignoreDeprecations": "6.0",
6+
"paths": {
7+
"@openclaw/plugin-sdk/*": ["packages/plugin-sdk/dist/packages/plugin-sdk/src/*.d.ts"]
8+
}
9+
}
10+
}

extensions/xai/api.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import {
33
normalizeNativeXaiModelId,
44
normalizeProviderId,
55
resolveProviderEndpoint,
6-
} from "openclaw/plugin-sdk/provider-model-shared";
6+
} from "@openclaw/plugin-sdk/provider-model-shared";
77
import {
88
applyXaiModelCompat,
99
resolveXaiModelCompatPatch,
10-
} from "openclaw/plugin-sdk/provider-tools";
10+
} from "@openclaw/plugin-sdk/provider-tools";
1111

1212
export { buildXaiProvider } from "./provider-catalog.js";
1313
export { applyXaiConfig, applyXaiProviderConfig } from "./onboard.js";
@@ -27,7 +27,7 @@ export {
2727
HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING,
2828
XAI_TOOL_SCHEMA_PROFILE,
2929
resolveXaiModelCompatPatch,
30-
} from "openclaw/plugin-sdk/provider-tools";
30+
} from "@openclaw/plugin-sdk/provider-tools";
3131

3232
function isXaiNativeEndpoint(baseUrl: unknown): boolean {
3333
return (

extensions/xai/code-execution.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { withFetchPreconnect } from "openclaw/plugin-sdk/testing";
1+
import { withFetchPreconnect } from "@openclaw/plugin-sdk/testing";
22
import { afterEach, describe, expect, it, vi } from "vitest";
33
import { createCodeExecutionTool } from "./code-execution.js";
44

extensions/xai/code-execution.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { getRuntimeConfigSnapshot } from "@openclaw/plugin-sdk/config-runtime";
2+
import type { OpenClawConfig } from "@openclaw/plugin-sdk/plugin-entry";
3+
import { jsonResult, readStringParam } from "@openclaw/plugin-sdk/provider-web-search";
14
import { Type } from "@sinclair/typebox";
2-
import { getRuntimeConfigSnapshot } from "openclaw/plugin-sdk/config-runtime";
3-
import type { OpenClawConfig } from "openclaw/plugin-sdk/plugin-entry";
4-
import { jsonResult, readStringParam } from "openclaw/plugin-sdk/provider-web-search";
55
import {
66
buildXaiCodeExecutionPayload,
77
requestXaiCodeExecution,

extensions/xai/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
import type { OpenClawConfig } from "@openclaw/plugin-sdk/plugin-entry";
2+
import { defineSingleProviderPluginEntry } from "@openclaw/plugin-sdk/provider-entry";
3+
import { buildProviderReplayFamilyHooks } from "@openclaw/plugin-sdk/provider-model-shared";
4+
import { jsonResult, readProviderEnvValue } from "@openclaw/plugin-sdk/provider-web-search";
15
import { Type } from "@sinclair/typebox";
2-
import type { OpenClawConfig } from "openclaw/plugin-sdk/plugin-entry";
3-
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
4-
import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared";
5-
import { jsonResult, readProviderEnvValue } from "openclaw/plugin-sdk/provider-web-search";
66
import {
77
applyXaiModelCompat,
88
normalizeXaiModelId,

extensions/xai/model-definitions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-model-shared";
1+
import type { ModelDefinitionConfig } from "@openclaw/plugin-sdk/provider-model-shared";
22

33
export const XAI_BASE_URL = "https://api.x.ai/v1";
44
export const XAI_DEFAULT_MODEL_ID = "grok-4";

extensions/xai/onboard.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
resolveAgentModelFallbackValues,
33
resolveAgentModelPrimaryValue,
4-
} from "openclaw/plugin-sdk/provider-onboard";
4+
} from "@openclaw/plugin-sdk/provider-onboard";
55
import { describe, expect, it } from "vitest";
66
import {
77
createConfigWithFallbacks,

extensions/xai/onboard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
22
createDefaultModelsPresetAppliers,
33
type OpenClawConfig,
4-
} from "openclaw/plugin-sdk/provider-onboard";
4+
} from "@openclaw/plugin-sdk/provider-onboard";
55
import { XAI_BASE_URL, XAI_DEFAULT_MODEL_ID } from "./model-definitions.js";
66
import { buildXaiCatalogModels } from "./model-definitions.js";
77

extensions/xai/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
"private": true,
55
"description": "OpenClaw xAI plugin",
66
"type": "module",
7+
"devDependencies": {
8+
"@openclaw/plugin-sdk": "workspace:*"
9+
},
710
"openclaw": {
811
"extensions": [
912
"./index.ts"

0 commit comments

Comments
 (0)