| import { AiSdkBackend, buildComputerUseTools, getAIModel } from '../packages/runtime/dist/index.js'; |
| import { |
| createSyntheticComputerScenario, |
| canonicalizeSyntheticComputerArgs, |
| } from './cu-synthetic-model-scenario.mjs'; |
| import { createDirectRuntimeTurnLedger } from './cu-direct-runtime-ledger.mjs'; |
| |
| const baseUrl = process.env.MAKA_CU_MODEL_BASE_URL ?? 'http://127.0.0.1:8538/v1'; |
| const modelId = process.env.MAKA_CU_MODEL_ID ?? 'gpt-5.6-sol'; |
| const scenario = createSyntheticComputerScenario(); |
| const backend = { |
| async preflight() { |
| return { accessibility: true, screenRecording: true }; |
| }, |
| async listApps() { |
| const result = scenario.execute({ action: 'list_apps' }); |
| return result.apps.map((app) => ({ |
| appId: app.app_id, |
| pid: app.pid, |
| name: app.name, |
| windowCount: app.windows.length, |
| windows: app.windows.map((window) => ({ |
| windowId: window.window_id, |
| title: window.title, |
| })), |
| })); |
| }, |
| async observeApp(input) { |
| const result = scenario.execute( |
| canonicalizeSyntheticComputerArgs({ |
| action: 'observe', |
| app: input.app, |
| window_id: input.windowId, |
| }), |
| ); |
| return toRuntimeObservation(result); |
| }, |
| async runSemantic(action) { |
| if (action.type !== 'set_value') { |
| return { |
| outcome: { |
| ok: false, |
| error: 'unsupported_action', |
| message: `synthetic runtime E2E rejects ${action.type}`, |
| }, |
| }; |
| } |
| const result = scenario.execute({ |
| action: 'set_value', |
| observation_id: action.observationId, |
| element_id: action.elementId, |
| value: action.value, |
| }); |
| return { |
| outcome: result.outcome, |
| observation: toRuntimeObservation(result.fresh_observation), |
| }; |
| }, |
| async captureObservation(input) { |
| return toRuntimeObservation( |
| scenario.execute({ |
| action: 'observe', |
| app: input.app, |
| window_id: input.windowId, |
| include_screenshot: true, |
| }), |
| ); |
| }, |
| async run(action) { |
| return { |
| outcome: { |
| ok: false, |
| error: 'unsupported_action', |
| message: |
| `background '${action.type}' is disabled because the compatibility ` + |
| 'event backend can interfere with physical user input', |
| }, |
| }; |
| }, |
| }; |
| const [computerTool] = buildComputerUseTools({ backend }); |
| const messages = []; |
| const telemetry = []; |
| const connection = { |
| slug: 'azure-bridge', |
| name: 'Azure Bridge', |
| providerType: 'openai', |
| baseUrl, |
| defaultModel: modelId, |
| enabled: true, |
| createdAt: 1, |
| updatedAt: 1, |
| }; |
| let nextId = 0; |
| let now = Date.now(); |
| const turnId = 'turn-real-model'; |
| const turnText = |
| 'Use Maka Computer to set "CUA Lab Set Value Field" in "Codex CUA Lab" ' + |
| 'to "model-e2e". Start with list_apps, observe the exact app/window, ' + |
| 'use set_value with IDs from the observation, verify the fresh observation, ' + |
| 'and then finish.'; |
| const durableTurn = createDirectRuntimeTurnLedger({ |
| sessionId: 'real-runtime-model-e2e', |
| turnId, |
| text: turnText, |
| newId: () => `runtime-event-${++nextId}`, |
| now: () => ++now, |
| }); |
| const runtime = new AiSdkBackend({ |
| sessionId: 'real-runtime-model-e2e', |
| header: { |
| id: 'real-runtime-model-e2e', |
| workspaceRoot: process.cwd(), |
| cwd: process.cwd(), |
| createdAt: now, |
| lastUsedAt: now, |
| name: 'Real Runtime Computer Use E2E', |
| isFlagged: false, |
| labels: [], |
| isArchived: false, |
| status: 'active', |
| statusUpdatedAt: now, |
| hasUnread: false, |
| backend: 'ai-sdk', |
| llmConnectionSlug: connection.slug, |
| connectionLocked: true, |
| model: modelId, |
| permissionMode: 'bypass', |
| schemaVersion: 1, |
| }, |
| appendMessage: async (message) => { |
| messages.push(message); |
| }, |
| connection, |
| apiKey: 'bridge-managed', |
| modelId, |
| readExecutionBoundary: async () => ({ kind: 'bypass', revision: 0 }), |
| modelFactory: (input) => getAIModel(input), |
| tools: [computerTool], |
| maxSteps: 8, |
| loadTurnRuntimeEvents: durableTurn.loadTurnRuntimeEvents, |
| newId: () => `id-${++nextId}`, |
| now: () => ++now, |
| recordToolInvocation: (record) => { |
| telemetry.push({ |
| toolName: record.toolName, |
| status: record.status, |
| argsSummary: record.argsSummary, |
| }); |
| }, |
| }); |
| |
| const events = []; |
| for await (const event of runtime.send({ |
| turnId, |
| text: turnText, |
| context: [], |
| headAnchorRuntimeEvent: durableTurn.anchor, |
| })) { |
| durableTurn.record(event); |
| events.push(event.type); |
| } |
| |
| if (scenario.state.value !== 'model-e2e') { |
| throw new Error( |
| `real Runtime model loop did not mutate the semantic fixture: ${scenario.state.value}`, |
| ); |
| } |
| if (events.at(-1) !== 'complete') { |
| throw new Error(`real Runtime model loop did not complete: ${events.at(-1)}`); |
| } |
| |
| process.stdout.write( |
| `${JSON.stringify( |
| { |
| ok: true, |
| provider: 'openai-responses-via-azure-bridge', |
| model: modelId, |
| events, |
| calls: scenario.calls, |
| telemetry, |
| persistedTypes: messages.map((message) => message.type), |
| finalValue: scenario.state.value, |
| }, |
| null, |
| 2, |
| )}\n`, |
| ); |
| |
| function toRuntimeObservation(input) { |
| return { |
| observationId: input.observation_id, |
| appId: input.app, |
| pid: input.pid, |
| windowId: input.window_id, |
| windowTitle: 'Codex CUA Lab', |
| contentFingerprint: 'synthetic-runtime-model-e2e', |
| elements: input.elements.map((element) => ({ |
| elementId: element.element_id, |
| role: element.role, |
| label: element.label, |
| value: element.value, |
| identity: { |
| role: element.role, |
| label: element.label, |
| value: element.value, |
| }, |
| })), |
| screenshot: { |
| base64: |
| 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=', |
| mimeType: 'image/png', |
| widthPx: 1, |
| heightPx: 1, |
| }, |
| }; |
| } |