monitor-transfer-dsh 0.0.0-stage → 0.1.2
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.
- package/CHANGELOG.md +25 -0
- package/README.md +51 -2
- package/cordis.patch.yml +4 -0
- package/lib/client.js +381 -0
- package/lib/index.js +267 -0
- package/package.json +67 -3
- package/skill/SKILL.md +48 -0
- package/skill/tools/node_modules/.package-lock.json +163 -0
- package/skill/tools/node_modules/pg/LICENSE +21 -0
- package/skill/tools/node_modules/pg/README.md +96 -0
- package/skill/tools/node_modules/pg/esm/index.mjs +20 -0
- package/skill/tools/node_modules/pg/lib/client.js +846 -0
- package/skill/tools/node_modules/pg/lib/connection-parameters.js +184 -0
- package/skill/tools/node_modules/pg/lib/connection.js +250 -0
- package/skill/tools/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
- package/skill/tools/node_modules/pg/lib/crypto/sasl.js +262 -0
- package/skill/tools/node_modules/pg/lib/crypto/utils.js +89 -0
- package/skill/tools/node_modules/pg/lib/defaults.js +94 -0
- package/skill/tools/node_modules/pg/lib/index.js +73 -0
- package/skill/tools/node_modules/pg/lib/native/client.js +428 -0
- package/skill/tools/node_modules/pg/lib/native/index.js +2 -0
- package/skill/tools/node_modules/pg/lib/native/query.js +167 -0
- package/skill/tools/node_modules/pg/lib/query.js +263 -0
- package/skill/tools/node_modules/pg/lib/result.js +109 -0
- package/skill/tools/node_modules/pg/lib/stream.js +83 -0
- package/skill/tools/node_modules/pg/lib/type-overrides.js +35 -0
- package/skill/tools/node_modules/pg/lib/utils.js +225 -0
- package/skill/tools/node_modules/pg/package.json +76 -0
- package/skill/tools/node_modules/pg-cloudflare/LICENSE +21 -0
- package/skill/tools/node_modules/pg-cloudflare/README.md +112 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.d.ts +29 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.js +171 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.js.map +1 -0
- package/skill/tools/node_modules/pg-cloudflare/esm/index.mjs +3 -0
- package/skill/tools/node_modules/pg-cloudflare/package.json +39 -0
- package/skill/tools/node_modules/pg-cloudflare/src/empty.ts +3 -0
- package/skill/tools/node_modules/pg-cloudflare/src/index.ts +187 -0
- package/skill/tools/node_modules/pg-cloudflare/src/types.d.ts +25 -0
- package/skill/tools/node_modules/pg-connection-string/LICENSE +21 -0
- package/skill/tools/node_modules/pg-connection-string/README.md +105 -0
- package/skill/tools/node_modules/pg-connection-string/esm/index.mjs +8 -0
- package/skill/tools/node_modules/pg-connection-string/index.d.ts +37 -0
- package/skill/tools/node_modules/pg-connection-string/index.js +237 -0
- package/skill/tools/node_modules/pg-connection-string/package.json +51 -0
- package/skill/tools/node_modules/pg-int8/LICENSE +13 -0
- package/skill/tools/node_modules/pg-int8/README.md +16 -0
- package/skill/tools/node_modules/pg-int8/index.js +100 -0
- package/skill/tools/node_modules/pg-int8/package.json +24 -0
- package/skill/tools/node_modules/pg-pool/LICENSE +21 -0
- package/skill/tools/node_modules/pg-pool/README.md +357 -0
- package/skill/tools/node_modules/pg-pool/esm/index.mjs +5 -0
- package/skill/tools/node_modules/pg-pool/index.js +517 -0
- package/skill/tools/node_modules/pg-pool/package.json +51 -0
- package/skill/tools/node_modules/pg-protocol/LICENSE +21 -0
- package/skill/tools/node_modules/pg-protocol/README.md +3 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.js +23 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.d.ts +14 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.d.ts +21 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js +113 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js +538 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.d.ts +5 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.js +15 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.d.ts +161 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.js +160 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js +325 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.d.ts +22 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.js +325 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.js +198 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/esm/index.js +11 -0
- package/skill/tools/node_modules/pg-protocol/package.json +44 -0
- package/skill/tools/node_modules/pg-protocol/src/b.ts +25 -0
- package/skill/tools/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
- package/skill/tools/node_modules/pg-protocol/src/buffer-writer.ts +120 -0
- package/skill/tools/node_modules/pg-protocol/src/inbound-parser.test.ts +585 -0
- package/skill/tools/node_modules/pg-protocol/src/index.ts +11 -0
- package/skill/tools/node_modules/pg-protocol/src/messages.ts +262 -0
- package/skill/tools/node_modules/pg-protocol/src/outbound-serializer.test.ts +356 -0
- package/skill/tools/node_modules/pg-protocol/src/parser.ts +414 -0
- package/skill/tools/node_modules/pg-protocol/src/serializer.ts +286 -0
- package/skill/tools/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
- package/skill/tools/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
- package/skill/tools/node_modules/pg-types/.travis.yml +7 -0
- package/skill/tools/node_modules/pg-types/Makefile +14 -0
- package/skill/tools/node_modules/pg-types/README.md +75 -0
- package/skill/tools/node_modules/pg-types/index.d.ts +137 -0
- package/skill/tools/node_modules/pg-types/index.js +47 -0
- package/skill/tools/node_modules/pg-types/index.test-d.ts +21 -0
- package/skill/tools/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/skill/tools/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/skill/tools/node_modules/pg-types/lib/builtins.js +73 -0
- package/skill/tools/node_modules/pg-types/lib/textParsers.js +215 -0
- package/skill/tools/node_modules/pg-types/package.json +42 -0
- package/skill/tools/node_modules/pg-types/test/index.js +24 -0
- package/skill/tools/node_modules/pg-types/test/types.js +597 -0
- package/skill/tools/node_modules/pgpass/README.md +74 -0
- package/skill/tools/node_modules/pgpass/lib/helper.js +233 -0
- package/skill/tools/node_modules/pgpass/lib/index.js +23 -0
- package/skill/tools/node_modules/pgpass/package.json +41 -0
- package/skill/tools/node_modules/postgres-array/index.d.ts +4 -0
- package/skill/tools/node_modules/postgres-array/index.js +97 -0
- package/skill/tools/node_modules/postgres-array/license +21 -0
- package/skill/tools/node_modules/postgres-array/package.json +35 -0
- package/skill/tools/node_modules/postgres-array/readme.md +43 -0
- package/skill/tools/node_modules/postgres-bytea/index.js +33 -0
- package/skill/tools/node_modules/postgres-bytea/license +21 -0
- package/skill/tools/node_modules/postgres-bytea/package.json +34 -0
- package/skill/tools/node_modules/postgres-bytea/readme.md +34 -0
- package/skill/tools/node_modules/postgres-date/index.js +116 -0
- package/skill/tools/node_modules/postgres-date/license +21 -0
- package/skill/tools/node_modules/postgres-date/package.json +33 -0
- package/skill/tools/node_modules/postgres-date/readme.md +49 -0
- package/skill/tools/node_modules/postgres-interval/index.d.ts +20 -0
- package/skill/tools/node_modules/postgres-interval/index.js +125 -0
- package/skill/tools/node_modules/postgres-interval/license +21 -0
- package/skill/tools/node_modules/postgres-interval/package.json +36 -0
- package/skill/tools/node_modules/postgres-interval/readme.md +48 -0
- package/skill/tools/node_modules/split2/LICENSE +13 -0
- package/skill/tools/node_modules/split2/README.md +85 -0
- package/skill/tools/node_modules/split2/bench.js +27 -0
- package/skill/tools/node_modules/split2/index.js +141 -0
- package/skill/tools/node_modules/split2/package.json +39 -0
- package/skill/tools/node_modules/split2/test.js +409 -0
- package/skill/tools/node_modules/undici/LICENSE +21 -0
- package/skill/tools/node_modules/undici/README.md +828 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Agent.md +291 -0
- package/skill/tools/node_modules/undici/docs/docs/api/BalancedPool.md +297 -0
- package/skill/tools/node_modules/undici/docs/docs/api/CacheStorage.md +188 -0
- package/skill/tools/node_modules/undici/docs/docs/api/CacheStore.md +375 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Client.md +538 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ClientStats.md +93 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Connector.md +198 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ContentType.md +97 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Cookies.md +179 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Debug.md +78 -0
- package/skill/tools/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +518 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Dispatcher.md +842 -0
- package/skill/tools/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +171 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Errors.md +624 -0
- package/skill/tools/node_modules/undici/docs/docs/api/EventSource.md +358 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Fetch.md +721 -0
- package/skill/tools/node_modules/undici/docs/docs/api/GlobalInstallation.md +121 -0
- package/skill/tools/node_modules/undici/docs/docs/api/H2CClient.md +386 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Interceptors.md +439 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockAgent.md +622 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistory.md +371 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +206 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockClient.md +199 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockErrors.md +63 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockPool.md +618 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Pool.md +278 -0
- package/skill/tools/node_modules/undici/docs/docs/api/PoolStats.md +141 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ProxyAgent.md +248 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RedirectHandler.md +279 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RetryAgent.md +136 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RetryHandler.md +200 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RoundRobinPool.md +239 -0
- package/skill/tools/node_modules/undici/docs/docs/api/SnapshotAgent.md +361 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +256 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Util.md +82 -0
- package/skill/tools/node_modules/undici/docs/docs/api/WebSocket.md +536 -0
- package/skill/tools/node_modules/undici/docs/docs/api/api-lifecycle.md +159 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/client-certificate.md +66 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/crawling.md +60 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/mocking-request.md +192 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/proxy.md +129 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +226 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/writing-tests.md +65 -0
- package/skill/tools/node_modules/undici/docs/docs/getting-started.md +281 -0
- package/skill/tools/node_modules/undici/docs/docs/index.md +793 -0
- package/skill/tools/node_modules/undici/docs/docs/site.json +125 -0
- package/skill/tools/node_modules/undici/docs/docs/type-map.json +79 -0
- package/skill/tools/node_modules/undici/index-fetch.js +65 -0
- package/skill/tools/node_modules/undici/index.d.ts +3 -0
- package/skill/tools/node_modules/undici/index.js +236 -0
- package/skill/tools/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/skill/tools/node_modules/undici/lib/api/api-connect.js +112 -0
- package/skill/tools/node_modules/undici/lib/api/api-pipeline.js +265 -0
- package/skill/tools/node_modules/undici/lib/api/api-request.js +244 -0
- package/skill/tools/node_modules/undici/lib/api/api-stream.js +270 -0
- package/skill/tools/node_modules/undici/lib/api/api-upgrade.js +121 -0
- package/skill/tools/node_modules/undici/lib/api/index.js +7 -0
- package/skill/tools/node_modules/undici/lib/api/readable.js +615 -0
- package/skill/tools/node_modules/undici/lib/cache/memory-cache-store.js +314 -0
- package/skill/tools/node_modules/undici/lib/cache/sqlite-cache-store.js +593 -0
- package/skill/tools/node_modules/undici/lib/core/connect.js +198 -0
- package/skill/tools/node_modules/undici/lib/core/constants.js +131 -0
- package/skill/tools/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/skill/tools/node_modules/undici/lib/core/errors.js +534 -0
- package/skill/tools/node_modules/undici/lib/core/request.js +582 -0
- package/skill/tools/node_modules/undici/lib/core/socks5-client.js +422 -0
- package/skill/tools/node_modules/undici/lib/core/socks5-utils.js +212 -0
- package/skill/tools/node_modules/undici/lib/core/symbols.js +81 -0
- package/skill/tools/node_modules/undici/lib/core/tree.js +160 -0
- package/skill/tools/node_modules/undici/lib/core/util.js +1035 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/agent.js +181 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/balanced-pool.js +217 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client-h1.js +1846 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client-h2.js +1989 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client.js +749 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher.js +58 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +127 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +190 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/parser-h1.js +1065 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/pool-base.js +347 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/pool.js +229 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/proxy-agent.js +418 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/retry-agent.js +48 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/round-robin-pool.js +169 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +350 -0
- package/skill/tools/node_modules/undici/lib/encoding/index.js +33 -0
- package/skill/tools/node_modules/undici/lib/global.js +82 -0
- package/skill/tools/node_modules/undici/lib/handler/cache-handler.js +1222 -0
- package/skill/tools/node_modules/undici/lib/handler/cache-revalidation-handler.js +134 -0
- package/skill/tools/node_modules/undici/lib/handler/decorator-handler.js +76 -0
- package/skill/tools/node_modules/undici/lib/handler/deduplication-handler.js +540 -0
- package/skill/tools/node_modules/undici/lib/handler/redirect-handler.js +284 -0
- package/skill/tools/node_modules/undici/lib/handler/retry-handler.js +686 -0
- package/skill/tools/node_modules/undici/lib/interceptor/cache.js +771 -0
- package/skill/tools/node_modules/undici/lib/interceptor/decompress.js +574 -0
- package/skill/tools/node_modules/undici/lib/interceptor/deduplicate.js +118 -0
- package/skill/tools/node_modules/undici/lib/interceptor/dns.js +593 -0
- package/skill/tools/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/skill/tools/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/skill/tools/node_modules/undici/lib/interceptor/response-error.js +139 -0
- package/skill/tools/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/skill/tools/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
- package/skill/tools/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/skill/tools/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/skill/tools/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/skill/tools/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
- package/skill/tools/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/skill/tools/node_modules/undici/lib/milo/LICENSE.md +7 -0
- package/skill/tools/node_modules/undici/lib/milo/no-simd.js +1002 -0
- package/skill/tools/node_modules/undici/lib/milo/simd.js +1002 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-agent.js +255 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-call-history.js +248 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-interceptor.js +227 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-utils.js +730 -0
- package/skill/tools/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-agent.js +371 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-recorder.js +624 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-utils.js +159 -0
- package/skill/tools/node_modules/undici/lib/util/cache.js +764 -0
- package/skill/tools/node_modules/undici/lib/util/date.js +670 -0
- package/skill/tools/node_modules/undici/lib/util/runtime-features.js +93 -0
- package/skill/tools/node_modules/undici/lib/util/stats.js +32 -0
- package/skill/tools/node_modules/undici/lib/util/timers.js +425 -0
- package/skill/tools/node_modules/undici/lib/web/cache/cache.js +871 -0
- package/skill/tools/node_modules/undici/lib/web/cache/cachestorage.js +158 -0
- package/skill/tools/node_modules/undici/lib/web/cache/util.js +45 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/index.js +211 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/parse.js +318 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/util.js +371 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource-stream.js +575 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource.js +547 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/util.js +60 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/body.js +583 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/formdata-parser.js +594 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/formdata.js +272 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/headers.js +722 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/index.js +2451 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/request.js +1117 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/response.js +638 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/util.js +1530 -0
- package/skill/tools/node_modules/undici/lib/web/infra/index.js +244 -0
- package/skill/tools/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
- package/skill/tools/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
- package/skill/tools/node_modules/undici/lib/web/webidl/index.js +992 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/connection.js +350 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/events.js +348 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/frame.js +127 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/receiver.js +530 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketerror.js +107 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketstream.js +511 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/websocket.js +783 -0
- package/skill/tools/node_modules/undici/package.json +154 -0
- package/skill/tools/node_modules/undici/scripts/strip-comments.js +10 -0
- package/skill/tools/node_modules/undici/types/README.md +6 -0
- package/skill/tools/node_modules/undici/types/agent.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/api.d.ts +43 -0
- package/skill/tools/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/cache-interceptor.d.ts +189 -0
- package/skill/tools/node_modules/undici/types/cache.d.ts +36 -0
- package/skill/tools/node_modules/undici/types/client-stats.d.ts +15 -0
- package/skill/tools/node_modules/undici/types/client.d.ts +190 -0
- package/skill/tools/node_modules/undici/types/connector.d.ts +37 -0
- package/skill/tools/node_modules/undici/types/content-type.d.ts +21 -0
- package/skill/tools/node_modules/undici/types/cookies.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/diagnostics-channel.d.ts +75 -0
- package/skill/tools/node_modules/undici/types/dispatcher.d.ts +253 -0
- package/skill/tools/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/skill/tools/node_modules/undici/types/errors.d.ts +202 -0
- package/skill/tools/node_modules/undici/types/eventsource.d.ts +66 -0
- package/skill/tools/node_modules/undici/types/fetch.d.ts +235 -0
- package/skill/tools/node_modules/undici/types/formdata.d.ts +108 -0
- package/skill/tools/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/skill/tools/node_modules/undici/types/global-origin.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/h2c-client.d.ts +73 -0
- package/skill/tools/node_modules/undici/types/handlers.d.ts +16 -0
- package/skill/tools/node_modules/undici/types/header.d.ts +165 -0
- package/skill/tools/node_modules/undici/types/index.d.ts +93 -0
- package/skill/tools/node_modules/undici/types/interceptors.d.ts +87 -0
- package/skill/tools/node_modules/undici/types/mock-agent.d.ts +69 -0
- package/skill/tools/node_modules/undici/types/mock-call-history.d.ts +111 -0
- package/skill/tools/node_modules/undici/types/mock-client.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/skill/tools/node_modules/undici/types/mock-interceptor.d.ts +98 -0
- package/skill/tools/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/patch.d.ts +29 -0
- package/skill/tools/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/skill/tools/node_modules/undici/types/pool.d.ts +39 -0
- package/skill/tools/node_modules/undici/types/proxy-agent.d.ts +36 -0
- package/skill/tools/node_modules/undici/types/readable.d.ts +68 -0
- package/skill/tools/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/skill/tools/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/skill/tools/node_modules/undici/types/round-robin-pool.d.ts +39 -0
- package/skill/tools/node_modules/undici/types/snapshot-agent.d.ts +113 -0
- package/skill/tools/node_modules/undici/types/socks5-proxy-agent.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/util.d.ts +18 -0
- package/skill/tools/node_modules/undici/types/utility.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/webidl.d.ts +352 -0
- package/skill/tools/node_modules/undici/types/websocket.d.ts +188 -0
- package/skill/tools/node_modules/xtend/.jshintrc +30 -0
- package/skill/tools/node_modules/xtend/LICENSE +20 -0
- package/skill/tools/node_modules/xtend/README.md +32 -0
- package/skill/tools/node_modules/xtend/immutable.js +19 -0
- package/skill/tools/node_modules/xtend/mutable.js +17 -0
- package/skill/tools/node_modules/xtend/package.json +55 -0
- package/skill/tools/node_modules/xtend/test.js +103 -0
- package/skill/tools/package-lock.json +172 -0
- package/skill/tools/package.json +9 -0
- package/skill/tools/transfer_core.js +414 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
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 清空生效)。
|
package/README.md
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# monitor-transfer-dsh — Monitor 数据搬运工作室(DeepSeek Harness 插件)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 更新速览 v0.1.2
|
|
4
|
+
|
|
5
|
+
- 新增:npm 自动更新(启动检测新版本→横幅提示→一键更新,重启 DSH 生效)
|
|
6
|
+
- 新增:面板头栏显示当前版本号
|
|
7
|
+
- 修复:发布包不再夹带本地连接配置;引擎落盘改原子写入
|
|
8
|
+
|
|
9
|
+
## 功能 / Features
|
|
10
|
+
|
|
11
|
+
- **独立入口**:左侧导航"📦 Monitor 数据搬运" → 专属房间(细头栏 + 新对话按钮 + 原生对话)
|
|
12
|
+
- **干净上下文**:搬运知识只挂在本房间会话,其他对话零污染
|
|
13
|
+
- **3 个 Agent 工具**:`transfer_api`(config/status/export/dryrun/import/checklist/verify)、`transfer_guide`(操作手册)、`transfer_read`(读清单/文件)
|
|
14
|
+
- **跨版本安全**:全程目标机官方 API 写入,不碰表结构/角色/权限;幂等+断点续传(id-map)
|
|
15
|
+
- **零权限**:进程内 pg 直连源库 + undici 打 API(自签证书已处理),不触发系统权限弹窗
|
|
16
|
+
|
|
17
|
+
## 安装 / Install
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
dsh plugin --profile desktop add monitor-transfer-dsh
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
(私有场景也可从 GitHub Releases 下载 tgz 后 `dsh plugin --profile desktop add "/绝对路径/monitor-transfer-dsh-x.y.z.tgz"`。)
|
|
24
|
+
|
|
25
|
+
装完重启 DSH,左侧导航点 Monitor 数据搬运,直接说"帮我把源机的公司搬到这台,连接信息是……"。
|
|
26
|
+
|
|
27
|
+
## 首次使用需要的三组连接
|
|
28
|
+
|
|
29
|
+
| 组 | 字段 |
|
|
30
|
+
|---|---|
|
|
31
|
+
| 源机 PG | host / port / database / user / password |
|
|
32
|
+
| 源机 API | base / company / user / password |
|
|
33
|
+
| 目标机 API | base / company / user / password |
|
|
34
|
+
|
|
35
|
+
## 从源码构建 / Build from source
|
|
36
|
+
|
|
37
|
+
需要 Node.js 22+:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
npm install && npm run build && npm pack
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
(skill/tools 内已捆绑 pg+undici;prepack 自动清空 skill/work。)
|
|
44
|
+
|
|
45
|
+
## 隐私 / Privacy
|
|
46
|
+
|
|
47
|
+
- 连接信息(含密码)只保存在本机插件目录 `skill/work/connections.json`,不上传、不外发。
|
|
48
|
+
- **再分发前请删除 `skill/work/` 目录**;npm pack 的 prepack 已自动清空。
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
[MIT](./LICENSE)
|
package/cordis.patch.yml
ADDED
package/lib/client.js
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
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 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}";
|
|
143
|
+
const notes = (updateInfo?.releaseNotes || "").trim();
|
|
144
|
+
const updateBanner = updateInfo ? {
|
|
145
|
+
display: "flex",
|
|
146
|
+
alignItems: "center",
|
|
147
|
+
gap: 8,
|
|
148
|
+
padding: "6px 14px",
|
|
149
|
+
background: "#fff3cd",
|
|
150
|
+
borderBottom: "1px solid #ffe69c",
|
|
151
|
+
fontSize: 12
|
|
152
|
+
} : null;
|
|
153
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: shell, "aria-label": "Monitor \u6570\u636E\u642C\u8FD0\u5DE5\u4F5C\u5BA4", children: [
|
|
154
|
+
updateBanner && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-upd", style: { position: "relative" }, children: [
|
|
155
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", { children: hoverStyle }),
|
|
156
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: updateBanner, role: "status", children: [
|
|
157
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u{1F514}" }),
|
|
158
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
159
|
+
"\u65B0\u7248\u672C ",
|
|
160
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
|
|
161
|
+
"v",
|
|
162
|
+
updateInfo.latest
|
|
163
|
+
] }),
|
|
164
|
+
" \u53EF\u7528\uFF08\u5F53\u524D v",
|
|
165
|
+
updateInfo.current,
|
|
166
|
+
"\uFF09"
|
|
167
|
+
] }),
|
|
168
|
+
notes && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
169
|
+
"span",
|
|
170
|
+
{
|
|
171
|
+
style: { color: "#7a5c00", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth: 420 },
|
|
172
|
+
title: notes,
|
|
173
|
+
children: [
|
|
174
|
+
"\u2014 ",
|
|
175
|
+
notes.split("\n")[0]
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
),
|
|
179
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { flex: 1 } }),
|
|
180
|
+
updState === "done" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { style: { color: "#27ae60" }, children: [
|
|
181
|
+
"\u2713 ",
|
|
182
|
+
updMsg || "\u5DF2\u66F4\u65B0,\u8BF7\u91CD\u542F DSH \u751F\u6548"
|
|
183
|
+
] }) : 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: [
|
|
184
|
+
"\u4E00\u952E\u66F4\u65B0\u5931\u8D25:",
|
|
185
|
+
updMsg,
|
|
186
|
+
"(\u53EF\u7528\u53F3\u4FA7\u590D\u5236\u547D\u4EE4\u515C\u5E95)"
|
|
187
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => void runUpdate(), style: {
|
|
188
|
+
padding: "5px 20px",
|
|
189
|
+
fontSize: 12,
|
|
190
|
+
border: "none",
|
|
191
|
+
borderRadius: 999,
|
|
192
|
+
background: "#e67e22",
|
|
193
|
+
color: "#fff",
|
|
194
|
+
cursor: "pointer",
|
|
195
|
+
whiteSpace: "nowrap",
|
|
196
|
+
fontWeight: 600,
|
|
197
|
+
boxShadow: "0 2px 8px rgba(230,126,34,.4)"
|
|
198
|
+
}, onMouseOver: (e) => {
|
|
199
|
+
e.currentTarget.style.background = "#d35400";
|
|
200
|
+
}, onMouseOut: (e) => {
|
|
201
|
+
e.currentTarget.style.background = "#e67e22";
|
|
202
|
+
}, title: notes || void 0, children: "\u26A1 \u4E00\u952E\u66F4\u65B0" }),
|
|
203
|
+
updState === "fail" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: copyUpdateCmd, style: {
|
|
204
|
+
padding: "4px 16px",
|
|
205
|
+
fontSize: 11,
|
|
206
|
+
border: "1px solid #e2e8f0",
|
|
207
|
+
borderRadius: 999,
|
|
208
|
+
background: copied ? "#d4edda" : "#fff",
|
|
209
|
+
cursor: "pointer",
|
|
210
|
+
whiteSpace: "nowrap"
|
|
211
|
+
}, children: copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236\u547D\u4EE4\u515C\u5E95" }),
|
|
212
|
+
notes && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-pop", role: "tooltip", children: [
|
|
213
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
|
|
214
|
+
"v",
|
|
215
|
+
updateInfo.latest,
|
|
216
|
+
" \u66F4\u65B0\u5185\u5BB9:"
|
|
217
|
+
] }),
|
|
218
|
+
"\n\n",
|
|
219
|
+
notes
|
|
220
|
+
] })
|
|
221
|
+
] })
|
|
222
|
+
] }),
|
|
223
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", { style: header, children: [
|
|
224
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u{1F4E6}" }),
|
|
225
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "Monitor \u6570\u636E\u642C\u8FD0" }),
|
|
226
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { style: { opacity: 0.45, fontSize: 11 }, children: [
|
|
227
|
+
"v",
|
|
228
|
+
"0.1.2"
|
|
229
|
+
] }),
|
|
230
|
+
/* @__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)" }),
|
|
231
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { flex: 1 } }),
|
|
232
|
+
/* @__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" })
|
|
233
|
+
] }),
|
|
234
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: body, children: [
|
|
235
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { role: "alert", style: { padding: 24 }, children: [
|
|
236
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u6570\u636E\u642C\u8FD0\u623F\u95F4\u672A\u80FD\u6253\u5F00" }),
|
|
237
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { whiteSpace: "pre-wrap" }, children: error }),
|
|
238
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", onClick: () => {
|
|
239
|
+
started.current = false;
|
|
240
|
+
setError("");
|
|
241
|
+
setBusy(true);
|
|
242
|
+
setTimeout(() => {
|
|
243
|
+
started.current = true;
|
|
244
|
+
}, 0);
|
|
245
|
+
}, children: "\u91CD\u8BD5" })
|
|
246
|
+
] }),
|
|
247
|
+
!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" }),
|
|
248
|
+
chat && SessionProvider && renderSlot && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SessionProvider, { session: chat.reference, children: renderSlot("monitor-transfer.chat", {}) })
|
|
249
|
+
] })
|
|
250
|
+
] });
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// src/client/NativeConversation.jsx
|
|
254
|
+
function StockChat({ renderSlot }) {
|
|
255
|
+
return renderSlot("conversation.session", { view: "chat" });
|
|
256
|
+
}
|
|
257
|
+
function NativeConversation({ sessionId, useSession, useConversation, useSessions, renderFactorySlot }) {
|
|
258
|
+
const session = useSession((s) => s);
|
|
259
|
+
const conversation = useConversation((s) => s);
|
|
260
|
+
const knownBlank = useSessions((store) => store.byId[sessionId]?.blank);
|
|
261
|
+
const engaged = conversation.activeTargets.size > 0 || !session.blank && !session.awaitingFirstTurn || session.running;
|
|
262
|
+
const opening = !engaged && session.openState === "loading" && knownBlank !== true;
|
|
263
|
+
const idle = !engaged && (session.openState === "open" || knownBlank === true);
|
|
264
|
+
const phase = opening ? "settling" : idle ? "hero" : "active";
|
|
265
|
+
return renderFactorySlot("conversation.content", { variant: "embedded", phase, hero: idle }, { slots: { views: StockChat } });
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// src/client/native-chat.js
|
|
269
|
+
function nativeChatBridge(ctx) {
|
|
270
|
+
let services;
|
|
271
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
272
|
+
ctx.inject(["sessions", "uiSession", "uiWorkspace"], (scope) => {
|
|
273
|
+
services = scope;
|
|
274
|
+
for (const notify of listeners) notify();
|
|
275
|
+
return () => {
|
|
276
|
+
services = void 0;
|
|
277
|
+
for (const notify of listeners) notify();
|
|
278
|
+
};
|
|
279
|
+
});
|
|
280
|
+
const workspaceItems = () => services?.uiWorkspace.workspaces.list.getSnapshot().items ?? [];
|
|
281
|
+
return {
|
|
282
|
+
defaultChatWorkspace() {
|
|
283
|
+
const items = workspaceItems();
|
|
284
|
+
const match = items.find((w) => w.title === "default-workspace" || /(?:^|\/)default-workspace$/.test(w.path || ""));
|
|
285
|
+
return (match ?? items[0])?.workspaceId;
|
|
286
|
+
},
|
|
287
|
+
watchChatWorkspaces(listener) {
|
|
288
|
+
listeners.add(listener);
|
|
289
|
+
const stop = services?.uiWorkspace.workspaces.list.subscribe(listener) ?? (() => {
|
|
290
|
+
});
|
|
291
|
+
return () => {
|
|
292
|
+
listeners.delete(listener);
|
|
293
|
+
stop();
|
|
294
|
+
};
|
|
295
|
+
},
|
|
296
|
+
chatWorkspaces() {
|
|
297
|
+
return workspaceItems().map((w) => ({ id: w.workspaceId, name: w.title || w.name || w.path, path: w.path }));
|
|
298
|
+
},
|
|
299
|
+
async openChat({ workspaceId, sessionId }) {
|
|
300
|
+
if (!services) throw new Error("Harness \u5BF9\u8BDD\u670D\u52A1\u5C1A\u672A\u5C31\u7EEA,\u8BF7\u7A0D\u540E\u91CD\u8BD5");
|
|
301
|
+
if (!workspaceId || !workspaceItems().some((w) => w.workspaceId === workspaceId)) {
|
|
302
|
+
throw new Error("\u8BF7\u5148\u5728 Harness \u4E2D\u6253\u5F00\u4E00\u4E2A\u5DE5\u4F5C\u533A");
|
|
303
|
+
}
|
|
304
|
+
const id = sessionId ?? await services.sessions.create({ workspaceId });
|
|
305
|
+
const reference = services.sessions.retain(id, { source: "monitor-transfer" });
|
|
306
|
+
return { sessionId: id, reference, release: () => reference.release() };
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// src/client/index.jsx
|
|
312
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
313
|
+
var PLUGIN_ID = "monitor-transfer-dsh";
|
|
314
|
+
var PANEL_ID = "monitor-transfer";
|
|
315
|
+
var CHAT_SLOT = "monitor-transfer.chat";
|
|
316
|
+
var passthroughCodec = () => ({
|
|
317
|
+
mode: "strict",
|
|
318
|
+
typeSymbol: `${PLUGIN_ID}#json`,
|
|
319
|
+
create: () => ({ parse: (v) => v, safeParse: (v) => ({ success: true, data: v }) })
|
|
320
|
+
});
|
|
321
|
+
function descriptor(name, hasParams = true) {
|
|
322
|
+
return {
|
|
323
|
+
id: `${PLUGIN_ID}#transfer/${name}`,
|
|
324
|
+
service: "transfer",
|
|
325
|
+
namespace: "transfer",
|
|
326
|
+
method: name,
|
|
327
|
+
invocation: { kind: "direct" },
|
|
328
|
+
...hasParams ? { parameters: [{ name: "request", wire: "request", source: "json", codec: passthroughCodec() }] } : { parameters: [] },
|
|
329
|
+
result: { mode: "src-json" },
|
|
330
|
+
cancellation: { parameter: "signal" }
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
var REMOTE_SURFACE = {
|
|
334
|
+
package: PLUGIN_ID,
|
|
335
|
+
descriptors: [descriptor("setTransferContext"), descriptor("getGuide", false), descriptor("checkUpdate", false), descriptor("performUpdate", false)]
|
|
336
|
+
};
|
|
337
|
+
var inject = ["slots", "layout", "remote"];
|
|
338
|
+
async function apply(ctx) {
|
|
339
|
+
await ctx.remote.$mount(REMOTE_SURFACE);
|
|
340
|
+
ctx.inject(["remote.transfer"], (child) => mountRoom(child));
|
|
341
|
+
}
|
|
342
|
+
function mountRoom(ctx) {
|
|
343
|
+
const call = async (name, params) => {
|
|
344
|
+
const svc = ctx.remote.transfer;
|
|
345
|
+
if (!svc || typeof svc[name] !== "function") throw new Error("Monitor \u6570\u636E\u642C\u8FD0\u670D\u52A1\u672A\u5C31\u7EEA,\u8BF7\u7A0D\u540E\u91CD\u8BD5");
|
|
346
|
+
const outcome = await svc[name](params);
|
|
347
|
+
if (outcome.ok) return outcome.value;
|
|
348
|
+
throw outcome.error;
|
|
349
|
+
};
|
|
350
|
+
const api = {
|
|
351
|
+
...nativeChatBridge(ctx),
|
|
352
|
+
setTransferContext: (params) => call("setTransferContext", params),
|
|
353
|
+
getGuide: () => call("getGuide"),
|
|
354
|
+
checkUpdate: () => call("checkUpdate"),
|
|
355
|
+
performUpdate: () => call("performUpdate")
|
|
356
|
+
};
|
|
357
|
+
ctx.slots.inject("main", () => ctx.slots.register({
|
|
358
|
+
name: "main",
|
|
359
|
+
key: PANEL_ID,
|
|
360
|
+
children: { [CHAT_SLOT]: { kind: "single", scope: "session" } },
|
|
361
|
+
inject: () => ({ api })
|
|
362
|
+
}, TransferPanel));
|
|
363
|
+
ctx.slots.inject(CHAT_SLOT, () => ctx.slots.register({ name: CHAT_SLOT }, NativeConversation));
|
|
364
|
+
ctx.slots.inject("sidebar.panellist", () => ctx.slots.register({
|
|
365
|
+
name: "sidebar.panellist",
|
|
366
|
+
id: PANEL_ID,
|
|
367
|
+
order: 21,
|
|
368
|
+
label: "Monitor \u6570\u636E\u642C\u8FD0"
|
|
369
|
+
}, TransferSidebarIcon));
|
|
370
|
+
}
|
|
371
|
+
function TransferSidebarIcon() {
|
|
372
|
+
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: [
|
|
373
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "4", width: "8", height: "6", rx: "1" }),
|
|
374
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "13", y: "14", width: "8", height: "6", rx: "1" }),
|
|
375
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M7 10v4a2 2 0 0 0 2 2h4" }),
|
|
376
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M11 14l2 2-2 2" })
|
|
377
|
+
] });
|
|
378
|
+
}
|
|
379
|
+
return module.exports;
|
|
380
|
+
}
|
|
381
|
+
});
|