visionclaw 0.1.206-beta.21 → 0.1.206-beta.22

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 (309) hide show
  1. package/dist/agent/applied-credential-signature.d.ts +53 -0
  2. package/dist/agent/applied-credential-signature.d.ts.map +1 -0
  3. package/dist/agent/applied-credential-signature.js +137 -0
  4. package/dist/agent/applied-credential-signature.js.map +1 -0
  5. package/dist/agent/engines/client-factory.d.ts +63 -0
  6. package/dist/agent/engines/client-factory.d.ts.map +1 -0
  7. package/dist/agent/engines/client-factory.js +382 -0
  8. package/dist/agent/engines/client-factory.js.map +1 -0
  9. package/dist/agent/engines/engine.d.ts +8 -0
  10. package/dist/agent/engines/engine.d.ts.map +1 -0
  11. package/dist/agent/engines/engine.js +15 -0
  12. package/dist/agent/engines/engine.js.map +1 -0
  13. package/dist/agent/engines/openai/file-session.d.ts +19 -0
  14. package/dist/agent/engines/openai/file-session.d.ts.map +1 -0
  15. package/dist/agent/engines/openai/file-session.js +78 -0
  16. package/dist/agent/engines/openai/file-session.js.map +1 -0
  17. package/dist/agent/engines/openai/file-tools.d.ts +35 -0
  18. package/dist/agent/engines/openai/file-tools.d.ts.map +1 -0
  19. package/dist/agent/engines/openai/file-tools.js +194 -0
  20. package/dist/agent/engines/openai/file-tools.js.map +1 -0
  21. package/dist/agent/engines/openai/session.d.ts +55 -0
  22. package/dist/agent/engines/openai/session.d.ts.map +1 -0
  23. package/dist/agent/engines/openai/session.js +447 -0
  24. package/dist/agent/engines/openai/session.js.map +1 -0
  25. package/dist/agent/engines/openai/tools.d.ts +15 -0
  26. package/dist/agent/engines/openai/tools.d.ts.map +1 -0
  27. package/dist/agent/engines/openai/tools.js +221 -0
  28. package/dist/agent/engines/openai/tools.js.map +1 -0
  29. package/dist/agent/engines/pi/session.d.ts +49 -0
  30. package/dist/agent/engines/pi/session.d.ts.map +1 -0
  31. package/dist/agent/engines/pi/session.js +309 -0
  32. package/dist/agent/engines/pi/session.js.map +1 -0
  33. package/dist/agent/memory-preload.d.ts +55 -0
  34. package/dist/agent/memory-preload.d.ts.map +1 -0
  35. package/dist/agent/memory-preload.js +166 -0
  36. package/dist/agent/memory-preload.js.map +1 -0
  37. package/dist/agent/providers/claude/cli-resolver.d.ts +16 -0
  38. package/dist/agent/providers/claude/cli-resolver.d.ts.map +1 -0
  39. package/dist/agent/providers/claude/cli-resolver.js +83 -0
  40. package/dist/agent/providers/claude/cli-resolver.js.map +1 -0
  41. package/dist/agent/providers/claude/session-browser-policy.d.ts +9 -0
  42. package/dist/agent/providers/claude/session-browser-policy.d.ts.map +1 -0
  43. package/dist/agent/providers/claude/session-browser-policy.js +49 -0
  44. package/dist/agent/providers/claude/session-browser-policy.js.map +1 -0
  45. package/dist/agent/providers/claude/session.d.ts +304 -0
  46. package/dist/agent/providers/claude/session.d.ts.map +1 -0
  47. package/dist/agent/providers/claude/session.js +1236 -0
  48. package/dist/agent/providers/claude/session.js.map +1 -0
  49. package/dist/agent/providers/client-factory.d.ts +60 -0
  50. package/dist/agent/providers/client-factory.d.ts.map +1 -0
  51. package/dist/agent/providers/client-factory.js +400 -0
  52. package/dist/agent/providers/client-factory.js.map +1 -0
  53. package/dist/agent/providers/openai/file-session.d.ts +19 -0
  54. package/dist/agent/providers/openai/file-session.d.ts.map +1 -0
  55. package/dist/agent/providers/openai/file-session.js +78 -0
  56. package/dist/agent/providers/openai/file-session.js.map +1 -0
  57. package/dist/agent/providers/openai/session.d.ts +55 -0
  58. package/dist/agent/providers/openai/session.d.ts.map +1 -0
  59. package/dist/agent/providers/openai/session.js +447 -0
  60. package/dist/agent/providers/openai/session.js.map +1 -0
  61. package/dist/agent/providers/openai/tools.d.ts +15 -0
  62. package/dist/agent/providers/openai/tools.d.ts.map +1 -0
  63. package/dist/agent/providers/openai/tools.js +229 -0
  64. package/dist/agent/providers/openai/tools.js.map +1 -0
  65. package/dist/agent/providers/session-types.d.ts +153 -0
  66. package/dist/agent/providers/session-types.d.ts.map +1 -0
  67. package/dist/agent/providers/session-types.js +2 -0
  68. package/dist/agent/providers/session-types.js.map +1 -0
  69. package/dist/agent/providers/system-prompt-log.d.ts +9 -0
  70. package/dist/agent/providers/system-prompt-log.d.ts.map +1 -0
  71. package/dist/agent/providers/system-prompt-log.js +46 -0
  72. package/dist/agent/providers/system-prompt-log.js.map +1 -0
  73. package/dist/agent/runtime-surface.d.ts.map +1 -1
  74. package/dist/agent/runtime-surface.js +10 -1
  75. package/dist/agent/runtime-surface.js.map +1 -1
  76. package/dist/agent/transcript-backfill.d.ts +54 -0
  77. package/dist/agent/transcript-backfill.d.ts.map +1 -0
  78. package/dist/agent/transcript-backfill.js +604 -0
  79. package/dist/agent/transcript-backfill.js.map +1 -0
  80. package/dist/agent/transcript-indexer.d.ts +200 -0
  81. package/dist/agent/transcript-indexer.d.ts.map +1 -0
  82. package/dist/agent/transcript-indexer.js +775 -0
  83. package/dist/agent/transcript-indexer.js.map +1 -0
  84. package/dist/agent/transcript-memory-migrations.d.ts +25 -0
  85. package/dist/agent/transcript-memory-migrations.d.ts.map +1 -0
  86. package/dist/agent/transcript-memory-migrations.js +87 -0
  87. package/dist/agent/transcript-memory-migrations.js.map +1 -0
  88. package/dist/agent/tunnel-credential-handler.d.ts +90 -0
  89. package/dist/agent/tunnel-credential-handler.d.ts.map +1 -0
  90. package/dist/agent/tunnel-credential-handler.js +162 -0
  91. package/dist/agent/tunnel-credential-handler.js.map +1 -0
  92. package/dist/agent/usage-backfill-handler.d.ts +18 -0
  93. package/dist/agent/usage-backfill-handler.d.ts.map +1 -0
  94. package/dist/agent/usage-backfill-handler.js +69 -0
  95. package/dist/agent/usage-backfill-handler.js.map +1 -0
  96. package/dist/agent/usage-gate.d.ts +25 -0
  97. package/dist/agent/usage-gate.d.ts.map +1 -0
  98. package/dist/agent/usage-gate.js +83 -0
  99. package/dist/agent/usage-gate.js.map +1 -0
  100. package/dist/agent/usage-handler.d.ts +7 -0
  101. package/dist/agent/usage-handler.d.ts.map +1 -0
  102. package/dist/agent/usage-handler.js +28 -0
  103. package/dist/agent/usage-handler.js.map +1 -0
  104. package/dist/agent/usage-report-builder.d.ts +26 -0
  105. package/dist/agent/usage-report-builder.d.ts.map +1 -0
  106. package/dist/agent/usage-report-builder.js +80 -0
  107. package/dist/agent/usage-report-builder.js.map +1 -0
  108. package/dist/agent/usage-report-queue.d.ts +26 -0
  109. package/dist/agent/usage-report-queue.d.ts.map +1 -0
  110. package/dist/agent/usage-report-queue.js +199 -0
  111. package/dist/agent/usage-report-queue.js.map +1 -0
  112. package/dist/agent/usage-report-types.d.ts +41 -0
  113. package/dist/agent/usage-report-types.d.ts.map +1 -0
  114. package/dist/agent/usage-report-types.js +2 -0
  115. package/dist/agent/usage-report-types.js.map +1 -0
  116. package/dist/agent/usage-reporter.d.ts +31 -0
  117. package/dist/agent/usage-reporter.d.ts.map +1 -0
  118. package/dist/agent/usage-reporter.js +102 -0
  119. package/dist/agent/usage-reporter.js.map +1 -0
  120. package/dist/agent/wake-cycle-tool-tracker.d.ts +39 -0
  121. package/dist/agent/wake-cycle-tool-tracker.d.ts.map +1 -0
  122. package/dist/agent/wake-cycle-tool-tracker.js +72 -0
  123. package/dist/agent/wake-cycle-tool-tracker.js.map +1 -0
  124. package/dist/billing/payg-handler.d.ts +29 -0
  125. package/dist/billing/payg-handler.d.ts.map +1 -0
  126. package/dist/billing/payg-handler.js +92 -0
  127. package/dist/billing/payg-handler.js.map +1 -0
  128. package/dist/billing/payment-handler.d.ts +24 -0
  129. package/dist/billing/payment-handler.d.ts.map +1 -0
  130. package/dist/billing/payment-handler.js +101 -0
  131. package/dist/billing/payment-handler.js.map +1 -0
  132. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +412 -0
  133. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +132 -0
  134. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +166 -0
  135. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +87 -0
  136. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +174 -0
  137. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +274 -0
  138. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +111 -0
  139. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +87 -0
  140. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +176 -0
  141. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +67 -0
  142. package/dist/builtin-skills/transcribe-audio/SKILL.md +122 -0
  143. package/dist/channels/web.d.ts +40 -0
  144. package/dist/channels/web.d.ts.map +1 -0
  145. package/dist/channels/web.js +137 -0
  146. package/dist/channels/web.js.map +1 -0
  147. package/dist/data-processing/convert-demo-cli.d.ts +7 -0
  148. package/dist/data-processing/convert-demo-cli.d.ts.map +1 -0
  149. package/dist/data-processing/convert-demo-cli.js +30 -0
  150. package/dist/data-processing/convert-demo-cli.js.map +1 -0
  151. package/dist/data-processing/convert-demo.d.ts +26 -0
  152. package/dist/data-processing/convert-demo.d.ts.map +1 -0
  153. package/dist/data-processing/convert-demo.js +233 -0
  154. package/dist/data-processing/convert-demo.js.map +1 -0
  155. package/dist/obs/auth.d.ts +45 -0
  156. package/dist/obs/auth.d.ts.map +1 -0
  157. package/dist/obs/auth.js +181 -0
  158. package/dist/obs/auth.js.map +1 -0
  159. package/dist/obs/mini-app/tasks.d.ts +2 -0
  160. package/dist/obs/mini-app/tasks.d.ts.map +1 -0
  161. package/dist/obs/mini-app/tasks.js +506 -0
  162. package/dist/obs/mini-app/tasks.js.map +1 -0
  163. package/dist/obs/rdp/icons/icons/app_windows.svg +4 -0
  164. package/dist/obs/rdp/icons/icons/clip_get.svg +4 -0
  165. package/dist/obs/rdp/icons/icons/clip_send.svg +4 -0
  166. package/dist/obs/rdp/icons/icons/clip_shared.svg +4 -0
  167. package/dist/obs/rdp/icons/icons/clipboard.svg +4 -0
  168. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +4 -0
  169. package/dist/obs/rdp/icons/icons/control.svg +4 -0
  170. package/dist/obs/rdp/icons/icons/desktop.svg +4 -0
  171. package/dist/obs/rdp/icons/icons/display.svg +4 -0
  172. package/dist/obs/rdp/icons/icons/launchpad.svg +4 -0
  173. package/dist/obs/rdp/icons/icons/mission_control.svg +4 -0
  174. package/dist/obs/rdp/icons/icons/screenshot.svg +4 -0
  175. package/dist/obs/rdp/icons/icons/zoom_actual.svg +4 -0
  176. package/dist/obs/rdp/icons/icons/zoom_fit.svg +4 -0
  177. package/dist/obs/rdp/icons/icons/zoom_in.svg +4 -0
  178. package/dist/obs/rdp/icons/icons/zoom_out.svg +4 -0
  179. package/dist/obs/tunnel-telemetry.d.ts +46 -0
  180. package/dist/obs/tunnel-telemetry.d.ts.map +1 -0
  181. package/dist/obs/tunnel-telemetry.js +70 -0
  182. package/dist/obs/tunnel-telemetry.js.map +1 -0
  183. package/dist/onboarding/cloudflared-cert.d.ts +15 -0
  184. package/dist/onboarding/cloudflared-cert.d.ts.map +1 -0
  185. package/dist/onboarding/cloudflared-cert.js +57 -0
  186. package/dist/onboarding/cloudflared-cert.js.map +1 -0
  187. package/dist/phonecall-credentials.d.ts +21 -0
  188. package/dist/phonecall-credentials.d.ts.map +1 -0
  189. package/dist/phonecall-credentials.js +34 -0
  190. package/dist/phonecall-credentials.js.map +1 -0
  191. package/dist/realtime/agent-bridge.d.ts +7 -0
  192. package/dist/realtime/agent-bridge.d.ts.map +1 -0
  193. package/dist/realtime/agent-bridge.js +31 -0
  194. package/dist/realtime/agent-bridge.js.map +1 -0
  195. package/dist/realtime/assets/index.html +1058 -0
  196. package/dist/realtime/assets/samples/alloy.mp3 +0 -0
  197. package/dist/realtime/assets/samples/ash.mp3 +0 -0
  198. package/dist/realtime/assets/samples/ballad.mp3 +0 -0
  199. package/dist/realtime/assets/samples/cedar.mp3 +0 -0
  200. package/dist/realtime/assets/samples/coral.mp3 +0 -0
  201. package/dist/realtime/assets/samples/echo.mp3 +0 -0
  202. package/dist/realtime/assets/samples/marin.mp3 +0 -0
  203. package/dist/realtime/assets/samples/sage.mp3 +0 -0
  204. package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
  205. package/dist/realtime/assets/samples/verse.mp3 +0 -0
  206. package/dist/realtime/context.d.ts +14 -0
  207. package/dist/realtime/context.d.ts.map +1 -0
  208. package/dist/realtime/context.js +153 -0
  209. package/dist/realtime/context.js.map +1 -0
  210. package/dist/realtime/http-helpers.d.ts +5 -0
  211. package/dist/realtime/http-helpers.d.ts.map +1 -0
  212. package/dist/realtime/http-helpers.js +29 -0
  213. package/dist/realtime/http-helpers.js.map +1 -0
  214. package/dist/realtime/index.d.ts +62 -0
  215. package/dist/realtime/index.d.ts.map +1 -0
  216. package/dist/realtime/index.js +94 -0
  217. package/dist/realtime/index.js.map +1 -0
  218. package/dist/realtime/server.d.ts +6 -0
  219. package/dist/realtime/server.d.ts.map +1 -0
  220. package/dist/realtime/server.js +479 -0
  221. package/dist/realtime/server.js.map +1 -0
  222. package/dist/realtime/telegram-auth.d.ts +2 -0
  223. package/dist/realtime/telegram-auth.d.ts.map +1 -0
  224. package/dist/realtime/telegram-auth.js +24 -0
  225. package/dist/realtime/telegram-auth.js.map +1 -0
  226. package/dist/realtime/tools.d.ts +829 -0
  227. package/dist/realtime/tools.d.ts.map +1 -0
  228. package/dist/realtime/tools.js +611 -0
  229. package/dist/realtime/tools.js.map +1 -0
  230. package/dist/realtime/types.d.ts +62 -0
  231. package/dist/realtime/types.d.ts.map +1 -0
  232. package/dist/realtime/types.js +3 -0
  233. package/dist/realtime/types.js.map +1 -0
  234. package/dist/realtime/voice-summarizer.d.ts +4 -0
  235. package/dist/realtime/voice-summarizer.d.ts.map +1 -0
  236. package/dist/realtime/voice-summarizer.js +123 -0
  237. package/dist/realtime/voice-summarizer.js.map +1 -0
  238. package/dist/realtime/websocket.d.ts +7 -0
  239. package/dist/realtime/websocket.d.ts.map +1 -0
  240. package/dist/realtime/websocket.js +65 -0
  241. package/dist/realtime/websocket.js.map +1 -0
  242. package/dist/service/gbox-tun.d.ts +14 -0
  243. package/dist/service/gbox-tun.d.ts.map +1 -0
  244. package/dist/service/gbox-tun.js +315 -0
  245. package/dist/service/gbox-tun.js.map +1 -0
  246. package/dist/skills/installed.d.ts +11 -0
  247. package/dist/skills/installed.d.ts.map +1 -0
  248. package/dist/skills/installed.js +35 -0
  249. package/dist/skills/installed.js.map +1 -0
  250. package/dist/tools/card.d.ts +11 -0
  251. package/dist/tools/card.d.ts.map +1 -0
  252. package/dist/tools/card.js +87 -0
  253. package/dist/tools/card.js.map +1 -0
  254. package/dist/tools/coordinate-resolver.d.ts +30 -0
  255. package/dist/tools/coordinate-resolver.d.ts.map +1 -0
  256. package/dist/tools/coordinate-resolver.js +104 -0
  257. package/dist/tools/coordinate-resolver.js.map +1 -0
  258. package/dist/tools/stock-data.d.ts +70 -0
  259. package/dist/tools/stock-data.d.ts.map +1 -0
  260. package/dist/tools/stock-data.js +596 -0
  261. package/dist/tools/stock-data.js.map +1 -0
  262. package/dist/tools/webapp.d.ts +30 -0
  263. package/dist/tools/webapp.d.ts.map +1 -0
  264. package/dist/tools/webapp.js +114 -0
  265. package/dist/tools/webapp.js.map +1 -0
  266. package/dist/utils/wechat-monitor.d.ts +21 -0
  267. package/dist/utils/wechat-monitor.d.ts.map +1 -0
  268. package/dist/utils/wechat-monitor.js +88 -0
  269. package/dist/utils/wechat-monitor.js.map +1 -0
  270. package/dist/webapp/index.d.ts +28 -0
  271. package/dist/webapp/index.d.ts.map +1 -0
  272. package/dist/webapp/index.js +75 -0
  273. package/dist/webapp/index.js.map +1 -0
  274. package/dist/webapp/server.d.ts +32 -0
  275. package/dist/webapp/server.d.ts.map +1 -0
  276. package/dist/webapp/server.js +375 -0
  277. package/dist/webapp/server.js.map +1 -0
  278. package/dist/webapp/storage.d.ts +64 -0
  279. package/dist/webapp/storage.d.ts.map +1 -0
  280. package/dist/webapp/storage.js +103 -0
  281. package/dist/webapp/storage.js.map +1 -0
  282. package/dist/webapp/ui.d.ts +2 -0
  283. package/dist/webapp/ui.d.ts.map +1 -0
  284. package/dist/webapp/ui.js +319 -0
  285. package/dist/webapp/ui.js.map +1 -0
  286. package/dist-agent/assets/index.html +1058 -0
  287. package/dist-agent/assets/samples/alloy.mp3 +0 -0
  288. package/dist-agent/assets/samples/ash.mp3 +0 -0
  289. package/dist-agent/assets/samples/ballad.mp3 +0 -0
  290. package/dist-agent/assets/samples/cedar.mp3 +0 -0
  291. package/dist-agent/assets/samples/coral.mp3 +0 -0
  292. package/dist-agent/assets/samples/echo.mp3 +0 -0
  293. package/dist-agent/assets/samples/marin.mp3 +0 -0
  294. package/dist-agent/assets/samples/sage.mp3 +0 -0
  295. package/dist-agent/assets/samples/shimmer.mp3 +0 -0
  296. package/dist-agent/assets/samples/verse.mp3 +0 -0
  297. package/dist-agent/bundle.cjs +13651 -17320
  298. package/dist-agent/realtime/assets/index.html +1058 -0
  299. package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
  300. package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
  301. package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
  302. package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
  303. package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
  304. package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
  305. package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
  306. package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
  307. package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
  308. package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
  309. package/package.json +1 -1
@@ -0,0 +1,506 @@
1
+ export function renderTasksHtml() {
2
+ return `<!doctype html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
7
+ <title>VisionClaw Tasks</title>
8
+ <script src="https://telegram.org/js/telegram-web-app.js"></script>
9
+ <style>
10
+ :root {
11
+ --tg-theme-bg-color: #ffffff;
12
+ --tg-theme-text-color: #000000;
13
+ --tg-theme-hint-color: #999999;
14
+ --tg-theme-secondary-bg-color: #f0f0f0;
15
+ --tg-theme-section-bg-color: #ffffff;
16
+ --tg-theme-accent-text-color: #3390ec;
17
+ }
18
+ * { margin: 0; padding: 0; box-sizing: border-box; }
19
+ body {
20
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
21
+ background: var(--tg-theme-bg-color);
22
+ color: var(--tg-theme-text-color);
23
+ padding: 0 16px 24px;
24
+ -webkit-font-smoothing: antialiased;
25
+ }
26
+ .header {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 12px;
30
+ padding: 20px 0 16px;
31
+ }
32
+ .header-icon {
33
+ width: 44px;
34
+ height: 44px;
35
+ border-radius: 12px;
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ font-size: 24px;
40
+ flex-shrink: 0;
41
+ }
42
+ .header-icon.working { background: #fff3e0; }
43
+ .header-icon.idle { background: #e8f5e9; }
44
+ .header h1 {
45
+ font-size: 20px;
46
+ font-weight: 700;
47
+ line-height: 1.2;
48
+ }
49
+ .header .subtitle {
50
+ font-size: 13px;
51
+ color: var(--tg-theme-hint-color);
52
+ margin-top: 2px;
53
+ }
54
+ .card {
55
+ background: var(--tg-theme-section-bg-color);
56
+ border-radius: 12px;
57
+ margin-bottom: 12px;
58
+ overflow: hidden;
59
+ border: 0.5px solid rgba(0,0,0,0.06);
60
+ }
61
+ .card-title {
62
+ font-size: 13px;
63
+ font-weight: 600;
64
+ text-transform: uppercase;
65
+ color: var(--tg-theme-hint-color);
66
+ padding: 16px 16px 8px;
67
+ letter-spacing: 0.5px;
68
+ }
69
+ .todo-item {
70
+ display: flex;
71
+ align-items: flex-start;
72
+ gap: 10px;
73
+ padding: 10px 16px;
74
+ font-size: 15px;
75
+ line-height: 1.4;
76
+ }
77
+ .todo-item + .todo-item {
78
+ border-top: 0.5px solid rgba(0,0,0,0.06);
79
+ }
80
+ .todo-icon {
81
+ flex-shrink: 0;
82
+ width: 22px;
83
+ height: 22px;
84
+ border-radius: 50%;
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ font-size: 12px;
89
+ margin-top: 1px;
90
+ }
91
+ .todo-icon.in_progress {
92
+ background: #e3f2fd;
93
+ color: #1565c0;
94
+ animation: pulse 2s infinite;
95
+ }
96
+ .todo-icon.completed {
97
+ background: #e8f5e9;
98
+ color: #2e7d32;
99
+ }
100
+ .todo-icon.pending {
101
+ background: var(--tg-theme-secondary-bg-color);
102
+ color: var(--tg-theme-hint-color);
103
+ }
104
+ @keyframes pulse {
105
+ 0%, 100% { opacity: 1; }
106
+ 50% { opacity: 0.5; }
107
+ }
108
+ .todo-content {
109
+ flex: 1;
110
+ }
111
+ .todo-status {
112
+ font-size: 11px;
113
+ font-weight: 600;
114
+ text-transform: uppercase;
115
+ letter-spacing: 0.3px;
116
+ margin-bottom: 2px;
117
+ }
118
+ .todo-status.in_progress { color: #1565c0; }
119
+ .todo-status.completed { color: #2e7d32; }
120
+ .todo-status.pending { color: var(--tg-theme-hint-color); }
121
+ .step-item {
122
+ display: flex;
123
+ align-items: flex-start;
124
+ gap: 10px;
125
+ padding: 10px 16px;
126
+ font-size: 14px;
127
+ line-height: 1.4;
128
+ }
129
+ .step-item + .step-item {
130
+ border-top: 0.5px solid rgba(0,0,0,0.06);
131
+ }
132
+ .step-icon {
133
+ flex-shrink: 0;
134
+ width: 28px;
135
+ height: 28px;
136
+ border-radius: 8px;
137
+ display: flex;
138
+ align-items: center;
139
+ justify-content: center;
140
+ font-size: 14px;
141
+ margin-top: 1px;
142
+ }
143
+ .step-icon.action { background: #e3f2fd; }
144
+ .step-icon.result { background: #f3e5f5; }
145
+ .step-content { flex: 1; }
146
+ .step-label {
147
+ font-size: 14px;
148
+ font-weight: 500;
149
+ color: var(--tg-theme-text-color);
150
+ }
151
+ .step-detail {
152
+ font-size: 12px;
153
+ color: var(--tg-theme-hint-color);
154
+ margin-top: 2px;
155
+ overflow: hidden;
156
+ text-overflow: ellipsis;
157
+ white-space: nowrap;
158
+ max-width: 240px;
159
+ }
160
+ .task-card-header {
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: space-between;
164
+ padding: 16px 16px 0;
165
+ }
166
+ .task-elapsed {
167
+ display: inline-flex;
168
+ align-items: center;
169
+ gap: 4px;
170
+ font-size: 12px;
171
+ font-weight: 600;
172
+ color: #e65100;
173
+ background: #fff3e0;
174
+ padding: 3px 8px;
175
+ border-radius: 12px;
176
+ }
177
+ .task-card-body {
178
+ padding: 10px 16px 14px;
179
+ }
180
+ .task-card-body .task-desc {
181
+ font-size: 15px;
182
+ line-height: 1.5;
183
+ color: var(--tg-theme-text-color);
184
+ }
185
+ .progress-shimmer {
186
+ height: 3px;
187
+ background: linear-gradient(90deg, #e3f2fd 25%, #90caf9 50%, #e3f2fd 75%);
188
+ background-size: 200% 100%;
189
+ animation: shimmer 1.5s infinite;
190
+ border-radius: 0 0 12px 12px;
191
+ }
192
+ @keyframes shimmer {
193
+ 0% { background-position: 200% 0; }
194
+ 100% { background-position: -200% 0; }
195
+ }
196
+ .subagent-item {
197
+ display: flex;
198
+ align-items: flex-start;
199
+ gap: 10px;
200
+ padding: 10px 16px;
201
+ font-size: 14px;
202
+ line-height: 1.4;
203
+ }
204
+ .subagent-item + .subagent-item {
205
+ border-top: 0.5px solid rgba(0,0,0,0.06);
206
+ }
207
+ .subagent-icon {
208
+ flex-shrink: 0;
209
+ font-size: 16px;
210
+ margin-top: 1px;
211
+ }
212
+ .subagent-desc { flex: 1; }
213
+ .subagent-status {
214
+ font-size: 11px;
215
+ font-weight: 600;
216
+ text-transform: uppercase;
217
+ }
218
+ .subagent-status.running { color: #1565c0; }
219
+ .subagent-status.completed { color: #2e7d32; }
220
+ .subagent-status.failed { color: #f44336; }
221
+ .task-desc-box {
222
+ padding: 12px 16px;
223
+ font-size: 14px;
224
+ line-height: 1.5;
225
+ }
226
+ .info-row {
227
+ display: flex;
228
+ justify-content: space-between;
229
+ padding: 10px 16px;
230
+ font-size: 15px;
231
+ }
232
+ .info-row + .info-row {
233
+ border-top: 0.5px solid rgba(0,0,0,0.06);
234
+ }
235
+ .info-label { color: var(--tg-theme-text-color); }
236
+ .info-value { color: var(--tg-theme-hint-color); }
237
+ .empty-state {
238
+ text-align: center;
239
+ padding: 48px 24px;
240
+ color: var(--tg-theme-hint-color);
241
+ }
242
+ .empty-icon { font-size: 48px; margin-bottom: 12px; }
243
+ .empty-title { font-size: 17px; font-weight: 600; color: var(--tg-theme-text-color); margin-bottom: 4px; }
244
+ .empty-desc { font-size: 14px; }
245
+ .loading {
246
+ display: flex;
247
+ align-items: center;
248
+ justify-content: center;
249
+ min-height: 200px;
250
+ color: var(--tg-theme-hint-color);
251
+ font-size: 15px;
252
+ }
253
+ .error-msg {
254
+ color: #f44336;
255
+ text-align: center;
256
+ padding: 32px 16px;
257
+ font-size: 15px;
258
+ }
259
+ @media (prefers-color-scheme: dark) {
260
+ .card { border-color: rgba(255,255,255,0.08); }
261
+ .todo-item + .todo-item,
262
+ .step-item + .step-item,
263
+ .subagent-item + .subagent-item,
264
+ .info-row + .info-row { border-color: rgba(255,255,255,0.08); }
265
+ .todo-icon.in_progress { background: #0d47a1; color: #bbdefb; }
266
+ .todo-icon.completed { background: #1b5e20; color: #c8e6c9; }
267
+ .header-icon.working { background: #e65100; }
268
+ .header-icon.idle { background: #1b5e20; }
269
+ .step-icon.action { background: #0d47a1; }
270
+ .step-icon.result { background: #4a148c; }
271
+ .task-elapsed { background: #e65100; color: #ffe0b2; }
272
+ .progress-shimmer { background: linear-gradient(90deg, #0d47a1 25%, #42a5f5 50%, #0d47a1 75%); background-size: 200% 100%; }
273
+ }
274
+ </style>
275
+ </head>
276
+ <body>
277
+ <div id="app"><div class="loading">Loading tasks…</div></div>
278
+ <script>
279
+ const tg = window.Telegram?.WebApp;
280
+ if (tg) {
281
+ tg.ready();
282
+ tg.expand();
283
+ }
284
+
285
+ const baseUrl = window.location.origin;
286
+
287
+ async function load() {
288
+ try {
289
+ const res = await fetch(baseUrl + '/mini/tasks.json');
290
+ if (!res.ok) throw new Error('Failed to load');
291
+ const d = await res.json();
292
+ render(d);
293
+ } catch (e) {
294
+ document.getElementById('app').innerHTML =
295
+ '<div class="error-msg">Failed to load tasks. Please try again.</div>';
296
+ }
297
+ }
298
+
299
+ function render(d) {
300
+ if (!d.busy && (!d.todos || d.todos.length === 0) && (!d.subagents || d.subagents.length === 0)) {
301
+ document.getElementById('app').innerHTML =
302
+ '<div class="empty-state">' +
303
+ '<div class="empty-icon">😴</div>' +
304
+ '<div class="empty-title">No Active Tasks</div>' +
305
+ '<div class="empty-desc">The agent is idle and ready for new work.</div></div>';
306
+ return;
307
+ }
308
+
309
+ const working = d.busy;
310
+ const iconClass = working ? 'working' : 'idle';
311
+ const icon = working ? '⚡' : '✅';
312
+ let elapsedStr = '';
313
+ if (working && d.elapsedMs != null) {
314
+ const sec = Math.floor(d.elapsedMs / 1000);
315
+ const m = Math.floor(sec / 60);
316
+ const s = sec % 60;
317
+ elapsedStr = m + 'm ' + s + 's';
318
+ }
319
+
320
+ let html = '<div class="header">' +
321
+ '<div class="header-icon ' + iconClass + '">' + icon + '</div>' +
322
+ '<div><h1>' + (working ? 'Working' : 'Idle') + '</h1>' +
323
+ '<div class="subtitle">' + (elapsedStr ? elapsedStr + ' elapsed' : 'Ready for tasks') + '</div></div></div>';
324
+
325
+ // Info card with task
326
+ html += '<div class="card">';
327
+ if (d.taskDescription) {
328
+ let elapsedTag = '';
329
+ if (working && d.elapsedMs != null) {
330
+ const sec = Math.floor(d.elapsedMs / 1000);
331
+ const m = Math.floor(sec / 60);
332
+ const s = sec % 60;
333
+ elapsedTag = '<span class="task-elapsed">⏱ ' + m + 'm ' + s + 's</span>';
334
+ }
335
+ html += '<div class="task-card-header">' +
336
+ '<span class="card-title" style="padding:0">Current Task</span>' +
337
+ elapsedTag + '</div>' +
338
+ '<div class="task-card-body"><div class="task-desc">' +
339
+ esc(d.taskDescription) + '</div></div>';
340
+ if (working) html += '<div class="progress-shimmer"></div>';
341
+ }
342
+ html += '</div>';
343
+
344
+ // Session details
345
+ html += '<div class="card"><div class="card-title">Session</div>';
346
+ html += '<div class="info-row"><span class="info-label">Mode</span><span class="info-value">' +
347
+ esc(d.sessionMode || '—') + '</span></div>';
348
+ html += '<div class="info-row"><span class="info-label">Queue</span><span class="info-value">' +
349
+ (d.queueSize ?? 0) + ' message' + ((d.queueSize ?? 0) === 1 ? '' : 's') + '</span></div>';
350
+ html += '</div>';
351
+
352
+ // Todo list
353
+ if (d.todos && d.todos.length > 0) {
354
+ html += '<div class="card"><div class="card-title">Todo List</div>';
355
+ for (const t of d.todos) {
356
+ const st = t.status || 'pending';
357
+ const icons = { in_progress: '●', completed: '✓', pending: '○' };
358
+ html += '<div class="todo-item">' +
359
+ '<div class="todo-icon ' + st + '">' + (icons[st] || '○') + '</div>' +
360
+ '<div class="todo-content">' +
361
+ '<div class="todo-status ' + st + '">' + st.replace('_', ' ') + '</div>' +
362
+ esc(t.content) + '</div></div>';
363
+ }
364
+ html += '</div>';
365
+ }
366
+
367
+ // Recent steps
368
+ if (d.recentActions && d.recentActions.length > 0) {
369
+ html += '<div class="card"><div class="card-title">Recent Activity</div>';
370
+ const last5 = d.recentActions.slice(-5);
371
+ for (const step of last5) {
372
+ const f = friendlyStep(step);
373
+ if (!f) continue;
374
+ html += '<div class="step-item">' +
375
+ '<div class="step-icon ' + f.type + '">' + f.icon + '</div>' +
376
+ '<div class="step-content"><div class="step-label">' + esc(f.label) + '</div>' +
377
+ (f.detail ? '<div class="step-detail">' + esc(f.detail) + '</div>' : '') +
378
+ '</div></div>';
379
+ }
380
+ html += '</div>';
381
+ }
382
+
383
+ // Subagents
384
+ if (d.subagents && d.subagents.length > 0) {
385
+ const active = d.subagents.filter(function(s) { return s.status === 'running'; });
386
+ const done = d.subagents.filter(function(s) { return s.status !== 'running'; }).slice(-3);
387
+ if (active.length > 0 || done.length > 0) {
388
+ html += '<div class="card"><div class="card-title">Subagents</div>';
389
+ for (const s of active.concat(done)) {
390
+ const sIcon = s.status === 'running' ? '🔄' : s.status === 'completed' ? '✅' : '❌';
391
+ html += '<div class="subagent-item">' +
392
+ '<span class="subagent-icon">' + sIcon + '</span>' +
393
+ '<div class="subagent-desc">' +
394
+ '<div class="subagent-status ' + s.status + '">' + s.status + '</div>' +
395
+ esc(s.description || s.subagentType || 'Subagent') +
396
+ (s.lastActivity ? '<div style="font-size:12px;color:var(--tg-theme-hint-color);margin-top:2px">' + esc(s.lastActivity) + '</div>' : '') +
397
+ '</div></div>';
398
+ }
399
+ html += '</div>';
400
+ }
401
+ }
402
+
403
+ document.getElementById('app').innerHTML = html;
404
+ }
405
+
406
+ function esc(s) {
407
+ if (!s) return '';
408
+ return s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
409
+ }
410
+
411
+ // Map raw tool-call strings to consumer-friendly labels
412
+ var toolLabels = {
413
+ 'computer_use_click': ['🖱️', 'Clicked on screen'],
414
+ 'computer_use_screenshot': ['📸', 'Took a screenshot'],
415
+ 'computer_use_type': ['⌨️', 'Typed text'],
416
+ 'computer_use_key': ['⌨️', 'Pressed keys'],
417
+ 'computer_use_scroll': ['🔄', 'Scrolled'],
418
+ 'computer_use_move': ['🖱️', 'Moved cursor'],
419
+ 'computer_use_drag': ['🖱️', 'Dragged item'],
420
+ 'notify_user': ['💬', 'Sent you a message'],
421
+ 'memory': ['🧠', 'Checked memory'],
422
+ 'manage_email': ['📧', 'Managed email'],
423
+ 'manage_calendar': ['📅', 'Managed calendar'],
424
+ 'manage_drive': ['📁', 'Managed files'],
425
+ 'manage_skills': ['🛠️', 'Managed skills'],
426
+ 'manage_mcp_servers': ['🔌', 'Managed connections'],
427
+ 'manage_totp': ['🔐', 'Handled 2FA code'],
428
+ 'wait': ['⏳', 'Waiting'],
429
+ 'finish': ['✅', 'Completed task'],
430
+ 'upgrade': ['⬆️', 'Checking for updates'],
431
+ 'switch_session': ['🔀', 'Switched session'],
432
+ 'gemini': ['✨', 'Generated content'],
433
+ 'stock_data': ['📈', 'Checked stock data'],
434
+ 'remote_desktop': ['🖥️', 'Shared desktop'],
435
+ 'memory_transcript_search': ['🔍', 'Searched history'],
436
+ 'memory_transcript_detail': ['📖', 'Reviewed history'],
437
+ 'transcribe_audio': ['🎤', 'Transcribed audio'],
438
+ 'WebFetch': ['🌐', 'Fetched webpage'],
439
+ };
440
+
441
+ function friendlyStep(raw) {
442
+ if (!raw) return null;
443
+ var isAction = raw.startsWith('→ ');
444
+ var isResult = raw.startsWith('← ');
445
+ if (!isAction && !isResult) {
446
+ return { icon: '📋', label: raw, detail: '', type: 'action' };
447
+ }
448
+ var rest = raw.substring(2);
449
+ var toolName, detail;
450
+ if (isAction) {
451
+ var paren = rest.indexOf('(');
452
+ toolName = paren > 0 ? rest.substring(0, paren) : rest;
453
+ detail = paren > 0 ? rest.substring(paren + 1).replace(/\\)$/, '') : '';
454
+ } else {
455
+ var colon = rest.indexOf(': ');
456
+ toolName = colon > 0 ? rest.substring(0, colon) : rest;
457
+ detail = colon > 0 ? rest.substring(colon + 2) : '';
458
+ }
459
+ if (toolName.startsWith('browser__')) {
460
+ var browserAction = toolName.replace('browser__', '');
461
+ var browserLabels = {
462
+ 'navigate': ['🌐', 'Opened webpage'],
463
+ 'click': ['🖱️', 'Clicked in browser'],
464
+ 'type': ['⌨️', 'Typed in browser'],
465
+ 'screenshot': ['📸', 'Captured browser'],
466
+ 'scroll': ['🔄', 'Scrolled browser'],
467
+ 'go_back': ['⬅️', 'Went back'],
468
+ 'go_forward': ['➡️', 'Went forward'],
469
+ 'wait': ['⏳', 'Waited for page'],
470
+ 'evaluate': ['⚙️', 'Ran browser script'],
471
+ };
472
+ var bl = browserLabels[browserAction];
473
+ if (bl) return { icon: bl[0], label: isResult ? bl[1] + ' — done' : bl[1], detail: detail, type: isResult ? 'result' : 'action' };
474
+ return { icon: '🌐', label: isResult ? 'Browser action done' : 'Browser action', detail: detail, type: isResult ? 'result' : 'action' };
475
+ }
476
+ if (toolName.startsWith('android_use_')) {
477
+ var androidAction = toolName.replace('android_use_', '');
478
+ var androidLabels = {
479
+ 'click': ['👆', 'Tapped on phone'],
480
+ 'type': ['⌨️', 'Typed on phone'],
481
+ 'scroll': ['🔄', 'Scrolled on phone'],
482
+ 'screenshot': ['📱', 'Captured phone screen'],
483
+ 'long_press': ['👆', 'Long pressed on phone'],
484
+ 'drag': ['👆', 'Dragged on phone'],
485
+ 'press': ['📱', 'Pressed phone button'],
486
+ 'open': ['📱', 'Opened phone app'],
487
+ };
488
+ var al = androidLabels[androidAction];
489
+ if (al) return { icon: al[0], label: isResult ? al[1] + ' — done' : al[1], detail: detail, type: isResult ? 'result' : 'action' };
490
+ return { icon: '📱', label: isResult ? 'Phone action done' : 'Phone action', detail: detail, type: isResult ? 'result' : 'action' };
491
+ }
492
+ var known = toolLabels[toolName];
493
+ if (known) {
494
+ return { icon: known[0], label: isResult ? known[1] + ' — done' : known[1], detail: detail, type: isResult ? 'result' : 'action' };
495
+ }
496
+ var humanName = toolName.replace(/_/g, ' ').replace(/\\b\\w/g, function(c) { return c.toUpperCase(); });
497
+ return { icon: isAction ? '⚙️' : '📋', label: isResult ? humanName + ' — done' : humanName, detail: detail, type: isResult ? 'result' : 'action' };
498
+ }
499
+
500
+ load();
501
+ setInterval(load, 5000);
502
+ </script>
503
+ </body>
504
+ </html>`;
505
+ }
506
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/obs/mini-app/tasks.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsfD,CAAC;AACT,CAAC"}
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>macwindow.on.rectangle</title>
3
+ <path transform="matrix(0.7202572347266881, 0, 0, 0.7202572347266881, -1.739549839228296, 48.250803858520904)" d="M19.13-5.38L23.41-5.38L23.41-2.06C23.41 5.03 27.44 9.09 34.56 9.09L75.22 9.09C81.88 9.09 85.72 5.03 85.72-2.06L85.72-28.59C85.72-35.69 81.88-39.75 75.22-39.75L70.28-39.75L70.28-43.06C70.28-50.16 66.44-54.22 59.78-54.22L19.13-54.22C12-54.22 7.97-50.16 7.97-43.06L7.97-16.53C7.97-9.41 12-5.38 19.13-5.38ZM19.13-10.41C15.19-10.41 13-12.59 13-16.53L13-43.03C13-46.97 15.19-49.16 19.13-49.16L59.09-49.16C63.03-49.16 65.22-46.97 65.22-43.03L65.22-39.75L34.56-39.75C27.44-39.75 23.41-35.69 23.41-28.59L23.41-10.41ZM34.56 4.06C30.63 4.06 28.44 1.88 28.44-2.06L28.44-28.56C28.44-32.50 30.63-34.69 34.56-34.69L74.53-34.69C78.47-34.69 80.66-32.50 80.66-28.56L80.66-2.06C80.66 1.88 78.47 4.06 74.53 4.06ZM36.91-23.69C38.41-23.69 39.63-24.97 39.63-26.41C39.63-27.84 38.41-29.13 36.91-29.13C35.41-29.13 34.19-27.84 34.19-26.41C34.19-24.97 35.41-23.69 36.91-23.69ZM45.63-23.69C47.13-23.69 48.38-24.97 48.38-26.41C48.38-27.84 47.13-29.13 45.63-29.13C44.13-29.13 42.91-27.84 42.91-26.41C42.91-24.97 44.13-23.69 45.63-23.69ZM54.38-23.69C55.88-23.69 57.09-24.97 57.09-26.41C57.09-27.84 55.88-29.13 54.38-29.13C52.88-29.13 51.66-27.84 51.66-26.41C51.66-24.97 52.88-23.69 54.38-23.69Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>tray.and.arrow.down</title>
3
+ <path transform="matrix(0.7599660729431722, 0, 0, 0.7599660729431722, -2.0559796437659035, 51.4147582697201)" d="M34.22-34.34C32.91-34.34 31.97-33.41 31.97-32.16C31.97-31.47 32.22-30.97 32.69-30.50L43-20.56C43.63-19.94 44.19-19.75 44.81-19.75C45.47-19.75 46-19.94 46.63-20.56L56.94-30.50C57.41-30.97 57.66-31.47 57.66-32.16C57.66-33.41 56.69-34.34 55.38-34.34C54.78-34.34 54.13-34.09 53.69-33.59L48.88-28.44L47.09-26.56L47.31-31.28L47.31-59.06C47.31-60.38 46.16-61.50 44.81-61.50C43.47-61.50 42.34-60.38 42.34-59.06L42.34-31.28L42.56-26.56L40.75-28.44L35.94-33.59C35.50-34.09 34.81-34.34 34.22-34.34ZM53.16-42.97L53.16-38.56L58.63-38.56C60.91-38.56 62.66-37.81 64.19-35.88L75.81-21.22C76.31-20.56 76.13-19.69 75.09-19.69L54.47-19.69C52.84-19.69 52.09-18.44 52.09-17.16L52.09-17.03C52.09-13.41 49.25-9.59 44.81-9.59C40.41-9.59 37.56-13.41 37.56-17.03L37.56-17.16C37.56-18.44 36.78-19.69 35.16-19.69L14.56-19.69C13.53-19.69 13.31-20.56 13.84-21.22L25.44-35.88C26.97-37.81 28.72-38.56 31-38.56L36.47-38.56L36.47-42.97L31.38-42.97C25.81-42.97 24.22-41.59 20.56-37.09L9.75-23.72C8.38-22.03 7.97-20.63 7.97-17.78L7.97 0.72C7.97 7.16 11.25 10.41 17.78 10.41L71.84 10.41C78.41 10.41 81.66 7.16 81.66 0.72L81.66-17.78C81.66-20.63 81.28-22.03 79.88-23.72L69.09-37.09C65.44-41.59 63.81-42.97 58.25-42.97ZM17.84 5.38C14.72 5.38 13 3.69 13 0.44L13-15.09L32.81-15.09C33.56-9.25 38.47-4.94 44.81-4.94C51.16-4.94 56.06-9.28 56.81-15.09L76.63-15.09L76.63 0.44C76.63 3.69 74.88 5.38 71.78 5.38Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>tray.and.arrow.up</title>
3
+ <path transform="matrix(0.7596439169139466, 0, 0, 0.7596439169139466, -2.0415430267062344, 52.09495548961424)" d="M44.81-20.69C46.16-20.69 47.31-21.78 47.31-23.09L47.31-51.78L47.09-56.50L48.88-54.59L53.69-49.44C54.13-48.94 54.78-48.69 55.38-48.69C56.69-48.69 57.66-49.63 57.66-50.91C57.66-51.56 57.41-52.06 56.94-52.53L46.63-62.47C46-63.09 45.47-63.31 44.81-63.31C44.19-63.31 43.63-63.09 43-62.47L32.69-52.53C32.22-52.06 31.97-51.56 31.97-50.91C31.97-49.63 32.91-48.69 34.22-48.69C34.81-48.69 35.50-48.94 35.94-49.44L40.75-54.59L42.56-56.50L42.34-51.78L42.34-23.09C42.34-21.78 43.47-20.69 44.81-20.69ZM53.16-42.97L53.16-38.56L58.63-38.56C60.91-38.56 62.66-37.81 64.19-35.88L75.81-21.22C76.31-20.56 76.13-19.69 75.09-19.69L54.47-19.69C52.84-19.69 52.09-18.44 52.09-17.16L52.09-17.03C52.09-13.41 49.25-9.59 44.81-9.59C40.41-9.59 37.56-13.41 37.56-17.03L37.56-17.16C37.56-18.44 36.78-19.69 35.16-19.69L14.56-19.69C13.53-19.69 13.31-20.56 13.84-21.22L25.44-35.88C26.97-37.81 28.72-38.56 31-38.56L36.47-38.56L36.47-42.97L31.38-42.97C25.81-42.97 24.22-41.59 20.56-37.09L9.75-23.72C8.38-22.03 7.97-20.63 7.97-17.78L7.97 0.72C7.97 7.16 11.25 10.41 17.78 10.41L71.84 10.41C78.41 10.41 81.66 7.16 81.66 0.72L81.66-17.78C81.66-20.63 81.28-22.03 79.88-23.72L69.09-37.09C65.44-41.59 63.81-42.97 58.25-42.97ZM17.84 5.38C14.72 5.38 13 3.69 13 0.44L13-15.09L32.81-15.09C33.56-9.25 38.47-4.94 44.81-4.94C51.16-4.94 56.06-9.28 56.81-15.09L76.63-15.09L76.63 0.44C76.63 3.69 74.88 5.38 71.78 5.38Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>document.on.clipboard</title>
3
+ <path transform="matrix(0.712241653418124, 0, 0, 0.712241653418124, 3.565977742448334, 48.092209856915744)" d="M7.97 6.91C7.97 13.44 11.19 16.72 17.66 16.72L47.03 16.72C53.50 16.72 56.72 13.41 56.72 6.91L56.72 1.13L62.19 1.13C68.63 1.13 71.88-2.19 71.88-8.69L71.88-52.09C71.88-58.59 68.63-61.91 62.19-61.91L32.81-61.91C26.38-61.91 23.13-58.63 23.13-52.09L23.13-46.31L17.66-46.31C11.22-46.31 7.97-43.03 7.97-36.50ZM39.88-51.19C38.50-51.19 37.88-52.09 37.88-53.03L37.88-53.69C37.88-54.66 38.50-55.53 39.88-55.53L55.13-55.53C56.47-55.53 57.13-54.66 57.13-53.69L57.13-53.03C57.13-52.09 56.47-51.19 55.13-51.19ZM13 6.81L13-36.44C13-39.50 14.66-41.28 17.91-41.28L28.16-41.28L28.16-23.16C28.16-19.22 30.16-17.25 34.03-17.25L51.69-17.25L51.69 6.81C51.69 9.94 50 11.69 46.78 11.69L17.88 11.69C14.66 11.69 13 9.94 13 6.81ZM34.63-21.97C33.38-21.97 32.88-22.47 32.88-23.72L32.88-40.13L50.72-21.97Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>document.on.clipboard</title>
3
+ <path transform="matrix(0.712241653418124, 0, 0, 0.712241653418124, 3.565977742448334, 48.092209856915744)" d="M7.97 6.91C7.97 13.44 11.19 16.72 17.66 16.72L47.03 16.72C53.50 16.72 56.72 13.41 56.72 6.91L56.72 1.13L62.19 1.13C68.63 1.13 71.88-2.19 71.88-8.69L71.88-52.09C71.88-58.59 68.63-61.91 62.19-61.91L32.81-61.91C26.38-61.91 23.13-58.63 23.13-52.09L23.13-46.31L17.66-46.31C11.22-46.31 7.97-43.03 7.97-36.50ZM39.88-51.19C38.50-51.19 37.88-52.09 37.88-53.03L37.88-53.69C37.88-54.66 38.50-55.53 39.88-55.53L55.13-55.53C56.47-55.53 57.13-54.66 57.13-53.69L57.13-53.03C57.13-52.09 56.47-51.19 55.13-51.19ZM13 6.81L13-36.44C13-39.50 14.66-41.28 17.91-41.28L28.16-41.28L28.16-23.16C28.16-19.22 30.16-17.25 34.03-17.25L51.69-17.25L51.69 6.81C51.69 9.94 50 11.69 46.78 11.69L17.88 11.69C14.66 11.69 13 9.94 13 6.81ZM34.63-21.97C33.38-21.97 32.88-22.47 32.88-23.72L32.88-40.13L50.72-21.97Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>arrow.trianglehead.2.clockwise.rotate.90.page.on.clipboard</title>
3
+ <path transform="matrix(0.712241653418124, 0, 0, 0.712241653418124, 3.565977742448334, 48.092209856915744)" d="M7.97 6.91C7.97 13.44 11.19 16.72 17.66 16.72L47.03 16.72C53.50 16.72 56.72 13.41 56.72 6.91L56.72 1.13L62.19 1.13C68.63 1.13 71.88-2.19 71.88-8.69L71.88-52.09C71.88-58.59 68.63-61.91 62.19-61.91L32.81-61.91C26.38-61.91 23.13-58.63 23.13-52.09L23.13-46.31L17.66-46.31C11.19-46.31 7.97-43.06 7.97-36.50ZM37.88-53.03L37.88-53.69C37.88-54.66 38.50-55.53 39.88-55.53L55.13-55.53C56.47-55.53 57.13-54.66 57.13-53.69L57.13-53.03C57.13-52.09 56.47-51.19 55.13-51.19L39.88-51.19C38.50-51.19 37.88-52.09 37.88-53.03ZM13 6.81L13-36.44C13-39.53 14.66-41.28 17.88-41.28L46.78-41.28C50-41.28 51.69-39.53 51.69-36.44L51.69 6.81C51.69 9.94 50 11.69 46.78 11.69L17.88 11.69C14.66 11.69 13 9.94 13 6.81ZM32.44-28.56C29.19-28.56 26.19-27.41 24.09-25.69C22.88-24.78 22.84-23.50 23.44-22.72C24-22 25.13-21.72 26.38-22.59C28-23.88 30.06-24.72 32.44-24.72C37.13-24.72 41.06-21.41 42.06-17L39.88-17C38.72-17 38.47-15.91 39.09-15.03L43.09-9.50C43.75-8.59 44.88-8.53 45.56-9.50L49.50-15.03C50.13-15.91 49.84-17 48.75-17L46-17C44.94-23.56 39.25-28.56 32.44-28.56ZM16.09-12.63L18.84-12.63C19.91-6.06 25.59-1.06 32.44-1.06C35.66-1.06 38.66-2.22 40.75-3.94C41.97-4.84 42-6.13 41.41-6.91C40.84-7.63 39.72-7.91 38.47-7.03C36.84-5.75 34.78-4.91 32.44-4.91C27.72-4.91 23.78-8.22 22.78-12.63L24.97-12.63C26.13-12.63 26.38-13.72 25.75-14.59L21.75-20.13C21.09-21.03 19.97-21.09 19.28-20.13L15.34-14.59C14.72-13.72 15-12.63 16.09-12.63Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41 38" width="41" height="38">
2
+ <title>cursorarrow.square</title>
3
+ <image width="41" height="38" href="data:image/png;base64,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nXSenQxGYEf1xCcJnp3gmtz3z3A3GowOHZla4Hxt2WQirb7tParPp/enINCVgH81c7Ni9bnY5PF3umo8+0lb4O3BE8uT0heI8un/KQi0LeC/WJYrmiTDcdt+pO2GU38eAi9sYXJ5wvksKH+n2ERBQSBawH/+vl/hS02MS3BNly2NbjD15StwQ0uTzJP0fsVHFbsoKAg0FfB7jR9Q3KdomgTn2/7nqnt9BWWWQMm/uTxFDqfPsmjr7o9U8dcU1ytuV/j9Sl+u1EcBEeemVDWUAQj4tegE5aNEv7+4ROE/pX9Hsaui7fLP2sGJbe8kt/pLTpCba7CcrNbLbdBoLwItCPjL5t9sod6sqyz5S84/08hdmPXo0XgEYgT8dhPJcYxlyQnSHB9S8GfumInBoqIEPlhUb2t0tvQEeZOszq3hxaoIDE3A743zl9Q8o1rye5AVyY66c6Nig2oBtwgUJHCw+npFQf2t1dW1a609zJUfULf8qTLndxzm+NKr+QXO1FMfn/9pnuEIctUcsMN/KfZnSiBQiMAd6ufuihWF9Heqbpb+HmSF5i/PHqu4q1rALQIDFvAJVo5WkBzXMMgkyGeBfCblwxQ/f3YR9xAYnIC/teGzj183uJ610CES5CiqP6x5rYIkOerCo2EI+FwBb1dcNIzutN8L3oMcb7yHFl+q8E++KAgMQeARdeIYxcVD6ExXfeAIcry0L6Wwr+Lq8U+zFIGsBHw+gAMUJMeaw8bXfOYH85/ZZytWKnyeR6yEQMlO4Ay1+EjF8uxaToOzEfDZVPxrA3/aTWCQwxy4RnP1AAUFgc4EfEGjSxR+szuHFwltLG+crtXc5HLEQogofEgzneL22syfBh6nWKKgINCngM9MdZ7C53T0++eUIAESZHNI//ntnyk69lZsqqAg0KaAP5H2BbYuV1ym+JbC32+kBAuQIINBVd0Oij0Vuym2nRWb675PiLF45pYT9QqCMiLwhB75Q8FHZ27v161/wOATOztuVjgx3qogIQqBggACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCOQi8P9KumlzKYrIkQAAAABJRU5ErkJggg=="/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>menubar.dock.rectangle</title>
3
+ <path transform="matrix(0.7599660729431722, 0, 0, 0.7599660729431722, -2.0559796437659035, 49.13486005089059)" d="M21.16 6.22L69.25 6.22C77.13 6.22 81.66 1.47 81.66-6.97L81.66-38.09C81.66-46.53 77.13-51.31 69.25-51.31L21.16-51.31C12.75-51.31 7.97-46.53 7.97-38.09L7.97-6.97C7.97 1.47 12.75 6.22 21.16 6.22ZM21.19-46.28L68.44-46.28C72.66-46.28 75.44-44.31 76.31-40.78L13.31-40.78C14.19-44.31 16.97-46.28 21.19-46.28ZM21.19 1.19C16 1.19 13-1.78 13-6.97L13-36.38L76.63-36.38L76.63-6.97C76.63-1.78 73.63 1.19 68.44 1.19ZM21.41-6.47C21.41-4.84 22.53-3.75 24.19-3.75L65.53-3.75C67.19-3.75 68.31-4.84 68.31-6.47L68.31-11.16C68.31-12.78 67.19-13.88 65.53-13.88L24.19-13.88C22.53-13.88 21.41-12.78 21.41-11.16Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>display</title>
3
+ <path transform="matrix(0.7516778523489933, 0, 0, 0.7516778523489933, -1.9899328859060406, 48.125838926174495)" d="M15.16-1.06L35.34-1.06L35.34 4.97L35.16 4.97C33.78 4.97 32.63 6.09 32.63 7.50C32.63 8.91 33.78 10.03 35.16 10.03L55.28 10.03C56.66 10.03 57.78 8.91 57.78 7.50C57.78 6.09 56.66 4.97 55.28 4.97L55.09 4.97L55.09-1.06L75.25-1.06C79.75-1.06 82.47-3.78 82.47-8.28L82.47-45.75C82.47-50.25 79.75-52.94 75.25-52.94L15.16-52.94C10.69-52.94 7.97-50.25 7.97-45.75L7.97-8.28C7.97-3.78 10.69-1.06 15.16-1.06ZM15.25-6.09C13.88-6.09 13-6.97 13-8.34L13-45.66C13-47.06 13.88-47.91 15.25-47.91L75.19-47.91C76.56-47.91 77.44-47.06 77.44-45.66L77.44-8.34C77.44-6.97 76.56-6.09 75.19-6.09Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>square.grid.3x3</title>
3
+ <path transform="matrix(0.9138194798572157, 0, 0, 0.9138194798572157, -3.2819989801121876, 52.66088730239674)" d="M13.38-34.91L20.28-34.91C23.69-34.91 25.69-36.91 25.69-40.44L25.69-47.09C25.69-50.63 23.69-52.63 20.28-52.63L13.38-52.63C9.97-52.63 7.97-50.63 7.97-47.09L7.97-40.44C7.97-36.91 9.97-34.91 13.38-34.91ZM35.13-34.91L42.06-34.91C45.47-34.91 47.44-36.91 47.44-40.44L47.44-47.09C47.44-50.63 45.47-52.63 42.06-52.63L35.13-52.63C31.72-52.63 29.75-50.63 29.75-47.09L29.75-40.44C29.75-36.91 31.72-34.91 35.13-34.91ZM56.94-34.91L63.84-34.91C67.25-34.91 69.25-36.91 69.25-40.44L69.25-47.09C69.25-50.63 67.25-52.63 63.84-52.63L56.94-52.63C53.53-52.63 51.53-50.63 51.53-47.09L51.53-40.44C51.53-36.91 53.53-34.91 56.94-34.91ZM13.97-39.19C12.84-39.19 12.28-39.78 12.28-40.97L12.28-46.56C12.28-47.72 12.84-48.31 13.97-48.31L19.69-48.31C20.78-48.31 21.41-47.72 21.41-46.56L21.41-40.97C21.41-39.78 20.78-39.19 19.69-39.19ZM35.72-39.19C34.59-39.19 34.03-39.78 34.03-40.97L34.03-46.56C34.03-47.72 34.59-48.31 35.72-48.31L41.47-48.31C42.56-48.31 43.16-47.72 43.16-46.56L43.16-40.97C43.16-39.78 42.56-39.19 41.47-39.19ZM57.53-39.19C56.41-39.19 55.81-39.78 55.81-40.97L55.81-46.56C55.81-47.72 56.41-48.31 57.53-48.31L63.25-48.31C64.34-48.31 64.94-47.72 64.94-46.56L64.94-40.97C64.94-39.78 64.34-39.19 63.25-39.19ZM13.38-13.75L20.28-13.75C23.69-13.75 25.69-15.72 25.69-19.25L25.69-25.94C25.69-29.47 23.69-31.47 20.28-31.47L13.38-31.47C9.97-31.47 7.97-29.47 7.97-25.94L7.97-19.25C7.97-15.72 9.97-13.75 13.38-13.75ZM35.13-13.75L42.06-13.75C45.47-13.75 47.44-15.72 47.44-19.25L47.44-25.94C47.44-29.47 45.47-31.47 42.06-31.47L35.13-31.47C31.72-31.47 29.75-29.47 29.75-25.94L29.75-19.25C29.75-15.72 31.72-13.75 35.13-13.75ZM56.94-13.75L63.84-13.75C67.25-13.75 69.25-15.72 69.25-19.25L69.25-25.94C69.25-29.47 67.25-31.47 63.84-31.47L56.94-31.47C53.53-31.47 51.53-29.47 51.53-25.94L51.53-19.25C51.53-15.72 53.53-13.75 56.94-13.75ZM13.97-18.03C12.84-18.03 12.28-18.63 12.28-19.81L12.28-25.44C12.28-26.59 12.84-27.19 13.97-27.19L19.69-27.19C20.78-27.19 21.41-26.59 21.41-25.44L21.41-19.81C21.41-18.63 20.78-18.03 19.69-18.03ZM35.72-18.03C34.59-18.03 34.03-18.63 34.03-19.81L34.03-25.44C34.03-26.59 34.59-27.19 35.72-27.19L41.47-27.19C42.56-27.19 43.16-26.59 43.16-25.44L43.16-19.81C43.16-18.63 42.56-18.03 41.47-18.03ZM57.53-18.03C56.41-18.03 55.81-18.63 55.81-19.81L55.81-25.44C55.81-26.59 56.41-27.19 57.53-27.19L63.25-27.19C64.34-27.19 64.94-26.59 64.94-25.44L64.94-19.81C64.94-18.63 64.34-18.03 63.25-18.03ZM13.38 7.41L20.28 7.41C23.69 7.41 25.69 5.41 25.69 1.88L25.69-4.78C25.69-8.31 23.69-10.31 20.28-10.31L13.38-10.31C9.97-10.31 7.97-8.31 7.97-4.78L7.97 1.88C7.97 5.41 9.97 7.41 13.38 7.41ZM35.13 7.41L42.06 7.41C45.47 7.41 47.44 5.41 47.44 1.88L47.44-4.78C47.44-8.31 45.47-10.31 42.06-10.31L35.13-10.31C31.72-10.31 29.75-8.31 29.75-4.78L29.75 1.88C29.75 5.41 31.72 7.41 35.13 7.41ZM56.94 7.41L63.84 7.41C67.25 7.41 69.25 5.41 69.25 1.88L69.25-4.78C69.25-8.31 67.25-10.31 63.84-10.31L56.94-10.31C53.53-10.31 51.53-8.31 51.53-4.78L51.53 1.88C51.53 5.41 53.53 7.41 56.94 7.41ZM13.97 3.09C12.84 3.09 12.28 2.50 12.28 1.34L12.28-4.25C12.28-5.44 12.84-6.03 13.97-6.03L19.69-6.03C20.78-6.03 21.41-5.44 21.41-4.25L21.41 1.34C21.41 2.50 20.78 3.09 19.69 3.09ZM35.72 3.09C34.59 3.09 34.03 2.50 34.03 1.34L34.03-4.25C34.03-5.44 34.59-6.03 35.72-6.03L41.47-6.03C42.56-6.03 43.16-5.44 43.16-4.25L43.16 1.34C43.16 2.50 42.56 3.09 41.47 3.09ZM57.53 3.09C56.41 3.09 55.81 2.50 55.81 1.34L55.81-4.25C55.81-5.44 56.41-6.03 57.53-6.03L63.25-6.03C64.34-6.03 64.94-5.44 64.94-4.25L64.94 1.34C64.94 2.50 64.34 3.09 63.25 3.09Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>rectangle.3.group</title>
3
+ <path transform="matrix(0.6363636363636364, 0, 0, 0.6363636363636364, -1.0710227272727275, 46.39772727272727)" d="M15.16-23.84L43.91-23.84C48.69-23.84 51.09-26.16 51.09-30.97L51.09-43.94C51.09-48.72 48.69-51.03 43.91-51.03L15.16-51.03C10.38-51.03 7.97-48.72 7.97-43.94L7.97-30.97C7.97-26.16 10.38-23.84 15.16-23.84ZM68.38 2.13L88.78 2.13C93.56 2.13 95.97-0.19 95.97-5L95.97-39.72C95.97-44.50 93.56-46.81 88.78-46.81L68.38-46.81C63.59-46.81 61.19-44.50 61.19-39.72L61.19-5C61.19-0.19 63.59 2.13 68.38 2.13ZM15.53-28.56C13.69-28.56 12.69-29.53 12.69-31.47L12.69-43.41C12.69-45.38 13.69-46.31 15.53-46.31L43.53-46.31C45.38-46.31 46.38-45.38 46.38-43.41L46.38-31.47C46.38-29.53 45.38-28.56 43.53-28.56ZM68.72-2.59C66.91-2.59 65.91-3.56 65.91-5.50L65.91-39.19C65.91-41.16 66.91-42.09 68.72-42.09L88.38-42.09C90.25-42.09 91.25-41.16 91.25-39.19L91.25-5.50C91.25-3.56 90.25-2.59 88.38-2.59ZM23.13 5.78L47.78 5.78C52.56 5.78 54.97 3.44 54.97-1.34L54.97-10.16C54.97-14.94 52.56-17.25 47.78-17.25L23.13-17.25C18.34-17.25 15.94-14.94 15.94-10.16L15.94-1.34C15.94 3.44 18.34 5.78 23.13 5.78ZM23.50 1.06C21.66 1.06 20.66 0.09 20.66-1.84L20.66-9.66C20.66-11.59 21.66-12.53 23.50-12.53L47.38-12.53C49.25-12.53 50.25-11.59 50.25-9.66L50.25-1.84C50.25 0.09 49.25 1.06 47.38 1.06Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>camera</title>
3
+ <path transform="matrix(0.7296416938110749, 0, 0, 0.7296416938110749, -1.8143322475570036, 49.18078175895765)" d="M17.78 6.25L74.91 6.25C81.41 6.25 84.72 3 84.72-3.44L84.72-36.16C84.72-42.59 81.41-45.81 74.91-45.81L65.97-45.81C63.50-45.81 62.75-46.31 61.34-47.88L58.84-50.69C57.28-52.41 55.69-53.34 52.47-53.34L40-53.34C36.78-53.34 35.19-52.41 33.63-50.69L31.13-47.88C29.72-46.34 28.94-45.81 26.50-45.81L17.78-45.81C11.25-45.81 7.97-42.59 7.97-36.16L7.97-3.44C7.97 3 11.25 6.25 17.78 6.25ZM17.84 1.22C14.78 1.22 13-0.44 13-3.69L13-35.88C13-39.13 14.78-40.78 17.84-40.78L27.75-40.78C30.56-40.78 32.09-41.31 33.66-43.06L36.09-45.81C37.88-47.81 38.81-48.31 41.56-48.31L50.91-48.31C53.66-48.31 54.59-47.81 56.38-45.81L58.81-43.06C60.38-41.31 61.91-40.78 64.72-40.78L74.81-40.78C77.91-40.78 79.69-39.13 79.69-35.88L79.69-3.69C79.69-0.44 77.91 1.22 74.81 1.22ZM46.34-3.28C55.78-3.28 63.38-10.84 63.38-20.38C63.38-29.88 55.81-37.44 46.34-37.44C36.88-37.44 29.28-29.88 29.28-20.38C29.28-10.84 36.88-3.28 46.34-3.28ZM70-29.38C72.13-29.38 73.88-31.13 73.88-33.25C73.88-35.41 72.13-37.13 70-37.13C67.84-37.13 66.13-35.41 66.13-33.25C66.13-31.13 67.84-29.38 70-29.38ZM46.34-8.03C39.56-8.03 34-13.50 34-20.38C34-27.22 39.53-32.72 46.34-32.72C53.16-32.72 58.66-27.22 58.66-20.38C58.66-13.50 53.16-8.03 46.34-8.03Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>1.magnifyingglass</title>
3
+ <path transform="matrix(0.9082615306639635, 0, 0, 0.9082615306639635, -2.258489609731373, 52.478459199189054)" d="M7.19-28.44C7.19-14.69 18.38-3.50 32.13-3.50C37.56-3.50 42.53-5.25 46.63-8.19L62 7.22C62.72 7.94 63.66 8.28 64.66 8.28C66.78 8.28 68.25 6.69 68.25 4.59C68.25 3.59 67.88 2.69 67.22 2.03L51.94-13.34C55.16-17.53 57.06-22.75 57.06-28.44C57.06-42.19 45.88-53.38 32.13-53.38C18.38-53.38 7.19-42.19 7.19-28.44ZM12.53-28.44C12.53-39.25 21.31-48.03 32.13-48.03C42.94-48.03 51.72-39.25 51.72-28.44C51.72-17.63 42.94-8.84 32.13-8.84C21.31-8.84 12.53-17.63 12.53-28.44ZM33.47-16.81C34.75-16.81 35.66-17.38 35.66-18.75L35.66-37.94C35.66-39.41 34.69-40.41 33.16-40.41C32.06-40.41 31.44-40.16 30.22-39.31L26.03-36.38C25.19-35.81 24.94-35.31 24.94-34.53C24.94-33.59 25.75-32.84 26.59-32.84C27.19-32.84 27.47-33.03 28-33.41L31.09-35.59L31.31-35.59L31.31-19.06C31.31-17.66 32.19-16.81 33.47-16.81Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>arrow.up.left.and.down.right.magnifyingglass</title>
3
+ <path transform="matrix(0.9082615306639635, 0, 0, 0.9082615306639635, -2.258489609731373, 52.478459199189054)" d="M7.19-28.44C7.19-14.69 18.38-3.50 32.13-3.50C37.56-3.50 42.53-5.25 46.63-8.19L62 7.22C62.72 7.94 63.66 8.28 64.66 8.28C66.78 8.28 68.25 6.69 68.25 4.59C68.25 3.59 67.88 2.69 67.22 2.03L51.94-13.34C55.16-17.53 57.06-22.75 57.06-28.44C57.06-42.19 45.88-53.38 32.13-53.38C18.38-53.38 7.19-42.19 7.19-28.44ZM12.53-28.44C12.53-39.25 21.31-48.03 32.13-48.03C42.94-48.03 51.72-39.25 51.72-28.44C51.72-17.63 42.94-8.84 32.13-8.84C21.31-8.84 12.53-17.63 12.53-28.44ZM23.81-28.69L26.47-31.28L34.84-22.91L32.13-20.22C31.16-19.28 31.47-17.53 33.16-17.53L41.25-17.53C42.38-17.53 43-18.25 43-19.53L43-27.22C43-28.91 41.22-29.13 40.31-28.25L37.69-25.69L29.31-34.09L32-36.72C32.97-37.66 32.66-39.41 30.97-39.41L22.88-39.41C21.75-39.41 21.13-38.69 21.13-37.41L21.13-29.72C21.13-28.03 22.91-27.81 23.81-28.69Z" fill="currentColor"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <title>plus.magnifyingglass</title>
3
+ <path transform="matrix(0.9082615306639635, 0, 0, 0.9082615306639635, -2.258489609731373, 52.478459199189054)" d="M7.19-28.44C7.19-14.69 18.38-3.50 32.13-3.50C37.56-3.50 42.53-5.25 46.63-8.19L62 7.22C62.72 7.94 63.66 8.28 64.66 8.28C66.78 8.28 68.25 6.69 68.25 4.59C68.25 3.59 67.88 2.69 67.22 2.03L51.94-13.34C55.16-17.53 57.06-22.75 57.06-28.44C57.06-42.19 45.88-53.38 32.13-53.38C18.38-53.38 7.19-42.19 7.19-28.44ZM12.53-28.44C12.53-39.25 21.31-48.03 32.13-48.03C42.94-48.03 51.72-39.25 51.72-28.44C51.72-17.63 42.94-8.84 32.13-8.84C21.31-8.84 12.53-17.63 12.53-28.44ZM24.09-26.16L29.84-26.16L29.84-20.41C29.84-19.13 30.84-18.13 32.13-18.13C33.41-18.13 34.44-19.13 34.44-20.41L34.44-26.16L40.16-26.16C41.44-26.16 42.44-27.16 42.44-28.44C42.44-29.72 41.44-30.75 40.16-30.75L34.44-30.75L34.44-36.47C34.44-37.75 33.41-38.75 32.13-38.75C30.84-38.75 29.84-37.75 29.84-36.47L29.84-30.75L24.09-30.75C22.81-30.75 21.81-29.72 21.81-28.44C21.81-27.16 22.81-26.16 24.09-26.16Z" fill="currentColor"/>
4
+ </svg>