mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 12:03:49 +00:00
- Add ResourceLoader interface and DefaultResourceLoader implementation - Add PackageManager for npm/git extension sources with install/remove/update - Add session.reload() and session.bindExtensions() APIs - Add /reload command in interactive mode - Add CLI flags: --skill, --theme, --prompt-template, --no-themes, --no-prompt-templates - Add pi install/remove/update commands for extension management - Refactor settings.json to use arrays for skills, prompts, themes - Remove legacy SkillsSettings source flags and filters - Update SDK examples and documentation for ResourceLoader pattern - Add theme registration and loadThemeFromPath for dynamic themes - Add getShellEnv to include bin dir in PATH for bash commands
49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
/**
|
|
* Custom Model Selection
|
|
*
|
|
* Shows how to select a specific model and thinking level.
|
|
*/
|
|
|
|
import { getModel } from "@mariozechner/pi-ai";
|
|
import { AuthStorage, createAgentSession, ModelRegistry } from "@mariozechner/pi-coding-agent";
|
|
|
|
// Set up auth storage and model registry
|
|
const authStorage = new AuthStorage();
|
|
const modelRegistry = new ModelRegistry(authStorage);
|
|
|
|
// Option 1: Find a specific built-in model by provider/id
|
|
const opus = getModel("anthropic", "claude-opus-4-5");
|
|
if (opus) {
|
|
console.log(`Found model: ${opus.provider}/${opus.id}`);
|
|
}
|
|
|
|
// Option 2: Find model via registry (includes custom models from models.json)
|
|
const customModel = modelRegistry.find("my-provider", "my-model");
|
|
if (customModel) {
|
|
console.log(`Found custom model: ${customModel.provider}/${customModel.id}`);
|
|
}
|
|
|
|
// Option 3: Pick from available models (have valid API keys)
|
|
const available = await modelRegistry.getAvailable();
|
|
console.log(
|
|
"Available models:",
|
|
available.map((m) => `${m.provider}/${m.id}`),
|
|
);
|
|
|
|
if (available.length > 0) {
|
|
const { session } = await createAgentSession({
|
|
model: available[0],
|
|
thinkingLevel: "medium", // off, low, medium, high
|
|
authStorage,
|
|
modelRegistry,
|
|
});
|
|
|
|
session.subscribe((event) => {
|
|
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
process.stdout.write(event.assistantMessageEvent.delta);
|
|
}
|
|
});
|
|
|
|
await session.prompt("Say hello in one sentence.");
|
|
console.log();
|
|
}
|