ugly-app 0.1.706 → 0.1.708
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/client/callAI.d.ts.map +1 -1
- package/dist/client/callAI.js +28 -0
- package/dist/client/callAI.js.map +1 -1
- package/dist/client/uglyBotSocket.d.ts.map +1 -1
- package/dist/client/uglyBotSocket.js +94 -26
- package/dist/client/uglyBotSocket.js.map +1 -1
- package/dist/native/contract-meta.d.ts.map +1 -1
- package/dist/native/contract-meta.js +6 -0
- package/dist/native/contract-meta.js.map +1 -1
- package/dist/native/contract.d.ts +28 -1
- package/dist/native/contract.d.ts.map +1 -1
- package/dist/native/contract.js.map +1 -1
- package/dist/native/facades/uglybot.d.ts +36 -0
- package/dist/native/facades/uglybot.d.ts.map +1 -0
- package/dist/native/facades/uglybot.js +29 -0
- package/dist/native/facades/uglybot.js.map +1 -0
- package/dist/native/wrapper.d.ts +1 -0
- package/dist/native/wrapper.d.ts.map +1 -1
- package/dist/native/wrapper.js +2 -0
- package/dist/native/wrapper.js.map +1 -1
- package/dist/server/App.d.ts +16 -2
- package/dist/server/App.d.ts.map +1 -1
- package/dist/server/App.js +44 -1
- package/dist/server/App.js.map +1 -1
- package/dist/server/PushSend.d.ts +43 -7
- package/dist/server/PushSend.d.ts.map +1 -1
- package/dist/server/PushSend.js +29 -1
- package/dist/server/PushSend.js.map +1 -1
- package/dist/server/adapter/workers/createWorkersApp.d.ts +16 -3
- package/dist/server/adapter/workers/createWorkersApp.d.ts.map +1 -1
- package/dist/server/adapter/workers/createWorkersApp.js +23 -0
- package/dist/server/adapter/workers/createWorkersApp.js.map +1 -1
- package/dist/server/adapter/workers/entry.d.ts +1 -1
- package/dist/server/adapter/workers/entry.d.ts.map +1 -1
- package/dist/server/adapter/workers/wrapWithAssets.d.ts.map +1 -1
- package/dist/server/adapter/workers/wrapWithAssets.js +2 -0
- package/dist/server/adapter/workers/wrapWithAssets.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/shared/Api.d.ts +8 -0
- package/dist/shared/Api.d.ts.map +1 -1
- package/dist/shared/Api.js.map +1 -1
- package/dist/shared/ProxyOps.d.ts +18 -0
- package/dist/shared/ProxyOps.d.ts.map +1 -1
- package/dist/shared/ProxyOps.js +13 -2
- package/dist/shared/ProxyOps.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/client/callAI.test.ts +77 -0
- package/src/client/callAI.ts +28 -0
- package/src/client/uglyBotSocket.ts +93 -39
- package/src/native/contract-meta.ts +6 -0
- package/src/native/contract.ts +18 -1
- package/src/native/facades/uglybot.ts +57 -0
- package/src/native/wrapper.ts +5 -0
- package/src/server/App.ts +74 -2
- package/src/server/PushSend.ts +84 -8
- package/src/server/adapter/workers/createWorkersApp.ts +53 -4
- package/src/server/adapter/workers/wrapWithAssets.ts +2 -0
- package/src/server/index.ts +7 -2
- package/src/shared/Api.ts +8 -0
- package/src/shared/ProxyOps.ts +15 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyOps.js","sourceRoot":"","sources":["../../src/shared/ProxyOps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProxyOps.js","sourceRoot":"","sources":["../../src/shared/ProxyOps.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugly-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.708",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
6
6
|
"files": [
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.708";
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
3
|
+
import { callTextGen } from './callAI';
|
|
4
|
+
|
|
5
|
+
type Win = typeof globalThis & { UglyNative?: unknown; __AUTH_TOKEN__?: string };
|
|
6
|
+
const w = globalThis as Win;
|
|
7
|
+
|
|
8
|
+
function setDesktopHost(invoke: (channel: string, payload: unknown) => Promise<unknown>) {
|
|
9
|
+
w.UglyNative = { platform: 'desktop', invoke, subscribe: () => () => {} };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
delete w.UglyNative;
|
|
14
|
+
delete w.__AUTH_TOKEN__;
|
|
15
|
+
vi.restoreAllMocks();
|
|
16
|
+
vi.unstubAllGlobals();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
describe('callAI native consolidation', () => {
|
|
20
|
+
it('routes through the native host (uglybot.request) inside a shell, no fetch', async () => {
|
|
21
|
+
const invoke = vi.fn(async (channel: string, payload: unknown) => {
|
|
22
|
+
expect(channel).toBe('uglybot.request');
|
|
23
|
+
expect(payload).toEqual({ op: 'textGen', input: { prompt: 'hi' } });
|
|
24
|
+
return { message: { role: 'assistant', content: 'native-hi' } };
|
|
25
|
+
});
|
|
26
|
+
setDesktopHost(invoke);
|
|
27
|
+
const fetchSpy = vi.fn();
|
|
28
|
+
vi.stubGlobal('fetch', fetchSpy);
|
|
29
|
+
|
|
30
|
+
await expect(callTextGen({ prompt: 'hi' } as never)).resolves.toBe('native-hi');
|
|
31
|
+
expect(invoke).toHaveBeenCalledTimes(1);
|
|
32
|
+
expect(fetchSpy).not.toHaveBeenCalled();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('uses the direct fetch on plain web (no native host)', async () => {
|
|
36
|
+
w.__AUTH_TOKEN__ = 'tok';
|
|
37
|
+
const fetchSpy = vi.fn(async () => ({
|
|
38
|
+
ok: true,
|
|
39
|
+
json: async () => ({ result: { message: { content: 'web-hi' } } }),
|
|
40
|
+
}));
|
|
41
|
+
vi.stubGlobal('fetch', fetchSpy as never);
|
|
42
|
+
|
|
43
|
+
await expect(callTextGen({ prompt: 'hi' } as never)).resolves.toBe('web-hi');
|
|
44
|
+
expect(fetchSpy).toHaveBeenCalledTimes(1);
|
|
45
|
+
const url = (fetchSpy.mock.calls[0] as unknown[])[0];
|
|
46
|
+
expect(String(url)).toContain('/request');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('falls back to fetch when an old shell lacks the uglybot handler', async () => {
|
|
50
|
+
const invoke = vi.fn(async () => {
|
|
51
|
+
throw new Error('NativeUnavailable: uglybot.request');
|
|
52
|
+
});
|
|
53
|
+
setDesktopHost(invoke);
|
|
54
|
+
w.__AUTH_TOKEN__ = 'tok';
|
|
55
|
+
const fetchSpy = vi.fn(async () => ({
|
|
56
|
+
ok: true,
|
|
57
|
+
json: async () => ({ result: { message: { content: 'fallback-hi' } } }),
|
|
58
|
+
}));
|
|
59
|
+
vi.stubGlobal('fetch', fetchSpy as never);
|
|
60
|
+
|
|
61
|
+
await expect(callTextGen({ prompt: 'hi' } as never)).resolves.toBe('fallback-hi');
|
|
62
|
+
expect(invoke).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(fetchSpy).toHaveBeenCalledTimes(1);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('rethrows a real ugly.bot op error (no fetch fallback, no double-bill)', async () => {
|
|
67
|
+
const invoke = vi.fn(async () => {
|
|
68
|
+
throw new Error('402: insufficient balance');
|
|
69
|
+
});
|
|
70
|
+
setDesktopHost(invoke);
|
|
71
|
+
const fetchSpy = vi.fn();
|
|
72
|
+
vi.stubGlobal('fetch', fetchSpy);
|
|
73
|
+
|
|
74
|
+
await expect(callTextGen({ prompt: 'hi' } as never)).rejects.toThrow(/insufficient balance/);
|
|
75
|
+
expect(fetchSpy).not.toHaveBeenCalled();
|
|
76
|
+
});
|
|
77
|
+
});
|
package/src/client/callAI.ts
CHANGED
|
@@ -3,8 +3,36 @@ import type {
|
|
|
3
3
|
JsonGenInput,
|
|
4
4
|
TextGenInput,
|
|
5
5
|
} from '../shared/index.js';
|
|
6
|
+
import { native, isNativeAvailable } from '../native/index.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* True when a native host rejected `uglybot.request` because it doesn't implement
|
|
10
|
+
* the channel (an older Ugly Studio that predates the consolidated socket). The host
|
|
11
|
+
* rejects BEFORE any ugly.bot call is made, so falling back to the direct fetch here
|
|
12
|
+
* cannot double-bill. Real op failures (insufficient balance, provider errors) come
|
|
13
|
+
* back from ugly.bot with different messages and are rethrown.
|
|
14
|
+
*/
|
|
15
|
+
function isHostMissingUglyBot(e: unknown): boolean {
|
|
16
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
17
|
+
return /uglybot/i.test(msg) && /NativeUnavailable|unknown channel|not implemented/i.test(msg);
|
|
18
|
+
}
|
|
6
19
|
|
|
7
20
|
async function callUglyBot(op: string, input: unknown): Promise<unknown> {
|
|
21
|
+
// Inside a native shell (Ugly Studio desktop / iOS / Android), route through the
|
|
22
|
+
// host's ONE shared, authenticated ugly.bot socket instead of opening a per-page
|
|
23
|
+
// connection. The host injects the page's real origin for per-app metering.
|
|
24
|
+
if (typeof window !== 'undefined' && isNativeAvailable()) {
|
|
25
|
+
try {
|
|
26
|
+
return await native.uglybot.request(op, input);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (!isHostMissingUglyBot(e)) throw e;
|
|
29
|
+
// Old shell without the handler — fall through to the direct fetch below.
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return callUglyBotDirect(op, input);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async function callUglyBotDirect(op: string, input: unknown): Promise<unknown> {
|
|
8
36
|
const token = typeof window !== 'undefined'
|
|
9
37
|
? (window as unknown as { __AUTH_TOKEN__?: string }).__AUTH_TOKEN__
|
|
10
38
|
: undefined;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { MessageData } from '../shared/Api.js';
|
|
2
2
|
import type { UglyBotMessages } from '../shared/UglyBotMessages.js';
|
|
3
|
+
import type { UglyBotStream } from '../native/facades/uglybot.js';
|
|
4
|
+
import { native, isNativeAvailable } from '../native/index.js';
|
|
3
5
|
|
|
4
6
|
type Unsubscribe = () => void;
|
|
5
7
|
type UglyBotMsgKey = keyof UglyBotMessages;
|
|
@@ -19,67 +21,75 @@ export interface UglyBotSocket {
|
|
|
19
21
|
|
|
20
22
|
const IDLE_TIMEOUT_MS = 10_000;
|
|
21
23
|
|
|
24
|
+
/** True when a native host rejected `uglybot.openStream` because it doesn't
|
|
25
|
+
* implement the channel (older shell) — fall back to a direct ugly.bot socket. */
|
|
26
|
+
function isHostMissingUglyBot(e: unknown): boolean {
|
|
27
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
28
|
+
return /NativeUnavailable|unknown channel|not registered|not implemented/i.test(msg);
|
|
29
|
+
}
|
|
30
|
+
|
|
22
31
|
export function createUglyBotSocket(appToken: string, baseUrl?: string): UglyBotSocket {
|
|
23
|
-
let ws: WebSocket | null = null;
|
|
24
|
-
let connectPromise: Promise<void> | null = null;
|
|
25
32
|
let refCount = 0;
|
|
26
33
|
let idleTimer: ReturnType<typeof setTimeout> | null = null;
|
|
27
34
|
|
|
35
|
+
// Listeners are transport-agnostic: both the native and the direct transport
|
|
36
|
+
// dispatch incoming `{type,data}` frames here.
|
|
28
37
|
const listeners = new Map<string, Set<(data: unknown) => void>>();
|
|
29
|
-
|
|
30
|
-
function handleMessage(event: MessageEvent) {
|
|
31
|
-
const msg = JSON.parse(event.data as string) as Record<string, unknown>;
|
|
32
|
-
const type = msg.type as string;
|
|
33
|
-
// Support both { type, data: {...} } and flat { type, streamId, audio, ... } formats
|
|
34
|
-
const data = msg.data !== undefined ? msg.data : (() => {
|
|
35
|
-
const { type: _t, ...rest } = msg;
|
|
36
|
-
return Object.keys(rest).length > 0 ? rest : {};
|
|
37
|
-
})();
|
|
38
|
+
function dispatch(type: string, data: unknown) {
|
|
38
39
|
const set = listeners.get(type);
|
|
39
|
-
if (set)
|
|
40
|
-
for (const handler of set) handler(data);
|
|
41
|
-
}
|
|
40
|
+
if (set) for (const handler of set) handler(data);
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
if (connectPromise) return connectPromise;
|
|
43
|
+
// ─── Direct ugly.bot WebSocket transport (plain browser / no shell) ──────────
|
|
44
|
+
let ws: WebSocket | null = null;
|
|
45
|
+
let connectPromise: Promise<void> | null = null;
|
|
49
46
|
|
|
47
|
+
function directEnsure(): Promise<void> {
|
|
48
|
+
if (ws?.readyState === WebSocket.OPEN) return Promise.resolve();
|
|
49
|
+
if (connectPromise) return connectPromise;
|
|
50
50
|
connectPromise = new Promise<void>((resolve, reject) => {
|
|
51
51
|
const httpBase = baseUrl ?? 'https://ugly.bot';
|
|
52
52
|
const wsBase = httpBase.replace(/^http/, 'ws');
|
|
53
53
|
const url = `${wsBase}/ws?token=${encodeURIComponent(appToken)}`;
|
|
54
54
|
console.log(`[UglyBotSocket] connecting to ${url.replace(/token=[^&]+/, 'token=***')}`);
|
|
55
55
|
const socket = new WebSocket(url);
|
|
56
|
-
|
|
57
56
|
socket.addEventListener('open', () => {
|
|
58
57
|
console.log('[UglyBotSocket] connected');
|
|
59
58
|
ws = socket;
|
|
60
59
|
connectPromise = null;
|
|
61
60
|
resolve();
|
|
62
61
|
});
|
|
63
|
-
|
|
64
62
|
socket.addEventListener('error', (e) => {
|
|
65
63
|
console.error('[UglyBotSocket] connection error', e);
|
|
66
64
|
connectPromise = null;
|
|
67
65
|
reject(new Error('ugly.bot WebSocket connection failed'));
|
|
68
66
|
});
|
|
69
|
-
|
|
70
67
|
socket.addEventListener('close', (e) => {
|
|
71
68
|
console.log(`[UglyBotSocket] closed code=${e.code} reason=${e.reason}`);
|
|
72
69
|
if (ws === socket) ws = null;
|
|
73
70
|
connectPromise = null;
|
|
74
71
|
});
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
socket.addEventListener('message', (event: MessageEvent) => {
|
|
73
|
+
const msg = JSON.parse(event.data as string) as Record<string, unknown>;
|
|
74
|
+
const type = msg.type as string;
|
|
75
|
+
// Support both { type, data: {...} } and flat { type, streamId, ... }.
|
|
76
|
+
const data = msg.data !== undefined ? msg.data : (() => {
|
|
77
|
+
const { type: _t, ...rest } = msg;
|
|
78
|
+
return Object.keys(rest).length > 0 ? rest : {};
|
|
79
|
+
})();
|
|
80
|
+
dispatch(type, data);
|
|
81
|
+
});
|
|
77
82
|
});
|
|
78
|
-
|
|
79
83
|
return connectPromise;
|
|
80
84
|
}
|
|
81
|
-
|
|
82
|
-
|
|
85
|
+
function directSend(type: string, data: unknown) {
|
|
86
|
+
if (ws?.readyState === WebSocket.OPEN) {
|
|
87
|
+
ws.send(JSON.stringify({ type, data }));
|
|
88
|
+
} else {
|
|
89
|
+
console.error(`[UglyBotSocket] send DROPPED ${type} — ws ${ws ? `readyState=${ws.readyState}` : 'null'}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function directClose() {
|
|
83
93
|
if (ws) {
|
|
84
94
|
ws.close();
|
|
85
95
|
ws = null;
|
|
@@ -87,31 +97,77 @@ export function createUglyBotSocket(appToken: string, baseUrl?: string): UglyBot
|
|
|
87
97
|
connectPromise = null;
|
|
88
98
|
}
|
|
89
99
|
|
|
100
|
+
// ─── Native transport: the host's ONE shared, authenticated ugly.bot socket ──
|
|
101
|
+
let stream: UglyBotStream | null = null;
|
|
102
|
+
let streamPromise: Promise<void> | null = null;
|
|
103
|
+
|
|
104
|
+
function nativeEnsure(): Promise<void> {
|
|
105
|
+
if (stream) return Promise.resolve();
|
|
106
|
+
if (streamPromise) return streamPromise;
|
|
107
|
+
streamPromise = native.uglybot
|
|
108
|
+
.openStream()
|
|
109
|
+
.then((s) => {
|
|
110
|
+
s.onMessage((type, data) => dispatch(type, data));
|
|
111
|
+
stream = s;
|
|
112
|
+
streamPromise = null;
|
|
113
|
+
})
|
|
114
|
+
.catch((e) => {
|
|
115
|
+
streamPromise = null;
|
|
116
|
+
throw e;
|
|
117
|
+
});
|
|
118
|
+
return streamPromise;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// ─── Transport selection (lazy, on first acquire) ───────────────────────────
|
|
122
|
+
// `null` = undecided; once chosen it stays for this socket's lifetime.
|
|
123
|
+
let useNative: boolean | null = null;
|
|
124
|
+
|
|
125
|
+
async function ensure(): Promise<void> {
|
|
126
|
+
if (useNative === null) useNative = isNativeAvailable();
|
|
127
|
+
if (useNative) {
|
|
128
|
+
try {
|
|
129
|
+
await nativeEnsure();
|
|
130
|
+
return;
|
|
131
|
+
} catch (e) {
|
|
132
|
+
if (!isHostMissingUglyBot(e)) throw e;
|
|
133
|
+
// Old shell without the streaming handler — fall back to a direct socket.
|
|
134
|
+
console.warn('[UglyBotSocket] native uglybot stream unavailable — using direct socket');
|
|
135
|
+
useNative = false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
await directEnsure();
|
|
139
|
+
}
|
|
140
|
+
function send(type: string, data: unknown) {
|
|
141
|
+
if (useNative && stream) stream.send(type, data);
|
|
142
|
+
else directSend(type, data);
|
|
143
|
+
}
|
|
144
|
+
function close() {
|
|
145
|
+
if (stream) {
|
|
146
|
+
void stream.close().catch(() => {});
|
|
147
|
+
stream = null;
|
|
148
|
+
streamPromise = null;
|
|
149
|
+
}
|
|
150
|
+
directClose();
|
|
151
|
+
}
|
|
152
|
+
|
|
90
153
|
function clearIdle() {
|
|
91
154
|
if (idleTimer) {
|
|
92
155
|
clearTimeout(idleTimer);
|
|
93
156
|
idleTimer = null;
|
|
94
157
|
}
|
|
95
158
|
}
|
|
96
|
-
|
|
97
159
|
function startIdle() {
|
|
98
160
|
clearIdle();
|
|
99
161
|
idleTimer = setTimeout(() => {
|
|
100
162
|
idleTimer = null;
|
|
101
|
-
if (refCount === 0)
|
|
163
|
+
if (refCount === 0) close();
|
|
102
164
|
}, IDLE_TIMEOUT_MS);
|
|
103
165
|
}
|
|
104
166
|
|
|
105
167
|
return {
|
|
106
168
|
send(type, data) {
|
|
107
|
-
|
|
108
|
-
console.log(`[UglyBotSocket] send ${type as string}`, data);
|
|
109
|
-
ws.send(JSON.stringify({ type, data }));
|
|
110
|
-
} else {
|
|
111
|
-
console.error(`[UglyBotSocket] send DROPPED ${type as string} — ws ${ws ? `readyState=${ws.readyState}` : 'null'}`);
|
|
112
|
-
}
|
|
169
|
+
send(type as string, data);
|
|
113
170
|
},
|
|
114
|
-
|
|
115
171
|
on(event, handler) {
|
|
116
172
|
let set = listeners.get(event as string);
|
|
117
173
|
if (!set) {
|
|
@@ -124,13 +180,11 @@ export function createUglyBotSocket(appToken: string, baseUrl?: string): UglyBot
|
|
|
124
180
|
if (set.size === 0) listeners.delete(event as string);
|
|
125
181
|
};
|
|
126
182
|
},
|
|
127
|
-
|
|
128
183
|
async acquire(): Promise<void> {
|
|
129
184
|
clearIdle();
|
|
130
185
|
refCount++;
|
|
131
|
-
await
|
|
186
|
+
await ensure();
|
|
132
187
|
},
|
|
133
|
-
|
|
134
188
|
release(): void {
|
|
135
189
|
refCount = Math.max(0, refCount - 1);
|
|
136
190
|
if (refCount === 0) startIdle();
|
|
@@ -30,6 +30,7 @@ export const NAMESPACES: Namespace[] = [
|
|
|
30
30
|
'terminal',
|
|
31
31
|
'task',
|
|
32
32
|
'proxy',
|
|
33
|
+
'uglybot',
|
|
33
34
|
];
|
|
34
35
|
|
|
35
36
|
// Per-namespace fallback profile when no explicit channel override applies.
|
|
@@ -60,6 +61,7 @@ const NS_DEFAULT: Record<Namespace, [Fallback, Fallback, Fallback, Fallback]> =
|
|
|
60
61
|
terminal: ['throw', 'throw', 'native', 'throw'], // desktop-only (Studio PTY terminal)
|
|
61
62
|
task: ['native', 'native', 'native', 'throw'], // desktop-cap; mobile/web tunnel via Ugly Proxy
|
|
62
63
|
proxy: ['native', 'native', 'native', 'throw'], // MSK lives in native secure storage
|
|
64
|
+
uglybot: ['native', 'native', 'native', 'throw'], // shells share one ugly.bot socket; web uses callAI's direct fetch (facade never invoked on web)
|
|
63
65
|
};
|
|
64
66
|
|
|
65
67
|
const PLATFORM_INDEX: Record<Platform, 0 | 1 | 2 | 3> = { ios: 0, android: 1, desktop: 2, web: 3 };
|
|
@@ -143,6 +145,10 @@ const CHANNELS: Channel[] = [
|
|
|
143
145
|
'proxy.verifyFingerprint',
|
|
144
146
|
'proxy.pickHost',
|
|
145
147
|
'proxy.setStatus',
|
|
148
|
+
'uglybot.request',
|
|
149
|
+
'uglybot.openStream',
|
|
150
|
+
'uglybot.sendStream',
|
|
151
|
+
'uglybot.closeStream',
|
|
146
152
|
];
|
|
147
153
|
|
|
148
154
|
function buildChannelFallback(): Record<Channel, Record<Platform, Fallback>> {
|
package/src/native/contract.ts
CHANGED
|
@@ -432,6 +432,22 @@ export interface NativeContract {
|
|
|
432
432
|
payload: { state: 'none' | 'connecting' | 'connected' | 'reconnecting' | 'offline'; hostLabel?: string };
|
|
433
433
|
result: void;
|
|
434
434
|
};
|
|
435
|
+
// uglybot (consolidated ugly.bot proxy): a hosted page's ugly.bot calls ride the
|
|
436
|
+
// native host's ONE shared, authenticated ugly.bot socket instead of each page
|
|
437
|
+
// opening its own connection. `uglybot.request` forwards a legacy `/request` op
|
|
438
|
+
// (textGen/jsonGen/imageGen/…) as a framework `call`; the host injects the page's
|
|
439
|
+
// REAL origin (never trusts a page-supplied one) so ugly.bot meters per app.
|
|
440
|
+
// Outside a shell, `callAI.ts` falls back to the direct `fetch('/request')`.
|
|
441
|
+
'uglybot.request': { payload: { op: string; input: unknown }; result: unknown };
|
|
442
|
+
// Realtime STT/TTS over the shared socket. `openStream` allocates a host-side
|
|
443
|
+
// connection id; `sendStream` forwards a `{type,data}` frame (the host
|
|
444
|
+
// namespaces `data.streamId` per connection so concurrent tabs don't collide);
|
|
445
|
+
// server frames arrive as dynamic `uglybot.stream:<id>` events carrying the
|
|
446
|
+
// original `{type, data}`. `closeStream` releases it. (createUglyBotSocket
|
|
447
|
+
// falls back to a direct ugly.bot WebSocket outside a shell.)
|
|
448
|
+
'uglybot.openStream': { payload: void; result: { id: string } };
|
|
449
|
+
'uglybot.sendStream': { payload: { id: string; type: string; data: unknown }; result: void };
|
|
450
|
+
'uglybot.closeStream': { payload: { id: string }; result: void };
|
|
435
451
|
};
|
|
436
452
|
events: {
|
|
437
453
|
'gps.position': {
|
|
@@ -485,7 +501,8 @@ export type Namespace =
|
|
|
485
501
|
| 'mcp'
|
|
486
502
|
| 'terminal'
|
|
487
503
|
| 'task'
|
|
488
|
-
| 'proxy'
|
|
504
|
+
| 'proxy'
|
|
505
|
+
| 'uglybot';
|
|
489
506
|
|
|
490
507
|
export function namespaceOf(channel: Channel): Namespace {
|
|
491
508
|
return channel.split('.')[0] as Namespace;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Raw (untyped-channel) transport — the same `invoke`/`subscribe` every host implements. */
|
|
2
|
+
type Invoke = (channel: string, payload: unknown) => Promise<unknown>;
|
|
3
|
+
type Subscribe = (event: string, cb: (data: unknown) => void) => () => void;
|
|
4
|
+
|
|
5
|
+
/** A multiplexed realtime stream (STT/TTS) over the host's shared ugly.bot socket. */
|
|
6
|
+
export interface UglyBotStream {
|
|
7
|
+
/** Send a `{type,data}` frame (e.g. `tts:start`, `stt:audio`). */
|
|
8
|
+
send(type: string, data: unknown): void;
|
|
9
|
+
/** Receive server frames; `cb` gets each `{type, data}`. */
|
|
10
|
+
onMessage(cb: (type: string, data: unknown) => void): void;
|
|
11
|
+
/** Release the stream (the host stops routing + may close the socket). */
|
|
12
|
+
close(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface UglyBotFacade {
|
|
16
|
+
/**
|
|
17
|
+
* Forward a legacy ugly.bot `/request` op (textGen / jsonGen / imageGen / …)
|
|
18
|
+
* over the native host's ONE shared, authenticated ugly.bot socket. The host
|
|
19
|
+
* injects the page's real origin for per-app metering; the page never supplies
|
|
20
|
+
* it. Only reached inside a native shell — `callAI.ts` uses a direct fetch on
|
|
21
|
+
* plain web. Returns the op's raw result (callers cast).
|
|
22
|
+
*/
|
|
23
|
+
request(op: string, input: unknown): Promise<unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Open a realtime STT/TTS stream over the shared socket. `createUglyBotSocket`
|
|
26
|
+
* uses this inside a shell instead of opening a per-page ugly.bot WebSocket.
|
|
27
|
+
*/
|
|
28
|
+
openStream(): Promise<UglyBotStream>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Build a `uglybot` facade over the uniform UglyNative protocol:
|
|
33
|
+
* request → invoke('uglybot.request', { op, input })
|
|
34
|
+
* stream → invoke('uglybot.openStream') → { id }; frames ride
|
|
35
|
+
* `uglybot.stream:<id>` events; send → invoke('uglybot.sendStream').
|
|
36
|
+
*/
|
|
37
|
+
export function createUglyBotFacade(invoke: Invoke, subscribe: Subscribe): UglyBotFacade {
|
|
38
|
+
return {
|
|
39
|
+
request: (op, input) => invoke('uglybot.request', { op, input }),
|
|
40
|
+
openStream: async () => {
|
|
41
|
+
const { id } = (await invoke('uglybot.openStream', undefined)) as { id: string };
|
|
42
|
+
const cbs: ((type: string, data: unknown) => void)[] = [];
|
|
43
|
+
const unsub = subscribe(`uglybot.stream:${id}`, (frame) => {
|
|
44
|
+
const f = frame as { type: string; data: unknown };
|
|
45
|
+
for (const cb of cbs) cb(f.type, f.data);
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
send: (type, data) => void invoke('uglybot.sendStream', { id, type, data }),
|
|
49
|
+
onMessage: (cb) => cbs.push(cb),
|
|
50
|
+
close: async () => {
|
|
51
|
+
unsub();
|
|
52
|
+
await invoke('uglybot.closeStream', { id });
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
package/src/native/wrapper.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { createBrowseFacade } from './facades/browse.js';
|
|
|
10
10
|
import { createMcpFacade } from './facades/mcp.js';
|
|
11
11
|
import { createTerminalFacade } from './facades/terminal.js';
|
|
12
12
|
import { createTaskFacade } from './facades/task.js';
|
|
13
|
+
import { createUglyBotFacade } from './facades/uglybot.js';
|
|
13
14
|
|
|
14
15
|
const n = () => installUglyNative();
|
|
15
16
|
const inv = <C extends Channel>(c: C, p: PayloadOf<C>): Promise<ResultOf<C>> =>
|
|
@@ -164,6 +165,10 @@ export const native = {
|
|
|
164
165
|
(ev, cb) => n().subscribe(ev as never, cb as never),
|
|
165
166
|
() => permissions.ensure('task'),
|
|
166
167
|
),
|
|
168
|
+
uglybot: createUglyBotFacade(
|
|
169
|
+
(ch, p) => n().invoke(ch as never, p as never),
|
|
170
|
+
(ev, cb) => n().subscribe(ev as never, cb as never),
|
|
171
|
+
),
|
|
167
172
|
secrets: {
|
|
168
173
|
get: async (key: string) => {
|
|
169
174
|
await permissions.ensure('secrets');
|