mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-05-01 06:36:23 +08:00
build: update Pi model dependencies
This commit is contained in:
@@ -9,7 +9,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Agents/tools: add optional per-call `timeoutMs` support for image, video, music, and TTS generation tools so agents can extend provider request timeouts only when a specific generation needs it.
|
||||
- Agents/subagents: add optional forked context for native `sessions_spawn` runs so agents can let a child inherit the requester transcript when needed, while keeping clean isolated sessions as the default; includes prompt guidance, context-engine hook metadata, docs, and QA coverage.
|
||||
- Codex harness: add structured debug logging for embedded harness selection decisions so `/status` stays simple while gateway logs explain auto-selection and Pi fallback reasons. (#70760) Thanks @100yenadmin.
|
||||
- Providers/OpenAI: add forward-compatible `gpt-5.5` and `gpt-5.5-pro` support for OpenAI API keys, OpenAI Codex OAuth, and the Codex CLI default model.
|
||||
- Dependencies/Pi: update bundled Pi packages to `0.70.0`, use Pi's upstream `gpt-5.5` catalog metadata for OpenAI and OpenAI Codex, and keep only local `gpt-5.5-pro` forward-compat handling.
|
||||
- Providers/OpenAI: add image generation and reference-image editing through Codex OAuth, so `openai/gpt-image-2` works without an `OPENAI_API_KEY`. Fixes #70703.
|
||||
- Image generation: let agents request provider-supported quality and output format hints, and pass OpenAI-specific background, moderation, compression, and user hints through the `image_generate` tool. (#70503) Thanks @ottodeng.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "0.90.0",
|
||||
"@aws/bedrock-token-generator": "^1.1.0",
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -5,7 +5,9 @@ import type { OpenClawConfig } from "../../src/config/config.js";
|
||||
import { buildPluginApi } from "../../src/plugins/api-builder.js";
|
||||
import type { PluginRuntime } from "../../src/plugins/runtime/types.js";
|
||||
import { registerSingleProviderPlugin } from "../../test/helpers/plugins/plugin-registration.js";
|
||||
import { resetBedrockDiscoveryCacheForTest } from "./discovery.js";
|
||||
import amazonBedrockPlugin from "./index.js";
|
||||
import { resetBedrockAppProfileCacheEligibilityForTest } from "./register.sync.runtime.js";
|
||||
|
||||
type BedrockClientResult =
|
||||
| {
|
||||
@@ -15,14 +17,44 @@ type BedrockClientResult =
|
||||
}
|
||||
| Error;
|
||||
|
||||
const inferenceProfileResults: BedrockClientResult[] = [];
|
||||
const foundationModelResults: BedrockClientResult[] = [];
|
||||
const inferenceProfileListResults: BedrockClientResult[] = [];
|
||||
const inferenceProfileGetResults: BedrockClientResult[] = [];
|
||||
const bedrockClientConfigs: Array<Record<string, unknown>> = [];
|
||||
const sendGetInferenceProfile = vi.fn(async () => {
|
||||
const next = inferenceProfileResults.shift();
|
||||
const sendBedrockCommand = vi.fn(async (command: unknown) => {
|
||||
const commandName = command?.constructor?.name;
|
||||
const queue =
|
||||
commandName === "ListFoundationModelsCommand"
|
||||
? foundationModelResults
|
||||
: commandName === "ListInferenceProfilesCommand"
|
||||
? inferenceProfileListResults
|
||||
: inferenceProfileGetResults;
|
||||
const next = queue.shift();
|
||||
if (next instanceof Error) {
|
||||
throw next;
|
||||
}
|
||||
return next ?? { models: [] };
|
||||
if (next) {
|
||||
return next;
|
||||
}
|
||||
if (commandName === "ListFoundationModelsCommand") {
|
||||
return {
|
||||
modelSummaries: [
|
||||
{
|
||||
modelId: NON_ANTHROPIC_MODEL,
|
||||
modelName: "Nova Micro",
|
||||
providerName: "Amazon",
|
||||
inputModalities: ["TEXT"],
|
||||
outputModalities: ["TEXT"],
|
||||
responseStreamingSupported: true,
|
||||
modelLifecycle: { status: "ACTIVE" },
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
if (commandName === "ListInferenceProfilesCommand") {
|
||||
return { inferenceProfileSummaries: [] };
|
||||
}
|
||||
return { models: [] };
|
||||
});
|
||||
|
||||
vi.mock("@aws-sdk/client-bedrock", () => {
|
||||
@@ -43,7 +75,7 @@ vi.mock("@aws-sdk/client-bedrock", () => {
|
||||
bedrockClientConfigs.push(config);
|
||||
}
|
||||
|
||||
send = sendGetInferenceProfile;
|
||||
send = sendBedrockCommand;
|
||||
}
|
||||
|
||||
return {
|
||||
@@ -156,17 +188,6 @@ function callWrappedStream(
|
||||
return result;
|
||||
}
|
||||
|
||||
async function runCatalog(
|
||||
provider: RegisteredProviderPlugin,
|
||||
config: OpenClawConfig,
|
||||
env: NodeJS.ProcessEnv = {} as NodeJS.ProcessEnv,
|
||||
) {
|
||||
return provider.catalog?.run({
|
||||
config,
|
||||
env,
|
||||
} as never);
|
||||
}
|
||||
|
||||
function runtimePluginConfig(config?: Record<string, unknown>): OpenClawConfig {
|
||||
return {
|
||||
plugins: {
|
||||
@@ -183,9 +204,13 @@ function runtimePluginConfig(config?: Record<string, unknown>): OpenClawConfig {
|
||||
|
||||
describe("amazon-bedrock provider plugin", () => {
|
||||
beforeEach(() => {
|
||||
inferenceProfileResults.length = 0;
|
||||
foundationModelResults.length = 0;
|
||||
inferenceProfileListResults.length = 0;
|
||||
inferenceProfileGetResults.length = 0;
|
||||
bedrockClientConfigs.length = 0;
|
||||
sendGetInferenceProfile.mockClear();
|
||||
sendBedrockCommand.mockClear();
|
||||
resetBedrockDiscoveryCacheForTest();
|
||||
resetBedrockAppProfileCacheEligibilityForTest();
|
||||
});
|
||||
|
||||
it("marks Claude 4.6 Bedrock models as adaptive by default", async () => {
|
||||
@@ -439,51 +464,6 @@ describe("amazon-bedrock provider plugin", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("discovery config", () => {
|
||||
it("uses live plugin config to re-enable discovery after startup disable", async () => {
|
||||
inferenceProfileResults.push(
|
||||
{
|
||||
modelSummaries: [
|
||||
{
|
||||
modelId: NON_ANTHROPIC_MODEL,
|
||||
modelName: "Nova Micro",
|
||||
providerName: "Amazon",
|
||||
inputModalities: ["TEXT"],
|
||||
outputModalities: ["TEXT"],
|
||||
responseStreamingSupported: true,
|
||||
modelLifecycle: { status: "ACTIVE" },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
inferenceProfileSummaries: [],
|
||||
},
|
||||
);
|
||||
const provider = await registerWithConfig({
|
||||
discovery: {
|
||||
enabled: false,
|
||||
},
|
||||
});
|
||||
|
||||
const catalog = await runCatalog(
|
||||
provider,
|
||||
runtimePluginConfig({
|
||||
discovery: {
|
||||
enabled: true,
|
||||
region: "us-east-1",
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
expect(catalog).toMatchObject({
|
||||
provider: {
|
||||
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
|
||||
api: "bedrock-converse-stream",
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("application inference profile cache point injection", () => {
|
||||
/**
|
||||
* Invoke wrapStreamFn with a payload containing system/messages, then
|
||||
@@ -721,7 +701,7 @@ describe("amazon-bedrock provider plugin", () => {
|
||||
it("injects cache points for opaque application inference profile ARNs after profile lookup", async () => {
|
||||
const modelId =
|
||||
"arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/z27qyso459da";
|
||||
inferenceProfileResults.push({
|
||||
inferenceProfileGetResults.push({
|
||||
models: [
|
||||
{
|
||||
modelArn:
|
||||
@@ -745,14 +725,14 @@ describe("amazon-bedrock provider plugin", () => {
|
||||
|
||||
const system = payload.system as Array<Record<string, unknown>>;
|
||||
expect(system[1]).toEqual({ cachePoint: { type: "default" } });
|
||||
expect(sendGetInferenceProfile).toHaveBeenCalledTimes(1);
|
||||
expect(sendBedrockCommand).toHaveBeenCalledTimes(1);
|
||||
expect(bedrockClientConfigs).toEqual([{ region: "us-east-1" }]);
|
||||
});
|
||||
|
||||
it("does not inject cache points when any resolved profile target is not cacheable", async () => {
|
||||
const modelId =
|
||||
"arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/z27qyso459db";
|
||||
inferenceProfileResults.push({
|
||||
inferenceProfileGetResults.push({
|
||||
models: [
|
||||
{
|
||||
modelArn:
|
||||
@@ -785,7 +765,7 @@ describe("amazon-bedrock provider plugin", () => {
|
||||
it("retries opaque profile lookup after a transient failure instead of caching the fallback", async () => {
|
||||
const modelId =
|
||||
"arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/z27qyso459dc";
|
||||
inferenceProfileResults.push(new Error("throttled"), {
|
||||
inferenceProfileGetResults.push(new Error("throttled"), {
|
||||
models: [
|
||||
{
|
||||
modelArn:
|
||||
@@ -823,7 +803,7 @@ describe("amazon-bedrock provider plugin", () => {
|
||||
{ text: "You are helpful." },
|
||||
{ cachePoint: { type: "default" } },
|
||||
]);
|
||||
expect(sendGetInferenceProfile).toHaveBeenCalledTimes(2);
|
||||
expect(sendBedrockCommand).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -157,6 +157,10 @@ function resolvedModelSupportsCaching(modelArn: string): boolean {
|
||||
*/
|
||||
const appProfileCacheEligibleCache = new Map<string, boolean>();
|
||||
|
||||
export function resetBedrockAppProfileCacheEligibilityForTest(): void {
|
||||
appProfileCacheEligibleCache.clear();
|
||||
}
|
||||
|
||||
async function resolveAppProfileCacheEligible(
|
||||
modelId: string,
|
||||
fallbackRegion: string | undefined,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw Anthropic provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"description": "OpenClaw Codex harness and model provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-coding-agent": "0.69.0",
|
||||
"@mariozechner/pi-coding-agent": "0.70.0",
|
||||
"ws": "^8.20.0",
|
||||
"zod": "^4.3.6"
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw Fireworks provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@clack/prompts": "^1.2.0",
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@google/genai": "^1.50.1",
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw Kimi provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openclaw/plugin-sdk": "workspace:*"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw LM Studio provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0"
|
||||
"@mariozechner/pi-ai": "0.70.0"
|
||||
},
|
||||
"openclaw": {
|
||||
"extensions": [
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw Ollama provider plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0",
|
||||
"@mariozechner/pi-ai": "0.70.0",
|
||||
"typebox": "1.1.28"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -329,13 +329,19 @@ describe("openai codex provider", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("resolves gpt-5.5 and gpt-5.5-pro with launch pricing and codex-sized runtime cap", () => {
|
||||
it("uses Pi metadata for gpt-5.5 and local launch metadata for gpt-5.5-pro", () => {
|
||||
const provider = buildOpenAICodexProviderPlugin();
|
||||
|
||||
const model = provider.resolveDynamicModel?.({
|
||||
provider: "openai-codex",
|
||||
modelId: "gpt-5.5",
|
||||
modelRegistry: createSingleModelRegistry(createCodexTemplate({ id: "gpt-5.4" })) as never,
|
||||
modelRegistry: createSingleModelRegistry(
|
||||
createCodexTemplate({
|
||||
id: "gpt-5.5",
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
contextWindow: 400_000,
|
||||
}),
|
||||
) as never,
|
||||
});
|
||||
const pro = provider.resolveDynamicModel?.({
|
||||
provider: "openai-codex",
|
||||
@@ -347,10 +353,9 @@ describe("openai codex provider", () => {
|
||||
id: "gpt-5.5",
|
||||
api: "openai-codex-responses",
|
||||
baseUrl: "https://chatgpt.com/backend-api",
|
||||
contextWindow: 1_000_000,
|
||||
contextTokens: 272_000,
|
||||
contextWindow: 400_000,
|
||||
maxTokens: 128_000,
|
||||
cost: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 },
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
});
|
||||
expect(pro).toMatchObject({
|
||||
id: "gpt-5.5-pro",
|
||||
@@ -432,7 +437,7 @@ describe("openai codex provider", () => {
|
||||
expect(model).not.toHaveProperty("contextTokens");
|
||||
});
|
||||
|
||||
it("augments catalog with gpt-5.5 and gpt-5.4 native metadata", () => {
|
||||
it("augments catalog with gpt-5.5-pro and gpt-5.4 native metadata", () => {
|
||||
const provider = buildOpenAICodexProviderPlugin();
|
||||
|
||||
const entries = provider.augmentModelCatalog?.({
|
||||
@@ -449,12 +454,9 @@ describe("openai codex provider", () => {
|
||||
],
|
||||
} as never);
|
||||
|
||||
expect(entries).toContainEqual(
|
||||
expect(entries).not.toContainEqual(
|
||||
expect.objectContaining({
|
||||
id: "gpt-5.5",
|
||||
contextWindow: 1_000_000,
|
||||
contextTokens: 272_000,
|
||||
cost: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 },
|
||||
}),
|
||||
);
|
||||
expect(entries).toContainEqual(
|
||||
|
||||
@@ -50,18 +50,12 @@ const OPENAI_CODEX_GPT_54_MODEL_ID = "gpt-5.4";
|
||||
const OPENAI_CODEX_GPT_54_LEGACY_MODEL_ID = "gpt-5.4-codex";
|
||||
const OPENAI_CODEX_GPT_54_PRO_MODEL_ID = "gpt-5.4-pro";
|
||||
const OPENAI_CODEX_GPT_54_MINI_MODEL_ID = "gpt-5.4-mini";
|
||||
const OPENAI_CODEX_GPT_55_NATIVE_CONTEXT_TOKENS = 1_000_000;
|
||||
const OPENAI_CODEX_GPT_55_DEFAULT_CONTEXT_TOKENS = 272_000;
|
||||
const OPENAI_CODEX_GPT_55_PRO_NATIVE_CONTEXT_TOKENS = 1_000_000;
|
||||
const OPENAI_CODEX_GPT_55_PRO_DEFAULT_CONTEXT_TOKENS = 272_000;
|
||||
const OPENAI_CODEX_GPT_54_NATIVE_CONTEXT_TOKENS = 1_050_000;
|
||||
const OPENAI_CODEX_GPT_54_DEFAULT_CONTEXT_TOKENS = 272_000;
|
||||
const OPENAI_CODEX_GPT_54_MINI_CONTEXT_TOKENS = 272_000;
|
||||
const OPENAI_CODEX_GPT_54_MAX_TOKENS = 128_000;
|
||||
const OPENAI_CODEX_GPT_55_COST = {
|
||||
input: 5,
|
||||
output: 30,
|
||||
cacheRead: 0,
|
||||
cacheWrite: 0,
|
||||
} as const;
|
||||
const OPENAI_CODEX_GPT_55_PRO_COST = {
|
||||
input: 30,
|
||||
output: 180,
|
||||
@@ -92,7 +86,7 @@ const OPENAI_CODEX_GPT_54_CATALOG_SYNTH_TEMPLATE_MODEL_IDS = [
|
||||
...OPENAI_CODEX_GPT_54_TEMPLATE_MODEL_IDS,
|
||||
OPENAI_CODEX_GPT_54_MODEL_ID,
|
||||
] as const;
|
||||
const OPENAI_CODEX_GPT_55_TEMPLATE_MODEL_IDS = [
|
||||
const OPENAI_CODEX_GPT_55_PRO_TEMPLATE_MODEL_IDS = [
|
||||
OPENAI_CODEX_GPT_54_MODEL_ID,
|
||||
OPENAI_CODEX_GPT_54_PRO_MODEL_ID,
|
||||
...OPENAI_CODEX_GPT_54_TEMPLATE_MODEL_IDS,
|
||||
@@ -187,21 +181,20 @@ function resolveCodexForwardCompatModel(ctx: ProviderResolveDynamicModelContext)
|
||||
const trimmedModelId = ctx.modelId.trim();
|
||||
const lower = normalizeLowercaseStringOrEmpty(trimmedModelId);
|
||||
|
||||
if (lower === OPENAI_CODEX_GPT_55_MODEL_ID) {
|
||||
const model = ctx.modelRegistry.find(PROVIDER_ID, trimmedModelId) as
|
||||
| ProviderRuntimeModel
|
||||
| undefined;
|
||||
return model;
|
||||
}
|
||||
|
||||
let templateIds: readonly string[];
|
||||
let patch: Parameters<typeof cloneFirstTemplateModel>[0]["patch"];
|
||||
if (lower === OPENAI_CODEX_GPT_55_MODEL_ID) {
|
||||
templateIds = OPENAI_CODEX_GPT_55_TEMPLATE_MODEL_IDS;
|
||||
if (lower === OPENAI_CODEX_GPT_55_PRO_MODEL_ID) {
|
||||
templateIds = OPENAI_CODEX_GPT_55_PRO_TEMPLATE_MODEL_IDS;
|
||||
patch = {
|
||||
contextWindow: OPENAI_CODEX_GPT_55_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_DEFAULT_CONTEXT_TOKENS,
|
||||
maxTokens: OPENAI_CODEX_GPT_54_MAX_TOKENS,
|
||||
cost: OPENAI_CODEX_GPT_55_COST,
|
||||
};
|
||||
} else if (lower === OPENAI_CODEX_GPT_55_PRO_MODEL_ID) {
|
||||
templateIds = OPENAI_CODEX_GPT_55_TEMPLATE_MODEL_IDS;
|
||||
patch = {
|
||||
contextWindow: OPENAI_CODEX_GPT_55_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_DEFAULT_CONTEXT_TOKENS,
|
||||
contextWindow: OPENAI_CODEX_GPT_55_PRO_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_PRO_DEFAULT_CONTEXT_TOKENS,
|
||||
maxTokens: OPENAI_CODEX_GPT_54_MAX_TOKENS,
|
||||
cost: OPENAI_CODEX_GPT_55_PRO_COST,
|
||||
};
|
||||
@@ -517,10 +510,10 @@ export function buildOpenAICodexProviderPlugin(): ProviderPlugin {
|
||||
providerId: PROVIDER_ID,
|
||||
templateIds: OPENAI_CODEX_GPT_54_CATALOG_SYNTH_TEMPLATE_MODEL_IDS,
|
||||
});
|
||||
const gpt55Template = findCatalogTemplate({
|
||||
const gpt55ProTemplate = findCatalogTemplate({
|
||||
entries: ctx.entries,
|
||||
providerId: PROVIDER_ID,
|
||||
templateIds: OPENAI_CODEX_GPT_55_TEMPLATE_MODEL_IDS,
|
||||
templateIds: OPENAI_CODEX_GPT_55_PRO_TEMPLATE_MODEL_IDS,
|
||||
});
|
||||
const gpt54MiniTemplate = findCatalogTemplate({
|
||||
entries: ctx.entries,
|
||||
@@ -528,20 +521,12 @@ export function buildOpenAICodexProviderPlugin(): ProviderPlugin {
|
||||
templateIds: OPENAI_CODEX_GPT_54_MINI_TEMPLATE_MODEL_IDS,
|
||||
});
|
||||
return [
|
||||
buildOpenAISyntheticCatalogEntry(gpt55Template, {
|
||||
id: OPENAI_CODEX_GPT_55_MODEL_ID,
|
||||
reasoning: true,
|
||||
input: ["text", "image"],
|
||||
contextWindow: OPENAI_CODEX_GPT_55_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_DEFAULT_CONTEXT_TOKENS,
|
||||
cost: OPENAI_CODEX_GPT_55_COST,
|
||||
}),
|
||||
buildOpenAISyntheticCatalogEntry(gpt55Template, {
|
||||
buildOpenAISyntheticCatalogEntry(gpt55ProTemplate, {
|
||||
id: OPENAI_CODEX_GPT_55_PRO_MODEL_ID,
|
||||
reasoning: true,
|
||||
input: ["text", "image"],
|
||||
contextWindow: OPENAI_CODEX_GPT_55_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_DEFAULT_CONTEXT_TOKENS,
|
||||
contextWindow: OPENAI_CODEX_GPT_55_PRO_NATIVE_CONTEXT_TOKENS,
|
||||
contextTokens: OPENAI_CODEX_GPT_55_PRO_DEFAULT_CONTEXT_TOKENS,
|
||||
cost: OPENAI_CODEX_GPT_55_PRO_COST,
|
||||
}),
|
||||
buildOpenAISyntheticCatalogEntry(gpt54Template, {
|
||||
|
||||
@@ -229,7 +229,7 @@ describe("buildOpenAIProvider", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("resolves gpt-5.5 and gpt-5.5-pro with launch metadata", () => {
|
||||
it("leaves gpt-5.5 to Pi and resolves gpt-5.5-pro locally", () => {
|
||||
const provider = buildOpenAIProvider();
|
||||
|
||||
const model = provider.resolveDynamicModel?.({
|
||||
@@ -275,15 +275,7 @@ describe("buildOpenAIProvider", () => {
|
||||
} as never,
|
||||
});
|
||||
|
||||
expect(model).toMatchObject({
|
||||
provider: "openai",
|
||||
id: "gpt-5.5",
|
||||
api: "openai-responses",
|
||||
baseUrl: "https://api.openai.com/v1",
|
||||
contextWindow: 1_000_000,
|
||||
maxTokens: 128_000,
|
||||
cost: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 },
|
||||
});
|
||||
expect(model).toBeUndefined();
|
||||
expect(pro).toMatchObject({
|
||||
provider: "openai",
|
||||
id: "gpt-5.5-pro",
|
||||
@@ -295,7 +287,7 @@ describe("buildOpenAIProvider", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("surfaces gpt-5.5 in xhigh and augmented catalog metadata", () => {
|
||||
it("surfaces gpt-5.5 in xhigh without synthetic catalog metadata", () => {
|
||||
const provider = buildOpenAIProvider();
|
||||
|
||||
expect(
|
||||
@@ -312,14 +304,10 @@ describe("buildOpenAIProvider", () => {
|
||||
entries: [{ provider: "openai", id: "gpt-5.4", name: "GPT-5.4" }],
|
||||
} as never);
|
||||
|
||||
expect(entries).toContainEqual(
|
||||
expect(entries).not.toContainEqual(
|
||||
expect.objectContaining({
|
||||
provider: "openai",
|
||||
id: "gpt-5.5",
|
||||
name: "gpt-5.5",
|
||||
reasoning: true,
|
||||
input: ["text", "image"],
|
||||
contextWindow: 1_000_000,
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
@@ -28,14 +28,12 @@ const OPENAI_GPT_54_MODEL_ID = "gpt-5.4";
|
||||
const OPENAI_GPT_54_PRO_MODEL_ID = "gpt-5.4-pro";
|
||||
const OPENAI_GPT_54_MINI_MODEL_ID = "gpt-5.4-mini";
|
||||
const OPENAI_GPT_54_NANO_MODEL_ID = "gpt-5.4-nano";
|
||||
const OPENAI_GPT_55_CONTEXT_TOKENS = 1_000_000;
|
||||
const OPENAI_GPT_55_PRO_CONTEXT_TOKENS = 1_000_000;
|
||||
const OPENAI_GPT_54_CONTEXT_TOKENS = 1_050_000;
|
||||
const OPENAI_GPT_54_PRO_CONTEXT_TOKENS = 1_050_000;
|
||||
const OPENAI_GPT_54_MINI_CONTEXT_TOKENS = 400_000;
|
||||
const OPENAI_GPT_54_NANO_CONTEXT_TOKENS = 400_000;
|
||||
const OPENAI_GPT_54_MAX_TOKENS = 128_000;
|
||||
const OPENAI_GPT_55_COST = { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 } as const;
|
||||
const OPENAI_GPT_55_PRO_COST = { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 } as const;
|
||||
const OPENAI_GPT_54_COST = { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 } as const;
|
||||
const OPENAI_GPT_54_PRO_COST = { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 } as const;
|
||||
@@ -51,7 +49,6 @@ const OPENAI_GPT_54_NANO_COST = {
|
||||
cacheRead: 0.02,
|
||||
cacheWrite: 0,
|
||||
} as const;
|
||||
const OPENAI_GPT_55_TEMPLATE_MODEL_IDS = [OPENAI_GPT_54_MODEL_ID, "gpt-5.2"] as const;
|
||||
const OPENAI_GPT_55_PRO_TEMPLATE_MODEL_IDS = [
|
||||
OPENAI_GPT_54_PRO_MODEL_ID,
|
||||
OPENAI_GPT_54_MODEL_ID,
|
||||
@@ -63,21 +60,21 @@ const OPENAI_GPT_54_PRO_TEMPLATE_MODEL_IDS = ["gpt-5.2-pro", "gpt-5.2"] as const
|
||||
const OPENAI_GPT_54_MINI_TEMPLATE_MODEL_IDS = ["gpt-5-mini"] as const;
|
||||
const OPENAI_GPT_54_NANO_TEMPLATE_MODEL_IDS = ["gpt-5-nano", "gpt-5-mini"] as const;
|
||||
const OPENAI_XHIGH_MODEL_IDS = [
|
||||
"gpt-5.5",
|
||||
"gpt-5.5-pro",
|
||||
"gpt-5.4",
|
||||
"gpt-5.4-pro",
|
||||
"gpt-5.4-mini",
|
||||
"gpt-5.4-nano",
|
||||
OPENAI_GPT_55_MODEL_ID,
|
||||
OPENAI_GPT_55_PRO_MODEL_ID,
|
||||
OPENAI_GPT_54_MODEL_ID,
|
||||
OPENAI_GPT_54_PRO_MODEL_ID,
|
||||
OPENAI_GPT_54_MINI_MODEL_ID,
|
||||
OPENAI_GPT_54_NANO_MODEL_ID,
|
||||
"gpt-5.2",
|
||||
] as const;
|
||||
const OPENAI_MODERN_MODEL_IDS = [
|
||||
"gpt-5.5",
|
||||
"gpt-5.5-pro",
|
||||
"gpt-5.4",
|
||||
"gpt-5.4-pro",
|
||||
"gpt-5.4-mini",
|
||||
"gpt-5.4-nano",
|
||||
OPENAI_GPT_55_MODEL_ID,
|
||||
OPENAI_GPT_55_PRO_MODEL_ID,
|
||||
OPENAI_GPT_54_MODEL_ID,
|
||||
OPENAI_GPT_54_PRO_MODEL_ID,
|
||||
OPENAI_GPT_54_MINI_MODEL_ID,
|
||||
OPENAI_GPT_54_NANO_MODEL_ID,
|
||||
"gpt-5.2",
|
||||
] as const;
|
||||
const OPENAI_DIRECT_SPARK_MODEL_ID = "gpt-5.3-codex-spark";
|
||||
@@ -119,19 +116,7 @@ function resolveOpenAIGptForwardCompatModel(ctx: ProviderResolveDynamicModelCont
|
||||
const lower = normalizeLowercaseStringOrEmpty(trimmedModelId);
|
||||
let templateIds: readonly string[];
|
||||
let patch: Partial<ProviderRuntimeModel>;
|
||||
if (lower === OPENAI_GPT_55_MODEL_ID) {
|
||||
templateIds = OPENAI_GPT_55_TEMPLATE_MODEL_IDS;
|
||||
patch = {
|
||||
api: "openai-responses",
|
||||
provider: PROVIDER_ID,
|
||||
baseUrl: "https://api.openai.com/v1",
|
||||
reasoning: true,
|
||||
input: ["text", "image"],
|
||||
cost: OPENAI_GPT_55_COST,
|
||||
contextWindow: OPENAI_GPT_55_CONTEXT_TOKENS,
|
||||
maxTokens: OPENAI_GPT_54_MAX_TOKENS,
|
||||
};
|
||||
} else if (lower === OPENAI_GPT_55_PRO_MODEL_ID) {
|
||||
if (lower === OPENAI_GPT_55_PRO_MODEL_ID) {
|
||||
templateIds = OPENAI_GPT_55_PRO_TEMPLATE_MODEL_IDS;
|
||||
patch = {
|
||||
api: "openai-responses",
|
||||
@@ -288,11 +273,6 @@ export function buildOpenAIProvider(): ProviderPlugin {
|
||||
};
|
||||
},
|
||||
augmentModelCatalog: (ctx) => {
|
||||
const openAiGpt55Template = findCatalogTemplate({
|
||||
entries: ctx.entries,
|
||||
providerId: PROVIDER_ID,
|
||||
templateIds: OPENAI_GPT_55_TEMPLATE_MODEL_IDS,
|
||||
});
|
||||
const openAiGpt55ProTemplate = findCatalogTemplate({
|
||||
entries: ctx.entries,
|
||||
providerId: PROVIDER_ID,
|
||||
@@ -319,12 +299,6 @@ export function buildOpenAIProvider(): ProviderPlugin {
|
||||
templateIds: OPENAI_GPT_54_NANO_TEMPLATE_MODEL_IDS,
|
||||
});
|
||||
return [
|
||||
buildOpenAISyntheticCatalogEntry(openAiGpt55Template, {
|
||||
id: OPENAI_GPT_55_MODEL_ID,
|
||||
reasoning: true,
|
||||
input: ["text", "image"],
|
||||
contextWindow: OPENAI_GPT_55_CONTEXT_TOKENS,
|
||||
}),
|
||||
buildOpenAISyntheticCatalogEntry(openAiGpt55ProTemplate, {
|
||||
id: OPENAI_GPT_55_PRO_MODEL_ID,
|
||||
reasoning: true,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw OpenAI provider plugins",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0",
|
||||
"@mariozechner/pi-ai": "0.70.0",
|
||||
"ws": "^8.20.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "OpenClaw xAI plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@mariozechner/pi-ai": "0.69.0",
|
||||
"@mariozechner/pi-ai": "0.70.0",
|
||||
"typebox": "1.1.28",
|
||||
"ws": "^8.20.0"
|
||||
},
|
||||
|
||||
@@ -1548,10 +1548,10 @@
|
||||
"@clack/prompts": "^1.2.0",
|
||||
"@homebridge/ciao": "^1.3.6",
|
||||
"@lydell/node-pty": "1.2.0-beta.12",
|
||||
"@mariozechner/pi-agent-core": "0.69.0",
|
||||
"@mariozechner/pi-ai": "0.69.0",
|
||||
"@mariozechner/pi-coding-agent": "0.69.0",
|
||||
"@mariozechner/pi-tui": "0.69.0",
|
||||
"@mariozechner/pi-agent-core": "0.70.0",
|
||||
"@mariozechner/pi-ai": "0.70.0",
|
||||
"@mariozechner/pi-coding-agent": "0.70.0",
|
||||
"@mariozechner/pi-tui": "0.70.0",
|
||||
"@modelcontextprotocol/sdk": "1.29.0",
|
||||
"@mozilla/readability": "^0.6.0",
|
||||
"@vincentkoc/qrcode-tui": "0.2.1",
|
||||
|
||||
510
pnpm-lock.yaml
generated
510
pnpm-lock.yaml
generated
@@ -55,17 +55,17 @@ importers:
|
||||
specifier: 1.2.0-beta.12
|
||||
version: 1.2.0-beta.12
|
||||
'@mariozechner/pi-agent-core':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-coding-agent':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-tui':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0
|
||||
'@modelcontextprotocol/sdk':
|
||||
specifier: 1.29.0
|
||||
version: 1.29.0(zod@4.3.6)
|
||||
@@ -280,8 +280,8 @@ importers:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -290,8 +290,8 @@ importers:
|
||||
extensions/anthropic:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -377,8 +377,8 @@ importers:
|
||||
extensions/codex:
|
||||
dependencies:
|
||||
'@mariozechner/pi-coding-agent':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
ws:
|
||||
specifier: ^8.20.0
|
||||
version: 8.20.0
|
||||
@@ -568,8 +568,8 @@ importers:
|
||||
extensions/fireworks:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -581,8 +581,8 @@ importers:
|
||||
specifier: ^1.2.0
|
||||
version: 1.2.0
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -594,8 +594,8 @@ importers:
|
||||
specifier: ^1.50.1
|
||||
version: 1.50.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -659,8 +659,8 @@ importers:
|
||||
extensions/kimi-coding:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
devDependencies:
|
||||
'@openclaw/plugin-sdk':
|
||||
specifier: workspace:*
|
||||
@@ -701,8 +701,8 @@ importers:
|
||||
extensions/lmstudio:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
|
||||
extensions/lobster:
|
||||
dependencies:
|
||||
@@ -928,8 +928,8 @@ importers:
|
||||
extensions/ollama:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
typebox:
|
||||
specifier: 1.1.28
|
||||
version: 1.1.28
|
||||
@@ -947,8 +947,8 @@ importers:
|
||||
extensions/openai:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
ws:
|
||||
specifier: ^8.20.0
|
||||
version: 8.20.0
|
||||
@@ -1354,8 +1354,8 @@ importers:
|
||||
extensions/xai:
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai':
|
||||
specifier: 0.69.0
|
||||
version: 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
specifier: 0.70.0
|
||||
version: 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
typebox:
|
||||
specifier: 1.1.28
|
||||
version: 1.1.28
|
||||
@@ -1523,6 +1523,10 @@ packages:
|
||||
resolution: {integrity: sha512-CDI4njdtLEd3voxApQMI32IJN/HhpM3FtAh0quJ+aIWNmyDbW3cp2SwQ56Pnsrq1OV40Apw/O4yD822K4aK9HA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/client-bedrock-runtime@3.1034.0':
|
||||
resolution: {integrity: sha512-49igCAONPtL0ZkWWIs/6gWAq3CjWRISbqtFi5ysDljAGaZXMnPigKMly1CuOGlw/zIPaWbIjk2bGhyLtz2AuXg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/client-bedrock@3.1033.0':
|
||||
resolution: {integrity: sha512-UkYqTE8a+uxOvFw8TX62jlL76iy0IiUb3bewF3cu6sLUROZDaHSM/fM45IeFVViTcI9vmgJaSxznopOMQ3B2Mw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1539,6 +1543,10 @@ packages:
|
||||
resolution: {integrity: sha512-oav5AOAz+1XkwUfp6SrEm42UPDpUP5D4jNYXkDwFR1VfWqYX62+jpytdfzURmJ9McSoJIQwi0OJlC4oCi6t0VQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/core@3.974.3':
|
||||
resolution: {integrity: sha512-W3aJJm2clu8OmsrwMOMnfof13O6LGnbknnZIQeSRbxjqKah2nVvkjbUBBZVhWrt08KC69H7WsINTdrxC/2SXQw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/crc64-nvme@3.972.7':
|
||||
resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1551,34 +1559,66 @@ packages:
|
||||
resolution: {integrity: sha512-87GdRJ2OR0qR4VkMjXN/SZi66DZsunW2qQCbtw9rKw3Y7JurFi6tQWYKOSLY/gOADrU6OxGqFmdw3hKzZqDZOQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.972.29':
|
||||
resolution: {integrity: sha512-rf+AlUxgTeSzQ/4zoS0D+Bt7XvgpY48PnWG8Yg/N9fdMgyK2Jaqa+6tLZp4MYMIMHkGrfAxnbSeb2YLMGFMg6g==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.972.30':
|
||||
resolution: {integrity: sha512-6quozmW2PKwBJTUQLb+lk1q8w5Pm45qaqhx4Tld9EIqYYQOVGj+MT0a8NRVS7QgWJj7rzGlB7rQu3KYBFHemJw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.972.31':
|
||||
resolution: {integrity: sha512-TR2/lQ3qKFj2EOrsiASzemsNEz2uzZ/SUBf48+U4Cr9a/FZlHfH/hwAeBJNBp1gMyJNxROJZhT3dn1cO+jnYfQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.32':
|
||||
resolution: {integrity: sha512-Nkr+UKtczZlocUjc6g96WzQadZSIZO/HVXPki4qbfaVOZYSbfLQKWKfADtJ0kGYsCvSYOZrO66tSc9dkboUt/w==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.33':
|
||||
resolution: {integrity: sha512-UwdbJbOrgnOxZbshaNZ4DzX35h5wQd33MNYTGzWhN3ORG9lG9KQbDX6l6tDJSAdaGTktJoZPSritmUoW1rYkRA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.32':
|
||||
resolution: {integrity: sha512-UxgwT1HmZz1QPXuBy5ZUPJNFXOSlhwdQL61eGhWRthF0xRrT02BCOVJ1p5Ejg5AXfnESTWoKPJ7v/sCkNUtB9g==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.33':
|
||||
resolution: {integrity: sha512-WyZuPVoDM1HGNl41eVg8HSSXIB+FGkuuK63GhDbh4TMdfWU03AciWvF/QqOVWvJtWVYaLddANJ+aUklVr2ieuw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.33':
|
||||
resolution: {integrity: sha512-6pGQnEdSeRvBViTQh/FwaRKB38a3Th+W2mVxuvqAd2Z1Ayo3e6eJ5QqJoZwEMwR6xoxkl3wz3qAfiB1xRhMC+w==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.34':
|
||||
resolution: {integrity: sha512-sPcisURibKU4x0PCWJkWF1KJYm49Cph9dCn/PAnG5FU0wq5Id3g2v7RuEWAtNlKv1Af4gUJYBVGOeNpSEEx41A==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.972.28':
|
||||
resolution: {integrity: sha512-CRAlD8u6oNBhjnX/3ekVGocarD+lFmEn/qeDzytgIdmwrmwMJGFPqS9lGwEfhOTihZKrQ0xSp3z6paX+iXJJhA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.972.29':
|
||||
resolution: {integrity: sha512-DURisqWS3bUgiwMXTmzymVNGlcRW0FnbPZ3SZknhmxnCXm3n9idkTJ6T+Uir359KRKtJNFLRViskk8HsSVLi1w==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.32':
|
||||
resolution: {integrity: sha512-whhmQghRYOt9mJxFyVMhX7eB8n0oA25OCvqoR7dzFAZjmioCkf7WVB22Bc6llM5cFpBXFX7s4Jv+xVq32VPGWg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.33':
|
||||
resolution: {integrity: sha512-9y9obU4IQWru9f+NiiscUeyCe5ZmQav4FKEb1qfUNrik/C3BzBGUnHQWyPEyXjOX9cb+vx1TYx0qZBtinKdzTA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.32':
|
||||
resolution: {integrity: sha512-Z0Y0LDaqyQDznlmr9gv6n4+eWKKWNgmi9j5L6RENr6wyOCguhO8FRPmqDbVLSw0DPdMqICKnA3PurJiS8bD6Cw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.33':
|
||||
resolution: {integrity: sha512-RazhlN0YAkna2T2p2v4YuuRlVBVRNo8V0SL+9JePTWDndEUAeOBAjYeQfAMbtDyCh120+zA0Op6V0jS4dw2+iw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-providers@3.1033.0':
|
||||
resolution: {integrity: sha512-yxwiYB3z8ilVLmtLEwrEL/MIISYDLRyhAJmXoziNIxqKLoCnZed4A2AhlCcPMvFfA8B56oNJ64nGoepMaEagzw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1623,6 +1663,10 @@ packages:
|
||||
resolution: {integrity: sha512-5hS08Fp0Rm+59uGCmkWhZmveXiA7OUV7Wa+IARejdzf9JTZ1qAVeIOE9JoBpsLPvUgEjmsGNHBuFbtGmYyqiqQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-sdk-s3@3.972.32':
|
||||
resolution: {integrity: sha512-dc2O2x0V5pGJhmdQYQveUIFtMZsur7GrGuSgoKM4oQJuEcfvwnJ3sj+ip6WnxR5l6TrX5zkl4KgcgswOy3wAzQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-ssec@3.972.10':
|
||||
resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1631,6 +1675,10 @@ packages:
|
||||
resolution: {integrity: sha512-HQ0x9DDKqLZOGhDiL2eicYXXkYT5dogE4mw0lAfHCpJ6t7MM0PNIsJl2TZzWKU9SpBzOMXHRa7K6ZLKUJu1y0w==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.972.33':
|
||||
resolution: {integrity: sha512-mqtT3Fo7xanWMk2SbAcKLGGI/q1GHWNrExBj7cnWP2W2mkTMheXB4ntJvwPZ1UxPrQobrsv2dWFXmaOJeSOiDg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-websocket@3.972.16':
|
||||
resolution: {integrity: sha512-86+S9oCyRVGzoMRpQhxkArp7kD2K75GPmaNevd9B6EyNhWoNvnCZZ3WbgN4j7ZT+jvtvBCGZvI2XHsWZJ+BRIg==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
@@ -1639,10 +1687,18 @@ packages:
|
||||
resolution: {integrity: sha512-4bI5GHjUiY5R8N6PtchpG6tW2Dl8I2IcZNg3JwqwxHRXjfvQlPoo4VMknG4qkd5W0t3Y20rQ6C7pSR561YG5JQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/nested-clients@3.997.1':
|
||||
resolution: {integrity: sha512-Afc9hc2WZs3X4Jb8dnxyuYiZsLoWRO51roTCRf497gPnAKN2WRdXANu1vaVCTzwnDMOYFXb/cYv4ZSjxqAqcKA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/region-config-resolver@3.972.12':
|
||||
resolution: {integrity: sha512-QQI43Mxd53nBij0pm8HXC+t4IOC6gnhhZfzxE0OATQyO6QfPV4e+aTIRRuAJKA6Nig/cR8eLwPryqYTX9ZrjAQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/region-config-resolver@3.972.13':
|
||||
resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/s3-request-presigner@3.1033.0':
|
||||
resolution: {integrity: sha512-8PVtuRzL9k59TgceC2KXA4SbG5V+nKzwO0YVtpp3ylf3Ios1DB7+psoMFS/P6zmsCHMT+S3ChrIUDXv4QmRawQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1651,10 +1707,18 @@ packages:
|
||||
resolution: {integrity: sha512-7Sy8+GhfwUi06NQNLplxuJuXMKJURDsNQfK8yTW6E9wN2J1B+8S5dWZG7vg3InvPPhaXqkcYTr8pzeE+dLjMbQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/signature-v4-multi-region@3.996.20':
|
||||
resolution: {integrity: sha512-MEj6DhEcaO8RgVtFCJ+xpCQnZC3Iesr09avdY75qkMQfckQULu447IegK7Rs1MCGerVBfKnJQ4q+pQq9hI5lng==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.1033.0':
|
||||
resolution: {integrity: sha512-/TsXhqjyRAFb0xVgmbFAha3cJfZdWjnyn6ohJ3AB4E3peLgxNcmKfYr45hruHymyJAydiHoXC3N1a8qgl41cog==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.1034.0':
|
||||
resolution: {integrity: sha512-8E+KGcD4ET0H9FXJ2/ZWbfFnQNYEkTZZYJxAs1lkdJlve1AYuqaydInIFfvNgoz5GbYtzbK8/ugsSMu5wPm6kA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/types@3.973.8':
|
||||
resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1667,6 +1731,10 @@ packages:
|
||||
resolution: {integrity: sha512-ty4LQxN1QC+YhUP28NfEgZDEGXkyqOQy+BDriBozqHsrYO4JMgiPhfizqOGF7P+euBTZ5Ez6SKlLAMCLo8tzmw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/util-endpoints@3.996.8':
|
||||
resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/util-format-url@3.972.10':
|
||||
resolution: {integrity: sha512-DEKiHNJVtNxdyTeQspzY+15Po/kHm6sF0Cs4HV9Q2+lplB63+DrvdeiSoOSdWEWAoO2RcY1veoXVDz2tWxWCgQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -1687,6 +1755,15 @@ packages:
|
||||
aws-crt:
|
||||
optional: true
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.973.19':
|
||||
resolution: {integrity: sha512-ZAfHjpzdbrzkAftC139JoYGfXzDh5HY+AxRzw8pGJ8cULsf+l721sKAMK8mV5NvRETaW/BwghSwQhGgoNgrxMw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
peerDependencies:
|
||||
aws-crt: '>=1.0.0'
|
||||
peerDependenciesMeta:
|
||||
aws-crt:
|
||||
optional: true
|
||||
|
||||
'@aws-sdk/xml-builder@3.972.18':
|
||||
resolution: {integrity: sha512-BMDNVG1ETXRhl1tnisQiYBef3RShJ1kfZA7x7afivTFMLirfHNTb6U71K569HNXhSXbQZsweHvSDZ6euBw8hPA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -2662,22 +2739,22 @@ packages:
|
||||
resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==}
|
||||
hasBin: true
|
||||
|
||||
'@mariozechner/pi-agent-core@0.69.0':
|
||||
resolution: {integrity: sha512-dYZjee7QEIwVVbDGCGriiLjDT34IdMlXMjMp4drVKcLEuVc+BztyODwu3w4ZORVvwaySGGlF9UALjJKUVoXiug==}
|
||||
'@mariozechner/pi-agent-core@0.70.0':
|
||||
resolution: {integrity: sha512-ZwfM5QPvSwza/apZhPIXjrI/blJBFqbVpK30ma4zNwH8VAyseKlzGDExCx/k+81Xydg60sQuG2BQVkYGmofuSg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@mariozechner/pi-ai@0.69.0':
|
||||
resolution: {integrity: sha512-bl838sr57zx/apkiTeNPFQgbBkGXN4HHhm2oghzSRohJIBrR+H001bTeco7Osuke+EZTxO3V5Aev2qlZdUa2xw==}
|
||||
'@mariozechner/pi-ai@0.70.0':
|
||||
resolution: {integrity: sha512-lVT9bb0eFkNr5YXvZ5r00TNA5r110fOO8uJV9VLCQ5GdtunWIjcptWitzIjjl2MF0/NDs7Kb2EwZctXQWWP7eA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@mariozechner/pi-coding-agent@0.69.0':
|
||||
resolution: {integrity: sha512-/EFn43RO2TtMgZI4fMXNepIvbWm2GqhhaLIHBkrO7tRbRCzgvDYkw9sMLKhdf1Ihom2CjC3T/fzQRIPasRSIrQ==}
|
||||
'@mariozechner/pi-coding-agent@0.70.0':
|
||||
resolution: {integrity: sha512-Sw5odG9BYIcRItb/o4Gmq0nSIgoWfx61Isjk3Gk4KqocxHZAOwZZYQ4mgb4GCsevqOMmAzX/H6PC52/TiN76fw==}
|
||||
engines: {node: '>=20.6.0'}
|
||||
hasBin: true
|
||||
|
||||
'@mariozechner/pi-tui@0.69.0':
|
||||
resolution: {integrity: sha512-/82SOMzCA1srivwfcSO8r9XLdAgJNcgpWzNZY33IqqvGev8Q4iWY/hA1wAkLB0l7PKJJ4Dh57xS4IGHbyVM7lA==}
|
||||
'@mariozechner/pi-tui@0.70.0':
|
||||
resolution: {integrity: sha512-x/CwIMP8v9KNrmgEFA0+AWIwSWeNAitEI4eVQtQ6q2a0PpE+vx1+j2oc+iDPe7E1YqrMHXaNlHJVCaVAv/UYrg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@matrix-org/matrix-sdk-crypto-nodejs@0.4.0':
|
||||
@@ -2711,8 +2788,8 @@ packages:
|
||||
resolution: {integrity: sha512-M/skUNJFD+lIVNa+ng0iy8t3sFmki6NOiWpGwnWOBAKFgTYBTJVtPfWm6SNdGFTCUsV9rjep4s9S5zTKUg2HJg==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
'@mistralai/mistralai@2.2.0':
|
||||
resolution: {integrity: sha512-JQUGIXjFWnw/J9LpTSf/ZXwVW3Sh8FBAcfTo5QvAHqkl4CfSiIwnjRJhMoAFcP6ncCe84YPU1ncDGX+p3OXnfg==}
|
||||
'@mistralai/mistralai@2.2.1':
|
||||
resolution: {integrity: sha512-uKU8CZmL2RzYKmplsU01hii4p3pe4HqJefpWNRWXm1Tcm0Sm4xXfwSLIy4k7ZCPlbETCGcp69E7hZs+WOJ5itQ==}
|
||||
|
||||
'@modelcontextprotocol/sdk@1.29.0':
|
||||
resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==}
|
||||
@@ -7964,6 +8041,58 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-bedrock-runtime@3.1034.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/credential-provider-node': 3.972.34
|
||||
'@aws-sdk/eventstream-handler-node': 3.972.14
|
||||
'@aws-sdk/middleware-eventstream': 3.972.10
|
||||
'@aws-sdk/middleware-host-header': 3.972.10
|
||||
'@aws-sdk/middleware-logger': 3.972.10
|
||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||
'@aws-sdk/middleware-user-agent': 3.972.33
|
||||
'@aws-sdk/middleware-websocket': 3.972.16
|
||||
'@aws-sdk/region-config-resolver': 3.972.13
|
||||
'@aws-sdk/token-providers': 3.1034.0
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-endpoints': 3.996.8
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||
'@aws-sdk/util-user-agent-node': 3.973.19
|
||||
'@smithy/config-resolver': 4.4.17
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/eventstream-serde-browser': 4.2.14
|
||||
'@smithy/eventstream-serde-config-resolver': 4.3.14
|
||||
'@smithy/eventstream-serde-node': 4.2.14
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
'@smithy/hash-node': 4.2.14
|
||||
'@smithy/invalid-dependency': 4.2.14
|
||||
'@smithy/middleware-content-length': 4.2.14
|
||||
'@smithy/middleware-endpoint': 4.4.31
|
||||
'@smithy/middleware-retry': 4.5.4
|
||||
'@smithy/middleware-serde': 4.2.19
|
||||
'@smithy/middleware-stack': 4.2.14
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/node-http-handler': 4.6.0
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/smithy-client': 4.12.12
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/url-parser': 4.2.14
|
||||
'@smithy/util-base64': 4.3.2
|
||||
'@smithy/util-body-length-browser': 4.2.2
|
||||
'@smithy/util-body-length-node': 4.2.3
|
||||
'@smithy/util-defaults-mode-browser': 4.3.48
|
||||
'@smithy/util-defaults-mode-node': 4.2.53
|
||||
'@smithy/util-endpoints': 3.4.2
|
||||
'@smithy/util-middleware': 4.2.14
|
||||
'@smithy/util-retry': 4.3.3
|
||||
'@smithy/util-stream': 4.5.24
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-bedrock@3.1033.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
@@ -8013,17 +8142,17 @@ snapshots:
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/credential-provider-node': 3.972.33
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/credential-provider-node': 3.972.34
|
||||
'@aws-sdk/middleware-host-header': 3.972.10
|
||||
'@aws-sdk/middleware-logger': 3.972.10
|
||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||
'@aws-sdk/middleware-user-agent': 3.972.32
|
||||
'@aws-sdk/region-config-resolver': 3.972.12
|
||||
'@aws-sdk/middleware-user-agent': 3.972.33
|
||||
'@aws-sdk/region-config-resolver': 3.972.13
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-endpoints': 3.996.7
|
||||
'@aws-sdk/util-endpoints': 3.996.8
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||
'@aws-sdk/util-user-agent-node': 3.973.18
|
||||
'@aws-sdk/util-user-agent-node': 3.973.19
|
||||
'@smithy/config-resolver': 4.4.17
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
@@ -8129,6 +8258,23 @@ snapshots:
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/core@3.974.3':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/xml-builder': 3.972.18
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/signature-v4': 5.3.14
|
||||
'@smithy/smithy-client': 4.12.12
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/util-base64': 4.3.2
|
||||
'@smithy/util-middleware': 4.2.14
|
||||
'@smithy/util-retry': 4.3.3
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/crc64-nvme@3.972.7':
|
||||
dependencies:
|
||||
'@smithy/types': 4.14.1
|
||||
@@ -8146,7 +8292,15 @@ snapshots:
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.972.28':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.972.29':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/types': 4.14.1
|
||||
@@ -8154,7 +8308,20 @@ snapshots:
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.972.30':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
'@smithy/node-http-handler': 4.6.0
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/smithy-client': 4.12.12
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/util-stream': 4.5.24
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.972.31':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
'@smithy/node-http-handler': 4.6.0
|
||||
@@ -8167,7 +8334,7 @@ snapshots:
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.32':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/credential-provider-env': 3.972.28
|
||||
'@aws-sdk/credential-provider-http': 3.972.30
|
||||
'@aws-sdk/credential-provider-login': 3.972.32
|
||||
@@ -8184,9 +8351,28 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/credential-provider-env': 3.972.29
|
||||
'@aws-sdk/credential-provider-http': 3.972.31
|
||||
'@aws-sdk/credential-provider-login': 3.972.33
|
||||
'@aws-sdk/credential-provider-process': 3.972.29
|
||||
'@aws-sdk/credential-provider-sso': 3.972.33
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.33
|
||||
'@aws-sdk/nested-clients': 3.997.1
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/credential-provider-imds': 4.2.14
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.32':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.0
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
@@ -8197,6 +8383,19 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.1
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.972.28
|
||||
@@ -8214,9 +8413,35 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.34':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.972.29
|
||||
'@aws-sdk/credential-provider-http': 3.972.31
|
||||
'@aws-sdk/credential-provider-ini': 3.972.33
|
||||
'@aws-sdk/credential-provider-process': 3.972.29
|
||||
'@aws-sdk/credential-provider-sso': 3.972.33
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.33
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/credential-provider-imds': 4.2.14
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.972.28':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.972.29':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
@@ -8225,7 +8450,7 @@ snapshots:
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.32':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.0
|
||||
'@aws-sdk/token-providers': 3.1033.0
|
||||
'@aws-sdk/types': 3.973.8
|
||||
@@ -8236,9 +8461,22 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.1
|
||||
'@aws-sdk/token-providers': 3.1034.0
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.32':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.0
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
@@ -8248,16 +8486,28 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.1
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-providers@3.1033.0':
|
||||
dependencies:
|
||||
'@aws-sdk/client-cognito-identity': 3.1033.0
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/credential-provider-cognito-identity': 3.972.25
|
||||
'@aws-sdk/credential-provider-env': 3.972.28
|
||||
'@aws-sdk/credential-provider-http': 3.972.30
|
||||
'@aws-sdk/credential-provider-ini': 3.972.32
|
||||
'@aws-sdk/credential-provider-login': 3.972.32
|
||||
'@aws-sdk/credential-provider-node': 3.972.33
|
||||
'@aws-sdk/credential-provider-node': 3.972.34
|
||||
'@aws-sdk/credential-provider-process': 3.972.28
|
||||
'@aws-sdk/credential-provider-sso': 3.972.32
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.32
|
||||
@@ -8365,6 +8615,23 @@ snapshots:
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-sdk-s3@3.972.32':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-arn-parser': 3.972.3
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/signature-v4': 5.3.14
|
||||
'@smithy/smithy-client': 4.12.12
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/util-config-provider': 4.2.2
|
||||
'@smithy/util-middleware': 4.2.14
|
||||
'@smithy/util-stream': 4.5.24
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-ssec@3.972.10':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
@@ -8382,6 +8649,17 @@ snapshots:
|
||||
'@smithy/util-retry': 4.3.3
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.972.33':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-endpoints': 3.996.8
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/util-retry': 4.3.3
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-websocket@3.972.16':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
@@ -8401,17 +8679,61 @@ snapshots:
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.974.2
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/middleware-host-header': 3.972.10
|
||||
'@aws-sdk/middleware-logger': 3.972.10
|
||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||
'@aws-sdk/middleware-user-agent': 3.972.32
|
||||
'@aws-sdk/region-config-resolver': 3.972.12
|
||||
'@aws-sdk/middleware-user-agent': 3.972.33
|
||||
'@aws-sdk/region-config-resolver': 3.972.13
|
||||
'@aws-sdk/signature-v4-multi-region': 3.996.19
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-endpoints': 3.996.7
|
||||
'@aws-sdk/util-endpoints': 3.996.8
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||
'@aws-sdk/util-user-agent-node': 3.973.18
|
||||
'@aws-sdk/util-user-agent-node': 3.973.19
|
||||
'@smithy/config-resolver': 4.4.17
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
'@smithy/hash-node': 4.2.14
|
||||
'@smithy/invalid-dependency': 4.2.14
|
||||
'@smithy/middleware-content-length': 4.2.14
|
||||
'@smithy/middleware-endpoint': 4.4.31
|
||||
'@smithy/middleware-retry': 4.5.4
|
||||
'@smithy/middleware-serde': 4.2.19
|
||||
'@smithy/middleware-stack': 4.2.14
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/node-http-handler': 4.6.0
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/smithy-client': 4.12.12
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/url-parser': 4.2.14
|
||||
'@smithy/util-base64': 4.3.2
|
||||
'@smithy/util-body-length-browser': 4.2.2
|
||||
'@smithy/util-body-length-node': 4.2.3
|
||||
'@smithy/util-defaults-mode-browser': 4.3.48
|
||||
'@smithy/util-defaults-mode-node': 4.2.53
|
||||
'@smithy/util-endpoints': 3.4.2
|
||||
'@smithy/util-middleware': 4.2.14
|
||||
'@smithy/util-retry': 4.3.3
|
||||
'@smithy/util-utf8': 4.2.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/nested-clients@3.997.1':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/middleware-host-header': 3.972.10
|
||||
'@aws-sdk/middleware-logger': 3.972.10
|
||||
'@aws-sdk/middleware-recursion-detection': 3.972.11
|
||||
'@aws-sdk/middleware-user-agent': 3.972.33
|
||||
'@aws-sdk/region-config-resolver': 3.972.13
|
||||
'@aws-sdk/signature-v4-multi-region': 3.996.20
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@aws-sdk/util-endpoints': 3.996.8
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.10
|
||||
'@aws-sdk/util-user-agent-node': 3.973.19
|
||||
'@smithy/config-resolver': 4.4.17
|
||||
'@smithy/core': 3.23.16
|
||||
'@smithy/fetch-http-handler': 5.3.17
|
||||
@@ -8449,6 +8771,14 @@ snapshots:
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/region-config-resolver@3.972.13':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/config-resolver': 4.4.17
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/s3-request-presigner@3.1033.0':
|
||||
dependencies:
|
||||
'@aws-sdk/signature-v4-multi-region': 3.996.19
|
||||
@@ -8469,6 +8799,15 @@ snapshots:
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/signature-v4-multi-region@3.996.20':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-sdk-s3': 3.972.32
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/protocol-http': 5.3.14
|
||||
'@smithy/signature-v4': 5.3.14
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/token-providers@3.1033.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.2
|
||||
@@ -8481,6 +8820,18 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/token-providers@3.1034.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.974.3
|
||||
'@aws-sdk/nested-clients': 3.997.1
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/property-provider': 4.2.14
|
||||
'@smithy/shared-ini-file-loader': 4.4.9
|
||||
'@smithy/types': 4.14.1
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/types@3.973.8':
|
||||
dependencies:
|
||||
'@smithy/types': 4.14.1
|
||||
@@ -8498,6 +8849,14 @@ snapshots:
|
||||
'@smithy/util-endpoints': 3.4.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-endpoints@3.996.8':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/url-parser': 4.2.14
|
||||
'@smithy/util-endpoints': 3.4.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-format-url@3.972.10':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.973.8
|
||||
@@ -8525,6 +8884,15 @@ snapshots:
|
||||
'@smithy/util-config-provider': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.973.19':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-user-agent': 3.972.33
|
||||
'@aws-sdk/types': 3.973.8
|
||||
'@smithy/node-config-provider': 4.3.14
|
||||
'@smithy/types': 4.14.1
|
||||
'@smithy/util-config-provider': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/xml-builder@3.972.18':
|
||||
dependencies:
|
||||
'@smithy/types': 4.14.1
|
||||
@@ -9564,9 +9932,9 @@ snapshots:
|
||||
std-env: 3.10.0
|
||||
yoctocolors: 2.1.2
|
||||
|
||||
'@mariozechner/pi-agent-core@0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
'@mariozechner/pi-agent-core@0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
dependencies:
|
||||
'@mariozechner/pi-ai': 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-ai': 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
typebox: 1.1.28
|
||||
transitivePeerDependencies:
|
||||
- '@modelcontextprotocol/sdk'
|
||||
@@ -9577,12 +9945,12 @@ snapshots:
|
||||
- ws
|
||||
- zod
|
||||
|
||||
'@mariozechner/pi-ai@0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
'@mariozechner/pi-ai@0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
dependencies:
|
||||
'@anthropic-ai/sdk': 0.90.0(zod@4.3.6)
|
||||
'@aws-sdk/client-bedrock-runtime': 3.1033.0
|
||||
'@aws-sdk/client-bedrock-runtime': 3.1034.0
|
||||
'@google/genai': 1.50.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))
|
||||
'@mistralai/mistralai': 2.2.0
|
||||
'@mistralai/mistralai': 2.2.1
|
||||
chalk: 5.6.2
|
||||
openai: 6.26.0(ws@8.20.0)(zod@4.3.6)
|
||||
partial-json: 0.1.7
|
||||
@@ -9599,12 +9967,12 @@ snapshots:
|
||||
- ws
|
||||
- zod
|
||||
|
||||
'@mariozechner/pi-coding-agent@0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
'@mariozechner/pi-coding-agent@0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)':
|
||||
dependencies:
|
||||
'@mariozechner/jiti': 2.6.5
|
||||
'@mariozechner/pi-agent-core': 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-ai': 0.69.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-tui': 0.69.0
|
||||
'@mariozechner/pi-agent-core': 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-ai': 0.70.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)
|
||||
'@mariozechner/pi-tui': 0.70.0
|
||||
'@silvia-odwyer/photon-node': 0.3.4
|
||||
chalk: 5.6.2
|
||||
cli-highlight: 2.1.11
|
||||
@@ -9633,7 +10001,7 @@ snapshots:
|
||||
- ws
|
||||
- zod
|
||||
|
||||
'@mariozechner/pi-tui@0.69.0':
|
||||
'@mariozechner/pi-tui@0.70.0':
|
||||
dependencies:
|
||||
'@types/mime-types': 2.1.4
|
||||
chalk: 5.6.2
|
||||
@@ -9722,7 +10090,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
'@mistralai/mistralai@2.2.0':
|
||||
'@mistralai/mistralai@2.2.1':
|
||||
dependencies:
|
||||
ws: 8.20.0
|
||||
zod: 4.3.6
|
||||
|
||||
@@ -10,7 +10,7 @@ import { printTimingSummary } from "./lib/check-timing-summary.mjs";
|
||||
import { runManagedCommand } from "./lib/managed-child-process.mjs";
|
||||
import { resolveChangedTestTargetPlan } from "./test-projects.test-support.mjs";
|
||||
|
||||
export const CHANGED_CHECK_VITEST_NO_OUTPUT_TIMEOUT_MS = "60000";
|
||||
export const CHANGED_CHECK_VITEST_NO_OUTPUT_TIMEOUT_MS = "300000";
|
||||
const VITEST_NO_OUTPUT_TIMEOUT_ENV_KEY = "OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS";
|
||||
const VITEST_NO_OUTPUT_RETRY_ENV_KEY = "OPENCLAW_VITEST_NO_OUTPUT_RETRY";
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ type OpenAIResponsesPayloadModel = {
|
||||
id?: unknown;
|
||||
provider?: unknown;
|
||||
contextWindow?: unknown;
|
||||
compat?: { supportsStore?: boolean };
|
||||
compat?: unknown;
|
||||
};
|
||||
|
||||
type OpenAIResponsesPayloadPolicyOptions = {
|
||||
@@ -50,6 +50,14 @@ function resolveOpenAIResponsesCompactThreshold(model: { contextWindow?: unknown
|
||||
return 80_000;
|
||||
}
|
||||
|
||||
function readCompatBoolean(compat: unknown, key: "supportsStore"): boolean | undefined {
|
||||
if (!compat || typeof compat !== "object") {
|
||||
return undefined;
|
||||
}
|
||||
const value = (compat as Record<string, unknown>)[key];
|
||||
return typeof value === "boolean" ? value : undefined;
|
||||
}
|
||||
|
||||
function shouldEnableOpenAIResponsesServerCompaction(
|
||||
explicitStore: boolean | undefined,
|
||||
provider: unknown,
|
||||
@@ -124,7 +132,9 @@ export function resolveOpenAIResponsesPayloadPolicy(
|
||||
shouldStripPromptCache:
|
||||
options.enablePromptCacheStripping === true && capabilities.shouldStripResponsesPromptCache,
|
||||
shouldStripStore:
|
||||
explicitStore !== true && model.compat?.supportsStore === false && isResponsesApi,
|
||||
explicitStore !== true &&
|
||||
readCompatBoolean(model.compat, "supportsStore") === false &&
|
||||
isResponsesApi,
|
||||
useServerCompaction:
|
||||
options.enableServerCompaction === true &&
|
||||
shouldEnableOpenAIResponsesServerCompaction(
|
||||
|
||||
@@ -8,7 +8,7 @@ type OpenAIStrictToolModel = {
|
||||
api?: unknown;
|
||||
baseUrl?: unknown;
|
||||
id?: unknown;
|
||||
compat?: { supportsStore?: boolean };
|
||||
compat?: unknown;
|
||||
};
|
||||
|
||||
const optionalString = readStringValue;
|
||||
@@ -24,10 +24,7 @@ export function resolvesToNativeOpenAIStrictTools(
|
||||
capability: "llm",
|
||||
transport,
|
||||
modelId: optionalString(model.id),
|
||||
compat:
|
||||
model.compat && typeof model.compat === "object"
|
||||
? (model.compat as { supportsStore?: boolean })
|
||||
: undefined,
|
||||
compat: model.compat,
|
||||
});
|
||||
if (!capabilities.usesKnownNativeOpenAIRoute) {
|
||||
return false;
|
||||
|
||||
@@ -732,7 +732,7 @@ describe("openai transport stream", () => {
|
||||
compat: {
|
||||
supportedReasoningEfforts: ["minimal", "low", "medium", "high"],
|
||||
},
|
||||
} satisfies Model<"openai-responses">;
|
||||
} as unknown as Model<"openai-responses">;
|
||||
|
||||
const params = buildOpenAIResponsesParams(
|
||||
model,
|
||||
@@ -770,7 +770,7 @@ describe("openai transport stream", () => {
|
||||
compat: {
|
||||
supportedReasoningEfforts: ["minimal", "low", "medium", "high"],
|
||||
},
|
||||
} satisfies Model<"openai-responses">;
|
||||
} as unknown as Model<"openai-responses">;
|
||||
|
||||
const params = buildOpenAIResponsesParams(
|
||||
model,
|
||||
|
||||
@@ -19,6 +19,7 @@ import type {
|
||||
ResponseInput,
|
||||
ResponseInputMessageContentList,
|
||||
} from "openai/resources/responses/responses.js";
|
||||
import type { ModelCompatConfig } from "../config/types.models.js";
|
||||
import type { ProviderRuntimeModel } from "../plugins/provider-runtime-model.types.js";
|
||||
import { resolveProviderTransportTurnStateWithPlugin } from "../plugins/provider-runtime.js";
|
||||
import { buildCopilotDynamicHeaders, hasCopilotVisionInput } from "./copilot-dynamic-headers.js";
|
||||
@@ -80,8 +81,8 @@ type OpenAICompletionsOptions = BaseStreamOptions & {
|
||||
reasoningEffort?: OpenAIReasoningEffort;
|
||||
};
|
||||
|
||||
type OpenAIModeModel = Model<Api> & {
|
||||
compat?: Record<string, unknown>;
|
||||
type OpenAIModeModel = Omit<Model<Api>, "compat"> & {
|
||||
compat?: ModelCompatConfig;
|
||||
};
|
||||
|
||||
type MutableAssistantOutput = {
|
||||
@@ -1505,31 +1506,24 @@ function getCompat(model: OpenAIModeModel): {
|
||||
: detected.supportsReasoningEffort;
|
||||
return {
|
||||
supportsStore,
|
||||
supportsDeveloperRole:
|
||||
(compat.supportsDeveloperRole as boolean | undefined) ?? detected.supportsDeveloperRole,
|
||||
supportsDeveloperRole: compat.supportsDeveloperRole ?? detected.supportsDeveloperRole,
|
||||
supportsReasoningEffort,
|
||||
reasoningEffortMap: resolveOpenAIReasoningEffortMap(model, detected.reasoningEffortMap),
|
||||
supportsUsageInStreaming:
|
||||
(compat.supportsUsageInStreaming as boolean | undefined) ?? detected.supportsUsageInStreaming,
|
||||
supportsUsageInStreaming: compat.supportsUsageInStreaming ?? detected.supportsUsageInStreaming,
|
||||
maxTokensField: (compat.maxTokensField as string | undefined) ?? detected.maxTokensField,
|
||||
requiresToolResultName:
|
||||
(compat.requiresToolResultName as boolean | undefined) ?? detected.requiresToolResultName,
|
||||
requiresToolResultName: compat.requiresToolResultName ?? detected.requiresToolResultName,
|
||||
requiresAssistantAfterToolResult:
|
||||
(compat.requiresAssistantAfterToolResult as boolean | undefined) ??
|
||||
detected.requiresAssistantAfterToolResult,
|
||||
requiresThinkingAsText:
|
||||
(compat.requiresThinkingAsText as boolean | undefined) ?? detected.requiresThinkingAsText,
|
||||
compat.requiresAssistantAfterToolResult ?? detected.requiresAssistantAfterToolResult,
|
||||
requiresThinkingAsText: compat.requiresThinkingAsText ?? detected.requiresThinkingAsText,
|
||||
thinkingFormat: (compat.thinkingFormat as string | undefined) ?? detected.thinkingFormat,
|
||||
openRouterRouting: (compat.openRouterRouting as Record<string, unknown> | undefined) ?? {},
|
||||
vercelGatewayRouting:
|
||||
(compat.vercelGatewayRouting as Record<string, unknown> | undefined) ??
|
||||
detected.vercelGatewayRouting,
|
||||
supportsStrictMode:
|
||||
(compat.supportsStrictMode as boolean | undefined) ?? detected.supportsStrictMode,
|
||||
requiresStringContent: (compat.requiresStringContent as boolean | undefined) ?? false,
|
||||
supportsStrictMode: compat.supportsStrictMode ?? detected.supportsStrictMode,
|
||||
requiresStringContent: compat.requiresStringContent ?? false,
|
||||
visibleReasoningDetailTypes:
|
||||
(compat.visibleReasoningDetailTypes as string[] | undefined) ??
|
||||
detected.visibleReasoningDetailTypes,
|
||||
compat.visibleReasoningDetailTypes ?? detected.visibleReasoningDetailTypes,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -230,8 +230,14 @@ function buildDynamicModel(
|
||||
}
|
||||
case "openai-codex": {
|
||||
const isLegacyGpt54Alias = lower === "gpt-5.4-codex";
|
||||
if (lower === "gpt-5.5") {
|
||||
return (
|
||||
(params.modelRegistry.find("openai-codex", modelId) as ResolvedModelLike | null) ??
|
||||
undefined
|
||||
);
|
||||
}
|
||||
const template =
|
||||
lower === "gpt-5.5" || lower === "gpt-5.5-pro"
|
||||
lower === "gpt-5.5-pro"
|
||||
? findTemplate(params, "openai-codex", ["gpt-5.4", "gpt-5.4-pro", "gpt-5.3-codex"])
|
||||
: lower === "gpt-5.4" || isLegacyGpt54Alias || lower === "gpt-5.4-pro"
|
||||
? findTemplate(params, "openai-codex", ["gpt-5.4", "gpt-5.3-codex", "gpt-5.2-codex"])
|
||||
@@ -259,7 +265,7 @@ function buildDynamicModel(
|
||||
contextWindow: DEFAULT_CONTEXT_WINDOW,
|
||||
maxTokens: DEFAULT_CONTEXT_WINDOW,
|
||||
};
|
||||
if (lower === "gpt-5.5" || lower === "gpt-5.5-pro") {
|
||||
if (lower === "gpt-5.5-pro") {
|
||||
return cloneTemplate(
|
||||
template,
|
||||
modelId,
|
||||
@@ -267,10 +273,7 @@ function buildDynamicModel(
|
||||
provider: "openai-codex",
|
||||
api: "openai-codex-responses",
|
||||
baseUrl: OPENAI_CODEX_BASE_URL,
|
||||
cost:
|
||||
lower === "gpt-5.5-pro"
|
||||
? { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 }
|
||||
: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 },
|
||||
cost: { input: 30, output: 180, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 1_000_000,
|
||||
contextTokens: 272_000,
|
||||
maxTokens: 128_000,
|
||||
|
||||
@@ -1101,10 +1101,12 @@ describe("resolveModel", () => {
|
||||
it("lets official openai-codex metadata override legacy unmarked models-add rows", () => {
|
||||
mockDiscoveredModel(discoverModels, {
|
||||
provider: "openai-codex",
|
||||
modelId: "gpt-5.4",
|
||||
modelId: "gpt-5.5",
|
||||
templateModel: {
|
||||
...buildOpenAICodexForwardCompatExpectation("gpt-5.4"),
|
||||
name: "GPT-5.4",
|
||||
...buildOpenAICodexForwardCompatExpectation("gpt-5.5"),
|
||||
name: "GPT-5.5",
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
contextWindow: 400_000,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1137,9 +1139,8 @@ describe("resolveModel", () => {
|
||||
expect(result.model).toMatchObject({
|
||||
provider: "openai-codex",
|
||||
id: "gpt-5.5",
|
||||
cost: { input: 5, output: 30, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 1_000_000,
|
||||
contextTokens: 272_000,
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
contextWindow: 400_000,
|
||||
maxTokens: 128_000,
|
||||
});
|
||||
});
|
||||
@@ -1147,10 +1148,12 @@ describe("resolveModel", () => {
|
||||
it("preserves unmarked manual openai-codex metadata overrides", () => {
|
||||
mockDiscoveredModel(discoverModels, {
|
||||
provider: "openai-codex",
|
||||
modelId: "gpt-5.4",
|
||||
modelId: "gpt-5.5",
|
||||
templateModel: {
|
||||
...buildOpenAICodexForwardCompatExpectation("gpt-5.4"),
|
||||
name: "GPT-5.4",
|
||||
...buildOpenAICodexForwardCompatExpectation("gpt-5.5"),
|
||||
name: "GPT-5.5",
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
contextWindow: 400_000,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ function resolveOpenAIRequestCapabilities(model: {
|
||||
api?: unknown;
|
||||
provider?: unknown;
|
||||
baseUrl?: unknown;
|
||||
compat?: { supportsStore?: boolean };
|
||||
compat?: unknown;
|
||||
}) {
|
||||
return resolveProviderRequestPolicyConfig({
|
||||
provider: readStringValue(model.provider),
|
||||
|
||||
@@ -91,10 +91,7 @@ export type ProviderRequestPolicyResolution = {
|
||||
|
||||
export type ProviderRequestCapabilitiesInput = ProviderRequestPolicyInput & {
|
||||
modelId?: string | null;
|
||||
compat?: {
|
||||
supportsStore?: boolean;
|
||||
supportsPromptCacheKey?: boolean;
|
||||
} | null;
|
||||
compat?: unknown;
|
||||
};
|
||||
|
||||
export type ProviderRequestCompatibilityFamily = "moonshot";
|
||||
@@ -111,6 +108,17 @@ export type ProviderRequestCapabilities = ProviderRequestPolicyResolution & {
|
||||
compatibilityFamily?: ProviderRequestCompatibilityFamily;
|
||||
};
|
||||
|
||||
function readCompatBoolean(
|
||||
compat: unknown,
|
||||
key: "supportsStore" | "supportsPromptCacheKey",
|
||||
): boolean | undefined {
|
||||
if (!compat || typeof compat !== "object") {
|
||||
return undefined;
|
||||
}
|
||||
const value = (compat as Record<string, unknown>)[key];
|
||||
return typeof value === "boolean" ? value : undefined;
|
||||
}
|
||||
|
||||
const OPENCLAW_ATTRIBUTION_PRODUCT = "OpenClaw";
|
||||
const OPENCLAW_ATTRIBUTION_ORIGINATOR = "openclaw";
|
||||
|
||||
@@ -630,7 +638,7 @@ export function resolveProviderRequestCapabilities(
|
||||
}
|
||||
|
||||
const isResponsesApi = isOpenAIResponsesApi(api);
|
||||
const promptCacheKeySupport = input.compat?.supportsPromptCacheKey;
|
||||
const promptCacheKeySupport = readCompatBoolean(input.compat, "supportsPromptCacheKey");
|
||||
// Default strip behavior (proxy-like endpoints with responses APIs) is
|
||||
// preserved as a safety net for providers that reject prompt_cache_key,
|
||||
// see #48155 (Volcano Engine DeepSeek). Operators running their payload
|
||||
@@ -672,9 +680,10 @@ export function resolveProviderRequestCapabilities(
|
||||
(endpointClass === "default" || endpointClass === "anthropic-public"),
|
||||
// This is intentionally the gate for emitting `store: false` on Responses
|
||||
// transports, not just a statement about vendor support in the abstract.
|
||||
supportsResponsesStoreField: input.compat?.supportsStore !== false && isResponsesApi,
|
||||
supportsResponsesStoreField:
|
||||
readCompatBoolean(input.compat, "supportsStore") !== false && isResponsesApi,
|
||||
allowsResponsesStore:
|
||||
input.compat?.supportsStore !== false &&
|
||||
readCompatBoolean(input.compat, "supportsStore") !== false &&
|
||||
provider !== undefined &&
|
||||
isResponsesApi &&
|
||||
OPENAI_RESPONSES_PROVIDERS.has(provider) &&
|
||||
|
||||
@@ -160,10 +160,7 @@ type ResolveProviderRequestPolicyConfigParams = {
|
||||
callerHeaders?: Record<string, string>;
|
||||
precedence?: ProviderRequestHeaderPrecedence;
|
||||
authHeader?: boolean;
|
||||
compat?: {
|
||||
supportsStore?: boolean;
|
||||
supportsPromptCacheKey?: boolean;
|
||||
} | null;
|
||||
compat?: unknown;
|
||||
modelId?: string | null;
|
||||
allowPrivateNetwork?: boolean;
|
||||
request?: ModelProviderRequestTransportOverrides;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import type { OpenAICompletionsCompat } from "@mariozechner/pi-ai";
|
||||
import type {
|
||||
AnthropicMessagesCompat,
|
||||
OpenAICompletionsCompat,
|
||||
OpenAIResponsesCompat,
|
||||
} from "@mariozechner/pi-ai";
|
||||
import type { ConfiguredModelProviderRequest } from "./types.provider-request.js";
|
||||
import type { SecretInput } from "./types.secrets.js";
|
||||
|
||||
@@ -27,6 +31,22 @@ type SupportedOpenAICompatFields = Pick<
|
||||
| "requiresToolResultName"
|
||||
| "requiresAssistantAfterToolResult"
|
||||
| "requiresThinkingAsText"
|
||||
| "openRouterRouting"
|
||||
| "vercelGatewayRouting"
|
||||
| "zaiToolStream"
|
||||
| "cacheControlFormat"
|
||||
| "sendSessionAffinityHeaders"
|
||||
| "supportsLongCacheRetention"
|
||||
>;
|
||||
|
||||
type SupportedOpenAIResponsesCompatFields = Pick<
|
||||
OpenAIResponsesCompat,
|
||||
"sendSessionIdHeader" | "supportsLongCacheRetention"
|
||||
>;
|
||||
|
||||
type SupportedAnthropicMessagesCompatFields = Pick<
|
||||
AnthropicMessagesCompat,
|
||||
"supportsEagerToolInputStreaming" | "supportsLongCacheRetention"
|
||||
>;
|
||||
|
||||
type SupportedThinkingFormat =
|
||||
@@ -34,19 +54,22 @@ type SupportedThinkingFormat =
|
||||
| "openrouter"
|
||||
| "qwen-chat-template";
|
||||
|
||||
export type ModelCompatConfig = SupportedOpenAICompatFields & {
|
||||
thinkingFormat?: SupportedThinkingFormat;
|
||||
visibleReasoningDetailTypes?: string[];
|
||||
supportsTools?: boolean;
|
||||
supportsPromptCacheKey?: boolean;
|
||||
requiresStringContent?: boolean;
|
||||
toolSchemaProfile?: string;
|
||||
unsupportedToolSchemaKeywords?: string[];
|
||||
nativeWebSearchTool?: boolean;
|
||||
toolCallArgumentsEncoding?: string;
|
||||
requiresMistralToolIds?: boolean;
|
||||
requiresOpenAiAnthropicToolPayload?: boolean;
|
||||
};
|
||||
export type ModelCompatConfig = SupportedOpenAICompatFields &
|
||||
SupportedOpenAIResponsesCompatFields &
|
||||
SupportedAnthropicMessagesCompatFields & {
|
||||
thinkingFormat?: SupportedThinkingFormat;
|
||||
supportedReasoningEfforts?: string[];
|
||||
visibleReasoningDetailTypes?: string[];
|
||||
supportsTools?: boolean;
|
||||
supportsPromptCacheKey?: boolean;
|
||||
requiresStringContent?: boolean;
|
||||
toolSchemaProfile?: string;
|
||||
unsupportedToolSchemaKeywords?: string[];
|
||||
nativeWebSearchTool?: boolean;
|
||||
toolCallArgumentsEncoding?: string;
|
||||
requiresMistralToolIds?: boolean;
|
||||
requiresOpenAiAnthropicToolPayload?: boolean;
|
||||
};
|
||||
|
||||
export type ModelProviderAuthMode = "api-key" | "aws-sdk" | "oauth" | "token";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { Api, Model } from "@mariozechner/pi-ai";
|
||||
import { detectOpenAICompletionsCompat } from "../agents/openai-completions-compat.js";
|
||||
import type { ModelCompatConfig } from "../config/types.models.js";
|
||||
|
||||
function extractModelCompat(
|
||||
export function extractModelCompat(
|
||||
modelOrCompat: { compat?: unknown } | ModelCompatConfig | undefined,
|
||||
): ModelCompatConfig | undefined {
|
||||
if (!modelOrCompat || typeof modelOrCompat !== "object") {
|
||||
|
||||
@@ -19,10 +19,8 @@ export const expectedAugmentedOpenaiCodexCatalogEntries = [
|
||||
];
|
||||
|
||||
export const expectedAugmentedOpenaiCodexCatalogEntriesWithGpt55 = [
|
||||
{ provider: "openai", id: "gpt-5.5", name: "gpt-5.5" },
|
||||
{ provider: "openai", id: "gpt-5.5-pro", name: "gpt-5.5-pro" },
|
||||
...expectedAugmentedOpenaiCodexCatalogEntries.slice(0, 4),
|
||||
{ provider: "openai-codex", id: "gpt-5.5", name: "gpt-5.5" },
|
||||
{ provider: "openai-codex", id: "gpt-5.5-pro", name: "gpt-5.5-pro" },
|
||||
...expectedAugmentedOpenaiCodexCatalogEntries.slice(4),
|
||||
];
|
||||
|
||||
@@ -445,7 +445,7 @@ export function describeOpenAIProviderRuntimeContract(load: ProviderRuntimeContr
|
||||
});
|
||||
});
|
||||
|
||||
it("owns openai gpt-5.5 forward-compat resolution", () => {
|
||||
it("leaves openai gpt-5.5 forward-compat resolution to Pi", () => {
|
||||
const provider = requireProviderContractProvider("openai");
|
||||
const model = provider.resolveDynamicModel?.({
|
||||
provider: "openai",
|
||||
@@ -463,14 +463,7 @@ export function describeOpenAIProviderRuntimeContract(load: ProviderRuntimeContr
|
||||
} as never,
|
||||
});
|
||||
|
||||
expect(model).toMatchObject({
|
||||
id: "gpt-5.5",
|
||||
provider: "openai",
|
||||
api: "openai-responses",
|
||||
baseUrl: "https://api.openai.com/v1",
|
||||
contextWindow: 1_000_000,
|
||||
maxTokens: 128_000,
|
||||
});
|
||||
expect(model).toBeUndefined();
|
||||
});
|
||||
|
||||
it("owns openai gpt-5.4 mini forward-compat resolution", () => {
|
||||
@@ -570,19 +563,23 @@ export function describeOpenAIProviderRuntimeContract(load: ProviderRuntimeContr
|
||||
});
|
||||
});
|
||||
|
||||
it("owns forward-compat codex gpt-5.5 models", () => {
|
||||
it("uses Pi registry metadata for codex gpt-5.5 models", () => {
|
||||
const provider = requireProviderContractProvider("openai-codex");
|
||||
const model = provider.resolveDynamicModel?.({
|
||||
provider: "openai-codex",
|
||||
modelId: "gpt-5.5",
|
||||
modelRegistry: {
|
||||
find: (_provider: string, id: string) =>
|
||||
id === "gpt-5.4"
|
||||
id === "gpt-5.5"
|
||||
? createModel({
|
||||
id,
|
||||
api: "openai-codex-responses",
|
||||
provider: "openai-codex",
|
||||
baseUrl: "https://chatgpt.com/backend-api",
|
||||
input: ["text", "image"],
|
||||
cost: { input: 5, output: 30, cacheRead: 0.5, cacheWrite: 0 },
|
||||
contextWindow: 400_000,
|
||||
maxTokens: 128_000,
|
||||
})
|
||||
: null,
|
||||
} as never,
|
||||
@@ -592,8 +589,7 @@ export function describeOpenAIProviderRuntimeContract(load: ProviderRuntimeContr
|
||||
id: "gpt-5.5",
|
||||
provider: "openai-codex",
|
||||
api: "openai-codex-responses",
|
||||
contextWindow: 1_000_000,
|
||||
contextTokens: 272_000,
|
||||
contextWindow: 400_000,
|
||||
maxTokens: 128_000,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -364,7 +364,8 @@ describe("scripts/changed-lanes", () => {
|
||||
expect(plan.runFullTests).toBe(false);
|
||||
});
|
||||
|
||||
it("sets a fail-fast Vitest watchdog for changed checks", () => {
|
||||
it("sets a five-minute Vitest watchdog for changed checks", () => {
|
||||
expect(CHANGED_CHECK_VITEST_NO_OUTPUT_TIMEOUT_MS).toBe("300000");
|
||||
expect(createChangedCheckVitestEnv({ PATH: "/usr/bin" })).toMatchObject({
|
||||
PATH: "/usr/bin",
|
||||
OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS: CHANGED_CHECK_VITEST_NO_OUTPUT_TIMEOUT_MS,
|
||||
|
||||
Reference in New Issue
Block a user