Rename all workspace packages from @paperclip/* to @paperclipai/* and the CLI binary from `paperclip` to `paperclipai` in preparation for npm publishing. Bump CLI version to 0.1.0 and add package metadata (description, keywords, license, repository, files). Update all imports, documentation, user-facing messages, and tests accordingly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
86 lines
2.8 KiB
TypeScript
86 lines
2.8 KiB
TypeScript
import type { ServerAdapterModule } from "./types.js";
|
|
import {
|
|
execute as claudeExecute,
|
|
testEnvironment as claudeTestEnvironment,
|
|
sessionCodec as claudeSessionCodec,
|
|
} from "@paperclipai/adapter-claude-local/server";
|
|
import { agentConfigurationDoc as claudeAgentConfigurationDoc, models as claudeModels } from "@paperclipai/adapter-claude-local";
|
|
import {
|
|
execute as codexExecute,
|
|
testEnvironment as codexTestEnvironment,
|
|
sessionCodec as codexSessionCodec,
|
|
} from "@paperclipai/adapter-codex-local/server";
|
|
import { agentConfigurationDoc as codexAgentConfigurationDoc, models as codexModels } from "@paperclipai/adapter-codex-local";
|
|
import {
|
|
execute as openclawExecute,
|
|
testEnvironment as openclawTestEnvironment,
|
|
} from "@paperclipai/adapter-openclaw/server";
|
|
import {
|
|
agentConfigurationDoc as openclawAgentConfigurationDoc,
|
|
models as openclawModels,
|
|
} from "@paperclipai/adapter-openclaw";
|
|
import { listCodexModels } from "./codex-models.js";
|
|
import { processAdapter } from "./process/index.js";
|
|
import { httpAdapter } from "./http/index.js";
|
|
|
|
const claudeLocalAdapter: ServerAdapterModule = {
|
|
type: "claude_local",
|
|
execute: claudeExecute,
|
|
testEnvironment: claudeTestEnvironment,
|
|
sessionCodec: claudeSessionCodec,
|
|
models: claudeModels,
|
|
supportsLocalAgentJwt: true,
|
|
agentConfigurationDoc: claudeAgentConfigurationDoc,
|
|
};
|
|
|
|
const codexLocalAdapter: ServerAdapterModule = {
|
|
type: "codex_local",
|
|
execute: codexExecute,
|
|
testEnvironment: codexTestEnvironment,
|
|
sessionCodec: codexSessionCodec,
|
|
models: codexModels,
|
|
listModels: listCodexModels,
|
|
supportsLocalAgentJwt: true,
|
|
agentConfigurationDoc: codexAgentConfigurationDoc,
|
|
};
|
|
|
|
const openclawAdapter: ServerAdapterModule = {
|
|
type: "openclaw",
|
|
execute: openclawExecute,
|
|
testEnvironment: openclawTestEnvironment,
|
|
models: openclawModels,
|
|
supportsLocalAgentJwt: false,
|
|
agentConfigurationDoc: openclawAgentConfigurationDoc,
|
|
};
|
|
|
|
const adaptersByType = new Map<string, ServerAdapterModule>(
|
|
[claudeLocalAdapter, codexLocalAdapter, openclawAdapter, processAdapter, httpAdapter].map((a) => [a.type, a]),
|
|
);
|
|
|
|
export function getServerAdapter(type: string): ServerAdapterModule {
|
|
const adapter = adaptersByType.get(type);
|
|
if (!adapter) {
|
|
// Fall back to process adapter for unknown types
|
|
return processAdapter;
|
|
}
|
|
return adapter;
|
|
}
|
|
|
|
export async function listAdapterModels(type: string): Promise<{ id: string; label: string }[]> {
|
|
const adapter = adaptersByType.get(type);
|
|
if (!adapter) return [];
|
|
if (adapter.listModels) {
|
|
const discovered = await adapter.listModels();
|
|
if (discovered.length > 0) return discovered;
|
|
}
|
|
return adapter.models ?? [];
|
|
}
|
|
|
|
export function listServerAdapters(): ServerAdapterModule[] {
|
|
return Array.from(adaptersByType.values());
|
|
}
|
|
|
|
export function findServerAdapter(type: string): ServerAdapterModule | null {
|
|
return adaptersByType.get(type) ?? null;
|
|
}
|