pytron-kit 0.3.12__py3-none-macosx_11_0_universal2.whl

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 (419) hide show
  1. pytron/__init__.py +112 -0
  2. pytron/application.py +562 -0
  3. pytron/apputils/__init__.py +0 -0
  4. pytron/apputils/chrome_ipc.py +203 -0
  5. pytron/apputils/codegen.py +261 -0
  6. pytron/apputils/config.py +303 -0
  7. pytron/apputils/deadmansswitch.py +47 -0
  8. pytron/apputils/extras.py +76 -0
  9. pytron/apputils/native.py +148 -0
  10. pytron/apputils/shell.py +73 -0
  11. pytron/apputils/windows.py +286 -0
  12. pytron/cli.py +384 -0
  13. pytron/commands/__init__.py +0 -0
  14. pytron/commands/android.py +28 -0
  15. pytron/commands/build.py +26 -0
  16. pytron/commands/doctor.py +221 -0
  17. pytron/commands/engine.py +23 -0
  18. pytron/commands/frontend.py +60 -0
  19. pytron/commands/harvest.py +112 -0
  20. pytron/commands/helpers.py +239 -0
  21. pytron/commands/info.py +50 -0
  22. pytron/commands/init.py +521 -0
  23. pytron/commands/install.py +294 -0
  24. pytron/commands/login.py +130 -0
  25. pytron/commands/package.py +228 -0
  26. pytron/commands/plugin.py +442 -0
  27. pytron/commands/run.py +312 -0
  28. pytron/commands/scan.py +210 -0
  29. pytron/commands/show.py +23 -0
  30. pytron/commands/uninstall.py +150 -0
  31. pytron/commands/utils.py +42 -0
  32. pytron/commands/workflow.py +95 -0
  33. pytron/console.py +133 -0
  34. pytron/core.py +18 -0
  35. pytron/dependencies/WebView2Loader.dll +0 -0
  36. pytron/dependencies/__init__.py +1 -0
  37. pytron/dependencies/pytron_native.so +0 -0
  38. pytron/engines/chrome/adapter.py +445 -0
  39. pytron/engines/chrome/engine.py +576 -0
  40. pytron/engines/chrome/forge.py +147 -0
  41. pytron/engines/chrome/shell/package.json +8 -0
  42. pytron/engines/chrome/shell/preload.js +12 -0
  43. pytron/engines/chrome/shell/shell.js +534 -0
  44. pytron/exceptions.py +36 -0
  45. pytron/inspector.py +201 -0
  46. pytron/inspector_ui.py +512 -0
  47. pytron/installer/Installation.nsi +236 -0
  48. pytron/installer/header.bmp +0 -0
  49. pytron/installer/pytron.ico +0 -0
  50. pytron/installer/sidebar.bmp +0 -0
  51. pytron/llms.md +98 -0
  52. pytron/manifests/README.md +29 -0
  53. pytron/manifests/windows-utf8.manifest +44 -0
  54. pytron/menu.py +128 -0
  55. pytron/nsis-setup.exe +0 -0
  56. pytron/pack/__init__.py +0 -0
  57. pytron/pack/assets.py +131 -0
  58. pytron/pack/compilers.py +289 -0
  59. pytron/pack/crystal.py +297 -0
  60. pytron/pack/graph.py +377 -0
  61. pytron/pack/inference.py +157 -0
  62. pytron/pack/installers.py +402 -0
  63. pytron/pack/introspect.py +357 -0
  64. pytron/pack/metadata.py +213 -0
  65. pytron/pack/modules.py +618 -0
  66. pytron/pack/nuitka.py +108 -0
  67. pytron/pack/pipeline.py +107 -0
  68. pytron/pack/pyinstaller.py +176 -0
  69. pytron/pack/rust_engine.py +273 -0
  70. pytron/pack/secure.py +309 -0
  71. pytron/pack/secure_loader/bin/pytron_rust_bootloader +0 -0
  72. pytron/pack/secure_loader/icon.ico +0 -0
  73. pytron/pack/utils.py +110 -0
  74. pytron/pack/virtual_root.py +124 -0
  75. pytron/platforms/__init__.py +0 -0
  76. pytron/platforms/android/__init__.py +3 -0
  77. pytron/platforms/android/android.py +103 -0
  78. pytron/platforms/android/builder.py +736 -0
  79. pytron/platforms/android/ops/build.py +79 -0
  80. pytron/platforms/android/ops/init.py +63 -0
  81. pytron/platforms/android/ops/run.py +79 -0
  82. pytron/platforms/android/ops/sync.py +770 -0
  83. pytron/platforms/android/ops/utils.py +8 -0
  84. pytron/platforms/android/shell/README.md +30 -0
  85. pytron/platforms/android/shell/app/build.gradle +64 -0
  86. pytron/platforms/android/shell/app/src/main/AndroidManifest.xml +29 -0
  87. pytron/platforms/android/shell/app/src/main/assets/python/main.py +86 -0
  88. pytron/platforms/android/shell/app/src/main/assets/python/python314.zip +0 -0
  89. pytron/platforms/android/shell/app/src/main/cpp/CMakeLists.txt +25 -0
  90. pytron/platforms/android/shell/app/src/main/cpp/include/Python.h +155 -0
  91. pytron/platforms/android/shell/app/src/main/cpp/include/abstract.h +915 -0
  92. pytron/platforms/android/shell/app/src/main/cpp/include/audit.h +30 -0
  93. pytron/platforms/android/shell/app/src/main/cpp/include/bltinmodule.h +14 -0
  94. pytron/platforms/android/shell/app/src/main/cpp/include/boolobject.h +54 -0
  95. pytron/platforms/android/shell/app/src/main/cpp/include/bytearrayobject.h +44 -0
  96. pytron/platforms/android/shell/app/src/main/cpp/include/bytesobject.h +66 -0
  97. pytron/platforms/android/shell/app/src/main/cpp/include/ceval.h +145 -0
  98. pytron/platforms/android/shell/app/src/main/cpp/include/codecs.h +176 -0
  99. pytron/platforms/android/shell/app/src/main/cpp/include/compile.h +22 -0
  100. pytron/platforms/android/shell/app/src/main/cpp/include/complexobject.h +30 -0
  101. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/abstract.h +104 -0
  102. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/audit.h +8 -0
  103. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytearrayobject.h +38 -0
  104. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/bytesobject.h +42 -0
  105. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/cellobject.h +50 -0
  106. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/ceval.h +43 -0
  107. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/classobject.h +71 -0
  108. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/code.h +340 -0
  109. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/compile.h +50 -0
  110. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/complexobject.h +33 -0
  111. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/context.h +107 -0
  112. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/critical_section.h +154 -0
  113. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/descrobject.h +62 -0
  114. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/dictobject.h +105 -0
  115. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileobject.h +16 -0
  116. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/fileutils.h +16 -0
  117. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/floatobject.h +27 -0
  118. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/frameobject.h +35 -0
  119. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/funcobject.h +185 -0
  120. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/genobject.h +56 -0
  121. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/import.h +30 -0
  122. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/initconfig.h +334 -0
  123. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/listobject.h +53 -0
  124. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/lock.h +74 -0
  125. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longintrepr.h +184 -0
  126. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/longobject.h +89 -0
  127. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/memoryobject.h +50 -0
  128. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/methodobject.h +66 -0
  129. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/modsupport.h +26 -0
  130. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/monitoring.h +269 -0
  131. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/object.h +493 -0
  132. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/objimpl.h +104 -0
  133. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/odictobject.h +43 -0
  134. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/picklebufobject.h +31 -0
  135. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pthread_stubs.h +105 -0
  136. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic.h +614 -0
  137. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_gcc.h +615 -0
  138. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_msc.h +1197 -0
  139. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyatomic_std.h +1112 -0
  140. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyctype.h +39 -0
  141. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pydebug.h +38 -0
  142. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyerrors.h +132 -0
  143. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyfpe.h +15 -0
  144. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyframe.h +45 -0
  145. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pyhash.h +54 -0
  146. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pylifecycle.h +89 -0
  147. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pymem.h +84 -0
  148. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystate.h +275 -0
  149. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pystats.h +194 -0
  150. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythonrun.h +96 -0
  151. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pythread.h +43 -0
  152. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/pytime.h +27 -0
  153. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/setobject.h +71 -0
  154. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/traceback.h +13 -0
  155. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tracemalloc.h +32 -0
  156. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/tupleobject.h +40 -0
  157. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/unicodeobject.h +773 -0
  158. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/warnings.h +20 -0
  159. pytron/platforms/android/shell/app/src/main/cpp/include/cpython/weakrefobject.h +66 -0
  160. pytron/platforms/android/shell/app/src/main/cpp/include/critical_section.h +16 -0
  161. pytron/platforms/android/shell/app/src/main/cpp/include/datetime.h +267 -0
  162. pytron/platforms/android/shell/app/src/main/cpp/include/descrobject.h +100 -0
  163. pytron/platforms/android/shell/app/src/main/cpp/include/dictobject.h +108 -0
  164. pytron/platforms/android/shell/app/src/main/cpp/include/dynamic_annotations.h +499 -0
  165. pytron/platforms/android/shell/app/src/main/cpp/include/enumobject.h +17 -0
  166. pytron/platforms/android/shell/app/src/main/cpp/include/errcode.h +45 -0
  167. pytron/platforms/android/shell/app/src/main/cpp/include/exports.h +105 -0
  168. pytron/platforms/android/shell/app/src/main/cpp/include/fileobject.h +41 -0
  169. pytron/platforms/android/shell/app/src/main/cpp/include/fileutils.h +62 -0
  170. pytron/platforms/android/shell/app/src/main/cpp/include/floatobject.h +54 -0
  171. pytron/platforms/android/shell/app/src/main/cpp/include/frameobject.h +20 -0
  172. pytron/platforms/android/shell/app/src/main/cpp/include/genericaliasobject.h +14 -0
  173. pytron/platforms/android/shell/app/src/main/cpp/include/import.h +103 -0
  174. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/atomic.h +392 -0
  175. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/internal.h +969 -0
  176. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/prim.h +329 -0
  177. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/track.h +147 -0
  178. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc/types.h +721 -0
  179. pytron/platforms/android/shell/app/src/main/cpp/include/internal/mimalloc/mimalloc.h +565 -0
  180. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_abstract.h +61 -0
  181. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_asdl.h +112 -0
  182. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast.h +945 -0
  183. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ast_state.h +271 -0
  184. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_atexit.h +31 -0
  185. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_audit.h +35 -0
  186. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_backoff.h +133 -0
  187. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bitutils.h +186 -0
  188. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_blocks_output_buffer.h +321 -0
  189. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_brc.h +73 -0
  190. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytes_methods.h +82 -0
  191. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_bytesobject.h +149 -0
  192. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_c_array.h +39 -0
  193. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_call.h +206 -0
  194. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_capsule.h +17 -0
  195. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_cell.h +75 -0
  196. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval.h +390 -0
  197. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ceval_state.h +48 -0
  198. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_code.h +671 -0
  199. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_codecs.h +76 -0
  200. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_compile.h +230 -0
  201. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_complexobject.h +34 -0
  202. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_condvar.h +93 -0
  203. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_context.h +59 -0
  204. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_critical_section.h +237 -0
  205. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp.h +406 -0
  206. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_crossinterp_data_registry.h +41 -0
  207. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_debug_offsets.h +379 -0
  208. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_descrobject.h +28 -0
  209. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict.h +410 -0
  210. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dict_state.h +28 -0
  211. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_dtoa.h +40 -0
  212. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_signal.h +30 -0
  213. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_emscripten_trampoline.h +70 -0
  214. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_exceptions.h +40 -0
  215. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_faulthandler.h +100 -0
  216. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils.h +320 -0
  217. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_fileutils_windows.h +98 -0
  218. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_floatobject.h +49 -0
  219. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_flowgraph.h +47 -0
  220. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_format.h +27 -0
  221. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_frame.h +61 -0
  222. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist.h +111 -0
  223. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_freelist_state.h +70 -0
  224. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_function.h +53 -0
  225. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gc.h +378 -0
  226. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_genobject.h +43 -0
  227. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_getopt.h +22 -0
  228. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_gil.h +66 -0
  229. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects.h +34 -0
  230. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_objects_fini_generated.h +1592 -0
  231. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_global_strings.h +854 -0
  232. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hamt.h +113 -0
  233. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_hashtable.h +150 -0
  234. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_import.h +141 -0
  235. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_importdl.h +139 -0
  236. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_index_pool.h +36 -0
  237. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_initconfig.h +197 -0
  238. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruction_sequence.h +83 -0
  239. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_instruments.h +127 -0
  240. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp.h +109 -0
  241. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interp_structs.h +977 -0
  242. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe.h +401 -0
  243. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpframe_structs.h +95 -0
  244. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_interpolation.h +26 -0
  245. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_intrinsics.h +51 -0
  246. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_jit.h +29 -0
  247. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_list.h +81 -0
  248. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_llist.h +106 -0
  249. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_lock.h +236 -0
  250. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_long.h +319 -0
  251. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_magic_number.h +305 -0
  252. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_memoryobject.h +20 -0
  253. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_mimalloc.h +69 -0
  254. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_modsupport.h +99 -0
  255. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_moduleobject.h +62 -0
  256. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_namespace.h +21 -0
  257. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object.h +1029 -0
  258. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_alloc.h +71 -0
  259. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_deferred.h +32 -0
  260. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_stack.h +95 -0
  261. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_object_state.h +49 -0
  262. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc.h +702 -0
  263. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_obmalloc_init.h +66 -0
  264. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_metadata.h +2117 -0
  265. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_opcode_utils.h +90 -0
  266. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_optimizer.h +318 -0
  267. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parking_lot.h +97 -0
  268. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_parser.h +78 -0
  269. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pathconfig.h +26 -0
  270. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyarena.h +68 -0
  271. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyatomic_ft_wrappers.h +174 -0
  272. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pybuffer.h +21 -0
  273. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyerrors.h +213 -0
  274. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pyhash.h +91 -0
  275. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pylifecycle.h +136 -0
  276. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymath.h +205 -0
  277. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem.h +145 -0
  278. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pymem_init.h +103 -0
  279. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystate.h +339 -0
  280. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pystats.h +21 -0
  281. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythonrun.h +68 -0
  282. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_pythread.h +172 -0
  283. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_qsbr.h +172 -0
  284. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_range.h +21 -0
  285. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime.h +63 -0
  286. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init.h +239 -0
  287. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_init_generated.h +1589 -0
  288. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_runtime_structs.h +310 -0
  289. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_semaphore.h +67 -0
  290. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_setobject.h +41 -0
  291. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_signal.h +108 -0
  292. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sliceobject.h +20 -0
  293. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stackref.h +791 -0
  294. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_stats.h +97 -0
  295. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_strhex.h +39 -0
  296. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structs.h +88 -0
  297. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_structseq.h +40 -0
  298. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_symtable.h +201 -0
  299. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_sysmodule.h +32 -0
  300. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_template.h +26 -0
  301. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_time.h +334 -0
  302. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_token.h +110 -0
  303. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_traceback.h +111 -0
  304. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tracemalloc.h +164 -0
  305. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tstate.h +88 -0
  306. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_tuple.h +75 -0
  307. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typedefs.h +18 -0
  308. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typeobject.h +155 -0
  309. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_typevarobject.h +28 -0
  310. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_ucnhash.h +36 -0
  311. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject.h +308 -0
  312. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unicodeobject_generated.h +3132 -0
  313. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_unionobject.h +26 -0
  314. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uniqueid.h +57 -0
  315. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_ids.h +335 -0
  316. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_uop_metadata.h +1204 -0
  317. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_warnings.h +21 -0
  318. pytron/platforms/android/shell/app/src/main/cpp/include/internal/pycore_weakref.h +133 -0
  319. pytron/platforms/android/shell/app/src/main/cpp/include/intrcheck.h +23 -0
  320. pytron/platforms/android/shell/app/src/main/cpp/include/iterobject.h +24 -0
  321. pytron/platforms/android/shell/app/src/main/cpp/include/listobject.h +55 -0
  322. pytron/platforms/android/shell/app/src/main/cpp/include/lock.h +16 -0
  323. pytron/platforms/android/shell/app/src/main/cpp/include/longobject.h +178 -0
  324. pytron/platforms/android/shell/app/src/main/cpp/include/marshal.h +31 -0
  325. pytron/platforms/android/shell/app/src/main/cpp/include/memoryobject.h +34 -0
  326. pytron/platforms/android/shell/app/src/main/cpp/include/methodobject.h +146 -0
  327. pytron/platforms/android/shell/app/src/main/cpp/include/modsupport.h +146 -0
  328. pytron/platforms/android/shell/app/src/main/cpp/include/moduleobject.h +122 -0
  329. pytron/platforms/android/shell/app/src/main/cpp/include/monitoring.h +18 -0
  330. pytron/platforms/android/shell/app/src/main/cpp/include/object.h +828 -0
  331. pytron/platforms/android/shell/app/src/main/cpp/include/objimpl.h +211 -0
  332. pytron/platforms/android/shell/app/src/main/cpp/include/opcode.h +43 -0
  333. pytron/platforms/android/shell/app/src/main/cpp/include/opcode_ids.h +259 -0
  334. pytron/platforms/android/shell/app/src/main/cpp/include/osdefs.h +57 -0
  335. pytron/platforms/android/shell/app/src/main/cpp/include/osmodule.h +17 -0
  336. pytron/platforms/android/shell/app/src/main/cpp/include/patchlevel.h +49 -0
  337. pytron/platforms/android/shell/app/src/main/cpp/include/py_curses.h +117 -0
  338. pytron/platforms/android/shell/app/src/main/cpp/include/pyatomic.h +16 -0
  339. pytron/platforms/android/shell/app/src/main/cpp/include/pybuffer.h +145 -0
  340. pytron/platforms/android/shell/app/src/main/cpp/include/pycapsule.h +58 -0
  341. pytron/platforms/android/shell/app/src/main/cpp/include/pyconfig.h +2088 -0
  342. pytron/platforms/android/shell/app/src/main/cpp/include/pydtrace.h +59 -0
  343. pytron/platforms/android/shell/app/src/main/cpp/include/pyerrors.h +335 -0
  344. pytron/platforms/android/shell/app/src/main/cpp/include/pyexpat.h +62 -0
  345. pytron/platforms/android/shell/app/src/main/cpp/include/pyframe.h +26 -0
  346. pytron/platforms/android/shell/app/src/main/cpp/include/pyhash.h +59 -0
  347. pytron/platforms/android/shell/app/src/main/cpp/include/pylifecycle.h +80 -0
  348. pytron/platforms/android/shell/app/src/main/cpp/include/pymacconfig.h +91 -0
  349. pytron/platforms/android/shell/app/src/main/cpp/include/pymacro.h +243 -0
  350. pytron/platforms/android/shell/app/src/main/cpp/include/pymath.h +65 -0
  351. pytron/platforms/android/shell/app/src/main/cpp/include/pymem.h +110 -0
  352. pytron/platforms/android/shell/app/src/main/cpp/include/pyport.h +710 -0
  353. pytron/platforms/android/shell/app/src/main/cpp/include/pystate.h +132 -0
  354. pytron/platforms/android/shell/app/src/main/cpp/include/pystats.h +28 -0
  355. pytron/platforms/android/shell/app/src/main/cpp/include/pystrcmp.h +23 -0
  356. pytron/platforms/android/shell/app/src/main/cpp/include/pystrtod.h +37 -0
  357. pytron/platforms/android/shell/app/src/main/cpp/include/pythonrun.h +42 -0
  358. pytron/platforms/android/shell/app/src/main/cpp/include/pythread.h +131 -0
  359. pytron/platforms/android/shell/app/src/main/cpp/include/pytypedefs.h +30 -0
  360. pytron/platforms/android/shell/app/src/main/cpp/include/rangeobject.h +27 -0
  361. pytron/platforms/android/shell/app/src/main/cpp/include/refcount.h +555 -0
  362. pytron/platforms/android/shell/app/src/main/cpp/include/setobject.h +49 -0
  363. pytron/platforms/android/shell/app/src/main/cpp/include/sliceobject.h +69 -0
  364. pytron/platforms/android/shell/app/src/main/cpp/include/structmember.h +56 -0
  365. pytron/platforms/android/shell/app/src/main/cpp/include/structseq.h +46 -0
  366. pytron/platforms/android/shell/app/src/main/cpp/include/sysmodule.h +27 -0
  367. pytron/platforms/android/shell/app/src/main/cpp/include/traceback.h +26 -0
  368. pytron/platforms/android/shell/app/src/main/cpp/include/tupleobject.h +46 -0
  369. pytron/platforms/android/shell/app/src/main/cpp/include/typeslots.h +96 -0
  370. pytron/platforms/android/shell/app/src/main/cpp/include/unicodeobject.h +1029 -0
  371. pytron/platforms/android/shell/app/src/main/cpp/include/warnings.h +45 -0
  372. pytron/platforms/android/shell/app/src/main/cpp/include/weakrefobject.h +46 -0
  373. pytron/platforms/android/shell/app/src/main/cpp/pytron_bridge.cpp +224 -0
  374. pytron/platforms/android/shell/app/src/main/java/com/pytron/shell/MainActivity.kt +208 -0
  375. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  376. pytron/platforms/android/shell/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  377. pytron/platforms/android/shell/build.gradle +11 -0
  378. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.jar +0 -0
  379. pytron/platforms/android/shell/gradle/wrapper/gradle-wrapper.properties +5 -0
  380. pytron/platforms/android/shell/gradle.properties +2 -0
  381. pytron/platforms/android/shell/gradlew.bat +85 -0
  382. pytron/platforms/android/shell/settings.gradle +16 -0
  383. pytron/platforms/darwin.py +82 -0
  384. pytron/platforms/darwin_ops/libs.py +31 -0
  385. pytron/platforms/darwin_ops/system.py +182 -0
  386. pytron/platforms/darwin_ops/utils.py +85 -0
  387. pytron/platforms/darwin_ops/webview.py +5 -0
  388. pytron/platforms/darwin_ops/window.py +102 -0
  389. pytron/platforms/interface.py +152 -0
  390. pytron/platforms/linux.py +82 -0
  391. pytron/platforms/linux_ops/libs.py +49 -0
  392. pytron/platforms/linux_ops/system.py +316 -0
  393. pytron/platforms/linux_ops/utils.py +19 -0
  394. pytron/platforms/linux_ops/webview.py +5 -0
  395. pytron/platforms/linux_ops/window.py +115 -0
  396. pytron/platforms/windows.py +136 -0
  397. pytron/platforms/windows_ops/__init__.py +0 -0
  398. pytron/platforms/windows_ops/constants.py +126 -0
  399. pytron/platforms/windows_ops/system.py +518 -0
  400. pytron/platforms/windows_ops/utils.py +3 -0
  401. pytron/platforms/windows_ops/webview.py +5 -0
  402. pytron/platforms/windows_ops/window.py +361 -0
  403. pytron/plugin.py +467 -0
  404. pytron/rcedit-x64.exe +0 -0
  405. pytron/router.py +146 -0
  406. pytron/serializer.py +240 -0
  407. pytron/shortcuts.py +279 -0
  408. pytron/state.py +76 -0
  409. pytron/tray.py +399 -0
  410. pytron/updater.py +181 -0
  411. pytron/utf8_hook.py +112 -0
  412. pytron/utils.py +44 -0
  413. pytron/webview.py +722 -0
  414. pytron_kit-0.3.12.dist-info/METADATA +131 -0
  415. pytron_kit-0.3.12.dist-info/RECORD +419 -0
  416. pytron_kit-0.3.12.dist-info/WHEEL +5 -0
  417. pytron_kit-0.3.12.dist-info/entry_points.txt +2 -0
  418. pytron_kit-0.3.12.dist-info/licenses/LICENSE +201 -0
  419. pytron_kit-0.3.12.dist-info/top_level.txt +1 -0
pytron/inspector_ui.py ADDED
@@ -0,0 +1,512 @@
1
+ INSPECTOR_HTML = r"""
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Pytron Inspector</title>
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap" rel="stylesheet">
11
+ <style>
12
+ :root {
13
+ --bg: #0d1117;
14
+ --surface: #161b22;
15
+ --border: #30363d;
16
+ --text: #c9d1d9;
17
+ --text-dim: #8b949e;
18
+ --accent: #58a6ff;
19
+ --success: #3fb950;
20
+ --error: #f85149;
21
+ --warning: #d29922;
22
+ --header-h: 40px; /* Slimmer header like Chrome DevTools */
23
+ }
24
+
25
+ * { box-sizing: border-box; }
26
+ body {
27
+ margin: 0;
28
+ padding: 0;
29
+ background: var(--bg);
30
+ color: var(--text);
31
+ font-family: 'Inter', -apple-system, sans-serif;
32
+ overflow: hidden;
33
+ display: flex;
34
+ flex-direction: column;
35
+ height: 100vh;
36
+ }
37
+
38
+ /* Tabs bar - Chrome Style */
39
+ header {
40
+ height: var(--header-h);
41
+ background: #1f2428;
42
+ border-bottom: 1px solid var(--border);
43
+ display: flex;
44
+ align-items: center;
45
+ padding: 0;
46
+ user-select: none;
47
+ }
48
+
49
+ .brand {
50
+ padding: 0 16px;
51
+ font-weight: 700;
52
+ font-size: 11px;
53
+ color: var(--text-dim);
54
+ text-transform: uppercase;
55
+ letter-spacing: 1px;
56
+ border-right: 1px solid var(--border);
57
+ height: 100%;
58
+ display: flex;
59
+ align-items: center;
60
+ }
61
+
62
+ nav {
63
+ display: flex;
64
+ height: 100%;
65
+ }
66
+
67
+ .nav-item {
68
+ padding: 0 16px;
69
+ display: flex;
70
+ align-items: center;
71
+ font-size: 12px;
72
+ cursor: pointer;
73
+ color: var(--text-dim);
74
+ border-right: 1px solid transparent;
75
+ border-left: 1px solid transparent;
76
+ height: 100%;
77
+ transition: all 0.1s;
78
+ }
79
+
80
+ .nav-item:hover { color: var(--text); background: rgba(255,255,255,0.05); }
81
+ .nav-item.active {
82
+ color: var(--text);
83
+ background: var(--bg);
84
+ border-left: 1px solid var(--border);
85
+ border-right: 1px solid var(--border);
86
+ border-bottom: 1px solid var(--bg);
87
+ margin-bottom: -1px;
88
+ z-index: 10;
89
+ }
90
+
91
+ main {
92
+ flex: 1;
93
+ overflow: hidden;
94
+ position: relative;
95
+ }
96
+
97
+ .view {
98
+ display: none;
99
+ height: 100%;
100
+ width: 100%;
101
+ overflow: auto;
102
+ }
103
+
104
+ .view.active { display: flex; flex-direction: column; }
105
+
106
+ /* Generic Container */
107
+ .content-padding { padding: 16px; }
108
+
109
+ /* Dashboard Grid */
110
+ .dashboard-grid {
111
+ display: grid;
112
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
113
+ gap: 16px;
114
+ padding: 16px;
115
+ }
116
+
117
+ .card {
118
+ background: var(--surface);
119
+ border: 1px solid var(--border);
120
+ border-radius: 4px;
121
+ padding: 12px;
122
+ }
123
+
124
+ .card-title {
125
+ font-size: 11px;
126
+ font-weight: 700;
127
+ color: var(--text-dim);
128
+ text-transform: uppercase;
129
+ margin-bottom: 12px;
130
+ display: flex;
131
+ justify-content: space-between;
132
+ align-items: center;
133
+ }
134
+
135
+ .stat-row {
136
+ display: flex;
137
+ justify-content: space-between;
138
+ margin-bottom: 6px;
139
+ font-size: 12px;
140
+ }
141
+
142
+ .stat-val { font-weight: 600; color: var(--accent); font-family: 'Fira Code', monospace; }
143
+
144
+ /* Badges */
145
+ .badge {
146
+ font-size: 10px;
147
+ padding: 1px 6px;
148
+ border-radius: 10px;
149
+ font-weight: 600;
150
+ text-transform: uppercase;
151
+ }
152
+ .badge-success { background: rgba(63, 185, 80, 0.15); color: var(--success); border: 1px solid rgba(63, 185, green, 0.2); }
153
+ .badge-error { background: rgba(248, 81, 73, 0.15); color: var(--error); border: 1px solid rgba(248, 81, 73, 0.2); }
154
+
155
+ /* Console Style REPL & Logs */
156
+ .console-container {
157
+ flex: 1;
158
+ background: var(--bg);
159
+ display: flex;
160
+ flex-direction: column;
161
+ overflow: hidden;
162
+ }
163
+
164
+ .console-output {
165
+ flex: 1;
166
+ overflow-y: auto;
167
+ font-family: 'Fira Code', monospace;
168
+ font-size: 12px;
169
+ padding: 8px;
170
+ border-bottom: 1px solid var(--border);
171
+ }
172
+
173
+ .console-line {
174
+ padding: 3px 6px;
175
+ border-bottom: 1px solid rgba(255,255,255,0.02);
176
+ display: flex;
177
+ gap: 8px;
178
+ }
179
+ .console-line:hover { background: rgba(255,255,255,0.02); }
180
+ .line-time { color: var(--text-dim); min-width: 65px; }
181
+ .line-level { font-weight: 700; min-width: 50px; }
182
+ .level-DEBUG { color: var(--text-dim); }
183
+ .level-INFO { color: var(--accent); }
184
+ .level-WARNING { color: var(--warning); }
185
+ .level-ERROR { color: var(--error); }
186
+
187
+ .console-input-area {
188
+ height: 32px;
189
+ background: var(--surface);
190
+ display: flex;
191
+ align-items: center;
192
+ padding: 0 8px;
193
+ gap: 8px;
194
+ }
195
+ .console-prompt { color: var(--accent); font-weight: 700; font-size: 13px; margin-top: -2px; }
196
+ .console-input {
197
+ flex: 1;
198
+ background: transparent;
199
+ border: none;
200
+ color: var(--text);
201
+ font-family: 'Fira Code', monospace;
202
+ font-size: 12px;
203
+ outline: none;
204
+ }
205
+
206
+ /* IPC List */
207
+ .ipc-table { width: 100%; border-collapse: collapse; font-family: 'Fira Code', monospace; font-size: 11px; }
208
+ .ipc-table th { text-align: left; padding: 6px 12px; background: #1f2428; color: var(--text-dim); border-bottom: 1px solid var(--border); }
209
+ .ipc-table td { padding: 4px 12px; border-bottom: 1px solid var(--border); }
210
+ .ipc-status-ok { color: var(--success); }
211
+ .ipc-status-err { color: var(--error); }
212
+
213
+ /* Utility */
214
+ .btn { background: var(--border); border: 1px solid #444c56; color: var(--text); font-size: 11px; padding: 2px 8px; border-radius: 3px; cursor: pointer; }
215
+ .btn:hover { background: #444c56; }
216
+
217
+ ::-webkit-scrollbar { width: 10px; height: 10px; }
218
+ ::-webkit-scrollbar-track { background: transparent; }
219
+ ::-webkit-scrollbar-thumb { background: #30363d; border-radius: 5px; border: 2px solid var(--bg); }
220
+ ::-webkit-scrollbar-thumb:hover { background: #484f58; }
221
+
222
+ /* State Tree */
223
+ .tree-node { margin-left: 12px; border-left: 1px solid rgba(255,255,255,0.05); padding-left: 8px; }
224
+ .tree-header { cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 1px 0; }
225
+ .tree-header:hover { background: rgba(255,255,255,0.03); }
226
+ .tree-key { color: #79c0ff; }
227
+ .tree-val-str { color: #a5d6ff; }
228
+ .tree-toggle { display: inline-block; width: 10px; font-size: 8px; color: var(--text-dim); }
229
+ </style>
230
+ </head>
231
+ <body>
232
+ <header>
233
+ <div class="brand">Pytron Kit</div>
234
+ <nav>
235
+ <div class="nav-item active" onclick="switchView('dashboard')">Elements</div>
236
+ <div class="nav-item" onclick="switchView('console')">Console</div>
237
+ <div class="nav-item" onclick="switchView('network')">Network (IPC)</div>
238
+ <div class="nav-item" onclick="switchView('application')">Application</div>
239
+ </nav>
240
+ <div style="margin-left: auto; padding-right: 12px; font-size: 10px; color: var(--text-dim);">
241
+ <span id="uptime-display">Uptime: 0s</span>
242
+ </div>
243
+ </header>
244
+
245
+ <main>
246
+ <!-- ELEMENTS VIEW (Dashboard/Trees) -->
247
+ <div id="view-dashboard" class="view active">
248
+ <div class="dashboard-grid">
249
+ <div class="card">
250
+ <div class="card-title">Performance Metrics</div>
251
+ <div class="stat-row">CPU <span id="cpu-num" class="stat-val">0.0%</span></div>
252
+ <div style="height:4px; background:var(--border); margin-bottom:12px; border-radius:2px; overflow:hidden;">
253
+ <div id="cpu-bar" style="width:0%; height:100%; background:var(--accent); transition: width 0.3s;"></div>
254
+ </div>
255
+ <div class="stat-row">Memory (RSS) <span id="mem-num" class="stat-val">0MB</span></div>
256
+ <div class="stat-row">Threads <span id="thread-num" class="stat-val">0</span></div>
257
+ </div>
258
+
259
+ <div class="card">
260
+ <div class="card-title">Active Windows</div>
261
+ <div id="window-list"></div>
262
+ </div>
263
+
264
+ <div class="card" style="grid-column: span 1;">
265
+ <div class="card-title">Plugin Status</div>
266
+ <div id="plugin-list" class="stat-row" style="flex-direction:column; gap:4px;"></div>
267
+ </div>
268
+ </div>
269
+
270
+ <div class="content-padding" style="border-top:1px solid var(--border);">
271
+ <div class="card-title">Reactive State Tree</div>
272
+ <div id="state-tree" style="font-family:'Fira Code', monospace; font-size:12px;"></div>
273
+ </div>
274
+ </div>
275
+
276
+ <!-- CONSOLE VIEW (Combined Logs & REPL) -->
277
+ <div id="view-console" class="view">
278
+ <div class="console-container">
279
+ <div id="console-output" class="console-output"></div>
280
+ <div class="console-input-area">
281
+ <span class="console-prompt">›</span>
282
+ <input type="text" id="console-input" class="console-input" placeholder="Enter Python command..." autocomplete="off">
283
+ </div>
284
+ </div>
285
+ </div>
286
+
287
+ <!-- NETWORK VIEW (IPC) -->
288
+ <div id="view-network" class="view">
289
+ <table class="ipc-table">
290
+ <thead>
291
+ <tr>
292
+ <th>Time</th>
293
+ <th>Method</th>
294
+ <th>Status</th>
295
+ <th>Duration</th>
296
+ </tr>
297
+ </thead>
298
+ <tbody id="ipc-body"></tbody>
299
+ </table>
300
+ </div>
301
+
302
+ <!-- APPLICATION VIEW (Environment) -->
303
+ <div id="view-application" class="view content-padding">
304
+ <div class="card">
305
+ <div class="card-title">Environment Information</div>
306
+ <div id="env-details"></div>
307
+ </div>
308
+ </div>
309
+ </main>
310
+
311
+ <script>
312
+ let currentView = 'dashboard';
313
+ let refreshTimer = null;
314
+
315
+ function switchView(name) {
316
+ currentView = name;
317
+ document.querySelectorAll('.view').forEach(v => v.classList.remove('active'));
318
+ document.querySelectorAll('.nav-item').forEach(v => v.classList.remove('active'));
319
+ document.getElementById(`view-${name}`).classList.add('active');
320
+
321
+ // Find nav item by visible text for simpler matching
322
+ const navs = document.querySelectorAll('.nav-item');
323
+ navs.forEach(n => {
324
+ if(n.innerText.toLowerCase().includes(name === 'dashboard' ? 'elements' : name)) n.classList.add('active');
325
+ });
326
+ refreshData();
327
+ }
328
+
329
+ async function refreshData() {
330
+ const data = await window.inspector_get_data();
331
+ updateUptime(data.stats);
332
+
333
+ if(currentView === 'dashboard') {
334
+ updatePerformance(data.stats);
335
+ updateWindows(data.windows);
336
+ updatePlugins(data.plugins);
337
+ renderStateTree(data.state);
338
+ } else if (currentView === 'network') {
339
+ updateIPC(data.ipc_history);
340
+ } else if (currentView === 'application') {
341
+ updateEnvironment(data.stats);
342
+ }
343
+
344
+ // Logs are updated separately or on console view
345
+ if(currentView === 'console') refreshLogs();
346
+ }
347
+
348
+ function updateUptime(s) {
349
+ if(!s) return;
350
+ document.getElementById('uptime-display').innerText = `Uptime: ${s.uptime}s | PID: ${s.pid}`;
351
+ }
352
+
353
+ function updatePerformance(s) {
354
+ if(!s) return;
355
+ document.getElementById('cpu-num').innerText = s.process_cpu.toFixed(1) + '%';
356
+ document.getElementById('cpu-bar').style.width = Math.min(s.process_cpu, 100) + '%';
357
+ document.getElementById('mem-num').innerText = s.process_mem + ' MB';
358
+ document.getElementById('thread-num').innerText = s.threads;
359
+ }
360
+
361
+ function updateWindows(wins) {
362
+ const container = document.getElementById('window-list');
363
+ container.innerHTML = wins.map(w => `
364
+ <div style="border-bottom:1px solid var(--border); padding:6px 0; display:flex; justify-content:space-between; align-items:center;">
365
+ <div style="overflow:hidden">
366
+ <div style="font-size:12px; font-weight:600; color:var(--text);">${w.title}</div>
367
+ <div style="font-size:10px; color:var(--text-dim); white-space:nowrap; text-overflow:ellipsis; overflow:hidden; width:180px;">${w.url}</div>
368
+ <div style="font-size:9px; color:var(--accent);">${w.dimensions[0]}x${w.dimensions[1]}</div>
369
+ </div>
370
+ <div style="display:flex; gap:4px;">
371
+ <button class="btn" onclick="winAction(${w.id}, '${w.visible?'hide':'show'}')">${w.visible?'Hide':'Show'}</button>
372
+ </div>
373
+ </div>
374
+ `).join('');
375
+ }
376
+
377
+ function updatePlugins(plugins) {
378
+ const container = document.getElementById('plugin-list');
379
+ container.innerHTML = plugins.map(p => `
380
+ <div style="display:flex; justify-content:space-between; align-items:center;">
381
+ <span style="font-size:12px;">${p.name} <small style="color:var(--text-dim)">v${p.version||'?'}</small></span>
382
+ <span class="badge ${p.status === 'loaded' ? 'badge-success' : 'badge-error'}">${p.status}</span>
383
+ </div>
384
+ `).join('');
385
+ }
386
+
387
+ function updateIPC(history) {
388
+ const body = document.getElementById('ipc-body');
389
+ body.innerHTML = history.slice().reverse().map(e => `
390
+ <tr>
391
+ <td>${e.time}</td>
392
+ <td><span style="color:var(--warning)">${e.function}</span></td>
393
+ <td><span class="${e.error ? 'ipc-status-err' : 'ipc-status-ok'}">${e.error ? 'FAILED' : 'OK'}</span></td>
394
+ <td>${e.duration}ms</td>
395
+ </tr>
396
+ `).join('');
397
+ }
398
+
399
+ function updateEnvironment(s) {
400
+ const container = document.getElementById('env-details');
401
+ container.innerHTML = `
402
+ <div class="stat-row">Platform <span class="stat-val">${s.platform}</span></div>
403
+ <div class="stat-row">Python Version <span class="stat-val">${navigator.userAgent.includes('Python') ? 'Inside Runtime' : 'Native'}</span></div>
404
+ `;
405
+ }
406
+
407
+ // --- Console / Logs logic ---
408
+ async function refreshLogs() {
409
+ const logs = await window.inspector_get_logs();
410
+ const container = document.getElementById('console-output');
411
+ const atBottom = container.scrollHeight - container.scrollTop <= container.clientHeight + 40;
412
+
413
+ container.innerHTML = logs.map(l => `
414
+ <div class="console-line">
415
+ <span class="line-time">${l.time}</span>
416
+ <span class="line-level level-${l.level}">${l.level}</span>
417
+ <span class="line-msg">${escapeHtml(l.msg)}</span>
418
+ </div>
419
+ `).join('');
420
+
421
+ if(atBottom) container.scrollTop = container.scrollHeight;
422
+ }
423
+
424
+ const cin = document.getElementById('console-input');
425
+ const cout = document.getElementById('console-output');
426
+ cin.onkeydown = async (e) => {
427
+ if(e.key === 'Enter') {
428
+ const cmd = cin.value.trim();
429
+ if(!cmd) return;
430
+ cin.value = '';
431
+
432
+ // Add to output immediately
433
+ const userLine = document.createElement('div');
434
+ userLine.className = 'console-line';
435
+ userLine.innerHTML = `<span style="color:var(--accent); font-weight:700;">»</span> <span style="font-style:italic;">${escapeHtml(cmd)}</span>`;
436
+ cout.appendChild(userLine);
437
+
438
+ try {
439
+ const res = await window.inspector_eval(cmd);
440
+ const resLine = document.createElement('div');
441
+ resLine.className = 'console-line';
442
+ if(res.error) {
443
+ resLine.innerHTML = `<span style="color:var(--error)">✖ ${escapeHtml(res.error)}</span>`;
444
+ } else {
445
+ resLine.innerHTML = `<span style="color:var(--success)">◀</span> <span>${escapeHtml(JSON.stringify(res.result, null, 2))}</span>`;
446
+ }
447
+ cout.appendChild(resLine);
448
+ } catch(err) {
449
+ const errLine = document.createElement('div');
450
+ errLine.className = 'console-line';
451
+ errLine.innerHTML = `<span style="color:var(--error)">✖ ${escapeHtml(err.toString())}</span>`;
452
+ cout.appendChild(errLine);
453
+ }
454
+ cout.scrollTop = cout.scrollHeight;
455
+ }
456
+ };
457
+
458
+ // --- Window Action ---
459
+ async function winAction(id, action) {
460
+ await window.inspector_window_action(id, action);
461
+ refreshData();
462
+ }
463
+
464
+ // --- State Tree Renderer ---
465
+ function renderStateTree(state) {
466
+ const container = document.getElementById('state-tree');
467
+ container.innerHTML = '';
468
+ container.appendChild(createTreeNode(state, 'App.State', true));
469
+ }
470
+
471
+ function createTreeNode(val, key, expanded = false) {
472
+ const div = document.createElement('div');
473
+ const isObj = typeof val === 'object' && val !== null;
474
+
475
+ const header = document.createElement('div');
476
+ header.className = 'tree-header';
477
+ header.innerHTML = `
478
+ <span class="tree-toggle">${isObj ? (expanded ? '▼' : '▶') : ' '}</span>
479
+ <span class="tree-key">${key}</span>:
480
+ <span class="${typeof val === 'string' ? 'tree-val-str' : ''}">${isObj ? (Array.isArray(val) ? `Array(${val.length})` : 'Object') : JSON.stringify(val)}</span>
481
+ `;
482
+
483
+ const content = document.createElement('div');
484
+ content.className = 'tree-node';
485
+ content.style.display = expanded ? 'block' : 'none';
486
+
487
+ if(isObj) {
488
+ header.onclick = () => {
489
+ const shown = content.style.display === 'block';
490
+ content.style.display = shown ? 'none' : 'block';
491
+ header.querySelector('.tree-toggle').innerText = shown ? '▶' : '▼';
492
+ };
493
+ for(let k in val) content.appendChild(createTreeNode(val[k], k));
494
+ }
495
+
496
+ div.appendChild(header);
497
+ div.appendChild(content);
498
+ return div;
499
+ }
500
+
501
+ function escapeHtml(text) {
502
+ const div = document.createElement('div');
503
+ div.textContent = text;
504
+ return div.innerHTML;
505
+ }
506
+
507
+ // Start polling
508
+ setInterval(refreshData, 1000);
509
+ </script>
510
+ </body>
511
+ </html>
512
+ """