feat: use managed model capabilities for reasoning and image input

This commit is contained in:
2026-09-12 21:37:18 +08:00
parent e7701d1f2c
commit 26cbb29aa9
29 changed files with 652 additions and 271 deletions

View File

@@ -1,7 +1,7 @@
import path from 'node:path';
import { atomicWriteText } from '../../../coding-projects/atomic-json';
export const MAKELORE_PI_EXTENSION_VERSION = 6;
export const MAKELORE_PI_EXTENSION_VERSION = 7;
export const MAKELORE_PI_EXTENSION_FILENAME = `makelore-runtime-v${MAKELORE_PI_EXTENSION_VERSION}.mjs`;
const BUNDLE_SOURCE = String.raw`
@@ -434,6 +434,20 @@ export function createMakeloreRuntime(runtimeDefaults = {}) {
await registerDynamicProductTools();
pi.on('before_provider_request', async (event) => {
const context = await readWorkerContext();
const managed = context.managedModelRequest;
if (!managed || !context.runId) return;
if (!event.payload || typeof event.payload !== 'object' || Array.isArray(event.payload)) return;
if (event.payload.model !== managed.modelId) return;
const payload = { ...event.payload };
delete payload.thinking;
delete payload.enable_thinking;
delete payload.reasoning_effort;
delete payload.thinking_budget;
return { ...payload, ...managed.reasoningFields };
});
pi.on('tool_call', async (event, ctx) => {
if (!MUTATION_TOOLS.has(event.toolName) && !dynamicLeaseTools.has(event.toolName)) return;
const input = event.input || event.arguments || event.args || {};