@aixnn/aixautots 0.5.2 → 0.5.3
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/README.md +23 -40
- package/dist/{chunk-MRQ7VJFJ.js → chunk-BSHHYM72.js} +2 -2
- package/dist/{chunk-PUPVZRKZ.js → chunk-IJVNII5N.js} +1 -1
- package/dist/{chunk-EHF2WQUR.js → chunk-O34SNDQB.js} +4 -4
- package/dist/{chunk-GKEPMDXO.js → chunk-OXIM6EYO.js} +1 -1
- package/dist/{chunk-AIUOLJZA.js → chunk-SVK2AY3J.js} +2 -2
- package/dist/{chunk-PCYERBNZ.js → chunk-TATL3HTE.js} +11 -64
- package/dist/{chunk-SUKFJ73W.js → chunk-UINEPEIE.js} +2 -2
- package/dist/{chunk-H7MHGYF3.js → chunk-V4MXFPDX.js} +3 -3
- package/dist/{chunk-6YUAACW6.js → chunk-XNKC6HU3.js} +3 -3
- package/dist/{chunk-536WVCTB.js → chunk-YOT7HZBU.js} +5 -5
- package/dist/core/index.js +4 -4
- package/dist/device-session-W7I3WQXF.js +2 -0
- package/dist/react/index.js +6 -6
- package/dist/ui/billing.js +6 -6
- package/dist/ui/device-create.js +7 -7
- package/dist/ui/device-mirror.js +7 -7
- package/dist/ui/devices.js +9 -9
- package/dist/ui/editor.js +7 -7
- package/dist/ui/index.js +20 -31
- package/dist/ui/inspector.js +6 -6
- package/dist/ui/market.js +6 -6
- package/dist/ui/script-studio.js +7 -7
- package/dist/ui/scripts.js +6 -6
- package/dist/ui/tasks.js +9 -9
- package/package.json +1 -2
- package/styles.css +1 -1
- package/tailwind-preset.cjs +3 -3
- package/dist/ScriptStudio-DaCqOF5H.d.ts +0 -43
- package/dist/agent-runner-V60B0is1.d.ts +0 -57
- package/dist/automation-queue-8HqRJV_K.d.ts +0 -72
- package/dist/config-Bm1hmXhD.d.ts +0 -1380
- package/dist/coords-LPR_MPyp.d.ts +0 -22
- package/dist/core/index.d.ts +0 -135
- package/dist/device-normalize-BaThgnH7.d.ts +0 -43
- package/dist/device-session-KZVGLPOI.js +0 -2
- package/dist/i18n/index.d.ts +0 -30
- package/dist/mirror-session-C_1vFkRV.d.ts +0 -108
- package/dist/nav/index.d.ts +0 -19
- package/dist/react/index.d.ts +0 -487
- package/dist/script-debugger-Cw5jVRoz.d.ts +0 -114
- package/dist/task-agent-runner-eD9-SCJz.d.ts +0 -160
- package/dist/types-C2WXVcam.d.ts +0 -1005
- package/dist/ui/billing.d.ts +0 -48
- package/dist/ui/device-create.d.ts +0 -55
- package/dist/ui/device-mirror.d.ts +0 -42
- package/dist/ui/devices.d.ts +0 -223
- package/dist/ui/editor.d.ts +0 -64
- package/dist/ui/index.d.ts +0 -104
- package/dist/ui/inspector.d.ts +0 -5
- package/dist/ui/market.d.ts +0 -10
- package/dist/ui/mirror.d.ts +0 -52
- package/dist/ui/primitives/index.d.ts +0 -101
- package/dist/ui/script-studio.d.ts +0 -85
- package/dist/ui/scripts.d.ts +0 -18
- package/dist/ui/tasks.d.ts +0 -10
- package/dist/use-script-run-Diay7ibY.d.ts +0 -50
package/README.md
CHANGED
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
发布包已迁移到 npm 用户 `aixnn` 的 scope,完整包名为 `@aixnn/aixautots`。本仓库目录仍为 `aixautots/`,各子包入口保持不变,例如 `@aixnn/aixautots/core`。
|
|
4
|
-
|
|
5
|
-
```sh
|
|
6
|
-
npm install @aixnn/aixautots
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
发布(在 `aixautots/` 目录,使用有权限的 npm 账号):
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
npm run typecheck
|
|
13
|
-
npm test
|
|
14
|
-
npm run build
|
|
15
|
-
python3 ../scripts/npm-with-access-key.py publish --access public
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
发布脚本读取 `~/.aixenv` 的 `NPM_ACCESS_KEY`,通过临时 npm 配置使用令牌,结束后删除临时配置,不修改全局登录配置。令牌需拥有 `@aixnn/aixautots` 的发布权限;第三方项目也可使用自身 npm 凭据执行 `npm publish --access public`。若令牌未允许绕过双重验证,npm 仍可能要求一次性验证码。
|
|
1
|
+
# aixautots
|
|
19
2
|
|
|
20
3
|
aixautobot 的 TypeScript 客户端 SDK。core/react 是 headless 的数据/传输/鉴权层;ui 既提供细粒度
|
|
21
4
|
部件,也提供**开箱即用的成品页面**(设备/任务/市场/脚本/编辑器/检查器)+ 一套可换肤主题,
|
|
@@ -25,47 +8,47 @@ aixautobot 的 TypeScript 客户端 SDK。core/react 是 headless 的数据/传
|
|
|
25
8
|
|
|
26
9
|
| 子包 | 职责 |
|
|
27
10
|
|---|---|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
11
|
+
| `aixautots/core` | 资源 REST 客户端(`AixClient`)+ 会话层(设备通道 / Flow / 镜像)+ 类型 + 错误 |
|
|
12
|
+
| `aixautots/react` | 上述能力的 React hooks(`AixProvider` + 资源/会话 hooks) |
|
|
13
|
+
| `aixautots/ui` | 设备向细粒度部件(`MirrorView`/`ControlBar`/`ScriptEditor`/`DebugConsole`/`ScriptPanel`) |
|
|
14
|
+
| `aixautots/ui/primitives` | 基础件(`Button`/`Input`/`Select`/`Badge`/`Dialog`/`Popover`) |
|
|
15
|
+
| `aixautots/ui/{devices,tasks,market,scripts,editor,inspector}` | 成品页面组件 |
|
|
16
|
+
| `aixautots/nav` | 路由无关导航注入(`AixNavProvider`/`useAixNav`) |
|
|
17
|
+
| `aixautots/i18n` | 内置 i18n(`AixI18nProvider`/`useAixT`,en/zh,无 i18next 依赖) |
|
|
18
|
+
| `aixautots/tailwind-preset` · `aixautots/styles.css` | Tailwind 预设 + 主题 token |
|
|
36
19
|
|
|
37
20
|
```bash
|
|
38
|
-
npm i
|
|
21
|
+
npm i aixautots # peer: react(react 子包用);ui 子包另需 @uiw/react-codemirror
|
|
39
22
|
```
|
|
40
23
|
|
|
41
24
|
## 接入(三步)
|
|
42
25
|
|
|
43
|
-
用到
|
|
26
|
+
用到 `aixautots/ui` 的成品页面/部件时,按以下三步接入样式与运行时上下文:
|
|
44
27
|
|
|
45
28
|
**1) 样式** —— Tailwind 预设 + 主题 token + content 扫描:
|
|
46
29
|
|
|
47
30
|
```js
|
|
48
31
|
// tailwind.config.js
|
|
49
32
|
module.exports = {
|
|
50
|
-
presets: [require('
|
|
33
|
+
presets: [require('aixautots/tailwind-preset')],
|
|
51
34
|
content: [
|
|
52
35
|
'./src/**/*.{ts,tsx}',
|
|
53
|
-
'./node_modules
|
|
36
|
+
'./node_modules/aixautots/dist/**/*.js', // 关键:否则 aixautots 组件的类名不会被生成
|
|
54
37
|
],
|
|
55
38
|
}
|
|
56
39
|
```
|
|
57
40
|
|
|
58
41
|
```css
|
|
59
42
|
/* 入口 CSS */
|
|
60
|
-
@import "
|
|
43
|
+
@import "aixautots/styles.css"; /* :root 浅色 + .dark 深色 token,可覆盖换肤 */
|
|
61
44
|
```
|
|
62
45
|
|
|
63
46
|
**2) Provider** —— 在 `AixProvider` 内注入导航与语言:
|
|
64
47
|
|
|
65
48
|
```tsx
|
|
66
|
-
import { AixProvider } from '
|
|
67
|
-
import { AixNavProvider } from '
|
|
68
|
-
import { AixI18nProvider } from '
|
|
49
|
+
import { AixProvider } from 'aixautots/react'
|
|
50
|
+
import { AixNavProvider } from 'aixautots/nav'
|
|
51
|
+
import { AixI18nProvider } from 'aixautots/i18n'
|
|
69
52
|
import { useNavigate } from 'react-router-dom' // 任意路由库都行
|
|
70
53
|
|
|
71
54
|
function Providers({ children }) {
|
|
@@ -83,8 +66,8 @@ function Providers({ children }) {
|
|
|
83
66
|
**3) 用页面** —— 直接挂成品页面,路由参数以 props 传入:
|
|
84
67
|
|
|
85
68
|
```tsx
|
|
86
|
-
import { DevicesPage } from '
|
|
87
|
-
import { ScriptEditorPage } from '
|
|
69
|
+
import { DevicesPage } from 'aixautots/ui/devices'
|
|
70
|
+
import { ScriptEditorPage } from 'aixautots/ui/editor'
|
|
88
71
|
|
|
89
72
|
<DevicesPage />
|
|
90
73
|
<ScriptEditorPage scriptId={params.id} />
|
|
@@ -93,7 +76,7 @@ import { ScriptEditorPage } from '@aixnn/aixautots/ui/editor'
|
|
|
93
76
|
## Quickstart
|
|
94
77
|
|
|
95
78
|
```ts
|
|
96
|
-
import { AixClient } from '
|
|
79
|
+
import { AixClient } from 'aixautots/core'
|
|
97
80
|
|
|
98
81
|
const client = new AixClient({
|
|
99
82
|
baseUrl: 'https://aixautobot.com',
|
|
@@ -107,7 +90,7 @@ const { run_id } = await client.fleet.start({ flow, device_ids: [devices[0].id]
|
|
|
107
90
|
React:
|
|
108
91
|
|
|
109
92
|
```tsx
|
|
110
|
-
import { AixProvider, useDevices } from '
|
|
93
|
+
import { AixProvider, useDevices } from 'aixautots/react'
|
|
111
94
|
|
|
112
95
|
function App() {
|
|
113
96
|
return (
|
|
@@ -153,7 +136,7 @@ auth: [
|
|
|
153
136
|
第三方前端(浏览器不持 project secret):后端铸 user JWT,前端用 `createCachedUserCredential` 自动缓存/刷新(按 `expiresIn` 或 JWT `exp`,并发去重):
|
|
154
137
|
|
|
155
138
|
```ts
|
|
156
|
-
import { createCachedUserCredential } from '
|
|
139
|
+
import { createCachedUserCredential } from 'aixautots/core'
|
|
157
140
|
|
|
158
141
|
const auth = createCachedUserCredential({
|
|
159
142
|
mint: () => fetch('/mint-token').then((r) => r.json()), // 你的后端 → { token, expiresIn? } 或 token 字符串
|
|
@@ -221,7 +204,7 @@ React:`useLlm()` → `{ generate, refine, explain, test }`(参考实现见 f
|
|
|
221
204
|
## 镜像
|
|
222
205
|
|
|
223
206
|
```ts
|
|
224
|
-
import { MirrorSession } from '
|
|
207
|
+
import { MirrorSession } from 'aixautots/core'
|
|
225
208
|
const s = await MirrorSession.join(cfg, deviceId)
|
|
226
209
|
s.onStream((stream) => { videoEl.srcObject = stream })
|
|
227
210
|
s.sendInput({ t: 'tap', x, y }) // 归一坐标 [0,1]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn, Select, Dialog, Button, Input, Badge } from './chunk-EVHTAXQG.js';
|
|
2
|
-
import { useNodes, useDevices } from './chunk-
|
|
3
|
-
import { useClient } from './chunk-
|
|
2
|
+
import { useNodes, useDevices } from './chunk-O34SNDQB.js';
|
|
3
|
+
import { useClient } from './chunk-UINEPEIE.js';
|
|
4
4
|
import { useMemo, useEffect, useState, useCallback } from 'react';
|
|
5
5
|
import { Server, RefreshCw, Smartphone, Usb, Wifi, Info } from 'lucide-react';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { joinUrl, AixAuthError, AixError, AixClient, resolveConfig, DevicesApi, RestClient, ReconnectingSocket } from './chunk-
|
|
1
|
+
import { joinUrl, AixAuthError, AixError, AixClient, resolveConfig, DevicesApi, RestClient, ReconnectingSocket } from './chunk-TATL3HTE.js';
|
|
2
2
|
|
|
3
3
|
// src/core/webrtc-rest.ts
|
|
4
4
|
async function getIceServers(cfg) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { MirrorSession, normalizeDevices, submitBatch } from './chunk-
|
|
2
|
-
import { useDevice, useAixConfig, useClient, useQuery } from './chunk-
|
|
3
|
-
import { FlowRun } from './chunk-
|
|
4
|
-
import { isFleetRunTerminal, resolveConfig, joinUrl, AixAuthError, AixError, detectEnvOs, EnvRun, summarizeEnv, ReconnectingSocket, executionWsTicketUrl } from './chunk-
|
|
1
|
+
import { MirrorSession, normalizeDevices, submitBatch } from './chunk-V4MXFPDX.js';
|
|
2
|
+
import { useDevice, useAixConfig, useClient, useQuery } from './chunk-UINEPEIE.js';
|
|
3
|
+
import { FlowRun } from './chunk-OXIM6EYO.js';
|
|
4
|
+
import { isFleetRunTerminal, resolveConfig, joinUrl, AixAuthError, AixError, detectEnvOs, EnvRun, summarizeEnv, ReconnectingSocket, executionWsTicketUrl } from './chunk-TATL3HTE.js';
|
|
5
5
|
import { createContext, useState, useRef, useEffect, useCallback, useMemo, createElement, useContext } from 'react';
|
|
6
6
|
|
|
7
7
|
function useCommands(deviceId) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { joinUrl, AixAuthError, AixLocked, AixError, resolveConfig, ReconnectingSocket, AixTimeout, parseIncoming, isRetFrame, errorFromRet, isFridaEventFrame, isScriptletEventFrame, isStatusFrame, executionWsTicketUrl, isExecutionFrame, executionStreamEventsAfter } from './chunk-
|
|
1
|
+
import { joinUrl, AixAuthError, AixLocked, AixError, resolveConfig, ReconnectingSocket, AixTimeout, parseIncoming, isRetFrame, errorFromRet, isFridaEventFrame, isScriptletEventFrame, isStatusFrame, executionWsTicketUrl, isExecutionFrame, executionStreamEventsAfter } from './chunk-TATL3HTE.js';
|
|
2
2
|
|
|
3
3
|
// src/core/ws-access.ts
|
|
4
4
|
async function mintDeviceAccess(cfg, deviceId) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MirrorView, ControlBar } from './chunk-CVV7FOMQ.js';
|
|
2
|
-
import { useMirror, useDevices } from './chunk-
|
|
3
|
-
import { useClient } from './chunk-
|
|
2
|
+
import { useMirror, useDevices } from './chunk-O34SNDQB.js';
|
|
3
|
+
import { useClient } from './chunk-UINEPEIE.js';
|
|
4
4
|
import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
|
|
5
5
|
import { RotateCw, Minimize2, Maximize2, X } from 'lucide-react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -286,9 +286,7 @@ var ReconnectingSocket = class {
|
|
|
286
286
|
this.attempt++;
|
|
287
287
|
this.reconnectTimer = setTimeout(() => {
|
|
288
288
|
this.reconnectTimer = null;
|
|
289
|
-
void this.connect()
|
|
290
|
-
if (!this.closed) this.scheduleReconnect();
|
|
291
|
-
});
|
|
289
|
+
void this.connect();
|
|
292
290
|
}, exp + jitter);
|
|
293
291
|
}
|
|
294
292
|
send(text) {
|
|
@@ -327,8 +325,6 @@ var EnvRun = class _EnvRun {
|
|
|
327
325
|
this.doneFired = false;
|
|
328
326
|
this.last = null;
|
|
329
327
|
this.cursor = 0;
|
|
330
|
-
this.pollTimer = null;
|
|
331
|
-
this.closed = false;
|
|
332
328
|
// `start()` opens the socket before callers can register listeners. Keep
|
|
333
329
|
// frames received in that small window so the first Started/Step events do
|
|
334
330
|
// not disappear and leave progress UIs stuck at 0%.
|
|
@@ -353,26 +349,17 @@ var EnvRun = class _EnvRun {
|
|
|
353
349
|
let run = null;
|
|
354
350
|
let cursor = 0;
|
|
355
351
|
let processing = Promise.resolve();
|
|
356
|
-
|
|
357
|
-
if (frame.run_id !== data.req_id) return;
|
|
358
|
-
if (typeof frame.cursor !== "number") {
|
|
359
|
-
run?.onMessage(JSON.stringify(frame.event));
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
if (frame.cursor <= cursor) return;
|
|
363
|
-
cursor = frame.cursor;
|
|
364
|
-
run?.onMessage(JSON.stringify({ cursor: frame.cursor, ...frame.event }));
|
|
365
|
-
};
|
|
352
|
+
let processFrame;
|
|
366
353
|
const fetchCatchup = async (after) => {
|
|
367
354
|
let nextAfter = after;
|
|
368
355
|
do {
|
|
369
356
|
const page = await executionStreamEventsAfter(resolved, data.req_id, nextAfter);
|
|
370
|
-
for (const event of page.events)
|
|
357
|
+
for (const event of page.events) await processFrame(event);
|
|
371
358
|
nextAfter = page.next_cursor ?? cursor;
|
|
372
359
|
if (!page.has_more) break;
|
|
373
360
|
} while (true);
|
|
374
361
|
};
|
|
375
|
-
|
|
362
|
+
processFrame = async (frame) => {
|
|
376
363
|
if (frame.run_id !== data.req_id) return;
|
|
377
364
|
if (typeof frame.cursor !== "number") {
|
|
378
365
|
run?.onMessage(JSON.stringify(frame.event));
|
|
@@ -381,8 +368,10 @@ var EnvRun = class _EnvRun {
|
|
|
381
368
|
if (frame.cursor <= cursor) return;
|
|
382
369
|
if (frame.cursor > cursor + 1) {
|
|
383
370
|
await fetchCatchup(cursor);
|
|
371
|
+
return processFrame(frame);
|
|
384
372
|
}
|
|
385
|
-
|
|
373
|
+
cursor = frame.cursor;
|
|
374
|
+
run?.onMessage(JSON.stringify({ cursor: frame.cursor, ...frame.event }));
|
|
386
375
|
};
|
|
387
376
|
const socket = new ReconnectingSocket({
|
|
388
377
|
// Fetch a new one-time ticket after every stream reconnect and resume
|
|
@@ -404,34 +393,7 @@ var EnvRun = class _EnvRun {
|
|
|
404
393
|
}
|
|
405
394
|
});
|
|
406
395
|
run = new _EnvRun(data.req_id, data.stream ?? `/ws/execution/${data.req_id}`, socket);
|
|
407
|
-
|
|
408
|
-
let failures = 0;
|
|
409
|
-
const poll = async () => {
|
|
410
|
-
if (currentRun.closed) return;
|
|
411
|
-
try {
|
|
412
|
-
await (processing = processing.catch(() => void 0).then(() => fetchCatchup(cursor)));
|
|
413
|
-
failures = 0;
|
|
414
|
-
} catch (error) {
|
|
415
|
-
if (++failures >= 3 && !currentRun.closed) {
|
|
416
|
-
currentRun.onMessage(JSON.stringify({
|
|
417
|
-
kind: "finished",
|
|
418
|
-
ok: false,
|
|
419
|
-
error: `Environment progress connection failed: ${String(error)}`,
|
|
420
|
-
hint: "The node may still be installing. Check its status before starting setup again."
|
|
421
|
-
}));
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
if (!currentRun.closed) currentRun.pollTimer = setTimeout(() => {
|
|
425
|
-
void poll();
|
|
426
|
-
}, 3e3);
|
|
427
|
-
};
|
|
428
|
-
currentRun.pollTimer = setTimeout(() => {
|
|
429
|
-
void poll();
|
|
430
|
-
}, 3e3);
|
|
431
|
-
try {
|
|
432
|
-
await socket.start();
|
|
433
|
-
} catch {
|
|
434
|
-
}
|
|
396
|
+
await socket.start();
|
|
435
397
|
return run;
|
|
436
398
|
}
|
|
437
399
|
on(event, cb) {
|
|
@@ -473,15 +435,10 @@ var EnvRun = class _EnvRun {
|
|
|
473
435
|
this.doneFired = true;
|
|
474
436
|
this.last = ev;
|
|
475
437
|
for (const cb of this.doneListeners) cb(this.last);
|
|
476
|
-
this.close();
|
|
438
|
+
this.socket.close();
|
|
477
439
|
}
|
|
478
440
|
}
|
|
479
441
|
close() {
|
|
480
|
-
this.closed = true;
|
|
481
|
-
if (this.pollTimer !== null) {
|
|
482
|
-
clearTimeout(this.pollTimer);
|
|
483
|
-
this.pollTimer = null;
|
|
484
|
-
}
|
|
485
442
|
this.socket.close();
|
|
486
443
|
}
|
|
487
444
|
};
|
|
@@ -496,17 +453,7 @@ function summarizeEnv(events) {
|
|
|
496
453
|
for (const e of events) {
|
|
497
454
|
if (e.kind === "started") {
|
|
498
455
|
total = e.total;
|
|
499
|
-
e.steps.forEach((s, i) =>
|
|
500
|
-
meta.set(i, s);
|
|
501
|
-
const existing = steps.get(i);
|
|
502
|
-
steps.set(i, existing ? { ...existing, label: s.label } : {
|
|
503
|
-
index: i,
|
|
504
|
-
id: s.id,
|
|
505
|
-
label: s.label,
|
|
506
|
-
state: "pending",
|
|
507
|
-
pct: 0
|
|
508
|
-
});
|
|
509
|
-
});
|
|
456
|
+
e.steps.forEach((s, i) => meta.set(i, s));
|
|
510
457
|
} else if (e.kind === "step") {
|
|
511
458
|
const m = meta.get(e.index);
|
|
512
459
|
steps.set(e.index, {
|
|
@@ -1553,7 +1500,7 @@ var AixClient = class {
|
|
|
1553
1500
|
* 即可,不必回依赖 client 实例)。
|
|
1554
1501
|
*/
|
|
1555
1502
|
async deviceSession(deviceId, opts = {}) {
|
|
1556
|
-
const { DeviceSession } = await import('./device-session-
|
|
1503
|
+
const { DeviceSession } = await import('./device-session-W7I3WQXF.js');
|
|
1557
1504
|
return DeviceSession.open(this.cfg, deviceId, opts);
|
|
1558
1505
|
}
|
|
1559
1506
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DeviceChannel, ScriptDebugger } from './chunk-
|
|
2
|
-
import { resolveConfig, AixClient, EnvRun } from './chunk-
|
|
1
|
+
import { DeviceChannel, ScriptDebugger } from './chunk-OXIM6EYO.js';
|
|
2
|
+
import { resolveConfig, AixClient, EnvRun } from './chunk-TATL3HTE.js';
|
|
3
3
|
import React, { createContext, useContext, useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getIceServers, mintViewerToken } from './chunk-
|
|
2
|
-
import { FlowRun } from './chunk-
|
|
3
|
-
import { resolveConfig, ReconnectingSocket, joinUrl } from './chunk-
|
|
1
|
+
import { getIceServers, mintViewerToken } from './chunk-IJVNII5N.js';
|
|
2
|
+
import { FlowRun } from './chunk-OXIM6EYO.js';
|
|
3
|
+
import { resolveConfig, ReconnectingSocket, joinUrl } from './chunk-TATL3HTE.js';
|
|
4
4
|
|
|
5
5
|
// src/core/automation-queue.ts
|
|
6
6
|
async function submitBatch(cfg, config) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LogConsole } from './chunk-FW23FLAF.js';
|
|
2
2
|
import { cn, Button, Select } from './chunk-EVHTAXQG.js';
|
|
3
|
-
import { useDevices, useScripts, useScriptRun } from './chunk-
|
|
4
|
-
import { variablesToSchema, normalizeDevices, schemaToVariables } from './chunk-
|
|
5
|
-
import { useClient } from './chunk-
|
|
3
|
+
import { useDevices, useScripts, useScriptRun } from './chunk-O34SNDQB.js';
|
|
4
|
+
import { variablesToSchema, normalizeDevices, schemaToVariables } from './chunk-V4MXFPDX.js';
|
|
5
|
+
import { useClient } from './chunk-UINEPEIE.js';
|
|
6
6
|
import { useMemo, useState, useEffect, useRef, useCallback } from 'react';
|
|
7
7
|
import { Trash2, Plus, Play, Pause, Square, ArrowDownToLine, WrapText, ChevronRight, Save, XCircle, CheckCircle2, Loader2, Circle } from 'lucide-react';
|
|
8
8
|
import CodeMirror, { EditorView } from '@uiw/react-codemirror';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useAixT } from './chunk-64Q7BBIQ.js';
|
|
2
2
|
import { LogConsole } from './chunk-FW23FLAF.js';
|
|
3
|
-
import { MirrorSurface, DeviceMirror } from './chunk-
|
|
3
|
+
import { MirrorSurface, DeviceMirror } from './chunk-SVK2AY3J.js';
|
|
4
4
|
import { ControlBar, MirrorView } from './chunk-CVV7FOMQ.js';
|
|
5
|
-
import { createProxyProbeGuard, proxySummaryFromDevice, isProxyApplyStatus, proxyCapabilityReason, proxyProbeExitIp, proxyProbeMessage, DeviceCreate, isProxyProbeUnsupported, isRedactedProxyUrl, isSupportedProxyUrl, redactProxyUrl } from './chunk-
|
|
5
|
+
import { createProxyProbeGuard, proxySummaryFromDevice, isProxyApplyStatus, proxyCapabilityReason, proxyProbeExitIp, proxyProbeMessage, DeviceCreate, isProxyProbeUnsupported, isRedactedProxyUrl, isSupportedProxyUrl, redactProxyUrl } from './chunk-BSHHYM72.js';
|
|
6
6
|
import { cn, Badge, Button, Dialog, Input, Popover, Select, useToast, ToastViewport, Drawer } from './chunk-EVHTAXQG.js';
|
|
7
|
-
import { useDevicesView, useShortcutsView, GROUP_MIRROR_MAX, useGroupMirror, useScripts, useFleetRun, useTaskAgentRun, preflightTaskAgentDevice, createAgentTaskRunner, useNodesView } from './chunk-
|
|
8
|
-
import { DeviceSession, pushFile, pullFile } from './chunk-
|
|
9
|
-
import { useClient } from './chunk-
|
|
7
|
+
import { useDevicesView, useShortcutsView, GROUP_MIRROR_MAX, useGroupMirror, useScripts, useFleetRun, useTaskAgentRun, preflightTaskAgentDevice, createAgentTaskRunner, useNodesView } from './chunk-O34SNDQB.js';
|
|
8
|
+
import { DeviceSession, pushFile, pullFile } from './chunk-IJVNII5N.js';
|
|
9
|
+
import { useClient } from './chunk-UINEPEIE.js';
|
|
10
10
|
import { useState, useRef, useCallback, useEffect, useMemo, useLayoutEffect } from 'react';
|
|
11
11
|
import * as Icons from 'lucide-react';
|
|
12
12
|
import { Monitor, Eye, Play, Power, RefreshCw, Server, Pencil, Trash2, FolderPlus, Upload, ArrowUp, Folder, File, Download, Dices, ShieldCheck, AlertTriangle, X, Crown, RotateCcw, Square, Plus, Search, LayoutGrid, List, ChevronLeft, Link, Link2Off, Terminal as Terminal$1, PackagePlus, MonitorPlay, ChevronRight, ChevronDown, PlusSquare, Maximize2, Info, ChevronsLeft, ChevronsRight, Check, Copy, Tablet, Smartphone } from 'lucide-react';
|
package/dist/core/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { AutomationQueue, MirrorSession, SCHEMA_KEY, SCRCPY_PROFILES, normalizeDevices, qualityMessage, schemaDefaults, schemaToVariables, submitBatch, targetParam, variablesToSchema } from '../chunk-
|
|
2
|
-
export { DeviceSession, getIceServers, mintViewerToken, pullFile, pushFile } from '../chunk-
|
|
3
|
-
export { DeviceChannel, DeviceTunnel, FlowRun, ScriptDebugger, mintDeviceAccess, wsUrlFromAccess } from '../chunk-
|
|
4
|
-
export { AdminApi, AixAuthError, AixClient, AixDeviceOffline, AixError, AixLocked, AixProtocolError, AixTimeout, ApiTokensApi, AuthApi, BillingApi, ClustersApi, DevicesApi, EnvRun, FleetApi, ImagesApi, LlmApi, LocalNodeController, LocatorsApi, NodesApi, ProjectsApi, ReconnectingSocket, RestClient, ScriptsApi, ShortcutsApi, TasksApi, UsersApi, WebhooksApi, authHeader, buildAuthProvider, createCachedUserCredential, createClient, detectEnvOs, envBlocker, errorFromRet, executionStreamEventsAfter, executionWsTicketUrl, executionWsUrl, getLocale, isEnvEventFrame, isExecutionFrame, isFleetRunTerminal, isFridaEventFrame, isRetFrame, isScriptletEventFrame, isStatusFrame, joinUrl, parseIncoming, resolveConfig, restClient, runEnvToFinish, setLocale, summarizeEnv, t } from '../chunk-
|
|
1
|
+
export { AutomationQueue, MirrorSession, SCHEMA_KEY, SCRCPY_PROFILES, normalizeDevices, qualityMessage, schemaDefaults, schemaToVariables, submitBatch, targetParam, variablesToSchema } from '../chunk-V4MXFPDX.js';
|
|
2
|
+
export { DeviceSession, getIceServers, mintViewerToken, pullFile, pushFile } from '../chunk-IJVNII5N.js';
|
|
3
|
+
export { DeviceChannel, DeviceTunnel, FlowRun, ScriptDebugger, mintDeviceAccess, wsUrlFromAccess } from '../chunk-OXIM6EYO.js';
|
|
4
|
+
export { AdminApi, AixAuthError, AixClient, AixDeviceOffline, AixError, AixLocked, AixProtocolError, AixTimeout, ApiTokensApi, AuthApi, BillingApi, ClustersApi, DevicesApi, EnvRun, FleetApi, ImagesApi, LlmApi, LocalNodeController, LocatorsApi, NodesApi, ProjectsApi, ReconnectingSocket, RestClient, ScriptsApi, ShortcutsApi, TasksApi, UsersApi, WebhooksApi, authHeader, buildAuthProvider, createCachedUserCredential, createClient, detectEnvOs, envBlocker, errorFromRet, executionStreamEventsAfter, executionWsTicketUrl, executionWsUrl, getLocale, isEnvEventFrame, isExecutionFrame, isFleetRunTerminal, isFridaEventFrame, isRetFrame, isScriptletEventFrame, isStatusFrame, joinUrl, parseIncoming, resolveConfig, restClient, runEnvToFinish, setLocale, summarizeEnv, t } from '../chunk-TATL3HTE.js';
|
|
5
5
|
export { classifyDrag, mapKey, toDevicePoint } from '../chunk-NWFYTFMI.js';
|
package/dist/react/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { DevicesProvider, GROUP_MIRROR_MAX, InspectorProvider, NodesProvider, ShortcutsProvider, mapDevice, preflightTaskAgentDevice, useAdmin, useApiTokens, useAuth, useAutomationQueue, useBilling, useClusters, useCommands, useDeviceActions, useDevices, useDevicesView, useEnvGate, useFleetRun, useFlowRun, useGroupMirror, useImages, useInspector, useInspectorView, useLlm, useLocators, useMirror, useNodes, useNodesView, useProjects, useScriptRun, useScripts, useShortcutsView, useTaskAgentRun, useTaskStatus, useTasks, useWebhooks } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
export { AixProvider, useAixConfig, useClient, useDevice, useEnvRun, useQuery, useScript } from '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { DevicesProvider, GROUP_MIRROR_MAX, InspectorProvider, NodesProvider, ShortcutsProvider, mapDevice, preflightTaskAgentDevice, useAdmin, useApiTokens, useAuth, useAutomationQueue, useBilling, useClusters, useCommands, useDeviceActions, useDevices, useDevicesView, useEnvGate, useFleetRun, useFlowRun, useGroupMirror, useImages, useInspector, useInspectorView, useLlm, useLocators, useMirror, useNodes, useNodesView, useProjects, useScriptRun, useScripts, useShortcutsView, useTaskAgentRun, useTaskStatus, useTasks, useWebhooks } from '../chunk-O34SNDQB.js';
|
|
2
|
+
import '../chunk-V4MXFPDX.js';
|
|
3
|
+
import '../chunk-IJVNII5N.js';
|
|
4
|
+
export { AixProvider, useAixConfig, useClient, useDevice, useEnvRun, useQuery, useScript } from '../chunk-UINEPEIE.js';
|
|
5
|
+
import '../chunk-OXIM6EYO.js';
|
|
6
|
+
import '../chunk-TATL3HTE.js';
|
|
7
7
|
import '../chunk-NWFYTFMI.js';
|
package/dist/ui/billing.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useAixT } from '../chunk-64Q7BBIQ.js';
|
|
2
2
|
import { cn, Button, Badge, Input } from '../chunk-EVHTAXQG.js';
|
|
3
|
-
import { useBilling } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import { useClient } from '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
3
|
+
import { useBilling } from '../chunk-O34SNDQB.js';
|
|
4
|
+
import '../chunk-V4MXFPDX.js';
|
|
5
|
+
import '../chunk-IJVNII5N.js';
|
|
6
|
+
import { useClient } from '../chunk-UINEPEIE.js';
|
|
7
|
+
import '../chunk-OXIM6EYO.js';
|
|
8
|
+
import '../chunk-TATL3HTE.js';
|
|
9
9
|
import '../chunk-NWFYTFMI.js';
|
|
10
10
|
import { useState, useEffect } from 'react';
|
|
11
11
|
import { SlidersHorizontal, Server, CalendarClock, Smartphone, ArrowUpCircle, ArrowDownCircle, HeadphonesIcon, Wallet, X, RefreshCw } from 'lucide-react';
|
package/dist/ui/device-create.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { AddWirelessDeviceDialog, DeviceCreate, NodePicker, ProxySpoofStep, RealDiscoverStep, VirtualSpecStep } from '../chunk-
|
|
1
|
+
export { AddWirelessDeviceDialog, DeviceCreate, NodePicker, ProxySpoofStep, RealDiscoverStep, VirtualSpecStep } from '../chunk-BSHHYM72.js';
|
|
2
2
|
import '../chunk-EVHTAXQG.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-O34SNDQB.js';
|
|
4
|
+
import '../chunk-V4MXFPDX.js';
|
|
5
|
+
import '../chunk-IJVNII5N.js';
|
|
6
|
+
import '../chunk-UINEPEIE.js';
|
|
7
|
+
import '../chunk-OXIM6EYO.js';
|
|
8
|
+
import '../chunk-TATL3HTE.js';
|
|
9
9
|
import '../chunk-NWFYTFMI.js';
|
package/dist/ui/device-mirror.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { DeviceBootSplash, DeviceMirror, MirrorSurface } from '../chunk-
|
|
1
|
+
export { DeviceBootSplash, DeviceMirror, MirrorSurface } from '../chunk-SVK2AY3J.js';
|
|
2
2
|
import '../chunk-OEZFYKL6.js';
|
|
3
3
|
import '../chunk-CVV7FOMQ.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-O34SNDQB.js';
|
|
5
|
+
import '../chunk-V4MXFPDX.js';
|
|
6
|
+
import '../chunk-IJVNII5N.js';
|
|
7
|
+
import '../chunk-UINEPEIE.js';
|
|
8
|
+
import '../chunk-OXIM6EYO.js';
|
|
9
|
+
import '../chunk-TATL3HTE.js';
|
|
10
10
|
import '../chunk-NWFYTFMI.js';
|
package/dist/ui/devices.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { BulkInstallAppsDialog, DeleteDeviceDialog, DeviceCard, DeviceConnect, DeviceDetailDrawer, DeviceEditDialog, DeviceSelector, DeviceTerminal, DevicesPage, FileManager, FingerprintPanel, GroupMirrorModal, NodeRegister, RecycleBinPanel, RefreshParamsButton, RunScriptDialog, ScriptParamForm, SharedParamsForm, ShortcutBar, ShortcutEditDialog, ShortcutRunDialog, TagEditor, TaskAgentDialog, resolveSharedRow, variablesToParams } from '../chunk-
|
|
1
|
+
export { BulkInstallAppsDialog, DeleteDeviceDialog, DeviceCard, DeviceConnect, DeviceDetailDrawer, DeviceEditDialog, DeviceSelector, DeviceTerminal, DevicesPage, FileManager, FingerprintPanel, GroupMirrorModal, NodeRegister, RecycleBinPanel, RefreshParamsButton, RunScriptDialog, ScriptParamForm, SharedParamsForm, ShortcutBar, ShortcutEditDialog, ShortcutRunDialog, TagEditor, TaskAgentDialog, resolveSharedRow, variablesToParams } from '../chunk-YOT7HZBU.js';
|
|
2
2
|
import '../chunk-64Q7BBIQ.js';
|
|
3
3
|
import '../chunk-FW23FLAF.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-SVK2AY3J.js';
|
|
5
5
|
import '../chunk-OEZFYKL6.js';
|
|
6
6
|
import '../chunk-CVV7FOMQ.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-BSHHYM72.js';
|
|
8
8
|
import '../chunk-EVHTAXQG.js';
|
|
9
|
-
export { createAgentTaskRunner, preflightTaskAgentDevice } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
14
|
-
import '../chunk-
|
|
9
|
+
export { createAgentTaskRunner, preflightTaskAgentDevice } from '../chunk-O34SNDQB.js';
|
|
10
|
+
import '../chunk-V4MXFPDX.js';
|
|
11
|
+
import '../chunk-IJVNII5N.js';
|
|
12
|
+
import '../chunk-UINEPEIE.js';
|
|
13
|
+
import '../chunk-OXIM6EYO.js';
|
|
14
|
+
import '../chunk-TATL3HTE.js';
|
|
15
15
|
import '../chunk-NWFYTFMI.js';
|
package/dist/ui/editor.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { ScriptStudio } from '../chunk-
|
|
1
|
+
import { ScriptStudio } from '../chunk-XNKC6HU3.js';
|
|
2
2
|
import { useAixNav } from '../chunk-5BMFMDQR.js';
|
|
3
3
|
import { useAixT } from '../chunk-64Q7BBIQ.js';
|
|
4
4
|
import '../chunk-FW23FLAF.js';
|
|
5
5
|
import { Select, cn } from '../chunk-EVHTAXQG.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import { useClient } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-O34SNDQB.js';
|
|
7
|
+
import '../chunk-V4MXFPDX.js';
|
|
8
|
+
import '../chunk-IJVNII5N.js';
|
|
9
|
+
import { useClient } from '../chunk-UINEPEIE.js';
|
|
10
|
+
import '../chunk-OXIM6EYO.js';
|
|
11
|
+
import '../chunk-TATL3HTE.js';
|
|
12
12
|
import '../chunk-NWFYTFMI.js';
|
|
13
13
|
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
14
14
|
import { jsxs, jsx } from 'react/jsx-runtime';
|