feat(mobile): add Android development client and scoped IDE companion

This commit is contained in:
yilsem committed 2026-09-08 16:54:28 +03:00
1 parent 3332458708
commit 9f9f3226a1
84 files changed
+4371 -4

No files matched your search

+21
View File
@@ -0,0 +1,21 @@
import assert from 'node:assert/strict'
import { DeliveryJournal, MobileGatewayClient } from '../../desktop/electron/mobile-adapter.mjs'
const [port, directory] = process.argv.slice(2), events = []
const client = new MobileGatewayClient(async () => ({ baseUrl: `http://127.0.0.1:${port}`,
wsUrl: `ws://127.0.0.1:${port}/api/ws?token=local-mobile-integration-token`, token: 'local-mobile-integration-token' }),
event => events.push(event), { deviceId: 'phone-fixture', journal: new DeliveryJournal(directory), authorize: async () => {} })
try {
const list = await client.handle({ id: 'list', action: 'sessions.list' })
assert.ok(list.sessions.some(row => row.id === 'mobile-integration-session'))
const selected = await client.handle({ id: 'open', action: 'session.open', params: { sessionId: 'mobile-integration-session' } })
assert.equal(selected.model, 'mobile-fixture')
const request = { id: 'send', action: 'task.submit', params: { taskId: 'one-task', sessionId: 'mobile-integration-session',
model: selected.model, intent: 'research', text: 'MOBIL_GOREV_20260908: Yalnız bağlantı sınaması; dosya değiştirme.' } }
assert.equal((await client.handle(request)).state, 'accepted')
assert.equal((await client.handle(request)).duplicate, true)
for (let i = 0; i < 300 && !events.some(event => event.event === 'message.complete'); i++) await new Promise(resolve => setTimeout(resolve, 100))
const result = events.find(event => event.event === 'message.complete')
assert.ok(result, 'real runtime completion event missing')
assert.equal(result.status, 'complete', JSON.stringify(result)); assert.equal(result.text, 'MOBIL_RUNTIME_OK')
console.log(JSON.stringify({ result, duplicateSuppressed: true }))
} finally { client.close() }