@mikoto_zero/minigame-open-mcp 1.16.0 → 1.16.1

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/dist/proxy.js CHANGED
@@ -13767,7 +13767,7 @@ var LogWriter = class {
13767
13767
  };
13768
13768
 
13769
13769
  // src/mcp-proxy/proxy.ts
13770
- var VERSION = true ? "1.16.0" : "dev";
13770
+ var VERSION = true ? "1.16.1" : "dev";
13771
13771
  var TapTapMCPProxy = class {
13772
13772
  constructor(config) {
13773
13773
  this.connected = false;
package/dist/server.js CHANGED
@@ -1381,7 +1381,7 @@ H5 游戏根目录必须包含 index.html 文件。`,EMPTY_PATH_NO_INDEX_PROXY:(
1381
1381
 
1382
1382
  💡 如果没有应用,可以使用 \`create_app\` 创建新应用(创建后会自动选中)`}:{success:!0,developerId:e.developer_id,developerName:e.developer_name,appId:e.app_id,appTitle:e.app_title,miniappId:e.miniapp_id}}async function Qk(t,e){let r=c1(e);if(!r.success)return r.message;let i=Sc(t.gamePath,e,{allowEmpty:!0,checkExists:!0}),n=Jk(i,!0);if(n)throw new Error(n);let a=i.resolvedPath;return Mt.CONFIRM_GAME_INFO(a,r.developerName,r.developerId,r.appId,r.appTitle)}async function Xk(t,e){let r=c1(e);if(!r.success)return r.message;let i=Sc(t.gamePath,e,{allowEmpty:!0,checkExists:!0}),n=Jk(i,!1);if(n)throw new Error(n);let a=i.resolvedPath,s=r.developerId,o=r.appId,l=sie(a);try{let c=await oie(a,l);await oe.info(Mt.COMPRESSION_SUCCESS(c));let u;try{u=await zk(o,e),await oe.info(Mt.GET_UPLOAD_PARAMS_SUCCESS(u,l))}catch(p){return Mt.COMPRESSED_GET_PARAMS_FAILED(c,String(p))}let d;try{d=await lie(u,l)}catch(p){throw new Error(Mt.FILE_COMPRESSED_UPLOAD_FAILED(p instanceof Error?p.message:String(p)))}await oe.info(Mt.PUBLISH_PARAMS(o,s,d));let f=await wc(o,s,d,void 0,t.genre,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,e);try{await sh(e==null?void 0:e.projectPath,e)}catch(p){console.warn("Failed to refresh app cache after upload:",p)}let h=Mt.GAME_PUBLISH_SUCCESS(f.app_title,o);return h+=`
1383
1383
  `+Mt.GAME_TYPE_INFO(f.display_app_title)+`
1384
- `,h}finally{if($t.existsSync(l))try{$t.unlinkSync(l)}catch(c){console.error(`[H5Game] Failed to cleanup temp file: ${l}`,c)}}}function cie(t){if(!Number.isFinite(t))return 10;let e=Math.floor(t);return e<1?1:e>20?20:e}function uie(t){return t===0||t===1||t===2?t:1}function p0(t){$t.existsSync(t)||$t.mkdirSync(t,{recursive:!0})}function die(t){return t.replace(/[^a-zA-Z0-9._-]/g,"_")}function Wk(t,e){try{let r=new URL(t),i=yt.basename(decodeURIComponent(r.pathname));if(i&&i!=="/"&&i!==".")return die(i)}catch{}return e}function Vk(t,e){let r=yt.extname(e),i=yt.basename(e,r),n=yt.join(t,e),a=1;for(;$t.existsSync(n);)n=yt.join(t,`${i}_${a}${r}`),a+=1;return n}async function Yk(t,e){let r=await fetch(t);if(!r.ok)throw new Error(`HTTP ${r.status}`);let i=Buffer.from(await r.arrayBuffer());$t.writeFileSync(e,i)}function Zk(t){let e=lA(void 0,t);return yt.join(e,aie)}function fie(t,e,r){let i=r.screenshotPaths.length>0?r.screenshotPaths.map(a=>`- ${a}`).join(`
1384
+ `,h}finally{if($t.existsSync(l))try{$t.unlinkSync(l)}catch(c){console.error(`[H5Game] Failed to cleanup temp file: ${l}`,c)}}}function cie(t){if(!Number.isFinite(t))return 3;let e=Math.floor(t);return e<1?1:e>10?10:e}function uie(t){return t===0||t===1||t===2?t:1}function p0(t){$t.existsSync(t)||$t.mkdirSync(t,{recursive:!0})}function die(t){return t.replace(/[^a-zA-Z0-9._-]/g,"_")}function Wk(t,e){try{let r=new URL(t),i=yt.basename(decodeURIComponent(r.pathname));if(i&&i!=="/"&&i!==".")return die(i)}catch{}return e}function Vk(t,e){let r=yt.extname(e),i=yt.basename(e,r),n=yt.join(t,e),a=1;for(;$t.existsSync(n);)n=yt.join(t,`${i}_${a}${r}`),a+=1;return n}async function Yk(t,e){let r=await fetch(t);if(!r.ok)throw new Error(`HTTP ${r.status}`);let i=Buffer.from(await r.arrayBuffer());$t.writeFileSync(e,i)}function Zk(t){let e=lA(void 0,t);return yt.join(e,aie)}function fie(t,e,r){let i=r.screenshotPaths.length>0?r.screenshotPaths.map(a=>`- ${a}`).join(`
1385
1385
  `):"- 无截图文件",n=r.logPaths.length>0?r.logPaths.map(a=>`- ${a}`).join(`
1386
1386
  `):"- 无日志文件";return`# Debug Feedback Context
1387
1387
 
@@ -1474,7 +1474,13 @@ Use the same path confirmed in prepare_h5_upload step.`},genre:{type:"string",de
1474
1474
  - fetch_and_mark_processed defaults to true
1475
1475
  - download_assets defaults to true
1476
1476
  - downloaded files are saved under logs/feed_back/feedback_{id}/
1477
- `,inputSchema:{type:"object",properties:{limit:{type:"number",description:"How many feedback records to pull (1-10, default 3)."},status:{type:"number",description:uh.DEBUG_FEEDBACK_STATUS_DESCRIPTION},fetch_and_mark_processed:{type:"boolean",description:"Pull unprocessed records and mark them processed on server. Default true. When true, status is ignored."},download_assets:{type:"boolean",description:"Whether to download feedback JSON/screenshot/log files to local workspace. Default true."}}}},handler:async(t,e)=>await eM(t,e),requiresAuth:!0}];var rM={name:"h5Game",tools:tM,resources:[]};var Cl={title:"TapTap Vibrate API (Minigame & H5)",description:`Complete vibrate functionality for TapTap Minigame and H5 Games, including short and long vibration.
1477
+
1478
+ **CALLING POLICY FOR AGENTS:**
1479
+ - If user says "拉取/查看反馈" without explicit read-only intent, DO NOT pass fetch_and_mark_processed.
1480
+ Let default behavior (true) apply.
1481
+ - ONLY pass fetch_and_mark_processed=false when user explicitly requests read-only
1482
+ behavior (e.g. "只查看,不标记处理").
1483
+ `,inputSchema:{type:"object",properties:{limit:{type:"number",description:"How many feedback records to pull (1-10, default 3)."},status:{type:"number",description:uh.DEBUG_FEEDBACK_STATUS_DESCRIPTION},fetch_and_mark_processed:{type:"boolean",description:"Pull unprocessed records and mark them processed on server. Default true. Set false only for explicit read-only requests. When true, status is ignored."},download_assets:{type:"boolean",description:"Whether to download feedback JSON/screenshot/log files to local workspace. Default true."}}}},handler:async(t,e)=>await eM(t,e),requiresAuth:!0}];var rM={name:"h5Game",tools:tM,resources:[]};var Cl={title:"TapTap Vibrate API (Minigame & H5)",description:`Complete vibrate functionality for TapTap Minigame and H5 Games, including short and long vibration.
1478
1484
 
1479
1485
  ⚠️ IMPORTANT:
1480
1486
  - NO npm packages or SDK installation required
@@ -5851,7 +5857,7 @@ class MultiplayerManager {
5851
5857
  // 导出
5852
5858
  // export default MultiplayerManager;
5853
5859
  // module.exports = MultiplayerManager;
5854
- // window.MultiplayerManager = MultiplayerManager;`}]}}};var Ma;Ma="1.16.0";async function Pie(){return Ri(qu,"api_event_relations")}async function Iie(){return Ri(qu,"protocol_template")}async function u1(){return Ri(qu,"complete_example")}async function Aie(){return`# TapTap 多人联机集成指南
5860
+ // window.MultiplayerManager = MultiplayerManager;`}]}}};var Ma;Ma="1.16.1";async function Pie(){return Ri(qu,"api_event_relations")}async function Iie(){return Ri(qu,"protocol_template")}async function u1(){return Ri(qu,"complete_example")}async function Aie(){return`# TapTap 多人联机集成指南
5855
5861
 
5856
5862
  ---
5857
5863
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mikoto_zero/minigame-open-mcp",
3
- "version": "1.16.0",
3
+ "version": "1.16.1",
4
4
  "type": "module",
5
5
  "description": "TapTap Open API MCP Server - Documentation and Management APIs for TapTap Minigame and H5 Games (Leaderboard, and more features coming)",
6
6
  "main": "dist/server.js",