magpie-marvis 0.1.4 → 0.1.6

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 CHANGED
@@ -3,9 +3,17 @@
3
3
  > 每个版本一节,**一条一行**,说用户能感知的变化。
4
4
  > 格式与规矩见 [UPDATING.md](./UPDATING.md)。
5
5
 
6
- ## 0.1.4 — 2026-11-06
6
+ ## 0.1.6 — 2026-11-06
7
7
 
8
- **变更**
8
+ **修复**
9
9
 
10
- - 图标换成 **Marvis 官方图标**(`resources/icons/icon.png`,128×128 透明 PNG)—— 插件列表与供应商卡片两处同时生效
10
+ - **图标顶不满边框**:官方 `icon.png` 四周有 10% 透明留白(内容只占 81.2%)。
11
+ 按 alpha 包围盒裁切后再补成方形,现在铺满 128×128
12
+ - **本机导入还是失败**(`AmbiguousParameterSet`):`Add-Type -Path` 与 `-Language`
13
+ 属于不同参数集,同时给必然报错 —— 去掉 `-Language`,`-Path` 自己按扩展名推断
14
+ - **本机导入扫错进程**:只扫了 `MarvisAgent.exe`,但 Chromium 的 `accesstoken=`
15
+ cookie 在 **`Marvis.exe`** 里(本机有 3 个实例)。现在两个进程都扫
16
+ - **浏览器登录报「授权码已被使用过」**:轮询 `document.body` 会读到回调页**第二次**
17
+ 加载的响应 —— 那时 code 已被第一次消耗。改成监听 `Network.responseReceived`
18
+ 取**第一个**响应体(`Network.getResponseBody`)
11
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magpie-marvis",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "magpie / OpenCode provider plugin for Tencent Marvis: its DeepSeek V4 Pro, Kimi K2.5, Claude Opus/Sonnet 4.6, GPT-5.4 and Hunyuan models through the Marvis model gateway — no API key to paste, sign in with QQ or WeChat.",
5
5
  "type": "module",
6
6
  "main": "./index.mjs",
@@ -45,7 +45,7 @@
45
45
  "node": "^22.19.0 || >=24.0.0"
46
46
  },
47
47
  "magpie": {
48
- "icon": "data:image/png;base64,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",
48
+ "icon": "data:image/png;base64,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Jnjb294mTz755AxF2B+LMEhUFRH553/+5z41vbQ2//Iv/3JYsw/m0/xv2rSpr+mLVQmWLVsmX/ziF6XRaMy4v6Io+i6ixA/Kn51zMwTabrflz//8z/uLYdDSHFUWoOTllyYvhCDvec97Fo0L2J0SAHLKKafI5z73Odm0adM+z0ez2ZR/+qd/kle96lUzUs5Bq/jDH/7wsCqAkiOEre6OUPnss89y2mmn0Wq1FiXxotw+Xpabq9Uqr3vd6/iVX/kVzjrrLF760pcyNjZGFEV0Oh22bdvGY489xp133sl3v/tdnnjiiRmw8yAdrVqtsnHjRlasWHH4NqAeqZUvIjIxMSEf/vCH5ZxzzpF3vvOd8p3vdNnoX/nKVxatFRgEjHYHW9dqNRkZGenD27OtyGzQq5yHc845Z/HjAKXZL4pCzjvvvF0m4PWvf7184xvfkJe//OUz8PfF+ir9dxnM7c517OnzUpH+4i/+4rDDzxwppO9jH/uYABLHsWitd9H8Wq22qAW/N6XY10BXKdW3Jg8//PBhL0NzJNK96667breVvSOF+5erbjDK3ldiyXwgju94xzuOyA7kwxYEhhBQSvHss89y5plnMjk52ad4HVH2Y48ruKfz7utmkSMVUJbcx9NPP/2w70ewhzPq11pz0UUXMTExgTHmiBMqBiPr8847jwsuuIBXv/rVpGnKE088werVq7nmmmv6EfZ8Ez6stRRFwV//9V+zatWqPhl20RFCSrP11a9+dd5IHWUkffLJJ8vNN9+822tds2ZNn284nwFoFEUCyG/91m/15/BIlIU5XESG5557TsbGxg6KmHmwwn/Tm94kW7dunROdc8718fd7771XhoaG5q0gVc7PeeedJ81m84gyjzhcq//d7373vKz+UvjnnnuuNJvNGcWauSY1y7qk6Msvv3xesIhygVx88cXinDvkFcYjqgCl8O+88855ncxly5b16+h5ns+IpGdH1SVG32w2+65gf6xAmdIeaDZTXvNHPvIRee6553Z7nYtCAUrzf+65586LApTnu/rqq2esbhGRVqslnU5nj1jFhz70oX22Wru7twNxeaXCLVu2TL70pS/1XdORsAYcLnbPfAn/ta997QxyxZYtW+Tiiy+WE088UU466ST59Kc/3V/1pUsoXcS+XPtsQOfMM8+UCy64QN7+9rf3uQ0HElAOnvPss8+W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",
49
49
  "maxConcurrency": 2,
50
50
  "name": "腾讯 Marvis TENCENT"
51
51
  },
package/src/context.mjs CHANGED
@@ -50,7 +50,7 @@ export const BROWSER_UA =
50
50
 
51
51
  /** 图标 —— 两处必须一致:这里 + package.json 的 magpie.icon */
52
52
  export const ICON =
53
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAii0lEQVR42u2de5BlVX3vP2ut/Trn9HNgZHgNY2AgAwwqEoh4QR5OvAb0xoqXmBCRUBUimQrRWHWtuvcmoMEgihcVQVLGi0WIIWUlqJEY8MpzQnAiEJgZHWFg6Hkxr+6Z7j6v/Vjrd/84Zx9Oz0zPdPf047T0r2rX6cc5e++zft/fY31/v7U2LMiCLMiCLMiCLMiCLMiCLMiCLMiCLMiCLMibQtRc34CIqDe1ApSSNwUAmorWbdd0Sim3YIMgIro5NgDSHBuZ9wBo+2LjKltEIiAAzJtM7xmQKqXqhzEYM9OGomZQ8UopZdv+djzwduAcYAVwCrAY6AYiwH+TASAF6kAZ2ANsATYCzwP/qZR6vW3sDCAzAQQ1E24+V7yInAJ8CPhvwLlAz4LDn5CMAM8C3wf+SSm1pQ0I0xoe1HRafY5QEflV4H8AH25aeC6ueeTXVp2SjM5V+G97zX9uzwdyMHwb+LJS6hcHjnVHACC/IRHxgf8NfAootcW6AxPABTkyMFzz1Wv+rQp8AficUioTEdMeYucMAPmNiMjJwN8BF7Up3iwofVrAYNuAsAa4Wim1ZTpAoKbJ8pcDjwDLmsmNt6D4GQFC1kyWNwP/VSn10tGCQB1lpi/AicBTTeVnbUidj/NxRATnXE7SoLVGKTXm/1rruZ4+esAA8G6l1PajyQnUNJA6TwG/Pp+VLyJYa/E8bz5xCB7wNHBJnlxPZXYw1W+sm3H/pqby0/k6j7fWYozB8zycc7z44ov85Cc/Yd26dQwMDDA4OEilUsHzPDzP48ILL+SOO+5ARFqeYQ7Ea475hcD/Ukrd3Jwi2lmhLUVEiciviEhdRDIRcTLPxFrb+nnr1q3y2c9+Vs4++2xpm5Id8rjtttvEOTfm83Mkrjn2VRE5rakTPRsAMM3Xv27eSDpflW+tlVtvvVUWLVo0Rsme54nneWKMEd/3BZBTTjlF1q5d2xh51zF4z8f+W+26mWluHxE5UUQqTRTOK+vPskxERHbs2CGXXXbZGKVrrccAIf/9pJNOkpdeeqkx4mlH4T0f/4qInNiuo5kCgNd8/cR8tP7c8l955RVZvny5AOL7vjSTpzGHUkqMMVIoFOSnP/2piIgkSdKJXyvXwSfadTTTHuDxthg0b5TvnJNdu3bJaaed1lL+eLHeGCOAfPGLX+xk5UtbDvbEjHqANuUvEZFymwvqeHHOSZZlYq2Vyy+/vOXyx1N+7vpPO+00ieNYsizrpLh/qDAgTZ0smWyTjZ4CZ3Buk+d3ncr25YRNqwLlHMYY7rrrLn784x/j+z5Zlo0/KE2i57rrriMIgrme8k1EL7apk3Mnq9epAOAdbZW9jiNzsixDKYVSCmstzjm01uzdu5ebb74ZrfVhlZ9zAwCXXXZZpyv/wKriOZMl+KYSL87oNMXnSs8Jndz6jTEtb/DNb36ToaEhtNZjvMMhevQQEbq6uli2bFmLDp4nsmLSjN4k3ptb/CmdUMPPLV4phed5xHHMD3/4Qz7+8Y9zzjnnsHLlSm677bYWd3/fffehlGrx/IcDAEBvby/d3d3Ms+beU2bUOzfZpg15Yj3Xc3kRkT179sjnP/95OeOMMw6Z0F1wwQVyzz33HDbpO1QCeOKJJ0qlUuk04mfcSU7zdf2Mtm6LSCQiW+YSADkRE8exfOlLX5ITTjhhjPJyQkdr3ZrK5fP6iQAgf1+pVJIdO3bMNwBsaTbZTm+7fRsAekRk11xMAZ1zLUU8/vjjcu655x6WxWsHxXj/OxII1qxZc5DH6fCp4C4R6ZkMACab3Zi5qPo551qZ/c0338yll17Kc889h+d5KKXIsmzc2O6cO2LcP+hLmgal/tRTT7XyjXki/oy017d5gH4RGZpND5Bb3+DgoFxxxRUtC52sVU/myM99zjnndErlb6IeYEhE+mcyBMwqAHLlv/rqq61S7USTuekCwQ9+8IMZKwLl7OQCAA6j/JdeeklOOeWUWVV+DgCllJx11lmSJMm008HTnFhOGQAdyXDk1O2WLVtYtWoVAwMDeJ53RAZvuu9Ba82GDRv49Kc/jTFm2q6f5zTf//732bhxY+fnGbPpAfJsf2RkRM4555xZt/zxqoJ33313qyp4NNabh5IXX3xRAPn93//96QgxvzwhIC/b/s7v/M6cK7+9LwCQr371qwcpcirK379/v5x11lmitZbf/M3fPKhF7U0LgHwQNm7cOCYRm+ujfdbx8Y9/XEZGRsYo9XDKy0vRufKHhobkoosuap374osvXgBAPlB5sjUwMCBRFIlSasIM3myGgzPOOEMeeOCBg5SWKzo/DiSQnnrqKTnzzDMFkCAIBJD3vve9CwA4lNxwww1jBr3TQADIueeeK1/5ylda/YKHkjiO5cknn5RrrrmmBWZjTOs8V1999ZzmAGqiAFBKSfPkrwD9zUGYjrWFrSrcQw89RL1eZ9WqVXR1dbF06VK2b9+O1nrSbN5MSl4ezu/J931WrFjBGWecwUknnUSpVGJkZISBgQE2bNjApk2bxnzWOdea1dx+++186lOfIsuyo1mYkutiH3CqUmpfrrOO9gB5fBQRueqqq1qWtXTpUrnjjjvklltuGWMtnXbkxaeJJpLt4Sz/+dlnn33zhoDc7d10002tJs12Zff19U278vMq4YEKmY4kMV9P0L6u4FCJbH7td77zna1Zz5uOCcwt/0c/+lFrupcr5MBS7nTF7kMpfC68S+41/uEf/mG6qo3zCwDWWrHWytDQkJx00knjFnemy0LblbxixQq54oor5OKLL5aurq5Zn27myn/Pe94znYWm+QWAHPHXXHPNjFthrtz3v//9smbNmjHWNjAwIH/4h384a54gv5f+/n555ZVX3pwAyBXwr//6rzPO9OVK/cu//MvDVuE++clPzjgIcm8WRZE89thj091oMj8AkCO+VqvJ6aefPqN1/QOVnySJ1Ot1SdO0lXRlWdY6VqxYMeFwkBNUk2kz01rLkiVLZP369SIiUq/X33z9ADnib7311hm1/lz5H/jAB8Yd7BwE+Uzk7rvvntCKoQP/P5HZRA6Wnp4e+bM/+zPZtm3bIRtcf6kBkE93duzYIb29va16+0y4WqWUlEolee2111oDvH79evnMZz4jt99+u+zbt2+MR3LOyaZNm1prBY80W/A8TxYvXixRFB0U3ydyHHfccXLnnXe27m0aGkM6HwD5l/2TP/mTGbX+/LyrV69uXfv++++XMAxb73nnO98p5XJ5TBJWq9Xk5JNPPqQyc+UvW7ZMvvzlL8vGjRtlcHBQNm/eLF//+tfl+OOPnzAI2r/3+eefL4888sgYXmSKnEBnAyC3ss2bN0uhUJgx62+Pt88++6w45+T5559vDbrv+y0g3HvvvQdx8HnbWbsic+VfddVVMjQ0dMjvt3nzZnnrW9864ZymvcSc1wM2bdp0NGGhswGQf6HVq1fPqPXng79ixYrWcu68ryB373kL+Q033DAGAM65VqUuP0+upI985CMHlX/zxpU4jkVE5Mknn5x0C3r7+3t7e+WWW25pLUbJuZJ5D4B8sLZv3y7d3d0zWuLNgXXttdeKiMjw8LAcf/zxY66ZM45//Md/PGbdf7lcbi0yyRWjlJIzzzxTarWaWGvH7QvMQbRq1aopTSfb33/mmWfKP/7jP07WG3RuT2De//Y3f/M3jI6OthZszqSceuqpAOzevZuhoaGDricivO1tbxtTjdyxYwe7d+8e8zcR4c477yQMQ9I0xRjTWjx64FoEEeHDH/7wmPWFTGKnsnyN489+9jN++7d/mw9+8INs2LABY0xrtfK86wnM3WSlUhk3wZoJD3DnnXeKSGMfoO7u7pY15zWGUqkkr7/++pgev3vvvbd1jtwi3/Oe9xzkzQ6cUuY8gojImjVrjprCbq+DdHV1yYMPPjiRamFneoAc2T/4wQ/YunUrxphZqevnFrNkyRLOO++8Vv3dOYe1lltuuYUlS5ZgrW3tBPqd73znoO7ca6+9FoC1a9dy1VVXcfLJJ7N06VLe/e538xd/8Rds3ry5tYoIoK+vr3WOqe4pkN+j53mUy2U+8pGPsG7dugmtbO44D5Cj9n3ve99Bme9MeoBPf/rTrSneiy++KKeeeqoA0tPT02IG22P6hg0bWptF5dbr+77s3r1b/uM//qMVp88+++wxi1H7+/vlvvvua33fF154YUa+z5VXXnkkL9B5SWB+szt37pRSqTQr/X05wC655JIxCdTIyIg8/fTTsnXr1jEsYJ4A/tZv/Vbr83mIWr58uYiIbNu2Te69914ZHBxssYrf+973ZNmyZa3rPvTQQyIi8vDDD09rmMvHLIqiFns4Dgg6DwDt/f3HHXfcrFTc2gds8+bNYq09qNcuB0U+ffvbv/3bMfeWv1500UUHZfztv7/88suydOlSCYJAnnjiCXHOyRe/+MVpn+bmYHr00UcPNyvozGlgbmEPPvhga1Bmywt87GMfa91De5due4v2o48+ehAxdSgv0s7QOedan9+xY8eYhtCpTgMnAoAf/ehH8wsAB1rPunXrWoshZhoE+aC1L+Q4UO6//34plUoHgTL/7Nvf/vYJ7zVsrZWXX35ZwjCc1lDXzl288sor8ycE5Df5rW99S971rnfJpZdeKqtXr5aPfvSj4+7MOVMg+OhHPypr1qyR119/XQYGBuS73/2uXHnlleN2HeW/9/T0yO7duw+7kLOdCbzuuuum3f3nlcYLL7zwSM0jnQOA/Ca3bNky54s62q/f09MjhULhoNW/hwsjf//3f3/Ynv08xD3++ONT2olkouHs29/+9pHWDnQOAPKbvO+++1orYIwxh93GZaZzggNd/JFidP6Zd7zjHS3Ly/OA/Pdc+a+++qqccMIJ097ckgN02bJlUqvVxmyRMy+IoDVr1rTIi3wDx7kgMqy1LWKm/X6O9BmtNc8//zyf+MQn0Fq3tqPJ9w30fZ9nnnmGyy67jB07dkw7UZPvZ3j99dcTRVGLVOt4IihHar60u1MWeB6NC/7gBz8oTz75pAwODsq+fftk7dq1cuONN7YqjNP9Hds7iHbu3DmjVPC0AiC/ye3bt0uxWJyVad9sJZOAHHvssbJ48eJx/z/dDOAf/dEfTbQiOGUAeNPsKQBYt24d1Wq149b0Hc1uJc459u7d+8bAeV5rL+KZeo7R6tWrZ7xyqmcCAM8999yYRZTzXQ7MIwCyLJsR5eTl8lWrVrFy5UpEZEzBiRl4+tS0ST44L7zwAr+MMhv7+OTX+NM//dNZuaaebvQ651i3bt2Y5dMLMjnrX7lyJatWrZpx659WAOTK3rVrFwMDA/Nth82O8jKrV6+etU4gPd2u67XXXqNSqbRapxZk4vN+ay3HHXccv/u7vzsr1j8jANiwYcOY/XYXZHK7jlx33XX09PTMGvGjp9F3gQgbN27EU3o+PGalYyR/vE0URVx//fWzOoPS06V85fugFOt//nMycaRZhlEKo9TCc+QnmPx96EMfYtmyZS0qen4AQASUQr/6GvJ/vsYXeo/hxrPO4ZgwwopgRRB4AwwLnmHc1vkbb7xxzp41M7VdwkQUSsG+/XDLF2D7diiVQBy7hof54evb+M62LTy+ayfVJBmL+qZncICbh8liTgrJAY+om+rU+cILL2TNmjWtPYpna5cwbzqsn58+B7t2IUqRDmxF6nUWG8O1i47j2mOWsNmm/HjfIP9v726e2rmDHeUy9oBBywEhgBNo+I3OVX674rXWLdp7KoAQkRbxM0UAzKEHAPjSV+H5F7D7h0lHRtECcZoiYtFOCHyfIAjhmEWMJDU2O8uzQ4M8tmcnzwwOsml0BA4gjVQTFLRXSWTuYZErPwxDTj/9dLZt28a+ffsOsuq8PHw4Miyf65922mmsX7+eIAimtLJobjyAc6A1vL4Ltm7F1WOkHiO1OtVKHVGQiSUIAkbLVUwhor5rDz1dBd7W283bSr1cd+wSYmBjeZT1cYWn9+/nxZFhfr5vkMFajewQltSeVLr8iYmzBIxcMf39/TzyyCOcd9557N69m7Vr1/LYY4/x2GOPsWHDBpK2cJc/zzD3DHlNwRhDmqYA3HXXXYRh2CoCzY8cwFrBGMWaZ+Ab38TuHSKLE9I9g+higXhoH1mSoLQmyyyJCGEYYEoFaiOjKBFC38eg6enpwosiKBYgChnS8HKlzAv7Bnl+eD8bRkd4rVphW7WC2ENbVDswpO11Or1GbrHvf//7+Zd/+ZdDuuuXX36ZNWvW8Oijj/Jv//ZvbN68edzzdXV1cc8993D11VcfrfLnKAcAePVVGB1FBT7p/mEAksF9OAVoTeYEF4UkoxVsXEZXa2jA04bK6DCe71GzKZkVQs9DBx6RUVzQ3c0FfhecdAx4hopWbMlS1terbKyU2TA6wsbh/eyq19hZr2GtOyzK9QHTUTnUa5vHkcN4AQ04a1sAy2O/53ksX76c5cuX8wd/8AfUajXWrVs3xjvU63WWLFnC5ZdfzurVq1m+fPmcWP7RewDnBK0Vt38ZefJpslodV6tjR8vYJCF2Di2Q4DBJRjlOwfcgScgQbJwgQFAIEaBQKCJJgmQWjCazGakTgq4C3WGI7/kUtcLr62uEniSFwGe/MWyrVXjJ02wqj/BqpcyWapXBLOX1Spm9tTq1JD7qwRHAaI11jvMvuoifPPkkzlr0AYrL437u5tulWq0SxzF9fX2tcDJNyp8DD6A1xDHsHQJjUOJQziHisAKEIfVyuaEoY+gqBCTWYaOQeqUCviH0fNJ6QlQqIElCWqthxZFZQRUCkloVE/qM1hKyShW/VKC2ey94hgiIjIfvHMujiLOPXQSLjoNSP2gDCsqhx1CSsCWJGVSwrV5j82iZ/VnCriQmFmFPvc5oElO1lkqWkVhLJkLmLOLkgKzU0B9FrPQC2LUbddxbDknp5mEhj/l5qCgWixSLRaDRT6C1nnPK/OhCQD2GetywXKUQz6CLBbBl0kqFxFpCraiL4MUJfqmIqsX0Gh9lDNamBIWQapJglMY3HjhHLa5TVBrT1UVWrVNOLd2+z/BImWIY4jLL/npCZDREAUNpit43TOosofHQRqOU0BUELPI8jg9D/K4SeEVY1AVaIU5QYYBzlhjIPEPNM1STlMRZRtOEFEjTDAKfUhASGY/FnsdiQD52Peqa34Pfu+qN6fA4XEE7INo7ijpBju4uRkZh3z6wGa4WU96xC91TwtVjVOqIjAfOYpxFPENWrTEyUqFQirBZggkDsnpC1LSaSqVGhtBdKlKrp2RZRjH0KUQ+9dgiTpFmGTp1+KJwmUWSDCtCYB2+0eiugOre/Ujo4yoxqbNIFOLt3kNaTwj6uqmPVAi0RjxD5PkYT+NpQ9HzKACiYanWBEqhUKgIpGbJylUsjn2AKRTouuMu9FtPgXdd8MasaAKziE6SowNAuYyr1XFegJYq0bGLcHHMcC0m8z2Cap1ECdozDZJHQ1dPCaM11TQlSTPEKAgCpFYHhGKpgFiLRij6PqlSuDjFNwbtKaxzaM+jmFlSpanWajhjqKaWyBi8wVGUU1SrdUwUESuFTlJqSUIUBlT3j+IrTb0WQ+RTc0IYg05S9juHjgKcUiSukbtEUYhoRZakBMUCnlLYzBJU6vhKE619FvWuC2CeVr6PDgC9Pei+PtzwCJlW2DQmHRnFaE2WpGjTsKIkSamJwy9G1CqjqNCnz/itPLJeqZIkCd19vewfLRN5HmItVR8kdShx1FNLwRiwQqVaZ0hc4/yZQ4siCgOyNCWOGx4hxbGvVgPXqEeEYcBoNaboYBRHrIVCLFgXk2mDCHhGEaSWchyjgdDzSOKUxDYe5uDihMQ6sEIcOpIgxP/Zy41B1POzxjFZztECKc1pECccT/2S/4I3WqUwUkNSR90JRCFoRYoQK6GihFBpktEKxUKBYupIk4REwchIlUQJnu9TrdboKUYUtSHyPAIHpplEFTyfWppRsyl+4NEdBERKE0YBCkiTFKcV2vNIEawTurQhUIqi5xGhKGhFYBRoRZ/xUJnDyxySWer1OuVqDZukaKWwCkbihCRJSKxQjRPqlTqjcUJVLC6zWGehSeZ0iKRNHc2YB0iAuDnvEBFRV9z3f+GFZ1h9zEmcrz16E4eu1ylrxUiWIllGEHh4RmEsjbiqNKnRDI+U6S1E1MSR1RPCYkitnpBphW8tdWncoIcirdboLxZJlWBEUY0bTKESML4mridoqyhEIb6JqNbrjNgMT0CylEBB4GkcoDPBpY46joLWKKMI8cmUo4ajoE1jrh8YqmlCT6FIPUmpOEt/GCIagiDATwUdhmMnYnMj+dXjpo6mFwD5fFIpVReRkZwV+6u/+iseffhhUPDo1p9zoh9yUVjichXxNh2wKM0oaI1LM4YNFLUiq9QYdRkhIYuaoSJQgo4C9icp3UqTxQnWgTSJoaRaIzYKlaZo59iXpHRFAS5LyETQpqEQzwoOiF1GinCMH4JSjNTqGKFxToSiBasUvc0wVPB9YpfglKZbewhQzlJ6PI8uL2A4TdDi6Pa9BgGtfZRnSFxKMfDpBAQ0ZTQ30Ik+L8ibRMVKK6VclmV7Pc/j2WeflZtuuqlR+HAOp2B7GvNAGvMAUDIeZzjNr+uQC0yBMxODEyHDUkQzklQJNDilKRRCVOYIraAChVYapSBDUHEGFvoLEbsrjezd8z2cUvjaoLRmOE0JtcGJI6unRErTXyjiDNTKdQKtsUbjofAR6gZGkpgeLyJRljSJ8T2DySwjcYz2PfqKBepZRj3JKBhD6PuItQRRSCYOsRl+4EF3Vye4/lzZe5uEnVZKuekOARpwnucNAFx77bWSZVnjmbr5k78A3SzqVmzGc8BzNuFuO8qtfSfwgSpsShICpfEz6EUTeZBmdaxArIXRLCFAUxeLSYTuUonE08RJQgFNhuArzUiSUs9SFoURb4kilMCIsxRFYXGM1KsU/RAJPOIspZamFLUidhBnKcdGBao2w4rDQ4M4fGMIjA+6wfppga7AxymIEcRoavU6xjr6SwatDLq3543S+NwDYKBdVzM1C/j51772NdavX3/QA50FsLwBBgX4NJLBskAUBJSTUXZKQoLDR+Nnij4UfRh8oICiiKKoDE4rKrWEUZdR9D0CFKM2RbQmTjMWRSEiwr40w1jbAF/go0WhtCamuT2cdXjGMJwlGDQF44OCotb4TmGbZE2SWaykFLyASpwwEif0RAHaCQXROK8Bb1974ATle5ADoDPkFzM2DWw+1o0///M/f/ErX/kKSil1uL71vIaf0ojLv9rXT08149S4QG+WsFcyyji2krK7BRaNB/SjWYxHySp6rKWIopzFdCnNIjQ2ySgoTckqarhG5FUKQeEEUmdxWrMoCBipx9TFEqGwTljkG6qZpZyk9BYjbNbovk2dQ7TGD3xcZqkkCV2+j8syAt+nljW8SwJoJSAOpTTq5BM6aTb3/BFqWVMrBrW9V4AlwCagNJHMJ//QI8vfwcWx47X9+xiqlhnKssZUSxz7cWhgEIsCEoQCmiIaq4Qlojm12MNdUmWoHnO68VlshaV49KE5FoWvFb6DQKtG+Aj8RmdRltFlPGq+ZjSOCVDUFZSUwRmNRnDa4CvwnMPmC1qtxTceMY7uICRNGmQUxoCA7xuW/Moygu/9HSxZMi4dPIszgApwmlJq50zlANKoqqqdwLMiclEzzpgjKT80hlOPXUSyaxATevRTRKpV6tbRpTUFlyEoCmgsQgVLgCbB0SeGSBkkjPhudYhRiXkoq7euUVSaRaLos5rFyrBEDItEcUyS8hZR9GpNXwaehW7XcPW9ShE5RTXLQCDCoo0mVArP12SZQytDljoiBS5L6VGazDUo6NAP6LEKrviNhvInQAPPoLimB/jpZJU/lRxAi4gDHgQunqir6Q1CFhULoCEyhgxNX1TAOcdwHHOC8smU4DuHQbMTCJq5AAp6UGR+I/6aJrDybqCqOKrANixIenCh3zZGp6AUvaIoiibIFN1KURJFnzKUlMI4oV8Zjs18Slqjs4Y36lIeDks9a0xp4yBiKCsT/8pSPvM/PzWXln+gB/juZBPAqQAgP/F3gM9Bo3YyXhjI++feEgQUraXme3iZJTMKbQxpPaOrWMC3QrVep88oLIqTxKfqHFpBLJYez2PEKMo2w7V5lvYYpg5xE3ke4oCKCBXkjd5DGSda2onwoMD6PVzx3HP82q/9WmsPgTlSvgGqTZ0wGeVPhQrOXf725gXV4YYsV0hvoYCPIq5UCfq68cIAzymKUYRkDmUdge9TVIZ+4+EDPVrTozSLdUCfFxCg39jGfRwl2wMO14ZO1ZqmNg4zgUMf4jBA5Plo6/jGN74x1xU+2/xa9yultouImYz7n+rCkHxMbwFqBxjkIaU/jFBKY8KQOE7wfZ8g9Ak8jy7Pww99fM8jUgqtwFOaY0xAURm0UoRaE/sGcW7KN9wOlEOBxY4DoAMPC8RNT/Tggw+yf//+WXkGwhHo39uaW8LIbKwMypOOTcAXmkaRHc4DLPY8KEYEYUDo+9RrNUKt8RWM1Ct4ShErIdFC5hxdSlN2Gb5qsHuhNtR9r2NKrvnK3cHBQR566KExW9TPomTNsb9VKfVqM0F3s7U0LA8FnwOeBvzxQADQ2+z0qScxaIWvNJVKFWUMYVQgTlJ86ygZn1IUYpWwyHj4Cgrax9eNTh06cGXQAw88MBfNHllzzJ8BPiciZrKx/2gB8AbPA1c1KUhvPBAsKRQhy4gKEUmSYH1D1NdNLI5QafxC2MjuAx+0IvA8YnFUxOJw+L7HiMkZRtVR+wY9/vjj7Nq1azbDQNYc69eA/96MSjLR4s90Lg5tTwh/A9jcvLG01WXdfOMJXV3g+2S1Oj4KVUvIkhSXWFCKTByJCEmSIHGKsY7A84h8n5LnEQQ++1VueZ0VBsrlMg8//DAiMtNhIDe4XPm/oZTa1nA+ys3V6mDbBMFLwCXAmqZrUkAmTQwcH0ZIuUoSpygUAni+h44CsiSl4AcUfI/I91BBs1MoywiMQWlQnuFn5VHo0AWi//zP/zxmB7EZUHzWYsvhKeBipdTLU8n6Z2J/gBwEW4BLgZub81KvmZlmpTix4qyAIxZHEAYorVFJoyu4EtdxAlYUWEtXIaIUhpBmBBiywGdTUp8cyT2LYeCJJ55geHh4OsOANMc1V7zXpHo/C1yulNraZPxsp+wQYpvnyoDPAOcC9wAjgBcWS0ZrT0Xac0GxkLnAZK5Ws34hdNZZVwoCceIkdlayrHEIWjxtpCsKZNggA1ncXIgjHbOLqIiI1lr27Nkja9euFUCstZM5R/vsMmseOddlmoofBe4FzlNK3aSUSidL987WNnHtN/4L4IYlRCuBT/7TLzY+Nrz19REdO632DnvdTnk92jNepaa7tdFaRAVo1a+M6vI8pZxT2lkVBkb1aq12atS2el0Byo3ldeb80ForQD3yyCMKUJ7nTebz7fyS1zx003AeBz4JrFRKXaeU2igiprnix83q0rApAmsMS/jXFI8/Fd6uCd6Bkl8t6mBp5OvFRquuapJGJeP7ZBbj60bDqQPnaU7o6ub57pD3DvwMJZ3XfZ3vC3D++efz7//+75PZ3ycF6k0L39OcSf0ceBH4T6XU620Jp2lm+m5O1gYeJRC0IFah5FCc4U0QreIYX8i8YWAp0AsM08sww6zsXcqaXrhyyzr45dpJ1AKJUqo+XgteXtiZCcXPFgDasxr1HdCLm9e8BJyaInnBL9/mkLotHEtT6dIxq4NnGhjz4kZnaC/h2VL0gizIgizIgizIgizIgizIgizIgizIgizIgrzJ5f8D/WH96i9msU4AAAAASUVORK5CYII="
53
+ "data:image/png;base64,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Jnjb294mTz755AxF2B+LMEhUFRH553/+5z41vbQ2//Iv/3JYsw/m0/xv2rSpr+mLVQmWLVsmX/ziF6XRaMy4v6Io+i6ixA/Kn51zMwTabrflz//8z/uLYdDSHFUWoOTllyYvhCDvec97Fo0L2J0SAHLKKafI5z73Odm0adM+z0ez2ZR/+qd/kle96lUzUs5Bq/jDH/7wsCqAkiOEre6OUPnss89y2mmn0Wq1FiXxotw+Xpabq9Uqr3vd6/iVX/kVzjrrLF760pcyNjZGFEV0Oh22bdvGY489xp133sl3v/tdnnjiiRmw8yAdrVqtsnHjRlasWHH4NqAeqZUvIjIxMSEf/vCH5ZxzzpF3vvOd8p3vdNnoX/nKVxatFRgEjHYHW9dqNRkZGenD27OtyGzQq5yHc845Z/HjAKXZL4pCzjvvvF0m4PWvf7184xvfkJe//OUz8PfF+ir9dxnM7c517OnzUpH+4i/+4rDDzxwppO9jH/uYABLHsWitd9H8Wq22qAW/N6XY10BXKdW3Jg8//PBhL0NzJNK96667breVvSOF+5erbjDK3ldiyXwgju94xzuOyA7kwxYEhhBQSvHss89y5plnMjk52ad4HVH2Y48ruKfz7utmkSMVUJbcx9NPP/2w70ewhzPq11pz0UUXMTExgTHmiBMqBiPr8847jwsuuIBXv/rVpGnKE088werVq7nmmmv6EfZ8Ez6stRRFwV//9V+zatWqPhl20RFCSrP11a9+dd5IHWUkffLJJ8vNN9+822tds2ZNn284nwFoFEUCyG/91m/15/BIlIU5XESG5557TsbGxg6KmHmwwn/Tm94kW7dunROdc8718fd7771XhoaG5q0gVc7PeeedJ81m84gyjzhcq//d7373vKz+UvjnnnuuNJvNGcWauSY1y7qk6Msvv3xesIhygVx88cXinDvkFcYjqgCl8O+88855ncxly5b16+h5ns+IpGdH1SVG32w2+65gf6xAmdIeaDZTXvNHPvIRee6553Z7nYtCAUrzf+65586LApTnu/rqq2esbhGRVqslnU5nj1jFhz70oX22Wru7twNxeaXCLVu2TL70pS/1XdORsAYcLnbPfAn/ta997QxyxZYtW+Tiiy+WE088UU466ST59Kc/3V/1pUsoXcS+XPtsQOfMM8+UCy64QN7+9rf3uQ0HElAOnvPss8+W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"
54
54
 
55
55
  /** Token 30 天有效;提前 1 天提示重登 */
56
56
  export const REFRESH_LEAD_MS = 24 * 60 * 60_000
@@ -1,20 +1,28 @@
1
1
  // ② auth.methods —— 两条登录路
2
2
  //
3
- // A. QQ / 微信 授权页(默认):打开浏览器 → 用户在 QQ/微信里确认 →
4
- // 浏览器跳到 Marvis 的 redirect_uri 并显示一段 JSON → 用户把 `code=XXX` 粘回来。
5
- // B. 从本机 Marvis 导入:装了客户端且登录过的人,一条命令读出来,不用走浏览器。
3
+ // A. QQ / 微信 授权(默认):自己起一个**隔离浏览器**(一次性 profile、伪装正常 Chrome、
4
+ // 去掉自动化痕迹),用户在窗口里授权,插件从 CDP 抓回调 URL 里的 `code`。
5
+ // → `{ url, opened: true, method: "auto", callback }`
6
+ // `opened: true` 让 magpie **不要**再开系统默认浏览器(否则弹两个窗口)。
7
+ //
8
+ // B. 从本机 Marvis 导入:装了客户端且登录过的人,直接读进程内存里的登录态。
9
+ // → 同样 `opened: true` + `method: "auto"`,整个登录就是「点一下 → 读内存 → 成功」。
6
10
  //
7
11
  // ⚠ `authorize()` 必须**立刻**返回 —— 真正等用户的是 `callback()`。
8
12
  // 在这里 await 登录会和 magpie 双向死锁(HOOKS §四·陷阱1)。
9
13
  //
10
- // ⚠ 为什么不能像别的插件那样起本地 loopback:redirect_uri 是 QQ 互联里
11
- // 预注册死的,改不了(详见 src/marvis/login.mjs 顶部)。
14
+ // ⚠ 为什么不能像别的插件那样起本地 loopback 收回调:redirect_uri 是 QQ 互联里
15
+ // 预注册死的,改不了(详见 src/marvis/login.mjs 顶部)。所以只能「跳过去 → 读地址栏」。
12
16
 
13
- import { PROVIDER } from "../context.mjs"
14
- import { authorizeUrl, exchangeCode, extractCode, deviceGuid } from "../marvis/login.mjs"
17
+ import { PROVIDER, LOGIN_TYPE } from "../context.mjs"
18
+ import { authorizeUrl, parseCallback, deviceGuid } from "../marvis/login.mjs"
19
+ import { openIsolatedLogin, findBrowser } from "../marvis/browser.mjs"
15
20
  import { resolveAccount } from "../account-name.mjs"
16
21
  import { importFromDesktop, desktopAvailable } from "../marvis/desktop.mjs"
17
22
 
23
+ /** 回调地址判据:跳到 marvis_oauth 且带 code= */
24
+ const CALLBACK = /marvis_client_login\/marvis_oauth\?[^#]*\bcode=/i
25
+
18
26
  /**
19
27
  * 登录成功时给宿主的字段。
20
28
  * `accountId` 是**名字**(卡片上显示),`uid` 是身份(HOOKS §八)。
@@ -45,26 +53,42 @@ export function authOf(acct) {
45
53
  }
46
54
  }
47
55
 
48
- /** 授权页登录(QQ / 微信) */
56
+ /** 授权页登录(QQ / 微信),走隔离浏览器 */
49
57
  function oauthLogin(loginType, label, instructions) {
50
58
  return {
51
59
  type: "oauth",
52
60
  label,
53
61
  async authorize() {
54
62
  const guid = deviceGuid()
63
+ const browser = findBrowser()
64
+ const url = authorizeUrl(loginType, guid)
65
+
55
66
  return {
56
- url: authorizeUrl(loginType, guid),
67
+ url,
68
+ // 我们自己开隔离浏览器,magpie 不要再开系统默认浏览器
69
+ opened: true,
70
+ method: "auto",
57
71
  instructions,
58
- // 用户在浏览器里确认后,地址栏会变成
59
- // https://yybadaccess.3g.qq.com/marvis_client_login/marvis_oauth?login_type=QC&code=XXX
60
- // 把整条 URL(或只 code)粘回来即可。
61
- async callback(_url, input) {
62
- const code = extractCode(input) ?? extractCode(_url)
63
- if (!code) {
64
- throw new Error("没识别出授权码。请把浏览器地址栏里的整条 URL 贴进来(形如 ...?login_type=QC&code=XXXX)")
72
+ async callback(_url, _input, signal) {
73
+ if (!browser) {
74
+ throw new Error(
75
+ "没有找到可用的 Chromium 内核浏览器(Chrome / Edge / 360 / QQ 浏览器都行)。" +
76
+ "请装一个,或改用「从本机 Marvis 导入」。",
77
+ )
65
78
  }
66
- const acct = await exchangeCode(code, loginType, guid)
67
- return authOf({ ...acct, guid })
79
+ // 起隔离浏览器 → 等它跳到回调地址
80
+ // ⚠ 回调页**本身就是换 token 的响应**(服务端直接吐 JSON),
81
+ // 所以这里读页面正文,**不要再发一次请求** —— 再发就是第二个 code,必然 -109。
82
+ const { url: callbackUrl, body } = await openIsolatedLogin({
83
+ browser,
84
+ url,
85
+ match: CALLBACK,
86
+ timeoutMs: 5 * 60_000,
87
+ signal,
88
+ })
89
+
90
+ const acct = parseCallback(callbackUrl, body)
91
+ return authOf({ ...acct, guid, loginType: acct.loginType ?? LOGIN_TYPE[loginType] ?? "6" })
68
92
  },
69
93
  }
70
94
  },
@@ -76,16 +100,16 @@ export function methods() {
76
100
  oauthLogin(
77
101
  "QC",
78
102
  "QQ 登录",
79
- "1) 浏览器会打开 QQ 授权页,用你的 QQ 登录并确认授权\n" +
80
- "2) 授权后页面会显示一段 JSON(或跳到 marvis_client_login 地址)\n" +
81
- "3) 把**地址栏里的整条 URL** 粘贴回来(含 code=…)",
103
+ "1) 会打开一个**独立的**浏览器窗口(不碰你日常浏览器)\n" +
104
+ "2) 用你的 QQ 登录并确认授权\n" +
105
+ "3) 授权完成后窗口会自己关掉,回到 magpie 即可",
82
106
  ),
83
107
  oauthLogin(
84
108
  "WX",
85
109
  "微信登录",
86
- "1) 浏览器会打开微信扫码页,用微信扫码并确认\n" +
87
- "2) 扫码后页面会显示一段 JSON(或跳到 marvis_client_login 地址)\n" +
88
- "3) 把**地址栏里的整条 URL** 粘贴回来(含 code=…)",
110
+ "1) 会打开一个**独立的**浏览器窗口(不碰你日常浏览器)\n" +
111
+ "2) 用微信扫码并确认\n" +
112
+ "3) 授权完成后窗口会自己关掉,回到 magpie 即可",
89
113
  ),
90
114
  {
91
115
  type: "oauth",
@@ -93,10 +117,14 @@ export function methods() {
93
117
  async authorize() {
94
118
  const ok = await desktopAvailable()
95
119
  return {
96
- url: ok ? "about:blank" : "about:blank",
120
+ // ⚠ 必须 opened: true + method: "auto",否则 magpie 会去开这个 url
121
+ // (之前给 about:blank 弹了一次「没有可打开此链接的应用」)
122
+ url: "",
123
+ opened: true,
124
+ method: "auto",
97
125
  instructions: ok
98
126
  ? "已检测到本机 Marvis 客户端,正在读取登录态…"
99
- : "本机没找到 Marvis 客户端(需要安装并登录过)。请改用上面的 QQ / 微信登录。",
127
+ : "本机没找到运行中的 Marvis 客户端。请先打开 Marvis 并登录,或改用 QQ / 微信 登录。",
100
128
  async callback() {
101
129
  const acct = await importFromDesktop()
102
130
  return authOf(acct)
@@ -107,4 +135,4 @@ export function methods() {
107
135
  ]
108
136
  }
109
137
 
110
- export { PROVIDER }
138
+ export { PROVIDER, CALLBACK }