@spark233/plugin-traffic 0.0.0-stage → 0.2.5

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 (116) hide show
  1. package/LICENSE.spark233 +21 -0
  2. package/README.md +34 -2
  3. package/assets/LICENSE.lucide +43 -0
  4. package/assets/icon.ico +0 -0
  5. package/assets/icon.png +0 -0
  6. package/assets/icon.svg +1 -0
  7. package/assets/theme-icons/blue-dark/icon.ico +0 -0
  8. package/assets/theme-icons/blue-dark/icon.png +0 -0
  9. package/assets/theme-icons/blue-light/icon.ico +0 -0
  10. package/assets/theme-icons/blue-light/icon.png +0 -0
  11. package/assets/theme-icons/green-dark/icon.ico +0 -0
  12. package/assets/theme-icons/green-dark/icon.png +0 -0
  13. package/assets/theme-icons/green-light/icon.ico +0 -0
  14. package/assets/theme-icons/green-light/icon.png +0 -0
  15. package/assets/theme-icons/orange-dark/icon.ico +0 -0
  16. package/assets/theme-icons/orange-dark/icon.png +0 -0
  17. package/assets/theme-icons/orange-light/icon.ico +0 -0
  18. package/assets/theme-icons/orange-light/icon.png +0 -0
  19. package/assets/theme-icons/purple-dark/icon.ico +0 -0
  20. package/assets/theme-icons/purple-dark/icon.png +0 -0
  21. package/assets/theme-icons/purple-light/icon.ico +0 -0
  22. package/assets/theme-icons/purple-light/icon.png +0 -0
  23. package/assets/theme-icons/rose-dark/icon.ico +0 -0
  24. package/assets/theme-icons/rose-dark/icon.png +0 -0
  25. package/assets/theme-icons/rose-light/icon.ico +0 -0
  26. package/assets/theme-icons/rose-light/icon.png +0 -0
  27. package/backend.mjs +8144 -0
  28. package/collector.ps1 +46 -0
  29. package/legal/HarmonyOS_Fonts.txt +34 -0
  30. package/legal/SourceHanSerif.txt +96 -0
  31. package/legal/spark233-renderer-THIRD_PARTY_NOTICES.md +670 -0
  32. package/native/Dia2Lib.dll +0 -0
  33. package/native/KernelTraceControl.dll +0 -0
  34. package/native/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  35. package/native/Microsoft.Data.Sqlite.dll +0 -0
  36. package/native/Microsoft.Diagnostics.FastSerialization.dll +0 -0
  37. package/native/Microsoft.Diagnostics.NETCore.Client.dll +0 -0
  38. package/native/Microsoft.Diagnostics.Tracing.TraceEvent.dll +0 -0
  39. package/native/Microsoft.Extensions.DependencyInjection.Abstractions.dll +0 -0
  40. package/native/Microsoft.Extensions.Logging.Abstractions.dll +0 -0
  41. package/native/Microsoft.Win32.Registry.dll +0 -0
  42. package/native/SQLitePCLRaw.batteries_v2.dll +0 -0
  43. package/native/SQLitePCLRaw.core.dll +0 -0
  44. package/native/SQLitePCLRaw.provider.dynamic_cdecl.dll +0 -0
  45. package/native/System.Buffers.dll +0 -0
  46. package/native/System.Collections.Immutable.dll +0 -0
  47. package/native/System.IO.Pipelines.dll +0 -0
  48. package/native/System.Memory.dll +0 -0
  49. package/native/System.Numerics.Vectors.dll +0 -0
  50. package/native/System.Reflection.Metadata.dll +0 -0
  51. package/native/System.Reflection.TypeExtensions.dll +0 -0
  52. package/native/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  53. package/native/System.Security.AccessControl.dll +0 -0
  54. package/native/System.Security.Principal.Windows.dll +0 -0
  55. package/native/System.Text.Encodings.Web.dll +0 -0
  56. package/native/System.Text.Json.dll +0 -0
  57. package/native/System.Threading.Tasks.Extensions.dll +0 -0
  58. package/native/TraceReloggerLib.dll +0 -0
  59. package/native/e_sqlite3.dll +0 -0
  60. package/native/licenses/Microsoft.Bcl.AsyncInterfaces.nuspec +27 -0
  61. package/native/licenses/Microsoft.Data.Sqlite.Core.nuspec +37 -0
  62. package/native/licenses/Microsoft.Data.Sqlite.nuspec +36 -0
  63. package/native/licenses/Microsoft.Diagnostics.NETCore.Client.nuspec +30 -0
  64. package/native/licenses/Microsoft.Diagnostics.Tracing.TraceEvent.nuspec +41 -0
  65. package/native/licenses/Microsoft.Extensions.DependencyInjection.Abstractions-LICENSE.TXT +23 -0
  66. package/native/licenses/Microsoft.Extensions.DependencyInjection.Abstractions.nuspec +35 -0
  67. package/native/licenses/Microsoft.Extensions.Logging.Abstractions-LICENSE.TXT +23 -0
  68. package/native/licenses/Microsoft.Extensions.Logging.Abstractions.nuspec +48 -0
  69. package/native/licenses/Microsoft.Win32.Registry-LICENSE.TXT +23 -0
  70. package/native/licenses/Microsoft.Win32.Registry.nuspec +94 -0
  71. package/native/licenses/SQLitePCLRaw.bundle_e_sqlite3.nuspec +43 -0
  72. package/native/licenses/SQLitePCLRaw.core.nuspec +19 -0
  73. package/native/licenses/SQLitePCLRaw.lib.e_sqlite3.nuspec +17 -0
  74. package/native/licenses/SQLitePCLRaw.provider.dynamic_cdecl.nuspec +19 -0
  75. package/native/licenses/System.Buffers.nuspec +24 -0
  76. package/native/licenses/System.Collections.Immutable.nuspec +33 -0
  77. package/native/licenses/System.IO.Pipelines.nuspec +38 -0
  78. package/native/licenses/System.Memory.nuspec +32 -0
  79. package/native/licenses/System.Numerics.Vectors.nuspec +27 -0
  80. package/native/licenses/System.Reflection.Metadata-LICENSE.TXT +23 -0
  81. package/native/licenses/System.Reflection.Metadata.nuspec +34 -0
  82. package/native/licenses/System.Reflection.TypeExtensions-LICENSE.TXT +23 -0
  83. package/native/licenses/System.Reflection.TypeExtensions.nuspec +64 -0
  84. package/native/licenses/System.Runtime.CompilerServices.Unsafe.nuspec +27 -0
  85. package/native/licenses/System.Security.AccessControl-LICENSE.TXT +23 -0
  86. package/native/licenses/System.Security.AccessControl.nuspec +55 -0
  87. package/native/licenses/System.Security.Principal.Windows-LICENSE.TXT +23 -0
  88. package/native/licenses/System.Security.Principal.Windows.nuspec +68 -0
  89. package/native/licenses/System.Text.Encodings.Web.nuspec +38 -0
  90. package/native/licenses/System.Text.Json.nuspec +50 -0
  91. package/native/licenses/System.Threading.Tasks.Extensions.nuspec +28 -0
  92. package/native/licenses/System.ValueTuple.nuspec +25 -0
  93. package/native/licenses/dependencies.json +158 -0
  94. package/native/msdia140.dll +0 -0
  95. package/native/resources.json +226 -0
  96. package/native/spark233.Traffic.Core.dll +0 -0
  97. package/native/spark233.Traffic.Core.dll.config +59 -0
  98. package/native/spark233.TrafficClient.exe +0 -0
  99. package/native/spark233.TrafficClient.exe.config +62 -0
  100. package/native/spark233.TrafficService.exe +0 -0
  101. package/native/spark233.TrafficService.exe.config +62 -0
  102. package/native/spark233.TrafficSetup.exe +0 -0
  103. package/native/spark233.TrafficSetup.exe.config +62 -0
  104. package/package.json +356 -3
  105. package/renderer/assets/HarmonyOS_Sans_SC-BKicpBgU.ttf +0 -0
  106. package/renderer/assets/SourceHanSerifSC-Regular-KhFegrri.woff2 +0 -0
  107. package/renderer/assets/index-D40wqc6o.css +2 -0
  108. package/renderer/assets/index-DqTMamUW.js +2 -0
  109. package/renderer/assets/rolldown-runtime-WkwZ5CU-.js +1 -0
  110. package/renderer/assets/vendor-react-DCTAcUCH.js +9 -0
  111. package/renderer/index.html +15 -0
  112. package/renderer/spark233-renderer.json +1 -0
  113. package/renderer/spark233-shared-ui.json +18 -0
  114. package/renderer/spark233-ui.json +11 -0
  115. package/widgets/hud.json +59 -0
  116. package/widgets/traffic-hover.json +36 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Achilng
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,35 @@
1
- # Temporary Holding Version
1
+ # 流量监控、桌面提示与程序历史
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 实时列表的「⋯」和行右键提供定位文件、Windows 原生文件属性、查看连接与结束进程。展开后的子行仅作用于该 PID,父行结束操作明确列出全部选中的进程,并要求确认。菜单和确认窗口保留打开时的实例标识,刷新不会将目标替换成新进程。原生客户端先复用现有连接接口的用户范围授权,再以同一进程句柄校验创建时间、所有者和路径后执行;结束操作遵循普通客户端权限,不经 SYSTEM 服务提权,拒绝本应用及采集服务/系统关键进程。
4
+
5
+ 桌面流量窗宽度固定为 110 DIP,高度按两行内容和上下等量留白自适应,收紧内部间隔以容纳较长的速率数值与单位,数字变化不调整窗口宽度。实际窗口和输入区域使用相同尺寸,保留字号、拖动与贴边位置。限速不在本插件此次变更范围内。
6
+
7
+ 首版采集 **活动物理网卡的接口总量**,包含局域网流量。它使用 Windows 自带的 PowerShell 与 .NET/IP Helper 累计字节计数,后台保持一个串行采集器,以 1 Hz 计算速率。不是按进程 ETW 统计,不推测代理/VPN 逻辑流量,也不将网卡总量冒充互联网流量。
8
+
9
+ 启用插件后后台独立采样。打开“流量监控”查看实时速率、网卡索引与地址,并可明确暂停或恢复采集;在宿主“设置 → 桌面”添加“网卡流量 HUD”。关闭主页面、隐藏或移除 HUD 只释放显示订阅;显式暂停停止采样,停用插件释放 utility backend 和 PowerShell 采集器。停用保留暂停偏好与宿主管理的卡片布局。
10
+
11
+ 安装检查不会启动采样器。插件声明 `node.backend` 和 `native.process`,按现有信任确认授权,并将平台限定为 Windows。主页面使用现有独立 Web 窗口合同,不申请宿主内部 `windows` 能力。采集器只执行包内固定脚本;页面不能提交路径、PID、shell 命令或任意采样参数。主页面通过当前 owner 的受限 `node.backend/invoke` 操作调用本插件公开无窗命令;HUD 使用同一后台的声明式订阅。
12
+
13
+ 每个接口以 GUID 稳定标识,并带上实时 IP 与接口索引。每 30 秒更新一次物理网卡发现,累计计数每秒读取;NIC 热插拔、索引/IP变化、计数重置、超过 5 秒的采样空白、暂停恢复和进程重启均重新建立基线。warming/gap/paused/unavailable 时速率为 null、HUD 显示“—”,趋势清空,不补零、不推算缺失数据。
14
+
15
+ 默认不加总虚拟、隧道和 loopback 接口,避免 Hyper-V/VPN 多层重复计数。物理网卡收发仍可能包含 VPN 封装后的字节,且并不等于应用有效载荷。首次发现 NIC 可能较慢;不可用时保留错误状态并提供“重新连接”。Windows 电源/驱动如何维护计数以实际返回值为准,采集不尝试提权。
16
+
17
+ 0.2.0 增加独立的 .NET Framework 4.8 Windows 服务、普通用户 native-v1 bridge,以及固定 UAC 安装/授权 helper。窗口继续使用上述接口总速;程序排行、TCP/UDP 详情和历史使用服务实际采集的 ETW 数据,两种口径不强行对齐。不提供限制网速或程序限速。当前原生闭包为 Windows x64。
18
+
19
+ 桌面提示为固定 110 DIP 宽、高度随内容自适应的两行卡片,上传橙色、下载绿色。悬停显示宽度 260 DIP 的两个 Top 3 排行,移入排行继续保留;左键打开或复用详情窗口,拖动不触发打开。右键提供“窗口置顶显示”(默认开)、“贴边自动隐藏”(默认关)、“全屏时自动隐藏”(默认开)、“查看流量详情”和“关闭流量提示”。关闭提示只隐藏展示,保留布局、采集意图与历史。三个偏好按实例保存;贴边收起使用约 180 ms 位移动画并保留 4 DIP 唤回条,只改变临时几何。普通 HUD 与排行共用稳定的局部工具窗,避免透明整屏原生窗口影响底层浏览器遮挡判定。
20
+
21
+ 详情窗口包括实时/历史页签、程序分组和实例展开、搜索/筛选/排序、连接弹层、日期预设/自定义范围以及历史清空确认。页签切换保留状态;鼠标或键盘正在操作表格时保留行顺序,数值继续更新。大量记录及图标沿已有受限插件能力通道分页,图标分片不放宽单消息/单字符串安全上限。
22
+
23
+ 实时页的“本次下载/本次上传”由 ETW 服务按进程实例与应用连续运行会话累计实际字节。同路径、同用户的多个进程合并为一个运行会话,退出成员的字节保留;全部成员退出后再次启动开启新会话。关闭详情、切换页签、bridge 重连及清空历史不会清零。独立运行 checkpoint 与历史共用 SQLite 文件但不受历史清理/保留期影响;异常重启只恢复已落盘计数并标记缺口,不估算离线流量。应用先于监控启动时,只统计实际观测部分。所有视图统一使用 KB/MB/GB 与 KB/s/MB/s/GB/s 标签,保留 1024 进位及原始字节精度。
24
+
25
+ 历史列表返回固定大小的覆盖摘要,不再将完整覆盖区间重复塞进每一页;历史行继续按消息预算和不透明游标分页。摘要扫描全部相关区间,不截断前 1000 条;行、摘要和 durable 时间来自同一数据库读事务。已有历史数据库和记录原样保留。
26
+
27
+ 首次点击“启用进程采集”才会启动固定安装 helper,Windows UAC 由用户处理。当前账户范围为默认;“整机”需要单独授权,切换查询范围本身不触发 UAC。服务按实际 pipe token 校验 SID;bridge 在发送请求前验证服务端身份。代码部署到 ProgramData 下受保护的版本目录,历史目录不授予普通用户直接读取权限。状态查询不会自行启用采集。
28
+
29
+ 服务按 boot、PID 与创建时间识别进程,字节通过十进制字符串传输。分钟桶保留 48 小时、小时桶 90 天、日桶 2 年;低排名进程照常保存。历史粒度随保留期选择,粗粒度范围对齐 UTC 桶并在页面显示实际边界。没有覆盖的时段显示缺口或不可用,不把缺失记录补成零。UDP 本地端点与实际观察到的远端流分别展示,远端不写入历史。
30
+
31
+ 显式暂停保存恢复范围,撤销当前用户的采集意图;继续和重启后继续可恢复这些范围。停用/退出先等待最终落盘,再释放 bridge 租约及进程。服务没有有效租约时停止 ETW;不停止其他软件的 ETW 会话。安装检查不启动采集,后台普通启动只恢复之前明确启用的范围。
32
+
33
+ 构建:在仓库选择项目 Node/pnpm 后执行 `node scripts/build-official-plugins.mjs --plugin spark233.traffic`。生成安装包位于 `local-build/spark233/plugin-artifacts/spark233.traffic/`。缺少或源码已变更的原生闭包通过 `scripts/native-traffic/build.ps1 -StageDirectory packages/official/traffic/native` 进行锁依赖构建与哈希 staging;执行它不会安装服务。完整官方构建也会包含此插件;桌面实例仍由宿主设置管理。正式升级需要重新走可见的受保护服务安装路径,不静默覆盖正在运行的 SYSTEM 代码。
34
+
35
+ 验证边界:普通权限隔离测试可验证 bridge/管道/历史/租约和无服务空态;真实 ETW TCP/UDP 归属、UAC 安装/升级/回滚及签名发布需要相应权限与真机出口。编译成功不能代替这些验收。
@@ -0,0 +1,43 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2026 Lucide Icons and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+
17
+ ---
18
+
19
+ The following Lucide icons are derived from the Feather project:
20
+
21
+ airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
22
+
23
+ The MIT License (MIT) (for the icons listed above)
24
+
25
+ Copyright (c) 2013-present Cole Bemis
26
+
27
+ Permission is hereby granted, free of charge, to any person obtaining a copy
28
+ of this software and associated documentation files (the "Software"), to deal
29
+ in the Software without restriction, including without limitation the rights
30
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
31
+ copies of the Software, and to permit persons to whom the Software is
32
+ furnished to do so, subject to the following conditions:
33
+
34
+ The above copyright notice and this permission notice shall be included in all
35
+ copies or substantial portions of the Software.
36
+
37
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
40
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
41
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
42
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
43
+ SOFTWARE.
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 24 24" fill="none" stroke="currentColor" style="color:var(--primary,#2d5a3d)" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-up" aria-hidden="true"><path d="m3 16 4 4 4-4"></path><path d="M7 20V4"></path><path d="m21 8-4-4-4 4"></path><path d="M17 4v16"></path></svg>