monitor-transfer-dsh 0.0.0-stage → 0.1.3

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 (367) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +50 -2
  3. package/cordis.patch.yml +4 -0
  4. package/lib/client.js +436 -0
  5. package/lib/index.js +267 -0
  6. package/package.json +67 -3
  7. package/skill/SKILL.md +48 -0
  8. package/skill/tools/node_modules/.package-lock.json +163 -0
  9. package/skill/tools/node_modules/pg/LICENSE +21 -0
  10. package/skill/tools/node_modules/pg/README.md +96 -0
  11. package/skill/tools/node_modules/pg/esm/index.mjs +20 -0
  12. package/skill/tools/node_modules/pg/lib/client.js +846 -0
  13. package/skill/tools/node_modules/pg/lib/connection-parameters.js +184 -0
  14. package/skill/tools/node_modules/pg/lib/connection.js +250 -0
  15. package/skill/tools/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
  16. package/skill/tools/node_modules/pg/lib/crypto/sasl.js +262 -0
  17. package/skill/tools/node_modules/pg/lib/crypto/utils.js +89 -0
  18. package/skill/tools/node_modules/pg/lib/defaults.js +94 -0
  19. package/skill/tools/node_modules/pg/lib/index.js +73 -0
  20. package/skill/tools/node_modules/pg/lib/native/client.js +428 -0
  21. package/skill/tools/node_modules/pg/lib/native/index.js +2 -0
  22. package/skill/tools/node_modules/pg/lib/native/query.js +167 -0
  23. package/skill/tools/node_modules/pg/lib/query.js +263 -0
  24. package/skill/tools/node_modules/pg/lib/result.js +109 -0
  25. package/skill/tools/node_modules/pg/lib/stream.js +83 -0
  26. package/skill/tools/node_modules/pg/lib/type-overrides.js +35 -0
  27. package/skill/tools/node_modules/pg/lib/utils.js +225 -0
  28. package/skill/tools/node_modules/pg/package.json +76 -0
  29. package/skill/tools/node_modules/pg-cloudflare/LICENSE +21 -0
  30. package/skill/tools/node_modules/pg-cloudflare/README.md +112 -0
  31. package/skill/tools/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
  32. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js +6 -0
  33. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
  34. package/skill/tools/node_modules/pg-cloudflare/dist/index.d.ts +29 -0
  35. package/skill/tools/node_modules/pg-cloudflare/dist/index.js +171 -0
  36. package/skill/tools/node_modules/pg-cloudflare/dist/index.js.map +1 -0
  37. package/skill/tools/node_modules/pg-cloudflare/esm/index.mjs +3 -0
  38. package/skill/tools/node_modules/pg-cloudflare/package.json +39 -0
  39. package/skill/tools/node_modules/pg-cloudflare/src/empty.ts +3 -0
  40. package/skill/tools/node_modules/pg-cloudflare/src/index.ts +187 -0
  41. package/skill/tools/node_modules/pg-cloudflare/src/types.d.ts +25 -0
  42. package/skill/tools/node_modules/pg-connection-string/LICENSE +21 -0
  43. package/skill/tools/node_modules/pg-connection-string/README.md +105 -0
  44. package/skill/tools/node_modules/pg-connection-string/esm/index.mjs +8 -0
  45. package/skill/tools/node_modules/pg-connection-string/index.d.ts +37 -0
  46. package/skill/tools/node_modules/pg-connection-string/index.js +237 -0
  47. package/skill/tools/node_modules/pg-connection-string/package.json +51 -0
  48. package/skill/tools/node_modules/pg-int8/LICENSE +13 -0
  49. package/skill/tools/node_modules/pg-int8/README.md +16 -0
  50. package/skill/tools/node_modules/pg-int8/index.js +100 -0
  51. package/skill/tools/node_modules/pg-int8/package.json +24 -0
  52. package/skill/tools/node_modules/pg-pool/LICENSE +21 -0
  53. package/skill/tools/node_modules/pg-pool/README.md +357 -0
  54. package/skill/tools/node_modules/pg-pool/esm/index.mjs +5 -0
  55. package/skill/tools/node_modules/pg-pool/index.js +517 -0
  56. package/skill/tools/node_modules/pg-pool/package.json +51 -0
  57. package/skill/tools/node_modules/pg-protocol/LICENSE +21 -0
  58. package/skill/tools/node_modules/pg-protocol/README.md +3 -0
  59. package/skill/tools/node_modules/pg-protocol/dist/b.d.ts +1 -0
  60. package/skill/tools/node_modules/pg-protocol/dist/b.js +23 -0
  61. package/skill/tools/node_modules/pg-protocol/dist/b.js.map +1 -0
  62. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.d.ts +14 -0
  63. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
  64. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
  65. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.d.ts +21 -0
  66. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js +113 -0
  67. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
  68. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
  69. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js +538 -0
  70. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
  71. package/skill/tools/node_modules/pg-protocol/dist/index.d.ts +5 -0
  72. package/skill/tools/node_modules/pg-protocol/dist/index.js +15 -0
  73. package/skill/tools/node_modules/pg-protocol/dist/index.js.map +1 -0
  74. package/skill/tools/node_modules/pg-protocol/dist/messages.d.ts +161 -0
  75. package/skill/tools/node_modules/pg-protocol/dist/messages.js +160 -0
  76. package/skill/tools/node_modules/pg-protocol/dist/messages.js.map +1 -0
  77. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
  78. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js +325 -0
  79. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
  80. package/skill/tools/node_modules/pg-protocol/dist/parser.d.ts +22 -0
  81. package/skill/tools/node_modules/pg-protocol/dist/parser.js +325 -0
  82. package/skill/tools/node_modules/pg-protocol/dist/parser.js.map +1 -0
  83. package/skill/tools/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
  84. package/skill/tools/node_modules/pg-protocol/dist/serializer.js +198 -0
  85. package/skill/tools/node_modules/pg-protocol/dist/serializer.js.map +1 -0
  86. package/skill/tools/node_modules/pg-protocol/esm/index.js +11 -0
  87. package/skill/tools/node_modules/pg-protocol/package.json +44 -0
  88. package/skill/tools/node_modules/pg-protocol/src/b.ts +25 -0
  89. package/skill/tools/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
  90. package/skill/tools/node_modules/pg-protocol/src/buffer-writer.ts +120 -0
  91. package/skill/tools/node_modules/pg-protocol/src/inbound-parser.test.ts +585 -0
  92. package/skill/tools/node_modules/pg-protocol/src/index.ts +11 -0
  93. package/skill/tools/node_modules/pg-protocol/src/messages.ts +262 -0
  94. package/skill/tools/node_modules/pg-protocol/src/outbound-serializer.test.ts +356 -0
  95. package/skill/tools/node_modules/pg-protocol/src/parser.ts +414 -0
  96. package/skill/tools/node_modules/pg-protocol/src/serializer.ts +286 -0
  97. package/skill/tools/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
  98. package/skill/tools/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
  99. package/skill/tools/node_modules/pg-types/.travis.yml +7 -0
  100. package/skill/tools/node_modules/pg-types/Makefile +14 -0
  101. package/skill/tools/node_modules/pg-types/README.md +75 -0
  102. package/skill/tools/node_modules/pg-types/index.d.ts +137 -0
  103. package/skill/tools/node_modules/pg-types/index.js +47 -0
  104. package/skill/tools/node_modules/pg-types/index.test-d.ts +21 -0
  105. package/skill/tools/node_modules/pg-types/lib/arrayParser.js +11 -0
  106. package/skill/tools/node_modules/pg-types/lib/binaryParsers.js +257 -0
  107. package/skill/tools/node_modules/pg-types/lib/builtins.js +73 -0
  108. package/skill/tools/node_modules/pg-types/lib/textParsers.js +215 -0
  109. package/skill/tools/node_modules/pg-types/package.json +42 -0
  110. package/skill/tools/node_modules/pg-types/test/index.js +24 -0
  111. package/skill/tools/node_modules/pg-types/test/types.js +597 -0
  112. package/skill/tools/node_modules/pgpass/README.md +74 -0
  113. package/skill/tools/node_modules/pgpass/lib/helper.js +233 -0
  114. package/skill/tools/node_modules/pgpass/lib/index.js +23 -0
  115. package/skill/tools/node_modules/pgpass/package.json +41 -0
  116. package/skill/tools/node_modules/postgres-array/index.d.ts +4 -0
  117. package/skill/tools/node_modules/postgres-array/index.js +97 -0
  118. package/skill/tools/node_modules/postgres-array/license +21 -0
  119. package/skill/tools/node_modules/postgres-array/package.json +35 -0
  120. package/skill/tools/node_modules/postgres-array/readme.md +43 -0
  121. package/skill/tools/node_modules/postgres-bytea/index.js +33 -0
  122. package/skill/tools/node_modules/postgres-bytea/license +21 -0
  123. package/skill/tools/node_modules/postgres-bytea/package.json +34 -0
  124. package/skill/tools/node_modules/postgres-bytea/readme.md +34 -0
  125. package/skill/tools/node_modules/postgres-date/index.js +116 -0
  126. package/skill/tools/node_modules/postgres-date/license +21 -0
  127. package/skill/tools/node_modules/postgres-date/package.json +33 -0
  128. package/skill/tools/node_modules/postgres-date/readme.md +49 -0
  129. package/skill/tools/node_modules/postgres-interval/index.d.ts +20 -0
  130. package/skill/tools/node_modules/postgres-interval/index.js +125 -0
  131. package/skill/tools/node_modules/postgres-interval/license +21 -0
  132. package/skill/tools/node_modules/postgres-interval/package.json +36 -0
  133. package/skill/tools/node_modules/postgres-interval/readme.md +48 -0
  134. package/skill/tools/node_modules/split2/LICENSE +13 -0
  135. package/skill/tools/node_modules/split2/README.md +85 -0
  136. package/skill/tools/node_modules/split2/bench.js +27 -0
  137. package/skill/tools/node_modules/split2/index.js +141 -0
  138. package/skill/tools/node_modules/split2/package.json +39 -0
  139. package/skill/tools/node_modules/split2/test.js +409 -0
  140. package/skill/tools/node_modules/undici/LICENSE +21 -0
  141. package/skill/tools/node_modules/undici/README.md +828 -0
  142. package/skill/tools/node_modules/undici/docs/docs/api/Agent.md +291 -0
  143. package/skill/tools/node_modules/undici/docs/docs/api/BalancedPool.md +297 -0
  144. package/skill/tools/node_modules/undici/docs/docs/api/CacheStorage.md +188 -0
  145. package/skill/tools/node_modules/undici/docs/docs/api/CacheStore.md +375 -0
  146. package/skill/tools/node_modules/undici/docs/docs/api/Client.md +538 -0
  147. package/skill/tools/node_modules/undici/docs/docs/api/ClientStats.md +93 -0
  148. package/skill/tools/node_modules/undici/docs/docs/api/Connector.md +198 -0
  149. package/skill/tools/node_modules/undici/docs/docs/api/ContentType.md +97 -0
  150. package/skill/tools/node_modules/undici/docs/docs/api/Cookies.md +179 -0
  151. package/skill/tools/node_modules/undici/docs/docs/api/Debug.md +78 -0
  152. package/skill/tools/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +518 -0
  153. package/skill/tools/node_modules/undici/docs/docs/api/Dispatcher.md +842 -0
  154. package/skill/tools/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +171 -0
  155. package/skill/tools/node_modules/undici/docs/docs/api/Errors.md +624 -0
  156. package/skill/tools/node_modules/undici/docs/docs/api/EventSource.md +358 -0
  157. package/skill/tools/node_modules/undici/docs/docs/api/Fetch.md +721 -0
  158. package/skill/tools/node_modules/undici/docs/docs/api/GlobalInstallation.md +121 -0
  159. package/skill/tools/node_modules/undici/docs/docs/api/H2CClient.md +386 -0
  160. package/skill/tools/node_modules/undici/docs/docs/api/Interceptors.md +439 -0
  161. package/skill/tools/node_modules/undici/docs/docs/api/MockAgent.md +622 -0
  162. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistory.md +371 -0
  163. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +206 -0
  164. package/skill/tools/node_modules/undici/docs/docs/api/MockClient.md +199 -0
  165. package/skill/tools/node_modules/undici/docs/docs/api/MockErrors.md +63 -0
  166. package/skill/tools/node_modules/undici/docs/docs/api/MockPool.md +618 -0
  167. package/skill/tools/node_modules/undici/docs/docs/api/Pool.md +278 -0
  168. package/skill/tools/node_modules/undici/docs/docs/api/PoolStats.md +141 -0
  169. package/skill/tools/node_modules/undici/docs/docs/api/ProxyAgent.md +248 -0
  170. package/skill/tools/node_modules/undici/docs/docs/api/RedirectHandler.md +279 -0
  171. package/skill/tools/node_modules/undici/docs/docs/api/RetryAgent.md +136 -0
  172. package/skill/tools/node_modules/undici/docs/docs/api/RetryHandler.md +200 -0
  173. package/skill/tools/node_modules/undici/docs/docs/api/RoundRobinPool.md +239 -0
  174. package/skill/tools/node_modules/undici/docs/docs/api/SnapshotAgent.md +361 -0
  175. package/skill/tools/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +256 -0
  176. package/skill/tools/node_modules/undici/docs/docs/api/Util.md +82 -0
  177. package/skill/tools/node_modules/undici/docs/docs/api/WebSocket.md +536 -0
  178. package/skill/tools/node_modules/undici/docs/docs/api/api-lifecycle.md +159 -0
  179. package/skill/tools/node_modules/undici/docs/docs/best-practices/client-certificate.md +66 -0
  180. package/skill/tools/node_modules/undici/docs/docs/best-practices/crawling.md +60 -0
  181. package/skill/tools/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  182. package/skill/tools/node_modules/undici/docs/docs/best-practices/mocking-request.md +192 -0
  183. package/skill/tools/node_modules/undici/docs/docs/best-practices/proxy.md +129 -0
  184. package/skill/tools/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +226 -0
  185. package/skill/tools/node_modules/undici/docs/docs/best-practices/writing-tests.md +65 -0
  186. package/skill/tools/node_modules/undici/docs/docs/getting-started.md +281 -0
  187. package/skill/tools/node_modules/undici/docs/docs/index.md +793 -0
  188. package/skill/tools/node_modules/undici/docs/docs/site.json +125 -0
  189. package/skill/tools/node_modules/undici/docs/docs/type-map.json +79 -0
  190. package/skill/tools/node_modules/undici/index-fetch.js +65 -0
  191. package/skill/tools/node_modules/undici/index.d.ts +3 -0
  192. package/skill/tools/node_modules/undici/index.js +236 -0
  193. package/skill/tools/node_modules/undici/lib/api/abort-signal.js +59 -0
  194. package/skill/tools/node_modules/undici/lib/api/api-connect.js +112 -0
  195. package/skill/tools/node_modules/undici/lib/api/api-pipeline.js +265 -0
  196. package/skill/tools/node_modules/undici/lib/api/api-request.js +244 -0
  197. package/skill/tools/node_modules/undici/lib/api/api-stream.js +270 -0
  198. package/skill/tools/node_modules/undici/lib/api/api-upgrade.js +121 -0
  199. package/skill/tools/node_modules/undici/lib/api/index.js +7 -0
  200. package/skill/tools/node_modules/undici/lib/api/readable.js +615 -0
  201. package/skill/tools/node_modules/undici/lib/cache/memory-cache-store.js +314 -0
  202. package/skill/tools/node_modules/undici/lib/cache/sqlite-cache-store.js +593 -0
  203. package/skill/tools/node_modules/undici/lib/core/connect.js +198 -0
  204. package/skill/tools/node_modules/undici/lib/core/constants.js +131 -0
  205. package/skill/tools/node_modules/undici/lib/core/diagnostics.js +227 -0
  206. package/skill/tools/node_modules/undici/lib/core/errors.js +534 -0
  207. package/skill/tools/node_modules/undici/lib/core/request.js +582 -0
  208. package/skill/tools/node_modules/undici/lib/core/socks5-client.js +422 -0
  209. package/skill/tools/node_modules/undici/lib/core/socks5-utils.js +212 -0
  210. package/skill/tools/node_modules/undici/lib/core/symbols.js +81 -0
  211. package/skill/tools/node_modules/undici/lib/core/tree.js +160 -0
  212. package/skill/tools/node_modules/undici/lib/core/util.js +1035 -0
  213. package/skill/tools/node_modules/undici/lib/dispatcher/agent.js +181 -0
  214. package/skill/tools/node_modules/undici/lib/dispatcher/balanced-pool.js +217 -0
  215. package/skill/tools/node_modules/undici/lib/dispatcher/client-h1.js +1846 -0
  216. package/skill/tools/node_modules/undici/lib/dispatcher/client-h2.js +1989 -0
  217. package/skill/tools/node_modules/undici/lib/dispatcher/client.js +749 -0
  218. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  219. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher.js +58 -0
  220. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +127 -0
  221. package/skill/tools/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +190 -0
  222. package/skill/tools/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  223. package/skill/tools/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
  224. package/skill/tools/node_modules/undici/lib/dispatcher/parser-h1.js +1065 -0
  225. package/skill/tools/node_modules/undici/lib/dispatcher/pool-base.js +347 -0
  226. package/skill/tools/node_modules/undici/lib/dispatcher/pool.js +229 -0
  227. package/skill/tools/node_modules/undici/lib/dispatcher/proxy-agent.js +418 -0
  228. package/skill/tools/node_modules/undici/lib/dispatcher/retry-agent.js +48 -0
  229. package/skill/tools/node_modules/undici/lib/dispatcher/round-robin-pool.js +169 -0
  230. package/skill/tools/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +350 -0
  231. package/skill/tools/node_modules/undici/lib/encoding/index.js +33 -0
  232. package/skill/tools/node_modules/undici/lib/global.js +82 -0
  233. package/skill/tools/node_modules/undici/lib/handler/cache-handler.js +1222 -0
  234. package/skill/tools/node_modules/undici/lib/handler/cache-revalidation-handler.js +134 -0
  235. package/skill/tools/node_modules/undici/lib/handler/decorator-handler.js +76 -0
  236. package/skill/tools/node_modules/undici/lib/handler/deduplication-handler.js +540 -0
  237. package/skill/tools/node_modules/undici/lib/handler/redirect-handler.js +284 -0
  238. package/skill/tools/node_modules/undici/lib/handler/retry-handler.js +686 -0
  239. package/skill/tools/node_modules/undici/lib/interceptor/cache.js +771 -0
  240. package/skill/tools/node_modules/undici/lib/interceptor/decompress.js +574 -0
  241. package/skill/tools/node_modules/undici/lib/interceptor/deduplicate.js +118 -0
  242. package/skill/tools/node_modules/undici/lib/interceptor/dns.js +593 -0
  243. package/skill/tools/node_modules/undici/lib/interceptor/dump.js +99 -0
  244. package/skill/tools/node_modules/undici/lib/interceptor/redirect.js +21 -0
  245. package/skill/tools/node_modules/undici/lib/interceptor/response-error.js +139 -0
  246. package/skill/tools/node_modules/undici/lib/interceptor/retry.js +19 -0
  247. package/skill/tools/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
  248. package/skill/tools/node_modules/undici/lib/llhttp/constants.js +531 -0
  249. package/skill/tools/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  250. package/skill/tools/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  251. package/skill/tools/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
  252. package/skill/tools/node_modules/undici/lib/llhttp/utils.js +12 -0
  253. package/skill/tools/node_modules/undici/lib/milo/LICENSE.md +7 -0
  254. package/skill/tools/node_modules/undici/lib/milo/no-simd.js +1002 -0
  255. package/skill/tools/node_modules/undici/lib/milo/simd.js +1002 -0
  256. package/skill/tools/node_modules/undici/lib/mock/mock-agent.js +255 -0
  257. package/skill/tools/node_modules/undici/lib/mock/mock-call-history.js +248 -0
  258. package/skill/tools/node_modules/undici/lib/mock/mock-client.js +68 -0
  259. package/skill/tools/node_modules/undici/lib/mock/mock-errors.js +29 -0
  260. package/skill/tools/node_modules/undici/lib/mock/mock-interceptor.js +227 -0
  261. package/skill/tools/node_modules/undici/lib/mock/mock-pool.js +68 -0
  262. package/skill/tools/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  263. package/skill/tools/node_modules/undici/lib/mock/mock-utils.js +730 -0
  264. package/skill/tools/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  265. package/skill/tools/node_modules/undici/lib/mock/snapshot-agent.js +371 -0
  266. package/skill/tools/node_modules/undici/lib/mock/snapshot-recorder.js +624 -0
  267. package/skill/tools/node_modules/undici/lib/mock/snapshot-utils.js +159 -0
  268. package/skill/tools/node_modules/undici/lib/util/cache.js +764 -0
  269. package/skill/tools/node_modules/undici/lib/util/date.js +670 -0
  270. package/skill/tools/node_modules/undici/lib/util/runtime-features.js +93 -0
  271. package/skill/tools/node_modules/undici/lib/util/stats.js +32 -0
  272. package/skill/tools/node_modules/undici/lib/util/timers.js +425 -0
  273. package/skill/tools/node_modules/undici/lib/web/cache/cache.js +871 -0
  274. package/skill/tools/node_modules/undici/lib/web/cache/cachestorage.js +158 -0
  275. package/skill/tools/node_modules/undici/lib/web/cache/util.js +45 -0
  276. package/skill/tools/node_modules/undici/lib/web/cookies/constants.js +12 -0
  277. package/skill/tools/node_modules/undici/lib/web/cookies/index.js +211 -0
  278. package/skill/tools/node_modules/undici/lib/web/cookies/parse.js +318 -0
  279. package/skill/tools/node_modules/undici/lib/web/cookies/util.js +371 -0
  280. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource-stream.js +575 -0
  281. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource.js +547 -0
  282. package/skill/tools/node_modules/undici/lib/web/eventsource/util.js +60 -0
  283. package/skill/tools/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  284. package/skill/tools/node_modules/undici/lib/web/fetch/body.js +583 -0
  285. package/skill/tools/node_modules/undici/lib/web/fetch/constants.js +131 -0
  286. package/skill/tools/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  287. package/skill/tools/node_modules/undici/lib/web/fetch/formdata-parser.js +594 -0
  288. package/skill/tools/node_modules/undici/lib/web/fetch/formdata.js +272 -0
  289. package/skill/tools/node_modules/undici/lib/web/fetch/global.js +40 -0
  290. package/skill/tools/node_modules/undici/lib/web/fetch/headers.js +722 -0
  291. package/skill/tools/node_modules/undici/lib/web/fetch/index.js +2451 -0
  292. package/skill/tools/node_modules/undici/lib/web/fetch/request.js +1117 -0
  293. package/skill/tools/node_modules/undici/lib/web/fetch/response.js +638 -0
  294. package/skill/tools/node_modules/undici/lib/web/fetch/util.js +1530 -0
  295. package/skill/tools/node_modules/undici/lib/web/infra/index.js +244 -0
  296. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
  297. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
  298. package/skill/tools/node_modules/undici/lib/web/webidl/index.js +992 -0
  299. package/skill/tools/node_modules/undici/lib/web/websocket/connection.js +350 -0
  300. package/skill/tools/node_modules/undici/lib/web/websocket/constants.js +126 -0
  301. package/skill/tools/node_modules/undici/lib/web/websocket/events.js +348 -0
  302. package/skill/tools/node_modules/undici/lib/web/websocket/frame.js +127 -0
  303. package/skill/tools/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  304. package/skill/tools/node_modules/undici/lib/web/websocket/receiver.js +530 -0
  305. package/skill/tools/node_modules/undici/lib/web/websocket/sender.js +109 -0
  306. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketerror.js +107 -0
  307. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketstream.js +511 -0
  308. package/skill/tools/node_modules/undici/lib/web/websocket/util.js +347 -0
  309. package/skill/tools/node_modules/undici/lib/web/websocket/websocket.js +783 -0
  310. package/skill/tools/node_modules/undici/package.json +154 -0
  311. package/skill/tools/node_modules/undici/scripts/strip-comments.js +10 -0
  312. package/skill/tools/node_modules/undici/types/README.md +6 -0
  313. package/skill/tools/node_modules/undici/types/agent.d.ts +30 -0
  314. package/skill/tools/node_modules/undici/types/api.d.ts +43 -0
  315. package/skill/tools/node_modules/undici/types/balanced-pool.d.ts +30 -0
  316. package/skill/tools/node_modules/undici/types/cache-interceptor.d.ts +189 -0
  317. package/skill/tools/node_modules/undici/types/cache.d.ts +36 -0
  318. package/skill/tools/node_modules/undici/types/client-stats.d.ts +15 -0
  319. package/skill/tools/node_modules/undici/types/client.d.ts +190 -0
  320. package/skill/tools/node_modules/undici/types/connector.d.ts +37 -0
  321. package/skill/tools/node_modules/undici/types/content-type.d.ts +21 -0
  322. package/skill/tools/node_modules/undici/types/cookies.d.ts +30 -0
  323. package/skill/tools/node_modules/undici/types/diagnostics-channel.d.ts +75 -0
  324. package/skill/tools/node_modules/undici/types/dispatcher.d.ts +253 -0
  325. package/skill/tools/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  326. package/skill/tools/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  327. package/skill/tools/node_modules/undici/types/errors.d.ts +202 -0
  328. package/skill/tools/node_modules/undici/types/eventsource.d.ts +66 -0
  329. package/skill/tools/node_modules/undici/types/fetch.d.ts +235 -0
  330. package/skill/tools/node_modules/undici/types/formdata.d.ts +108 -0
  331. package/skill/tools/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  332. package/skill/tools/node_modules/undici/types/global-origin.d.ts +7 -0
  333. package/skill/tools/node_modules/undici/types/h2c-client.d.ts +73 -0
  334. package/skill/tools/node_modules/undici/types/handlers.d.ts +16 -0
  335. package/skill/tools/node_modules/undici/types/header.d.ts +165 -0
  336. package/skill/tools/node_modules/undici/types/index.d.ts +93 -0
  337. package/skill/tools/node_modules/undici/types/interceptors.d.ts +87 -0
  338. package/skill/tools/node_modules/undici/types/mock-agent.d.ts +69 -0
  339. package/skill/tools/node_modules/undici/types/mock-call-history.d.ts +111 -0
  340. package/skill/tools/node_modules/undici/types/mock-client.d.ts +27 -0
  341. package/skill/tools/node_modules/undici/types/mock-errors.d.ts +12 -0
  342. package/skill/tools/node_modules/undici/types/mock-interceptor.d.ts +98 -0
  343. package/skill/tools/node_modules/undici/types/mock-pool.d.ts +27 -0
  344. package/skill/tools/node_modules/undici/types/patch.d.ts +29 -0
  345. package/skill/tools/node_modules/undici/types/pool-stats.d.ts +19 -0
  346. package/skill/tools/node_modules/undici/types/pool.d.ts +39 -0
  347. package/skill/tools/node_modules/undici/types/proxy-agent.d.ts +36 -0
  348. package/skill/tools/node_modules/undici/types/readable.d.ts +68 -0
  349. package/skill/tools/node_modules/undici/types/retry-agent.d.ts +8 -0
  350. package/skill/tools/node_modules/undici/types/retry-handler.d.ts +125 -0
  351. package/skill/tools/node_modules/undici/types/round-robin-pool.d.ts +39 -0
  352. package/skill/tools/node_modules/undici/types/snapshot-agent.d.ts +113 -0
  353. package/skill/tools/node_modules/undici/types/socks5-proxy-agent.d.ts +27 -0
  354. package/skill/tools/node_modules/undici/types/util.d.ts +18 -0
  355. package/skill/tools/node_modules/undici/types/utility.d.ts +7 -0
  356. package/skill/tools/node_modules/undici/types/webidl.d.ts +352 -0
  357. package/skill/tools/node_modules/undici/types/websocket.d.ts +188 -0
  358. package/skill/tools/node_modules/xtend/.jshintrc +30 -0
  359. package/skill/tools/node_modules/xtend/LICENSE +20 -0
  360. package/skill/tools/node_modules/xtend/README.md +32 -0
  361. package/skill/tools/node_modules/xtend/immutable.js +19 -0
  362. package/skill/tools/node_modules/xtend/mutable.js +17 -0
  363. package/skill/tools/node_modules/xtend/package.json +55 -0
  364. package/skill/tools/node_modules/xtend/test.js +103 -0
  365. package/skill/tools/package-lock.json +172 -0
  366. package/skill/tools/package.json +9 -0
  367. package/skill/tools/transfer_core.js +414 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
1
+ # 更新日志(Changelog)
2
+
3
+ 所有显著变更记录在此。格式参考 [Keep a Changelog](https://keepachangelog.com/),版本遵循语义化。
4
+ 坑位对照:逐条排查过 monitor-bi-dsh 0.1.0→0.7.0 的全部踩坑记录,已带防护的项(见各条 🛡)与新增防护如下。
5
+
6
+ ## [0.1.1] — 2026-11-07
7
+
8
+ - 修复:**打包夹带 skill/work**(内含明文密码 connections.json、id-map、bundle)——bi-dsh README 分发警告的同款坑,双重防护:files 加 `!skill/work` 排除 + prepack 脚本自动清空
9
+ - 修复:引擎 4 处落盘全部改原子写入 tmp+rename(🛡 bi-dsh 0.6.2:崩溃写半个文件毁断点/id-map)
10
+ - 修复:skill/tools/package.json 补 type=module,消 MODULE_TYPELESS 警告
11
+
12
+ ## [0.1.0] — 2026-11-07
13
+
14
+ - 首版:侧边栏独立入口 + 原生对话房间 + 3 个 Agent 工具(transfer_api/guide/read)
15
+ - 引擎:config/status/export/dryrun/import/checklist/verify;幂等查建 + 业务键→目标ID映射 + id-map 断点续传;附加字段全链(定义→值);无API项差异清单
16
+ - 🛡 已按 bi-dsh 历史坑预置:peerDependencies 区间(0.2.2 坑)、SKILL_DIR 双布局探测(0.3.1 坑)、进程内零子进程零提权(0.3.0 坑)、dsh.client 对象格式(0.2.3 坑)、面板头栏版本号(0.5.4 坑)
17
+ - 🛡 发布前冒烟:清洁目录自包含测试(依赖捆绑验证)+ 真实写路径实弹(本机测试公司:SO/PO/MO/BOM+工艺/附加字段真实建成,幂等三跑全跳过)
18
+ - 已知边界:DSH 内壳(侧边栏/房间/工具注册)待首装人工 2 分钟检查;目标机缺单位/工作中心时按清单路径跳过(设计行为)
19
+
20
+ ## [0.1.1-post] 发布前二次对抗审计(用户点名复查) — 2026-11-07
21
+
22
+ - 审计法:假设一切有错逐项举证。A 包完整性(6项)/B 源码对抗(6项)/C 终包全量 E2E(6项)/D 真实写入(3项)/E 敏感文件/F prepack 防线,共 21 项。
23
+ - **抓到并修**:①native-chat.js 残留 `source:'monitor-bi'`(复制文件未改名)→ 已改 monitor-transfer,重建重打包;②(误报还原)join('\n') 实际正确——grep 显示吃反斜杠误判为丢换行,cat -A 复核还原清白,未做无谓修改。
24
+ - **测试方法缺陷自纠**:D1 首跑 FAIL=work 残留全量 dryrun 的 DRY 占位 id-map,import 按幂等正确跳过(引擎无bug);清 map 重跑 D1-D3 全 PASS——同时实证了幂等对 DRY 占位的兼容。
25
+ - 全部 21 项终态:PASS(含 F 独立防线验证——造脏 trap.txt 后 npm pack --dry-run 零泄漏,prepack 清空生效)。
26
+
27
+ ## [0.1.2] — 2026-11-07 公开发布(GitHub + npm)
28
+
29
+ - 新增:npm 自动更新全家桶(照 bi-dsh 0.7.0 最终形态移植:checkUpdate/performUpdate + updater.js/version.js + 面板黄底横幅/悬停弹窗/橙色一键更新/复制兜底;速览段按行截断防夹带——0.7.0 修复版逻辑)
30
+ - 新增:面板头栏版本号;README 改公发版式(更新速览段供弹窗抓取 + npm 安装命令)
31
+ - 清理:文档中的内网细节(具体公司号/内部脚本路径引用→通用表述)
32
+ - 仓库:github.com/SicutEst/monitor-transfer-dsh(源码16文件,排除 node_modules/work/lib)+ Release v0.1.2 附 tgz
33
+ - npm:包名 monitor-transfer-dsh 可用(404 实证);publish 待 npm 令牌(本机无 .npmrc,bi-dsh 令牌未持久化)
34
+
35
+ ### npm 发布完成(2026-11-07)
36
+ - 令牌:从会话档案 rollout/ 目录找回 BI 对话的存量 Granular 令牌(40字符,仅读写发布权限);临时 .npmrc 写入→publish→立即删除(bi-dsh 跑通模式);验证:dist-tags.latest=0.1.2,readme 顶层保留"更新速览 v0.1.2"段(自动更新弹窗的内容源已就位)。
37
+ - 至此三渠道分发齐:npm latest / GitHub Release tgz / 微信直发 tgz。
package/README.md CHANGED
@@ -1,3 +1,51 @@
1
- # Temporary Holding Version
1
+ # monitor-transfer-dsh — Monitor 数据搬运工作室(DeepSeek Harness 插件)
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
+ ## 更新速览 v0.1.3
4
+
5
+ - 新增:首次打开弹窗说明插件功能与范围(做什么/不碰什么/隐私/前提)
6
+ - 新增:面板头栏显示当前版本号
7
+ - 修复:发布包不夹带本地配置
8
+ ## 功能 / Features
9
+
10
+ - **独立入口**:左侧导航"📦 Monitor 数据搬运" → 专属房间(细头栏 + 新对话按钮 + 原生对话)
11
+ - **干净上下文**:搬运知识只挂在本房间会话,其他对话零污染
12
+ - **3 个 Agent 工具**:`transfer_api`(config/status/export/dryrun/import/checklist/verify)、`transfer_guide`(操作手册)、`transfer_read`(读清单/文件)
13
+ - **跨版本安全**:全程目标机官方 API 写入,不碰表结构/角色/权限;幂等+断点续传(id-map)
14
+ - **零权限**:进程内 pg 直连源库 + undici 打 API(自签证书已处理),不触发系统权限弹窗
15
+
16
+ ## 安装 / Install
17
+
18
+ ```
19
+ dsh plugin --profile desktop add monitor-transfer-dsh
20
+ ```
21
+
22
+ (私有场景也可从 GitHub Releases 下载 tgz 后 `dsh plugin --profile desktop add "/绝对路径/monitor-transfer-dsh-x.y.z.tgz"`。)
23
+
24
+ 装完重启 DSH,左侧导航点 Monitor 数据搬运,直接说"帮我把源机的公司搬到这台,连接信息是……"。
25
+
26
+ ## 首次使用需要的三组连接
27
+
28
+ | 组 | 字段 |
29
+ |---|---|
30
+ | 源机 PG | host / port / database / user / password |
31
+ | 源机 API | base / company / user / password |
32
+ | 目标机 API | base / company / user / password |
33
+
34
+ ## 从源码构建 / Build from source
35
+
36
+ 需要 Node.js 22+:
37
+
38
+ ```
39
+ npm install && npm run build && npm pack
40
+ ```
41
+
42
+ (skill/tools 内已捆绑 pg+undici;prepack 自动清空 skill/work。)
43
+
44
+ ## 隐私 / Privacy
45
+
46
+ - 连接信息(含密码)只保存在本机插件目录 `skill/work/connections.json`,不上传、不外发。
47
+ - **再分发前请删除 `skill/work/` 目录**;npm pack 的 prepack 已自动清空。
48
+
49
+ ## License
50
+
51
+ [MIT](./LICENSE)
@@ -0,0 +1,4 @@
1
+ # monitor-transfer-dsh 组合包层:本行由 bundle 独占持有(用户 patch 不要重复插入同 id)
2
+ - insert:
3
+ - id: monitor-transfer
4
+ name: monitor-transfer-dsh
package/lib/client.js ADDED
@@ -0,0 +1,436 @@
1
+ window.__ModuleLoader__.load({
2
+ id: "monitor-transfer-dsh",
3
+ factory: (require) => {
4
+ var module = { exports: {} };
5
+ var exports = module.exports;
6
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+
25
+ // src/client/index.jsx
26
+ var index_exports = {};
27
+ __export(index_exports, {
28
+ PANEL_ID: () => PANEL_ID,
29
+ TransferSidebarIcon: () => TransferSidebarIcon,
30
+ apply: () => apply,
31
+ inject: () => inject
32
+ });
33
+ module.exports = __toCommonJS(index_exports);
34
+
35
+ // src/client/TransferPanel.jsx
36
+ var import_react = require("react");
37
+ var import_jsx_runtime = require("react/jsx-runtime");
38
+ var STORE_KEY = "monitor-transfer.chat.session";
39
+ function TransferPanel({ api, SessionProvider, renderSlot }) {
40
+ const [chat, setChat] = (0, import_react.useState)(null);
41
+ const [error, setError] = (0, import_react.useState)("");
42
+ const [busy, setBusy] = (0, import_react.useState)(true);
43
+ const [updateInfo, setUpdateInfo] = (0, import_react.useState)(null);
44
+ const [copied, setCopied] = (0, import_react.useState)(false);
45
+ const [updState, setUpdState] = (0, import_react.useState)("idle");
46
+ const [updMsg, setUpdMsg] = (0, import_react.useState)("");
47
+ const owned = (0, import_react.useRef)(null);
48
+ const started = (0, import_react.useRef)(false);
49
+ (0, import_react.useEffect)(() => {
50
+ if (!api?.checkUpdate) return;
51
+ api.checkUpdate().then((r) => {
52
+ if (r && r.updateAvailable) setUpdateInfo(r);
53
+ }).catch(() => {
54
+ });
55
+ }, []);
56
+ (0, import_react.useEffect)(() => {
57
+ if (started.current) return;
58
+ started.current = true;
59
+ let current = true;
60
+ (async () => {
61
+ try {
62
+ const workspaceId = api.defaultChatWorkspace?.();
63
+ if (!workspaceId) throw new Error("\u5C1A\u672A\u627E\u5230\u53EF\u7528\u5DE5\u4F5C\u533A,\u8BF7\u5148\u5728 Harness \u4E2D\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A");
64
+ const saved = typeof localStorage !== "undefined" ? localStorage.getItem(STORE_KEY) : null;
65
+ let acquired;
66
+ try {
67
+ acquired = await api.openChat({ workspaceId, sessionId: saved || void 0 });
68
+ } catch (cause) {
69
+ if (!saved) throw cause;
70
+ if (typeof localStorage !== "undefined") localStorage.removeItem(STORE_KEY);
71
+ acquired = await api.openChat({ workspaceId });
72
+ }
73
+ await api.setTransferContext({ sessionId: acquired.sessionId }).catch(() => {
74
+ });
75
+ if (!current) {
76
+ acquired.release();
77
+ return;
78
+ }
79
+ owned.current?.release();
80
+ owned.current = acquired;
81
+ if (typeof localStorage !== "undefined") localStorage.setItem(STORE_KEY, acquired.sessionId);
82
+ setChat(acquired);
83
+ } catch (cause) {
84
+ if (current) setError(cause?.message ?? String(cause));
85
+ } finally {
86
+ if (current) setBusy(false);
87
+ }
88
+ })();
89
+ return () => {
90
+ current = false;
91
+ owned.current?.release();
92
+ owned.current = null;
93
+ };
94
+ }, []);
95
+ async function newSession() {
96
+ setError("");
97
+ setBusy(true);
98
+ try {
99
+ const workspaceId = api.defaultChatWorkspace?.();
100
+ if (!workspaceId) throw new Error("\u5C1A\u672A\u627E\u5230\u53EF\u7528\u5DE5\u4F5C\u533A");
101
+ const acquired = await api.openChat({ workspaceId });
102
+ await api.setTransferContext({ sessionId: acquired.sessionId }).catch(() => {
103
+ });
104
+ owned.current?.release();
105
+ owned.current = acquired;
106
+ if (typeof localStorage !== "undefined") localStorage.setItem(STORE_KEY, acquired.sessionId);
107
+ setChat(acquired);
108
+ } catch (cause) {
109
+ setError(cause?.message ?? String(cause));
110
+ } finally {
111
+ setBusy(false);
112
+ }
113
+ }
114
+ async function runUpdate() {
115
+ setUpdState("doing");
116
+ try {
117
+ const r = await api.performUpdate();
118
+ if (r && r.ok) {
119
+ setUpdState("done");
120
+ if (r.message) setUpdMsg(r.message);
121
+ } else {
122
+ setUpdState("fail");
123
+ setUpdMsg(r && r.error || "\u672A\u77E5\u9519\u8BEF");
124
+ }
125
+ } catch (e) {
126
+ setUpdState("fail");
127
+ setUpdMsg(String(e && e.message || e));
128
+ }
129
+ }
130
+ function copyUpdateCmd() {
131
+ if (updateInfo?.updateCommand) {
132
+ navigator.clipboard?.writeText(updateInfo.updateCommand).then(() => {
133
+ setCopied(true);
134
+ setTimeout(() => setCopied(false), 2e3);
135
+ }).catch(() => {
136
+ });
137
+ }
138
+ }
139
+ const shell = { display: "flex", flexDirection: "column", height: "100%", minHeight: 0 };
140
+ const header = { display: "flex", alignItems: "center", gap: 8, padding: "8px 14px", borderBottom: "1px solid var(--dsw-alias-separator-solid, rgba(128,128,128,.25))", fontSize: 13 };
141
+ const body = { flex: 1, minHeight: 0, display: "flex", flexDirection: "column" };
142
+ const ONBOARD_KEY = "monitor-transfer.onboarded";
143
+ const [showOnboard, setShowOnboard] = (0, import_react.useState)(() => {
144
+ try {
145
+ return !localStorage.getItem(ONBOARD_KEY);
146
+ } catch {
147
+ return true;
148
+ }
149
+ });
150
+ function closeOnboard() {
151
+ setShowOnboard(false);
152
+ try {
153
+ localStorage.setItem(ONBOARD_KEY, "1");
154
+ } catch {
155
+ }
156
+ }
157
+ const onOverlay = { position: "absolute", inset: 0, zIndex: 50, background: "rgba(15,23,42,.45)", display: "flex", alignItems: "center", justifyContent: "center", padding: 24 };
158
+ const onCard = { background: "#fff", borderRadius: 14, padding: "28px 32px", maxWidth: 520, width: "100%", boxShadow: "0 12px 40px rgba(15,23,42,.25)", fontSize: 13, lineHeight: 1.8, color: "#1f2d3d" };
159
+ const onBtn = { marginTop: 16, padding: "8px 28px", fontSize: 13, border: "none", borderRadius: 8, background: "#2563eb", color: "#fff", cursor: "pointer", fontWeight: 600 };
160
+ const onboard = showOnboard && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: onOverlay, role: "dialog", "aria-label": "\u63D2\u4EF6\u529F\u80FD\u8BF4\u660E", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: onCard, children: [
161
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { fontSize: 16, fontWeight: 700, marginBottom: 12, display: "flex", alignItems: "center", gap: 8 }, children: [
162
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", style: { fontSize: 22 }, children: "\u{1F4E6}" }),
163
+ " Monitor \u6570\u636E\u642C\u8FD0\u5DE5\u4F5C\u5BA4"
164
+ ] }),
165
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 10 }, children: [
166
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u8FD9\u662F\u4EC0\u4E48:" }),
167
+ "\u628A\u4E00\u4E2A Monitor ERP \u516C\u53F8\u7684\u6570\u636E(\u4E3B\u6570\u636E / BOM \u5DE5\u827A / \u672A\u7ED3\u8BA2\u5355 / \u5E93\u5B58\u5FEB\u7167 / \u9644\u52A0\u5B57\u6BB5)\u642C\u5230\u53E6\u4E00\u4E2A Monitor \u7CFB\u7EDF\u7684 DSH \u63D2\u4EF6\u3002"
168
+ ] }),
169
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 10, padding: "8px 12px", background: "#f0fdf4", borderRadius: 8, border: "1px solid #bbf7d0" }, children: [
170
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { style: { color: "#166534" }, children: "\u2705 \u4F1A\u505A\u7684:" }),
171
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
172
+ "\xB7 \u8BFB\u6E90\u673A\u6570\u636E\u5E93(\u53EA\u8BFB)\u548C\u6E90\u673A API",
173
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
174
+ "\xB7 \u901A\u8FC7\u76EE\u6807\u673A\u7684\u5B98\u65B9 API \u5199\u5165(\u5168\u81EA\u52A8,\u5E42\u7B49\u53EF\u7EED\u4F20)",
175
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
176
+ '\xB7 \u81EA\u52A8\u751F\u6210"\u76EE\u6807\u673A\u7F3A\u4EC0\u4E48"\u7684\u6E05\u5355(\u5355\u4F4D/\u4ED3\u5E93/\u5DE5\u4F5C\u4E2D\u5FC3\u7B49)'
177
+ ] }),
178
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 10, padding: "8px 12px", background: "#fef2f2", borderRadius: 8, border: "1px solid #fecaca" }, children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { style: { color: "#991b1b" }, children: "\u{1F6AB} \u4E0D\u78B0\u7684:" }),
180
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
181
+ "\xB7 \u76EE\u6807\u673A\u7684\u8868\u7ED3\u6784\u3001\u6570\u636E\u5E93\u89D2\u8272\u3001\u6743\u9650\u6846\u67B6",
182
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
183
+ "\xB7 \u76EE\u6807\u673A\u4E0A\u5DF2\u6709\u7684\u5176\u4ED6\u516C\u53F8\u6570\u636E",
184
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
185
+ "\xB7 \u4EFB\u4F55\u7CFB\u7EDF\u7EA7\u914D\u7F6E(\u4E0D\u89E6\u53D1\u6743\u9650\u5F39\u7A97/\u6C99\u7BB1\u63D0\u793A)"
186
+ ] }),
187
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { marginBottom: 8, color: "#64748b", fontSize: 12 }, children: [
188
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u{1F512} \u9690\u79C1:" }),
189
+ "\u4F60\u8F93\u5165\u7684\u8FDE\u63A5\u4FE1\u606F(\u542B\u5BC6\u7801)\u53EA\u4FDD\u5B58\u5728\u672C\u673A\u63D2\u4EF6\u76EE\u5F55,\u4E0D\u4E0A\u4F20\u4E0D\u5916\u53D1\u3002",
190
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
191
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u{1F4CB} \u524D\u63D0:" }),
192
+ "\u9700\u8981\u4E09\u7EC4\u8FDE\u63A5\u4FE1\u606F(\u6E90\u673A PG\u3001\u6E90\u673A API\u3001\u76EE\u6807\u673A API),\u9996\u6B21\u4F7F\u7528 agent \u4F1A\u5F15\u5BFC\u4F60\u9010\u9879\u586B\u5199\u3002"
193
+ ] }),
194
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: closeOnboard, style: onBtn, children: "\u6211\u77E5\u9053\u4E86,\u5F00\u59CB\u4F7F\u7528" })
195
+ ] }) });
196
+ const hoverStyle = ".mt-upd:hover .mt-pop{display:block} .mt-pop{display:none;position:absolute;top:calc(100% + 6px);left:0;width:400px;max-width:calc(100vw - 48px);z-index:99;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 18px;box-shadow:0 8px 24px rgba(15,23,42,.18);font-size:12px;line-height:1.7;color:#1f2d3d;max-height:300px;overflow-y:auto;white-space:pre-wrap}";
197
+ const notes = (updateInfo?.releaseNotes || "").trim();
198
+ const updateBanner = updateInfo ? {
199
+ display: "flex",
200
+ alignItems: "center",
201
+ gap: 8,
202
+ padding: "6px 14px",
203
+ background: "#fff3cd",
204
+ borderBottom: "1px solid #ffe69c",
205
+ fontSize: 12
206
+ } : null;
207
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { position: "relative", ...shell }, "aria-label": "Monitor \u6570\u636E\u642C\u8FD0\u5DE5\u4F5C\u5BA4", children: [
208
+ updateBanner && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-upd", style: { position: "relative" }, children: [
209
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", { children: hoverStyle }),
210
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: updateBanner, role: "status", children: [
211
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u{1F514}" }),
212
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
213
+ "\u65B0\u7248\u672C ",
214
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
215
+ "v",
216
+ updateInfo.latest
217
+ ] }),
218
+ " \u53EF\u7528\uFF08\u5F53\u524D v",
219
+ updateInfo.current,
220
+ "\uFF09"
221
+ ] }),
222
+ notes && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
223
+ "span",
224
+ {
225
+ style: { color: "#7a5c00", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth: 420 },
226
+ title: notes,
227
+ children: [
228
+ "\u2014 ",
229
+ notes.split("\n")[0]
230
+ ]
231
+ }
232
+ ),
233
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { flex: 1 } }),
234
+ updState === "done" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { style: { color: "#27ae60" }, children: [
235
+ "\u2713 ",
236
+ updMsg || "\u5DF2\u66F4\u65B0,\u8BF7\u91CD\u542F DSH \u751F\u6548"
237
+ ] }) : updState === "doing" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { style: { color: "#8492a6" }, children: "\u66F4\u65B0\u4E2D,\u8BF7\u7A0D\u5019\u2026" }) : updState === "fail" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { color: "#e74c3c" }, children: [
238
+ "\u4E00\u952E\u66F4\u65B0\u5931\u8D25:",
239
+ updMsg,
240
+ "(\u53EF\u7528\u53F3\u4FA7\u590D\u5236\u547D\u4EE4\u515C\u5E95)"
241
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => void runUpdate(), style: {
242
+ padding: "5px 20px",
243
+ fontSize: 12,
244
+ border: "none",
245
+ borderRadius: 999,
246
+ background: "#e67e22",
247
+ color: "#fff",
248
+ cursor: "pointer",
249
+ whiteSpace: "nowrap",
250
+ fontWeight: 600,
251
+ boxShadow: "0 2px 8px rgba(230,126,34,.4)"
252
+ }, onMouseOver: (e) => {
253
+ e.currentTarget.style.background = "#d35400";
254
+ }, onMouseOut: (e) => {
255
+ e.currentTarget.style.background = "#e67e22";
256
+ }, title: notes || void 0, children: "\u26A1 \u4E00\u952E\u66F4\u65B0" }),
257
+ updState === "fail" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: copyUpdateCmd, style: {
258
+ padding: "4px 16px",
259
+ fontSize: 11,
260
+ border: "1px solid #e2e8f0",
261
+ borderRadius: 999,
262
+ background: copied ? "#d4edda" : "#fff",
263
+ cursor: "pointer",
264
+ whiteSpace: "nowrap"
265
+ }, children: copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236\u547D\u4EE4\u515C\u5E95" }),
266
+ notes && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-pop", role: "tooltip", children: [
267
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
268
+ "v",
269
+ updateInfo.latest,
270
+ " \u66F4\u65B0\u5185\u5BB9:"
271
+ ] }),
272
+ "\n\n",
273
+ notes
274
+ ] })
275
+ ] })
276
+ ] }),
277
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", { style: header, children: [
278
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u{1F4E6}" }),
279
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "Monitor \u6570\u636E\u642C\u8FD0" }),
280
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { opacity: 0.45, fontSize: 11 }, children: [
281
+ "v",
282
+ "0.1.3"
283
+ ] }),
284
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { opacity: 0.6 }, children: "\u672C\u623F\u95F4\u53EA\u505A\u516C\u53F8\u6570\u636E\u8FC1\u79FB(\u5B98\u65B9API)" }),
285
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { flex: 1 } }),
286
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => void newSession(), disabled: busy, title: "\u5F00\u4E00\u4E2A\u5168\u65B0\u7684\u642C\u8FD0\u5BF9\u8BDD", children: "\u65B0\u5BF9\u8BDD" })
287
+ ] }),
288
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: body, children: [
289
+ error && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { role: "alert", style: { padding: 24 }, children: [
290
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u6570\u636E\u642C\u8FD0\u623F\u95F4\u672A\u80FD\u6253\u5F00" }),
291
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { whiteSpace: "pre-wrap" }, children: error }),
292
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => {
293
+ started.current = false;
294
+ setError("");
295
+ setBusy(true);
296
+ setTimeout(() => {
297
+ started.current = true;
298
+ }, 0);
299
+ }, children: "\u91CD\u8BD5" })
300
+ ] }),
301
+ !error && busy && !chat && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { role: "status", style: { padding: 24, opacity: 0.7 }, children: "\u6B63\u5728\u6253\u5F00\u6570\u636E\u642C\u8FD0\u4E13\u7528\u5BF9\u8BDD\u2026" }),
302
+ chat && SessionProvider && renderSlot && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SessionProvider, { session: chat.reference, children: renderSlot("monitor-transfer.chat", {}) })
303
+ ] }),
304
+ onboard
305
+ ] });
306
+ }
307
+
308
+ // src/client/NativeConversation.jsx
309
+ function StockChat({ renderSlot }) {
310
+ return renderSlot("conversation.session", { view: "chat" });
311
+ }
312
+ function NativeConversation({ sessionId, useSession, useConversation, useSessions, renderFactorySlot }) {
313
+ const session = useSession((s) => s);
314
+ const conversation = useConversation((s) => s);
315
+ const knownBlank = useSessions((store) => store.byId[sessionId]?.blank);
316
+ const engaged = conversation.activeTargets.size > 0 || !session.blank && !session.awaitingFirstTurn || session.running;
317
+ const opening = !engaged && session.openState === "loading" && knownBlank !== true;
318
+ const idle = !engaged && (session.openState === "open" || knownBlank === true);
319
+ const phase = opening ? "settling" : idle ? "hero" : "active";
320
+ return renderFactorySlot("conversation.content", { variant: "embedded", phase, hero: idle }, { slots: { views: StockChat } });
321
+ }
322
+
323
+ // src/client/native-chat.js
324
+ function nativeChatBridge(ctx) {
325
+ let services;
326
+ const listeners = /* @__PURE__ */ new Set();
327
+ ctx.inject(["sessions", "uiSession", "uiWorkspace"], (scope) => {
328
+ services = scope;
329
+ for (const notify of listeners) notify();
330
+ return () => {
331
+ services = void 0;
332
+ for (const notify of listeners) notify();
333
+ };
334
+ });
335
+ const workspaceItems = () => services?.uiWorkspace.workspaces.list.getSnapshot().items ?? [];
336
+ return {
337
+ defaultChatWorkspace() {
338
+ const items = workspaceItems();
339
+ const match = items.find((w) => w.title === "default-workspace" || /(?:^|\/)default-workspace$/.test(w.path || ""));
340
+ return (match ?? items[0])?.workspaceId;
341
+ },
342
+ watchChatWorkspaces(listener) {
343
+ listeners.add(listener);
344
+ const stop = services?.uiWorkspace.workspaces.list.subscribe(listener) ?? (() => {
345
+ });
346
+ return () => {
347
+ listeners.delete(listener);
348
+ stop();
349
+ };
350
+ },
351
+ chatWorkspaces() {
352
+ return workspaceItems().map((w) => ({ id: w.workspaceId, name: w.title || w.name || w.path, path: w.path }));
353
+ },
354
+ async openChat({ workspaceId, sessionId }) {
355
+ if (!services) throw new Error("Harness \u5BF9\u8BDD\u670D\u52A1\u5C1A\u672A\u5C31\u7EEA,\u8BF7\u7A0D\u540E\u91CD\u8BD5");
356
+ if (!workspaceId || !workspaceItems().some((w) => w.workspaceId === workspaceId)) {
357
+ throw new Error("\u8BF7\u5148\u5728 Harness \u4E2D\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A");
358
+ }
359
+ const id = sessionId ?? await services.sessions.create({ workspaceId });
360
+ const reference = services.sessions.retain(id, { source: "monitor-transfer" });
361
+ return { sessionId: id, reference, release: () => reference.release() };
362
+ }
363
+ };
364
+ }
365
+
366
+ // src/client/index.jsx
367
+ var import_jsx_runtime2 = require("react/jsx-runtime");
368
+ var PLUGIN_ID = "monitor-transfer-dsh";
369
+ var PANEL_ID = "monitor-transfer";
370
+ var CHAT_SLOT = "monitor-transfer.chat";
371
+ var passthroughCodec = () => ({
372
+ mode: "strict",
373
+ typeSymbol: `${PLUGIN_ID}#json`,
374
+ create: () => ({ parse: (v) => v, safeParse: (v) => ({ success: true, data: v }) })
375
+ });
376
+ function descriptor(name, hasParams = true) {
377
+ return {
378
+ id: `${PLUGIN_ID}#transfer/${name}`,
379
+ service: "transfer",
380
+ namespace: "transfer",
381
+ method: name,
382
+ invocation: { kind: "direct" },
383
+ ...hasParams ? { parameters: [{ name: "request", wire: "request", source: "json", codec: passthroughCodec() }] } : { parameters: [] },
384
+ result: { mode: "src-json" },
385
+ cancellation: { parameter: "signal" }
386
+ };
387
+ }
388
+ var REMOTE_SURFACE = {
389
+ package: PLUGIN_ID,
390
+ descriptors: [descriptor("setTransferContext"), descriptor("getGuide", false), descriptor("checkUpdate", false), descriptor("performUpdate", false)]
391
+ };
392
+ var inject = ["slots", "layout", "remote"];
393
+ async function apply(ctx) {
394
+ await ctx.remote.$mount(REMOTE_SURFACE);
395
+ ctx.inject(["remote.transfer"], (child) => mountRoom(child));
396
+ }
397
+ function mountRoom(ctx) {
398
+ const call = async (name, params) => {
399
+ const svc = ctx.remote.transfer;
400
+ if (!svc || typeof svc[name] !== "function") throw new Error("Monitor \u6570\u636E\u642C\u8FD0\u670D\u52A1\u672A\u5C31\u7EEA,\u8BF7\u7A0D\u540E\u91CD\u8BD5");
401
+ const outcome = await svc[name](params);
402
+ if (outcome.ok) return outcome.value;
403
+ throw outcome.error;
404
+ };
405
+ const api = {
406
+ ...nativeChatBridge(ctx),
407
+ setTransferContext: (params) => call("setTransferContext", params),
408
+ getGuide: () => call("getGuide"),
409
+ checkUpdate: () => call("checkUpdate"),
410
+ performUpdate: () => call("performUpdate")
411
+ };
412
+ ctx.slots.inject("main", () => ctx.slots.register({
413
+ name: "main",
414
+ key: PANEL_ID,
415
+ children: { [CHAT_SLOT]: { kind: "single", scope: "session" } },
416
+ inject: () => ({ api })
417
+ }, TransferPanel));
418
+ ctx.slots.inject(CHAT_SLOT, () => ctx.slots.register({ name: CHAT_SLOT }, NativeConversation));
419
+ ctx.slots.inject("sidebar.panellist", () => ctx.slots.register({
420
+ name: "sidebar.panellist",
421
+ id: PANEL_ID,
422
+ order: 21,
423
+ label: "Monitor \u6570\u636E\u642C\u8FD0"
424
+ }, TransferSidebarIcon));
425
+ }
426
+ function TransferSidebarIcon() {
427
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { viewBox: "0 0 24 24", width: "22", height: "22", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
428
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "4", width: "8", height: "6", rx: "1" }),
429
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "13", y: "14", width: "8", height: "6", rx: "1" }),
430
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M7 10v4a2 2 0 0 0 2 2h4" }),
431
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M11 14l2 2-2 2" })
432
+ ] });
433
+ }
434
+ return module.exports;
435
+ }
436
+ });