@aixnn/aixautots 0.0.0-stage → 0.5.2

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.
Files changed (67) hide show
  1. package/README.md +239 -2
  2. package/dist/ScriptStudio-DaCqOF5H.d.ts +43 -0
  3. package/dist/agent-runner-V60B0is1.d.ts +57 -0
  4. package/dist/automation-queue-8HqRJV_K.d.ts +72 -0
  5. package/dist/chunk-536WVCTB.js +5744 -0
  6. package/dist/chunk-5BMFMDQR.js +18 -0
  7. package/dist/chunk-64Q7BBIQ.js +1347 -0
  8. package/dist/chunk-6YUAACW6.js +866 -0
  9. package/dist/chunk-AIUOLJZA.js +412 -0
  10. package/dist/chunk-CVV7FOMQ.js +175 -0
  11. package/dist/chunk-EHF2WQUR.js +2042 -0
  12. package/dist/chunk-EVHTAXQG.js +273 -0
  13. package/dist/chunk-FW23FLAF.js +56 -0
  14. package/dist/chunk-GKEPMDXO.js +410 -0
  15. package/dist/chunk-H7MHGYF3.js +341 -0
  16. package/dist/chunk-MRQ7VJFJ.js +1074 -0
  17. package/dist/chunk-NWFYTFMI.js +65 -0
  18. package/dist/chunk-OEZFYKL6.js +1 -0
  19. package/dist/chunk-PCYERBNZ.js +1564 -0
  20. package/dist/chunk-PUPVZRKZ.js +668 -0
  21. package/dist/chunk-SUKFJ73W.js +217 -0
  22. package/dist/config-Bm1hmXhD.d.ts +1380 -0
  23. package/dist/coords-LPR_MPyp.d.ts +22 -0
  24. package/dist/core/index.d.ts +135 -0
  25. package/dist/core/index.js +5 -0
  26. package/dist/device-normalize-BaThgnH7.d.ts +43 -0
  27. package/dist/device-session-KZVGLPOI.js +2 -0
  28. package/dist/i18n/index.d.ts +30 -0
  29. package/dist/i18n/index.js +1 -0
  30. package/dist/mirror-session-C_1vFkRV.d.ts +108 -0
  31. package/dist/nav/index.d.ts +19 -0
  32. package/dist/nav/index.js +1 -0
  33. package/dist/react/index.d.ts +487 -0
  34. package/dist/react/index.js +7 -0
  35. package/dist/script-debugger-Cw5jVRoz.d.ts +114 -0
  36. package/dist/task-agent-runner-eD9-SCJz.d.ts +160 -0
  37. package/dist/types-C2WXVcam.d.ts +1005 -0
  38. package/dist/ui/billing.d.ts +48 -0
  39. package/dist/ui/billing.js +425 -0
  40. package/dist/ui/device-create.d.ts +55 -0
  41. package/dist/ui/device-create.js +9 -0
  42. package/dist/ui/device-mirror.d.ts +42 -0
  43. package/dist/ui/device-mirror.js +10 -0
  44. package/dist/ui/devices.d.ts +223 -0
  45. package/dist/ui/devices.js +15 -0
  46. package/dist/ui/editor.d.ts +64 -0
  47. package/dist/ui/editor.js +344 -0
  48. package/dist/ui/index.d.ts +104 -0
  49. package/dist/ui/index.js +676 -0
  50. package/dist/ui/inspector.d.ts +5 -0
  51. package/dist/ui/inspector.js +1250 -0
  52. package/dist/ui/market.d.ts +10 -0
  53. package/dist/ui/market.js +60 -0
  54. package/dist/ui/mirror.d.ts +52 -0
  55. package/dist/ui/mirror.js +3 -0
  56. package/dist/ui/primitives/index.d.ts +101 -0
  57. package/dist/ui/primitives/index.js +1 -0
  58. package/dist/ui/script-studio.d.ts +85 -0
  59. package/dist/ui/script-studio.js +10 -0
  60. package/dist/ui/scripts.d.ts +18 -0
  61. package/dist/ui/scripts.js +210 -0
  62. package/dist/ui/tasks.d.ts +10 -0
  63. package/dist/ui/tasks.js +1039 -0
  64. package/dist/use-script-run-Diay7ibY.d.ts +50 -0
  65. package/package.json +76 -4
  66. package/styles.css +97 -0
  67. package/tailwind-preset.cjs +84 -0
@@ -0,0 +1,217 @@
1
+ import { DeviceChannel, ScriptDebugger } from './chunk-GKEPMDXO.js';
2
+ import { resolveConfig, AixClient, EnvRun } from './chunk-PCYERBNZ.js';
3
+ import React, { createContext, useContext, useState, useRef, useEffect, useMemo, useCallback } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var Ctx = createContext(null);
7
+ function AixProvider({ config, children }) {
8
+ const resolved = React.useMemo(
9
+ () => resolveConfig(config),
10
+ // Spread individual stable primitives so an inline config object literal
11
+ // doesn't thrash the channel on every parent render.
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ [config.baseUrl, config.getAuthToken, config.fetchFn, config.wsFactory]
14
+ );
15
+ return /* @__PURE__ */ jsx(Ctx.Provider, { value: resolved, children });
16
+ }
17
+ function useAixConfig() {
18
+ const c = useContext(Ctx);
19
+ if (!c) throw new Error("useAixConfig must be used within <AixProvider>");
20
+ return c;
21
+ }
22
+ function useDevice(deviceId) {
23
+ const cfg = useAixConfig();
24
+ const [channel, setChannel] = useState(null);
25
+ const [error, setError] = useState(null);
26
+ const ref = useRef(null);
27
+ useEffect(() => {
28
+ let cancelled = false;
29
+ setChannel(null);
30
+ setError(null);
31
+ DeviceChannel.open(cfg, deviceId).then((ch) => {
32
+ if (cancelled) {
33
+ ch.close();
34
+ return;
35
+ }
36
+ ref.current = ch;
37
+ setChannel(ch);
38
+ }).catch((e) => {
39
+ if (!cancelled) setError(e instanceof Error ? e : new Error(String(e)));
40
+ });
41
+ return () => {
42
+ cancelled = true;
43
+ ref.current?.close();
44
+ ref.current = null;
45
+ };
46
+ }, [cfg, deviceId]);
47
+ return { deviceId, channel, error };
48
+ }
49
+ function useScript(deviceId, opts) {
50
+ const { channel, error: openError } = useDevice(deviceId);
51
+ const [running, setRunning] = useState(false);
52
+ const [runId, setRunId] = useState(null);
53
+ const [events, setEvents] = useState([]);
54
+ const [error, setError] = useState(null);
55
+ const mountedRef = useRef(true);
56
+ useEffect(() => {
57
+ mountedRef.current = true;
58
+ return () => {
59
+ mountedRef.current = false;
60
+ };
61
+ }, []);
62
+ const dbg = useMemo(
63
+ () => channel ? new ScriptDebugger({ engine: opts.engine, channel }) : null,
64
+ [channel, opts.engine]
65
+ );
66
+ useEffect(() => {
67
+ if (!dbg) return;
68
+ const unsub = dbg.on("event", (e) => {
69
+ if (mountedRef.current) setEvents((prev) => [...prev, e]);
70
+ });
71
+ return () => {
72
+ unsub();
73
+ void dbg.cancel().catch(() => {
74
+ });
75
+ if (mountedRef.current) {
76
+ setRunning(false);
77
+ setRunId(null);
78
+ }
79
+ };
80
+ }, [dbg]);
81
+ const run = useCallback(async (input) => {
82
+ if (!dbg) throw new Error("device channel not ready");
83
+ if (mountedRef.current) {
84
+ setError(null);
85
+ setEvents([]);
86
+ }
87
+ try {
88
+ const res = await dbg.run(input);
89
+ if (mountedRef.current) {
90
+ setRunId(res.runId);
91
+ setRunning(true);
92
+ }
93
+ return res;
94
+ } catch (e) {
95
+ const err = e instanceof Error ? e : new Error(String(e));
96
+ if (mountedRef.current) setError(err);
97
+ throw err;
98
+ }
99
+ }, [dbg]);
100
+ const call = useCallback(async (method, args) => {
101
+ if (!dbg) throw new Error("device channel not ready");
102
+ return dbg.call(method, args);
103
+ }, [dbg]);
104
+ const cancel = useCallback(async () => {
105
+ if (!dbg) return;
106
+ await dbg.cancel();
107
+ if (mountedRef.current) {
108
+ setRunning(false);
109
+ setRunId(null);
110
+ }
111
+ }, [dbg]);
112
+ const clearEvents = useCallback(() => {
113
+ if (mountedRef.current) setEvents([]);
114
+ }, []);
115
+ return { ready: channel !== null, running, runId, events, error: error ?? openError, run, call, cancel, clearEvents };
116
+ }
117
+ function useClient() {
118
+ const cfg = useAixConfig();
119
+ return useMemo(() => new AixClient(cfg), [cfg]);
120
+ }
121
+ function useQuery(loader, deps) {
122
+ const [data, setData] = useState(null);
123
+ const [loading, setLoading] = useState(true);
124
+ const [error, setError] = useState(null);
125
+ const mounted = useRef(true);
126
+ const loaderRef = useRef(loader);
127
+ loaderRef.current = loader;
128
+ const run = useCallback(async () => {
129
+ if (mounted.current) {
130
+ setLoading(true);
131
+ setError(null);
132
+ }
133
+ try {
134
+ const r = await loaderRef.current();
135
+ if (mounted.current) {
136
+ setData(r);
137
+ setLoading(false);
138
+ }
139
+ } catch (e) {
140
+ if (mounted.current) {
141
+ setError(e instanceof Error ? e : new Error(String(e)));
142
+ setLoading(false);
143
+ }
144
+ }
145
+ }, deps);
146
+ useEffect(() => {
147
+ mounted.current = true;
148
+ void run();
149
+ return () => {
150
+ mounted.current = false;
151
+ };
152
+ }, [run]);
153
+ const patch = useCallback((updater) => {
154
+ if (mounted.current) setData((prev) => updater(prev));
155
+ }, []);
156
+ return { data, loading, error, refetch: run, setData: patch };
157
+ }
158
+ function useEnvRun() {
159
+ const cfg = useAixConfig();
160
+ const [reqId, setReqId] = useState(null);
161
+ const [events, setEvents] = useState([]);
162
+ const [finished, setFinished] = useState(null);
163
+ const [done, setDone] = useState(false);
164
+ const [error, setError] = useState(null);
165
+ const runRef = useRef(null);
166
+ const mountedRef = useRef(true);
167
+ useEffect(() => {
168
+ mountedRef.current = true;
169
+ return () => {
170
+ mountedRef.current = false;
171
+ runRef.current?.close();
172
+ runRef.current = null;
173
+ };
174
+ }, []);
175
+ const run = useCallback(
176
+ async (start) => {
177
+ runRef.current?.close();
178
+ if (mountedRef.current) {
179
+ setError(null);
180
+ setEvents([]);
181
+ setFinished(null);
182
+ setDone(false);
183
+ setReqId(null);
184
+ }
185
+ try {
186
+ const r = await start();
187
+ runRef.current = r;
188
+ r.on("event", (e) => {
189
+ if (mountedRef.current) setEvents((prev) => [...prev, e]);
190
+ });
191
+ r.on("done", (f) => {
192
+ if (mountedRef.current) {
193
+ setFinished(f);
194
+ setDone(true);
195
+ }
196
+ });
197
+ if (mountedRef.current) setReqId(r.reqId);
198
+ return { reqId: r.reqId };
199
+ } catch (e) {
200
+ const err = e instanceof Error ? e : new Error(String(e));
201
+ if (mountedRef.current) setError(err);
202
+ throw err;
203
+ }
204
+ },
205
+ []
206
+ );
207
+ const setup = useCallback((nodeId, input) => run(() => EnvRun.start(cfg, nodeId, "setup", input)), [cfg, run]);
208
+ const status = useCallback((nodeId, input) => run(() => EnvRun.start(cfg, nodeId, "status", input)), [cfg, run]);
209
+ const teardown = useCallback((nodeId, input) => run(() => EnvRun.start(cfg, nodeId, "teardown", input)), [cfg, run]);
210
+ const close = useCallback(() => {
211
+ runRef.current?.close();
212
+ runRef.current = null;
213
+ }, []);
214
+ return { reqId, events, finished, done, error, setup, status, teardown, close };
215
+ }
216
+
217
+ export { AixProvider, useAixConfig, useClient, useDevice, useEnvRun, useQuery, useScript };