@aiscene/aiserver 1.0.0

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 (169) hide show
  1. package/dist/api/callback.d.ts +7 -0
  2. package/dist/api/callback.d.ts.map +1 -0
  3. package/dist/api/callback.js +116 -0
  4. package/dist/api/callback.js.map +1 -0
  5. package/dist/api/device-api.d.ts +13 -0
  6. package/dist/api/device-api.d.ts.map +1 -0
  7. package/dist/api/device-api.js +98 -0
  8. package/dist/api/device-api.js.map +1 -0
  9. package/dist/api/task-api.d.ts +9 -0
  10. package/dist/api/task-api.d.ts.map +1 -0
  11. package/dist/api/task-api.js +47 -0
  12. package/dist/api/task-api.js.map +1 -0
  13. package/dist/config/cli.d.ts +30 -0
  14. package/dist/config/cli.d.ts.map +1 -0
  15. package/dist/config/cli.js +129 -0
  16. package/dist/config/cli.js.map +1 -0
  17. package/dist/config/index.d.ts +6 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +142 -0
  20. package/dist/config/index.js.map +1 -0
  21. package/dist/config/schema.d.ts +66 -0
  22. package/dist/config/schema.d.ts.map +1 -0
  23. package/dist/config/schema.js +2 -0
  24. package/dist/config/schema.js.map +1 -0
  25. package/dist/core/event-bus.d.ts +14 -0
  26. package/dist/core/event-bus.d.ts.map +1 -0
  27. package/dist/core/event-bus.js +33 -0
  28. package/dist/core/event-bus.js.map +1 -0
  29. package/dist/core/logger.d.ts +24 -0
  30. package/dist/core/logger.d.ts.map +1 -0
  31. package/dist/core/logger.js +52 -0
  32. package/dist/core/logger.js.map +1 -0
  33. package/dist/core/types.d.ts +134 -0
  34. package/dist/core/types.d.ts.map +1 -0
  35. package/dist/core/types.js +3 -0
  36. package/dist/core/types.js.map +1 -0
  37. package/dist/debug/dump-manager.d.ts +10 -0
  38. package/dist/debug/dump-manager.d.ts.map +1 -0
  39. package/dist/debug/dump-manager.js +52 -0
  40. package/dist/debug/dump-manager.js.map +1 -0
  41. package/dist/debug/screencast.d.ts +11 -0
  42. package/dist/debug/screencast.d.ts.map +1 -0
  43. package/dist/debug/screencast.js +88 -0
  44. package/dist/debug/screencast.js.map +1 -0
  45. package/dist/debug/session-manager.d.ts +14 -0
  46. package/dist/debug/session-manager.d.ts.map +1 -0
  47. package/dist/debug/session-manager.js +76 -0
  48. package/dist/debug/session-manager.js.map +1 -0
  49. package/dist/debug/types.d.ts +76 -0
  50. package/dist/debug/types.d.ts.map +1 -0
  51. package/dist/debug/types.js +2 -0
  52. package/dist/debug/types.js.map +1 -0
  53. package/dist/debug/web-screencast.d.ts +60 -0
  54. package/dist/debug/web-screencast.d.ts.map +1 -0
  55. package/dist/debug/web-screencast.js +146 -0
  56. package/dist/debug/web-screencast.js.map +1 -0
  57. package/dist/debug/websocket-server.d.ts +27 -0
  58. package/dist/debug/websocket-server.d.ts.map +1 -0
  59. package/dist/debug/websocket-server.js +681 -0
  60. package/dist/debug/websocket-server.js.map +1 -0
  61. package/dist/device/detector.d.ts +10 -0
  62. package/dist/device/detector.d.ts.map +1 -0
  63. package/dist/device/detector.js +100 -0
  64. package/dist/device/detector.js.map +1 -0
  65. package/dist/device/heartbeat.d.ts +26 -0
  66. package/dist/device/heartbeat.d.ts.map +1 -0
  67. package/dist/device/heartbeat.js +225 -0
  68. package/dist/device/heartbeat.js.map +1 -0
  69. package/dist/device/status-manager.d.ts +15 -0
  70. package/dist/device/status-manager.d.ts.map +1 -0
  71. package/dist/device/status-manager.js +58 -0
  72. package/dist/device/status-manager.js.map +1 -0
  73. package/dist/device/types.d.ts +30 -0
  74. package/dist/device/types.d.ts.map +1 -0
  75. package/dist/device/types.js +2 -0
  76. package/dist/device/types.js.map +1 -0
  77. package/dist/executor/action-executor.d.ts +25 -0
  78. package/dist/executor/action-executor.d.ts.map +1 -0
  79. package/dist/executor/action-executor.js +261 -0
  80. package/dist/executor/action-executor.js.map +1 -0
  81. package/dist/executor/android-executor.d.ts +12 -0
  82. package/dist/executor/android-executor.d.ts.map +1 -0
  83. package/dist/executor/android-executor.js +127 -0
  84. package/dist/executor/android-executor.js.map +1 -0
  85. package/dist/executor/base.d.ts +20 -0
  86. package/dist/executor/base.d.ts.map +1 -0
  87. package/dist/executor/base.js +91 -0
  88. package/dist/executor/base.js.map +1 -0
  89. package/dist/executor/cli-executor.d.ts +12 -0
  90. package/dist/executor/cli-executor.d.ts.map +1 -0
  91. package/dist/executor/cli-executor.js +94 -0
  92. package/dist/executor/cli-executor.js.map +1 -0
  93. package/dist/executor/code-executor.d.ts +13 -0
  94. package/dist/executor/code-executor.d.ts.map +1 -0
  95. package/dist/executor/code-executor.js +52 -0
  96. package/dist/executor/code-executor.js.map +1 -0
  97. package/dist/executor/code-instrument.d.ts +12 -0
  98. package/dist/executor/code-instrument.d.ts.map +1 -0
  99. package/dist/executor/code-instrument.js +116 -0
  100. package/dist/executor/code-instrument.js.map +1 -0
  101. package/dist/executor/executor-factory.d.ts +7 -0
  102. package/dist/executor/executor-factory.d.ts.map +1 -0
  103. package/dist/executor/executor-factory.js +24 -0
  104. package/dist/executor/executor-factory.js.map +1 -0
  105. package/dist/executor/ios-executor.d.ts +10 -0
  106. package/dist/executor/ios-executor.d.ts.map +1 -0
  107. package/dist/executor/ios-executor.js +91 -0
  108. package/dist/executor/ios-executor.js.map +1 -0
  109. package/dist/executor/types.d.ts +14 -0
  110. package/dist/executor/types.d.ts.map +1 -0
  111. package/dist/executor/types.js +2 -0
  112. package/dist/executor/types.js.map +1 -0
  113. package/dist/executor/worker-entry.d.ts +2 -0
  114. package/dist/executor/worker-entry.d.ts.map +1 -0
  115. package/dist/executor/worker-entry.js +61 -0
  116. package/dist/executor/worker-entry.js.map +1 -0
  117. package/dist/index.d.ts +22 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +157 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/node/service.d.ts +21 -0
  122. package/dist/node/service.d.ts.map +1 -0
  123. package/dist/node/service.js +178 -0
  124. package/dist/node/service.js.map +1 -0
  125. package/dist/node/types.d.ts +45 -0
  126. package/dist/node/types.d.ts.map +1 -0
  127. package/dist/node/types.js +3 -0
  128. package/dist/node/types.js.map +1 -0
  129. package/dist/storage/database.d.ts +6 -0
  130. package/dist/storage/database.d.ts.map +1 -0
  131. package/dist/storage/database.js +154 -0
  132. package/dist/storage/database.js.map +1 -0
  133. package/dist/storage/repositories/debug-log-repo.d.ts +29 -0
  134. package/dist/storage/repositories/debug-log-repo.d.ts.map +1 -0
  135. package/dist/storage/repositories/debug-log-repo.js +90 -0
  136. package/dist/storage/repositories/debug-log-repo.js.map +1 -0
  137. package/dist/storage/repositories/device-repo.d.ts +12 -0
  138. package/dist/storage/repositories/device-repo.d.ts.map +1 -0
  139. package/dist/storage/repositories/device-repo.js +87 -0
  140. package/dist/storage/repositories/device-repo.js.map +1 -0
  141. package/dist/storage/repositories/execution-log-repo.d.ts +9 -0
  142. package/dist/storage/repositories/execution-log-repo.d.ts.map +1 -0
  143. package/dist/storage/repositories/execution-log-repo.js +49 -0
  144. package/dist/storage/repositories/execution-log-repo.js.map +1 -0
  145. package/dist/storage/repositories/task-repo.d.ts +13 -0
  146. package/dist/storage/repositories/task-repo.d.ts.map +1 -0
  147. package/dist/storage/repositories/task-repo.js +109 -0
  148. package/dist/storage/repositories/task-repo.js.map +1 -0
  149. package/dist/task/poller.d.ts +25 -0
  150. package/dist/task/poller.d.ts.map +1 -0
  151. package/dist/task/poller.js +153 -0
  152. package/dist/task/poller.js.map +1 -0
  153. package/dist/task/queue.d.ts +13 -0
  154. package/dist/task/queue.d.ts.map +1 -0
  155. package/dist/task/queue.js +38 -0
  156. package/dist/task/queue.js.map +1 -0
  157. package/dist/task/scheduler.d.ts +25 -0
  158. package/dist/task/scheduler.d.ts.map +1 -0
  159. package/dist/task/scheduler.js +274 -0
  160. package/dist/task/scheduler.js.map +1 -0
  161. package/dist/task/types.d.ts +31 -0
  162. package/dist/task/types.d.ts.map +1 -0
  163. package/dist/task/types.js +37 -0
  164. package/dist/task/types.js.map +1 -0
  165. package/dist/web/server.d.ts +14 -0
  166. package/dist/web/server.d.ts.map +1 -0
  167. package/dist/web/server.js +478 -0
  168. package/dist/web/server.js.map +1 -0
  169. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export interface ServerConfig {
2
+ port: number;
3
+ webPort: number;
4
+ host: string;
5
+ }
6
+ export interface DeviceConfig {
7
+ heartbeatInterval: number;
8
+ offlineRetryCount: number;
9
+ offlineCallbackUrl: string;
10
+ }
11
+ export interface TaskConfig {
12
+ pollInterval: number;
13
+ apiUrl: string;
14
+ nodeId: string;
15
+ maxConcurrent: number;
16
+ timeout: number;
17
+ }
18
+ export interface AIConfig {
19
+ baseUrl: string;
20
+ apiKey: string;
21
+ modelName: string;
22
+ useQwen3Vl: boolean;
23
+ insightModelName?: string;
24
+ insightModelApiKey?: string;
25
+ insightModelBaseUrl?: string;
26
+ insightModelFamily?: string;
27
+ insightModelTimeout?: number;
28
+ insightModelTemperature?: number;
29
+ }
30
+ export interface StorageConfig {
31
+ dbPath: string;
32
+ }
33
+ export interface NodeConfig {
34
+ nodeId: string;
35
+ nodeName: string;
36
+ ipAddress: string;
37
+ port: number;
38
+ nodeType: string;
39
+ version: string;
40
+ environment: string;
41
+ maxConcurrentTasks: number;
42
+ weight: number;
43
+ supportedTags: string;
44
+ region: string;
45
+ description: string;
46
+ registerUrl: string;
47
+ heartbeatUrl: string;
48
+ heartbeatInterval: number;
49
+ configInfo?: Record<string, unknown>;
50
+ }
51
+ export interface CallbackConfig {
52
+ statusUpdateUrl: string;
53
+ reportUploadUrl: string;
54
+ deviceHeartbeatUrl: string;
55
+ deviceStatusUpdateUrl: string;
56
+ }
57
+ export interface AIServerConfig {
58
+ server: ServerConfig;
59
+ device: DeviceConfig;
60
+ task: TaskConfig;
61
+ ai: AIConfig;
62
+ storage: StorageConfig;
63
+ node: NodeConfig;
64
+ callback: CallbackConfig;
65
+ }
66
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ import type { EventType, EventPayload } from './types.js';
3
+ declare class EventBus extends EventEmitter<Record<string, EventPayload>> {
4
+ private static instance;
5
+ private constructor();
6
+ static getInstance(): EventBus;
7
+ emitEvent(type: EventType, source: string, data: unknown): void;
8
+ onEvent(type: EventType, handler: (payload: EventPayload) => void): void;
9
+ offEvent(type: EventType, handler: (payload: EventPayload) => void): void;
10
+ removeAll(): void;
11
+ }
12
+ export declare const eventBus: EventBus;
13
+ export { EventBus };
14
+ //# sourceMappingURL=event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1D,cAAM,QAAS,SAAQ,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAElC,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,QAAQ;IAO9B,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAS/D,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIxE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAIzE,SAAS,IAAI,IAAI;CAGlB;AAED,eAAO,MAAM,QAAQ,UAAyB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ class EventBus extends EventEmitter {
3
+ static instance;
4
+ constructor() {
5
+ super();
6
+ }
7
+ static getInstance() {
8
+ if (!EventBus.instance) {
9
+ EventBus.instance = new EventBus();
10
+ }
11
+ return EventBus.instance;
12
+ }
13
+ emitEvent(type, source, data) {
14
+ const payload = {
15
+ timestamp: new Date().toISOString(),
16
+ source,
17
+ data,
18
+ };
19
+ this.emit(type, payload);
20
+ }
21
+ onEvent(type, handler) {
22
+ this.on(type, handler);
23
+ }
24
+ offEvent(type, handler) {
25
+ this.off(type, handler);
26
+ }
27
+ removeAll() {
28
+ this.removeAllListeners();
29
+ }
30
+ }
31
+ export const eventBus = EventBus.getInstance();
32
+ export { EventBus };
33
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAKzC,MAAM,QAAS,SAAQ,YAA0C;IACvD,MAAM,CAAC,QAAQ,CAAW;IAElC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAe,EAAE,MAAc,EAAE,IAAa;QACtD,MAAM,OAAO,GAAiB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM;YACN,IAAI;SACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,IAAe,EAAE,OAAwC;QAC/D,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,IAAe,EAAE,OAAwC;QAChE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ declare class Logger {
2
+ private module;
3
+ constructor(module: string);
4
+ private log;
5
+ debug(message: string, meta?: {
6
+ taskId?: string;
7
+ sessionId?: string;
8
+ }): void;
9
+ info(message: string, meta?: {
10
+ taskId?: string;
11
+ sessionId?: string;
12
+ }): void;
13
+ warn(message: string, meta?: {
14
+ taskId?: string;
15
+ sessionId?: string;
16
+ }): void;
17
+ error(message: string, meta?: {
18
+ taskId?: string;
19
+ sessionId?: string;
20
+ }): void;
21
+ }
22
+ export declare function createLogger(module: string): Logger;
23
+ export {};
24
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAGA,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,GAAG;IAgCX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI5E,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3E,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI3E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAG7E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,52 @@
1
+ import { eventBus } from './event-bus.js';
2
+ class Logger {
3
+ module;
4
+ constructor(module) {
5
+ this.module = module;
6
+ }
7
+ log(level, message, meta) {
8
+ const timestamp = new Date().toISOString();
9
+ const prefix = `[${timestamp}] [${level.toUpperCase()}] [${this.module}]`;
10
+ const formattedMessage = `${prefix} ${message}`;
11
+ // Console output with colors
12
+ switch (level) {
13
+ case 'debug':
14
+ console.debug(formattedMessage);
15
+ break;
16
+ case 'info':
17
+ console.info(formattedMessage);
18
+ break;
19
+ case 'warn':
20
+ console.warn(formattedMessage);
21
+ break;
22
+ case 'error':
23
+ console.error(formattedMessage);
24
+ break;
25
+ }
26
+ // Emit to event bus for storage
27
+ const entry = {
28
+ taskId: meta?.taskId,
29
+ sessionId: meta?.sessionId,
30
+ level,
31
+ content: message,
32
+ createdAt: new Date(),
33
+ };
34
+ eventBus.emitEvent('task:log', this.module, entry);
35
+ }
36
+ debug(message, meta) {
37
+ this.log('debug', message, meta);
38
+ }
39
+ info(message, meta) {
40
+ this.log('info', message, meta);
41
+ }
42
+ warn(message, meta) {
43
+ this.log('warn', message, meta);
44
+ }
45
+ error(message, meta) {
46
+ this.log('error', message, meta);
47
+ }
48
+ }
49
+ export function createLogger(module) {
50
+ return new Logger(module);
51
+ }
52
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM;IACF,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8C;QAC1F,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC;QAC1E,MAAM,gBAAgB,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;QAEhD,6BAA6B;QAC7B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAChC,MAAM;QACV,CAAC;QAED,gCAAgC;QAChC,MAAM,KAAK,GAAa;YACtB,MAAM,EAAE,IAAI,EAAE,MAAM;YACpB,SAAS,EAAE,IAAI,EAAE,SAAS;YAC1B,KAAK;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8C;QACnE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8C;QAClE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8C;QAClE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8C;QACnE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,134 @@
1
+ export interface Device {
2
+ id?: number;
3
+ serialNumber: string;
4
+ model?: string;
5
+ brand?: string;
6
+ platform: 'android' | 'ios';
7
+ status: 'online' | 'offline';
8
+ lastHeartbeatAt?: Date;
9
+ createdAt?: Date;
10
+ updatedAt?: Date;
11
+ }
12
+ export type TaskType = 'cli' | 'android' | 'ios' | 'action' | 'code';
13
+ export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed' | 'stopped';
14
+ export interface AllocatedDevice {
15
+ id?: number;
16
+ deviceId: string;
17
+ deviceName?: string;
18
+ deviceModel?: string;
19
+ osType?: 'iOS' | 'Android';
20
+ osVersion?: string;
21
+ status?: number;
22
+ resolution?: string;
23
+ ipAddress?: string;
24
+ port?: number;
25
+ batteryLevel?: number;
26
+ isCharging?: boolean;
27
+ cpuUsage?: number;
28
+ memoryUsage?: number;
29
+ storageUsage?: number;
30
+ networkType?: string;
31
+ signalStrength?: number;
32
+ deviceTags?: string;
33
+ configInfo?: string;
34
+ lastHeartbeat?: string;
35
+ connectedAt?: string;
36
+ createdAt?: string;
37
+ updatedAt?: string;
38
+ description?: string;
39
+ environment?: string;
40
+ }
41
+ export interface Task {
42
+ id?: number;
43
+ taskId: string;
44
+ executionId?: string;
45
+ type: TaskType;
46
+ status: TaskStatus;
47
+ priority: number;
48
+ config?: string;
49
+ result?: string;
50
+ errorMessage?: string;
51
+ reportFilePath?: string;
52
+ device?: AllocatedDevice;
53
+ startedAt?: Date;
54
+ completedAt?: Date;
55
+ createdAt?: Date;
56
+ updatedAt?: Date;
57
+ }
58
+ export interface ExecuteConfig {
59
+ type: TaskType;
60
+ taskId?: string;
61
+ executionId?: string;
62
+ testName: string;
63
+ testUrl?: string;
64
+ requirement?: string;
65
+ url?: string;
66
+ mobileMode?: boolean;
67
+ cdpEnabled?: boolean;
68
+ cdpUrl?: string;
69
+ viewport?: {
70
+ width: number;
71
+ height: number;
72
+ userAgent?: string;
73
+ };
74
+ headless?: boolean;
75
+ reuseExistingBrowser?: boolean;
76
+ packageName?: string;
77
+ udid?: string;
78
+ bundleId?: string;
79
+ aiActionContext?: string;
80
+ waitTime?: number;
81
+ timeout?: number;
82
+ nodeId?: string;
83
+ startTime?: number;
84
+ actionType?: string;
85
+ locatePrompt?: string;
86
+ actionParams?: Record<string, unknown>;
87
+ naturalLanguage?: string;
88
+ modelConfig?: Record<string, unknown>;
89
+ code?: string;
90
+ }
91
+ export interface ExecuteResult {
92
+ success: boolean;
93
+ reportFile?: string;
94
+ logFile?: string;
95
+ errorMessage?: string;
96
+ result?: unknown;
97
+ dump?: string;
98
+ reportHTML?: string;
99
+ }
100
+ export type DebugSessionStatus = 'idle' | 'running' | 'completed' | 'failed' | 'stopped';
101
+ export interface DebugSession {
102
+ sessionId: string;
103
+ deviceId?: string;
104
+ taskId?: string;
105
+ platform?: 'android' | 'ios' | 'web';
106
+ status: DebugSessionStatus;
107
+ logs: string[];
108
+ startTime: Date;
109
+ client?: unknown;
110
+ agent?: unknown;
111
+ webAgent?: unknown;
112
+ browser?: unknown;
113
+ context?: unknown;
114
+ page?: unknown;
115
+ screencastEnabled?: boolean;
116
+ dumpIntervalId?: NodeJS.Timeout;
117
+ process?: unknown;
118
+ }
119
+ export type EventType = 'task:started' | 'task:completed' | 'task:failed' | 'task:log' | 'device:online' | 'device:offline' | 'device:heartbeat' | 'node:registered' | 'node:command' | 'debug:session_created' | 'debug:log_output' | 'debug:action_dump' | 'debug:execution_line' | 'debug:action_result' | 'debug:completed' | 'debug:error' | 'executor:dump';
120
+ export interface EventPayload {
121
+ timestamp: string;
122
+ source: string;
123
+ data: unknown;
124
+ }
125
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
126
+ export interface LogEntry {
127
+ id?: number;
128
+ taskId?: string;
129
+ sessionId?: string;
130
+ level: LogLevel;
131
+ content: string;
132
+ createdAt?: Date;
133
+ }
134
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // ==================== Global Type Definitions ====================
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,oEAAoE"}
@@ -0,0 +1,10 @@
1
+ import type { WebSocket } from 'ws';
2
+ export declare class DumpManager {
3
+ private intervals;
4
+ startPeriodicDump(sessionId: string, ws: WebSocket, getDump: () => string | null, intervalMs?: number): void;
5
+ stopPeriodicDump(sessionId: string): void;
6
+ private sendDump;
7
+ stopAll(): void;
8
+ }
9
+ export declare const dumpManager: DumpManager;
10
+ //# sourceMappingURL=dump-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump-manager.d.ts","sourceRoot":"","sources":["../../src/debug/dump-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAA0C;IAE3D,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,EAC5B,UAAU,GAAE,MAAa,GACxB,IAAI;IAsBP,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASzC,OAAO,CAAC,QAAQ;IAWhB,OAAO,IAAI,IAAI;CAOhB;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { createLogger } from '../core/logger.js';
2
+ const logger = createLogger('DumpManager');
3
+ export class DumpManager {
4
+ intervals = new Map();
5
+ startPeriodicDump(sessionId, ws, getDump, intervalMs = 5000) {
6
+ // Send initial dump
7
+ const initialDump = getDump();
8
+ if (initialDump) {
9
+ this.sendDump(ws, sessionId, initialDump);
10
+ }
11
+ // Start periodic dump
12
+ const intervalId = setInterval(() => {
13
+ try {
14
+ const dump = getDump();
15
+ if (dump) {
16
+ this.sendDump(ws, sessionId, dump);
17
+ }
18
+ }
19
+ catch (error) {
20
+ logger.warn(`Periodic dump error for ${sessionId}: ${error.message}`);
21
+ }
22
+ }, intervalMs);
23
+ this.intervals.set(sessionId, intervalId);
24
+ }
25
+ stopPeriodicDump(sessionId) {
26
+ const intervalId = this.intervals.get(sessionId);
27
+ if (intervalId) {
28
+ clearInterval(intervalId);
29
+ this.intervals.delete(sessionId);
30
+ logger.debug(`Stopped periodic dump for session: ${sessionId}`);
31
+ }
32
+ }
33
+ sendDump(ws, sessionId, dump) {
34
+ if (dump && dump.trim().length > 0 && ws.readyState === ws.OPEN) {
35
+ ws.send(JSON.stringify({
36
+ type: 'action_dump',
37
+ sessionId,
38
+ dump,
39
+ timestamp: new Date().toISOString(),
40
+ }));
41
+ }
42
+ }
43
+ stopAll() {
44
+ for (const [sessionId, intervalId] of this.intervals) {
45
+ clearInterval(intervalId);
46
+ }
47
+ this.intervals.clear();
48
+ logger.info('All periodic dumps stopped');
49
+ }
50
+ }
51
+ export const dumpManager = new DumpManager();
52
+ //# sourceMappingURL=dump-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump-manager.js","sourceRoot":"","sources":["../../src/debug/dump-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE3C,MAAM,OAAO,WAAW;IACd,SAAS,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE3D,iBAAiB,CACf,SAAiB,EACjB,EAAa,EACb,OAA4B,EAC5B,aAAqB,IAAI;QAEzB,oBAAoB;QACpB,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;QAC9B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;gBACvB,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC,EAAE,UAAU,CAAC,CAAC;QAEf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,EAAa,EAAE,SAAiB,EAAE,IAAY;QAC7D,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAChE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,IAAI;gBACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrD,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { WebSocket } from 'ws';
2
+ export declare class ScreencastManager {
3
+ private sessions;
4
+ createSession(sessionId: string, ws: WebSocket, browser: unknown, context: unknown, page: unknown): Promise<void>;
5
+ addViewer(sessionId: string, ws: WebSocket): boolean;
6
+ hasSession(sessionId: string): boolean;
7
+ stopSession(sessionId: string): Promise<void>;
8
+ closeAll(): Promise<void>;
9
+ }
10
+ export declare const screencastManager: ScreencastManager;
11
+ //# sourceMappingURL=screencast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screencast.d.ts","sourceRoot":"","sources":["../../src/debug/screencast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAcpC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAA6C;IAEvD,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC;IAsChB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO;IAQpD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { createLogger } from '../core/logger.js';
2
+ const logger = createLogger('ScreencastManager');
3
+ export class ScreencastManager {
4
+ sessions = new Map();
5
+ async createSession(sessionId, ws, browser, context, page) {
6
+ const session = {
7
+ sessionId,
8
+ viewers: new Set(),
9
+ browser,
10
+ context,
11
+ page,
12
+ };
13
+ this.sessions.set(sessionId, session);
14
+ try {
15
+ // Start CDP screencast
16
+ const cdpSession = await page?.context?.()?.newCDPSession?.(page);
17
+ if (cdpSession) {
18
+ session.cdpSession = cdpSession;
19
+ await cdpSession.send('Page.startScreencast', { format: 'jpeg', quality: 50, maxWidth: 1280, maxHeight: 720 });
20
+ cdpSession.on('Page.screencastFrame', async (event) => {
21
+ const frameData = Buffer.from(event.data, 'base64');
22
+ for (const viewer of session.viewers) {
23
+ if (viewer.readyState === viewer.OPEN) {
24
+ viewer.send(frameData);
25
+ }
26
+ }
27
+ try {
28
+ await cdpSession.send('Page.screencastFrameAck', { sessionId: event.sessionId });
29
+ }
30
+ catch {
31
+ // ignore
32
+ }
33
+ });
34
+ }
35
+ }
36
+ catch (error) {
37
+ logger.warn(`Failed to start screencast for ${sessionId}: ${error.message}`);
38
+ }
39
+ logger.info(`Screencast session created: ${sessionId}`);
40
+ }
41
+ addViewer(sessionId, ws) {
42
+ const session = this.sessions.get(sessionId);
43
+ if (!session)
44
+ return false;
45
+ session.viewers.add(ws);
46
+ ws.on('close', () => session.viewers.delete(ws));
47
+ return true;
48
+ }
49
+ hasSession(sessionId) {
50
+ return this.sessions.has(sessionId);
51
+ }
52
+ async stopSession(sessionId) {
53
+ const session = this.sessions.get(sessionId);
54
+ if (!session)
55
+ return;
56
+ if (session.frameInterval) {
57
+ clearInterval(session.frameInterval);
58
+ }
59
+ try {
60
+ await session.cdpSession?.send?.('Page.stopScreencast');
61
+ }
62
+ catch {
63
+ // ignore
64
+ }
65
+ try {
66
+ await session.browser?.close?.();
67
+ }
68
+ catch {
69
+ // ignore
70
+ }
71
+ // Close all viewers
72
+ for (const viewer of session.viewers) {
73
+ if (viewer.readyState === viewer.OPEN) {
74
+ viewer.close();
75
+ }
76
+ }
77
+ this.sessions.delete(sessionId);
78
+ logger.info(`Screencast session stopped: ${sessionId}`);
79
+ }
80
+ async closeAll() {
81
+ for (const sessionId of Array.from(this.sessions.keys())) {
82
+ await this.stopSession(sessionId);
83
+ }
84
+ logger.info('All screencast sessions closed');
85
+ }
86
+ }
87
+ export const screencastManager = new ScreencastManager();
88
+ //# sourceMappingURL=screencast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screencast.js","sourceRoot":"","sources":["../../src/debug/screencast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { WebSocket } from 'ws';
2
+ import type { DebugSession, DebugSessionStatus } from '../core/types.js';
3
+ export declare class SessionManager {
4
+ private sessions;
5
+ create(sessionId: string, ws: WebSocket, deviceId?: string): DebugSession;
6
+ get(sessionId: string): DebugSession | undefined;
7
+ updateStatus(sessionId: string, status: DebugSessionStatus): void;
8
+ addLog(sessionId: string, content: string, type?: string): void;
9
+ remove(sessionId: string): void;
10
+ getAll(): DebugSession[];
11
+ findByClient(ws: WebSocket): string[];
12
+ }
13
+ export declare const sessionManager: SessionManager;
14
+ //# sourceMappingURL=session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/debug/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAGpC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAIzE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAwC;IAExD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY;IA2BzE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIhD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAYjE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqB,GAAG,IAAI;IAY7E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/B,MAAM,IAAI,YAAY,EAAE;IAIxB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE;CAStC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}