Upgrade adapter-utils to canary with getConfigSchema type support

The UI wasn't surfacing config parameters because getConfigSchema wasn't
part of the ServerAdapterModule interface in adapter-utils >=0.3.0. The
canary release (2026.411.0-canary.8) adds ConfigFieldSchema,
AdapterConfigSchema, and getConfigSchema to the type. This removes the
local type augmentation workaround and the unsafe `as ServerAdapterModule`
cast, letting TypeScript properly validate the schema contract.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-12 14:58:07 +00:00
parent a7b42da7a0
commit faa5f09984
4 changed files with 14 additions and 29 deletions
+9 -8
View File
@@ -1,24 +1,24 @@
{ {
"name": "@farhoodliquor/paperclip-adapter-opencode-k8s", "name": "@farhoodliquor/paperclip-adapter-opencode-k8s",
"version": "0.1.4", "version": "0.1.11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@farhoodliquor/paperclip-adapter-opencode-k8s", "name": "@farhoodliquor/paperclip-adapter-opencode-k8s",
"version": "0.1.4", "version": "0.1.11",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@kubernetes/client-node": "^1.0.0" "@kubernetes/client-node": "^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"@paperclipai/adapter-utils": "^0.3.0", "@paperclipai/adapter-utils": "^2026.411.0-canary.8",
"@types/node": "^24.6.0", "@types/node": "^24.6.0",
"typescript": "^5.7.3", "typescript": "^5.7.3",
"vitest": "^4.1.4" "vitest": "^4.1.4"
}, },
"peerDependencies": { "peerDependencies": {
"@paperclipai/adapter-utils": ">=0.3.0" "@paperclipai/adapter-utils": ">=2026.411.0-canary.8"
} }
}, },
"node_modules/@emnapi/core": { "node_modules/@emnapi/core": {
@@ -140,10 +140,11 @@
} }
}, },
"node_modules/@paperclipai/adapter-utils": { "node_modules/@paperclipai/adapter-utils": {
"version": "0.3.1", "version": "2026.411.0-canary.8",
"resolved": "https://registry.npmjs.org/@paperclipai/adapter-utils/-/adapter-utils-0.3.1.tgz", "resolved": "https://registry.npmjs.org/@paperclipai/adapter-utils/-/adapter-utils-2026.411.0-canary.8.tgz",
"integrity": "sha512-W66k+hJkQE8ma0asM/Sd90AC8HHy/BLG/sd0aOC+rDWw+gOasQyUkTnDoPv1zhQuTyKEEvLFV6ByOOKqEiAz/A==", "integrity": "sha512-pogmV2WHm0S+hanuN5NAHmsLh/Limdmm565SX9YyvSCtGHyD3XlxoZsAsefnMBIn5ZUaAzW6pSql/Dw0SXeWTA==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/@rolldown/binding-android-arm64": { "node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-rc.15", "version": "1.0.0-rc.15",
+3 -3
View File
@@ -1,6 +1,6 @@
{ {
"name": "@farhoodliquor/paperclip-adapter-opencode-k8s", "name": "@farhoodliquor/paperclip-adapter-opencode-k8s",
"version": "0.1.10", "version": "0.1.11",
"description": "Paperclip adapter plugin that runs OpenCode agents as Kubernetes Jobs", "description": "Paperclip adapter plugin that runs OpenCode agents as Kubernetes Jobs",
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
@@ -26,10 +26,10 @@
"@kubernetes/client-node": "^1.0.0" "@kubernetes/client-node": "^1.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@paperclipai/adapter-utils": ">=0.3.0" "@paperclipai/adapter-utils": ">=2026.411.0-canary.8"
}, },
"devDependencies": { "devDependencies": {
"@paperclipai/adapter-utils": "^0.3.0", "@paperclipai/adapter-utils": "^2026.411.0-canary.8",
"@types/node": "^24.6.0", "@types/node": "^24.6.0",
"typescript": "^5.7.3", "typescript": "^5.7.3",
"vitest": "^4.1.4" "vitest": "^4.1.4"
+1 -17
View File
@@ -1,20 +1,4 @@
// Local type augmentation for adapter-utils version that has getConfigSchema. import type { AdapterConfigSchema } from "@paperclipai/adapter-utils";
// The deployed environment has a newer version of adapter-utils with these types.
interface ConfigFieldSchema {
key: string;
label: string;
type: "text" | "select" | "toggle" | "number" | "textarea" | "combobox";
options?: { label: string; value: string }[];
default?: unknown;
hint?: string;
required?: boolean;
group?: string;
meta?: Record<string, unknown>;
}
interface AdapterConfigSchema {
fields: ConfigFieldSchema[];
}
export function getConfigSchema(): AdapterConfigSchema { export function getConfigSchema(): AdapterConfigSchema {
return { return {
+1 -1
View File
@@ -15,7 +15,7 @@ export function createServerAdapter(): ServerAdapterModule {
supportsLocalAgentJwt: true, supportsLocalAgentJwt: true,
agentConfigurationDoc, agentConfigurationDoc,
getConfigSchema, getConfigSchema,
} as ServerAdapterModule; };
} }
export { execute, testEnvironment, sessionCodec }; export { execute, testEnvironment, sessionCodec };