@tunnelbox/dsh-tunnelbox 0.1.20 → 0.1.21

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 (2) hide show
  1. package/dist/index.mjs +249 -9
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -425,7 +425,37 @@ var zh_CN_default = {
425
425
  "adapter.logQuestionNative": "\u9009\u62E9\u8BF7\u6C42 \u2192 \u624B\u673A\u9009\u62E9\u5361 questionID={id} (session={session})",
426
426
  "adapter.logPermissionNative": "\u5BA1\u6279\u8BF7\u6C42 \u2192 \u624B\u673A\u6743\u9650\u5361 permissionID={id} (session={session})",
427
427
  "adapter.checkAppServerOk": "codex app-server \u53EF\u7528",
428
- "adapter.checkAppServerMissing": "\u5F53\u524D Codex CLI \u4E0D\u652F\u6301 `codex app-server`\uFF08\u8BF7\u5347\u7EA7 Codex CLI\uFF09"
428
+ "adapter.checkAppServerMissing": "\u5F53\u524D Codex CLI \u4E0D\u652F\u6301 `codex app-server`\uFF08\u8BF7\u5347\u7EA7 Codex CLI\uFF09",
429
+ "adapter.warnCursorCliMissing": '\u672A\u627E\u5230 Cursor CLI \u53EF\u6267\u884C\u6587\u4EF6 "{bin}"\uFF1A\u8BF7\u5B89\u88C5\uFF08https://cursor.com/docs/cli\uFF09\uFF0C\u6216\u7528 TUNNELBOX_CURSOR_BIN \u6307\u5B9A\u8DEF\u5F84',
430
+ "adapter.checkCursorCliMissing": "\u672A\u627E\u5230 Cursor CLI \u53EF\u6267\u884C\u6587\u4EF6\uFF08{bin}\uFF09\uFF1A\u8BF7\u4ECE https://cursor.com/docs/cli \u5B89\u88C5",
431
+ "adapter.checkCursorAcpHint": "\u5DF2\u68C0\u6D4B\u5230 Cursor CLI\uFF1B\u5C06\u4F7F\u7528 ACP \u6A21\u5F0F\uFF08`agent acp`\uFF09\u63D0\u4F9B\u6D41\u5F0F/\u5BA1\u6279/\u9009\u62E9",
432
+ "adapter.errAcpSpawn": "\u542F\u52A8 cursor `agent acp` \u5931\u8D25\uFF1A{message}\uFF08\u8BF7\u786E\u8BA4 Cursor CLI \u652F\u6301 `agent acp`\uFF09",
433
+ "adapter.errAcpNoSession": "Cursor ACP \u672A\u8FD4\u56DE\u4F1A\u8BDD id",
434
+ "adapter.logResumeFailed": "\u4F1A\u8BDD\u6062\u590D\u5931\u8D25\uFF0C\u6539\u4E3A\u65B0\u5EFA\u4F1A\u8BDD\uFF1A{message}",
435
+ "adapter.logPlanNative": "\u8BA1\u5212\u5BA1\u6279 \u2192 \u624B\u673A\u5BA1\u6279\u5361 permissionID={id} (session={session})",
436
+ "adapter.errTimeout": "\u7B49\u5F85\u8D85\u65F6\uFF0C\u81EA\u52A8\u62D2\u7EDD\uFF08fail-closed\uFF09",
437
+ "adapter.planApprovalPrompt": "Cursor \u8BF7\u6C42\u6279\u51C6\u4E00\u9879\u8BA1\u5212",
438
+ "adapter.checkCursorHeader": "tunnelbox-cursor \u73AF\u5883\u81EA\u68C0",
439
+ "adapter.errAskBridge": "\u542F\u52A8 ask \u6865\u5931\u8D25\uFF1A{message}",
440
+ "adapter.logAskBridge": "MCP ask \u6865\u5DF2\u76D1\u542C {url}",
441
+ "cursor.mcpAskDesc": "\u8BA9\u7528\u6237\u5728\u624B\u673A\u4E0A\uFF08tunnelbox\uFF09\u505A\u9009\u62E9\uFF0C\u5E76\u963B\u585E\u7B49\u5F85\u5176\u4F5C\u7B54\u3002\u53EA\u8981\u9700\u8981\u7528\u6237\u5728\u7EE7\u7EED\u524D\u4E8E\u82E5\u5E72\u9009\u9879\u4E2D\u505A\u51FA\u9009\u62E9\uFF08\u5982\u9009\u83DC\u3001\u9009\u6A21\u5F0F\u3001\u9009\u65B9\u6848\uFF09\u5C31\u8C03\u7528\u5B83\u3002\u8FD4\u56DE\u7528\u6237\u6240\u9009\u7684\u9009\u9879\u6587\u672C\u3002",
442
+ "cursor.mcpAskTitleDesc": "\u624B\u673A\u5361\u7247\u4E0A\u663E\u793A\u7684\u6807\u9898\uFF08\u53EF\u9009\uFF09",
443
+ "cursor.mcpAskQuestionsDesc": "\u4E00\u4E2A\u6216\u591A\u4E2A\u95EE\u9898\uFF1B\u6BCF\u4E2A\u95EE\u9898\u5E26\u53EF\u9009\u9879",
444
+ "cursor.mcpPlanDesc": "\u8BA9\u7528\u6237\u5728\u624B\u673A\u4E0A\uFF08tunnelbox\uFF09\u6279\u51C6\u4E00\u9879\u8BA1\u5212\uFF0C\u5E76\u963B\u585E\u7B49\u5F85\u5176\u5E94\u7B54\u3002\u8FD4\u56DE\u8BA1\u5212\u662F\u5426\u88AB\u63A5\u53D7\u3002",
445
+ "cursor.mcpNoBridge": "tunnelbox ask \u6865\u4E0D\u53EF\u7528",
446
+ "cursor.mcpUnanswered": "\u7528\u6237\u672A\u5728\u624B\u673A\u4E0A\u4F5C\u7B54\uFF08\u79BB\u7EBF\u6216\u8D85\u65F6\uFF09\u3002\u8BF7\u7EE7\u7EED\uFF0C\u6216\u7528\u5BF9\u8BDD\u65B9\u5F0F\u8BE2\u95EE\u3002",
447
+ "cursor.mcpRejected": "\u7528\u6237\u5728\u624B\u673A\u4E0A\u62D2\u7EDD\u4E86\u8FD9\u4E2A\u63D0\u95EE\u3002",
448
+ "cursor.mcpAnswersHeader": "\u7528\u6237\uFF08\u624B\u673A\uFF09\u7684\u9009\u62E9\uFF1A",
449
+ "cursor.mcpAccepted": "\u7528\u6237\u5DF2\u63A5\u53D7\u8BE5\u8BA1\u5212\u3002",
450
+ "cursor.mcpDenied": "\u7528\u6237\u62D2\u7EDD\u4E86\u8BE5\u8BA1\u5212\u3002",
451
+ "cursor.mcpPlanUnanswered": "\u7528\u6237\u672A\u5728\u624B\u673A\u4E0A\u56DE\u5E94\u8BA1\u5212\uFF08\u79BB\u7EBF\u6216\u8D85\u65F6\uFF09\u3002",
452
+ "cursor.mcpAskNoQuestions": "\u672A\u63D0\u4F9B\u4EFB\u4F55\u95EE\u9898\u3002",
453
+ "cursor.mcpFailed": "tunnelbox ask \u8C03\u7528\u5931\u8D25",
454
+ "adapter.errCursorExitCode": "Cursor CLI \u9000\u51FA\u7801 {code}",
455
+ "adapter.errCursorExit": "Cursor CLI \u9000\u51FA({code}): {err}",
456
+ "adapter.errCursorSpawn": "\u65E0\u6CD5\u542F\u52A8 Cursor CLI\uFF08agent\uFF09\uFF1A\u8BF7\u786E\u8BA4\u5DF2\u5B89\u88C5\u5E76\u767B\u5F55\uFF08{message}\uFF09",
457
+ "adapter.errCursorStart": "Cursor CLI \u542F\u52A8\u5931\u8D25: {message}",
458
+ "adapter.errCursorGeneric": "Cursor \u51FA\u9519"
429
459
  };
430
460
  var zh_TW_default = {
431
461
  "agent.err.createSession": "\u5EFA\u7ACB\u6703\u8A71\u5931\u6557",
@@ -702,7 +732,37 @@ var zh_TW_default = {
702
732
  "adapter.logQuestionNative": "\u9078\u64C7\u8ACB\u6C42 \u2192 \u624B\u6A5F\u9078\u64C7\u5361 questionID={id} (session={session})",
703
733
  "adapter.logPermissionNative": "\u5BE9\u6279\u8ACB\u6C42 \u2192 \u624B\u6A5F\u6B0A\u9650\u5361 permissionID={id} (session={session})",
704
734
  "adapter.checkAppServerOk": "codex app-server \u53EF\u7528",
705
- "adapter.checkAppServerMissing": "\u76EE\u524D Codex CLI \u4E0D\u652F\u63F4 `codex app-server`\uFF08\u8ACB\u5347\u7D1A Codex CLI\uFF09"
735
+ "adapter.checkAppServerMissing": "\u76EE\u524D Codex CLI \u4E0D\u652F\u63F4 `codex app-server`\uFF08\u8ACB\u5347\u7D1A Codex CLI\uFF09",
736
+ "adapter.warnCursorCliMissing": '\u672A\u627E\u5230 Cursor CLI \u57F7\u884C\u6A94 "{bin}"\uFF1A\u8ACB\u5B89\u88DD\uFF08https://cursor.com/docs/cli\uFF09\uFF0C\u6216\u7528 TUNNELBOX_CURSOR_BIN \u6307\u5B9A\u8DEF\u5F91',
737
+ "adapter.checkCursorCliMissing": "\u672A\u627E\u5230 Cursor CLI \u57F7\u884C\u6A94\uFF08{bin}\uFF09\uFF1A\u8ACB\u5F9E https://cursor.com/docs/cli \u5B89\u88DD",
738
+ "adapter.checkCursorAcpHint": "\u5DF2\u5075\u6E2C\u5230 Cursor CLI\uFF1B\u5C07\u4F7F\u7528 ACP \u6A21\u5F0F\uFF08`agent acp`\uFF09\u63D0\u4F9B\u4E32\u6D41/\u5BE9\u6279/\u9078\u64C7",
739
+ "adapter.errAcpSpawn": "\u555F\u52D5 cursor `agent acp` \u5931\u6557\uFF1A{message}\uFF08\u8ACB\u78BA\u8A8D Cursor CLI \u652F\u63F4 `agent acp`\uFF09",
740
+ "adapter.errAcpNoSession": "Cursor ACP \u672A\u8FD4\u56DE\u5DE5\u4F5C\u968E\u6BB5 id",
741
+ "adapter.logResumeFailed": "\u5DE5\u4F5C\u968E\u6BB5\u6062\u5FA9\u5931\u6557\uFF0C\u6539\u70BA\u5EFA\u7ACB\u65B0\u5DE5\u4F5C\u968E\u6BB5\uFF1A{message}",
742
+ "adapter.logPlanNative": "\u8A08\u756B\u5BE9\u6279 \u2192 \u624B\u6A5F\u5BE9\u6279\u5361 permissionID={id} (session={session})",
743
+ "adapter.errTimeout": "\u7B49\u5F85\u903E\u6642\uFF0C\u81EA\u52D5\u62D2\u7D55\uFF08fail-closed\uFF09",
744
+ "adapter.planApprovalPrompt": "Cursor \u8ACB\u6C42\u6279\u51C6\u4E00\u9805\u8A08\u756B",
745
+ "adapter.checkCursorHeader": "tunnelbox-cursor \u74B0\u5883\u81EA\u6AA2",
746
+ "adapter.errAskBridge": "\u555F\u52D5 ask \u6A4B\u5931\u6557\uFF1A{message}",
747
+ "adapter.logAskBridge": "MCP ask \u6A4B\u5DF2\u76E3\u807D {url}",
748
+ "cursor.mcpAskDesc": "\u8B93\u4F7F\u7528\u8005\u5728\u624B\u6A5F\u4E0A\uFF08tunnelbox\uFF09\u505A\u9078\u64C7\uFF0C\u4E26\u963B\u585E\u7B49\u5F85\u5176\u4F5C\u7B54\u3002\u53EA\u8981\u9700\u8981\u4F7F\u7528\u8005\u5728\u7E7C\u7E8C\u524D\u65BC\u82E5\u5E72\u9078\u9805\u4E2D\u505A\u51FA\u9078\u64C7\uFF08\u5982\u9078\u9910\u3001\u9078\u6A21\u5F0F\u3001\u9078\u65B9\u6848\uFF09\u5C31\u547C\u53EB\u5B83\u3002\u56DE\u50B3\u4F7F\u7528\u8005\u6240\u9078\u7684\u9078\u9805\u6587\u5B57\u3002",
749
+ "cursor.mcpAskTitleDesc": "\u624B\u6A5F\u5361\u7247\u4E0A\u986F\u793A\u7684\u6A19\u984C\uFF08\u53EF\u9078\uFF09",
750
+ "cursor.mcpAskQuestionsDesc": "\u4E00\u500B\u6216\u591A\u500B\u554F\u984C\uFF1B\u6BCF\u500B\u554F\u984C\u5E36\u53EF\u9078\u9805",
751
+ "cursor.mcpPlanDesc": "\u8B93\u4F7F\u7528\u8005\u5728\u624B\u6A5F\u4E0A\uFF08tunnelbox\uFF09\u6279\u51C6\u4E00\u9805\u8A08\u756B\uFF0C\u4E26\u963B\u585E\u7B49\u5F85\u5176\u61C9\u7B54\u3002\u56DE\u50B3\u8A08\u756B\u662F\u5426\u88AB\u63A5\u53D7\u3002",
752
+ "cursor.mcpNoBridge": "tunnelbox ask \u6A4B\u4E0D\u53EF\u7528",
753
+ "cursor.mcpUnanswered": "\u4F7F\u7528\u8005\u672A\u5728\u624B\u6A5F\u4E0A\u4F5C\u7B54\uFF08\u96E2\u7DDA\u6216\u903E\u6642\uFF09\u3002\u8ACB\u7E7C\u7E8C\uFF0C\u6216\u7528\u5C0D\u8A71\u65B9\u5F0F\u8A62\u554F\u3002",
754
+ "cursor.mcpRejected": "\u4F7F\u7528\u8005\u5728\u624B\u6A5F\u4E0A\u62D2\u7D55\u4E86\u9019\u500B\u63D0\u554F\u3002",
755
+ "cursor.mcpAnswersHeader": "\u4F7F\u7528\u8005\uFF08\u624B\u6A5F\uFF09\u7684\u9078\u64C7\uFF1A",
756
+ "cursor.mcpAccepted": "\u4F7F\u7528\u8005\u5DF2\u63A5\u53D7\u8A72\u8A08\u756B\u3002",
757
+ "cursor.mcpDenied": "\u4F7F\u7528\u8005\u62D2\u7D55\u4E86\u8A72\u8A08\u756B\u3002",
758
+ "cursor.mcpPlanUnanswered": "\u4F7F\u7528\u8005\u672A\u5728\u624B\u6A5F\u4E0A\u56DE\u61C9\u8A08\u756B\uFF08\u96E2\u7DDA\u6216\u903E\u6642\uFF09\u3002",
759
+ "cursor.mcpAskNoQuestions": "\u672A\u63D0\u4F9B\u4EFB\u4F55\u554F\u984C\u3002",
760
+ "cursor.mcpFailed": "tunnelbox ask \u547C\u53EB\u5931\u6557",
761
+ "adapter.errCursorExitCode": "Cursor CLI \u9000\u51FA\u78BC {code}",
762
+ "adapter.errCursorExit": "Cursor CLI \u9000\u51FA({code}): {err}",
763
+ "adapter.errCursorSpawn": "\u7121\u6CD5\u555F\u52D5 Cursor CLI\uFF08agent\uFF09\uFF1A\u8ACB\u78BA\u8A8D\u5DF2\u5B89\u88DD\u4E26\u767B\u5165\uFF08{message}\uFF09",
764
+ "adapter.errCursorStart": "Cursor CLI \u555F\u52D5\u5931\u6557: {message}",
765
+ "adapter.errCursorGeneric": "Cursor \u51FA\u932F"
706
766
  };
707
767
  var en_US_default = {
708
768
  "agent.err.createSession": "Failed to create session",
@@ -979,7 +1039,37 @@ var en_US_default = {
979
1039
  "adapter.logQuestionNative": "choice request -> phone choice card questionID={id} (session={session})",
980
1040
  "adapter.logPermissionNative": "approval request -> phone approval card permissionID={id} (session={session})",
981
1041
  "adapter.checkAppServerOk": "codex app-server available",
982
- "adapter.checkAppServerMissing": "this Codex CLI does not support `codex app-server` (please upgrade Codex CLI)"
1042
+ "adapter.checkAppServerMissing": "this Codex CLI does not support `codex app-server` (please upgrade Codex CLI)",
1043
+ "adapter.warnCursorCliMissing": 'Cursor CLI executable "{bin}" not found; install it (https://cursor.com/docs/cli) or set TUNNELBOX_CURSOR_BIN to its path',
1044
+ "adapter.checkCursorCliMissing": "Cursor CLI executable not found ({bin}); install it from https://cursor.com/docs/cli",
1045
+ "adapter.checkCursorAcpHint": "Cursor CLI detected; ACP mode (`agent acp`) will provide streaming/approval/selection",
1046
+ "adapter.errAcpSpawn": "Failed to start cursor `agent acp`: {message} (make sure your Cursor CLI supports `agent acp`)",
1047
+ "adapter.errAcpNoSession": "Cursor ACP did not return a session id",
1048
+ "adapter.logResumeFailed": "Session resume failed, starting a new session: {message}",
1049
+ "adapter.logPlanNative": "plan approval -> phone approval card permissionID={id} (session={session})",
1050
+ "adapter.errTimeout": "Timed out, auto-rejected (fail-closed)",
1051
+ "adapter.planApprovalPrompt": "Cursor requests approval for a plan",
1052
+ "adapter.checkCursorHeader": "tunnelbox-cursor environment check",
1053
+ "adapter.errAskBridge": "Failed to start the ask bridge: {message}",
1054
+ "adapter.logAskBridge": "MCP ask bridge listening at {url}",
1055
+ "cursor.mcpAskDesc": "Ask the user to choose on their phone (tunnelbox) and block until they answer. Use this whenever you need the user to pick between options before continuing (e.g. choosing a dish, a mode, or a plan option). Returns the selected option label(s).",
1056
+ "cursor.mcpAskTitleDesc": "Optional title shown on the phone card",
1057
+ "cursor.mcpAskQuestionsDesc": "One or more questions; each has options for the user to pick",
1058
+ "cursor.mcpPlanDesc": "Ask the user to approve a plan on their phone (tunnelbox) and block until they respond. Returns whether the plan was accepted.",
1059
+ "cursor.mcpNoBridge": "tunnelbox ask bridge is not available",
1060
+ "cursor.mcpUnanswered": "The user did not answer on their phone (offline or timed out). Proceed or ask conversationally.",
1061
+ "cursor.mcpRejected": "The user rejected the question on their phone.",
1062
+ "cursor.mcpAnswersHeader": "User's answers (from their phone):",
1063
+ "cursor.mcpAccepted": "The user accepted the plan.",
1064
+ "cursor.mcpDenied": "The user rejected the plan.",
1065
+ "cursor.mcpPlanUnanswered": "The user did not respond to the plan on their phone (offline or timed out).",
1066
+ "cursor.mcpAskNoQuestions": "No questions were provided.",
1067
+ "cursor.mcpFailed": "tunnelbox ask failed",
1068
+ "adapter.errCursorExitCode": "Cursor CLI exited with code {code}",
1069
+ "adapter.errCursorExit": "Cursor CLI exited ({code}): {err}",
1070
+ "adapter.errCursorSpawn": "Cannot start Cursor CLI (agent): make sure it is installed and logged in ({message})",
1071
+ "adapter.errCursorStart": "Cursor CLI failed to start: {message}",
1072
+ "adapter.errCursorGeneric": "Cursor error"
983
1073
  };
984
1074
  var ja_JP_default = {
985
1075
  "agent.err.createSession": "\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
@@ -1256,7 +1346,37 @@ var ja_JP_default = {
1256
1346
  "adapter.logQuestionNative": "\u9078\u629E\u30EA\u30AF\u30A8\u30B9\u30C8 -> \u30B9\u30DE\u30DB\u9078\u629E\u30AB\u30FC\u30C9 questionID={id} (session={session})",
1257
1347
  "adapter.logPermissionNative": "\u627F\u8A8D\u30EA\u30AF\u30A8\u30B9\u30C8 -> \u30B9\u30DE\u30DB\u627F\u8A8D\u30AB\u30FC\u30C9 permissionID={id} (session={session})",
1258
1348
  "adapter.checkAppServerOk": "codex app-server \u5229\u7528\u53EF\u80FD",
1259
- "adapter.checkAppServerMissing": "\u3053\u306E Codex CLI \u306F `codex app-server` \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08Codex CLI \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF09"
1349
+ "adapter.checkAppServerMissing": "\u3053\u306E Codex CLI \u306F `codex app-server` \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08Codex CLI \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",
1350
+ "adapter.warnCursorCliMissing": 'Cursor CLI \u306E\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB "{bin}" \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF08https://cursor.com/docs/cli\uFF09\u3059\u308B\u304B\u3001TUNNELBOX_CURSOR_BIN \u306B\u30D1\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044',
1351
+ "adapter.checkCursorCliMissing": "Cursor CLI \u306E\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08{bin}\uFF09\u3002https://cursor.com/docs/cli \u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044",
1352
+ "adapter.checkCursorAcpHint": "Cursor CLI \u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002ACP \u30E2\u30FC\u30C9\uFF08`agent acp`\uFF09\u3067\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0/\u627F\u8A8D/\u9078\u629E\u3092\u63D0\u4F9B\u3057\u307E\u3059",
1353
+ "adapter.errAcpSpawn": "cursor `agent acp` \u306E\u8D77\u52D5\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {message}\uFF08Cursor CLI \u304C `agent acp` \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",
1354
+ "adapter.errAcpNoSession": "Cursor ACP \u304C\u30BB\u30C3\u30B7\u30E7\u30F3 id \u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F",
1355
+ "adapter.logResumeFailed": "\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u518D\u958B\u306B\u5931\u6557\u3057\u305F\u305F\u3081\u3001\u65B0\u898F\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u59CB\u3057\u307E\u3059: {message}",
1356
+ "adapter.logPlanNative": "\u30D7\u30E9\u30F3\u627F\u8A8D -> \u30B9\u30DE\u30DB\u306E\u627F\u8A8D\u30AB\u30FC\u30C9 permissionID={id} (session={session})",
1357
+ "adapter.errTimeout": "\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u306E\u305F\u3081\u81EA\u52D5\u62D2\u5426\u3057\u307E\u3057\u305F\uFF08fail-closed\uFF09",
1358
+ "adapter.planApprovalPrompt": "Cursor \u304C\u30D7\u30E9\u30F3\u306E\u627F\u8A8D\u3092\u8981\u6C42\u3057\u3066\u3044\u307E\u3059",
1359
+ "adapter.checkCursorHeader": "tunnelbox-cursor \u74B0\u5883\u30C1\u30A7\u30C3\u30AF",
1360
+ "adapter.errAskBridge": "ask \u30D6\u30EA\u30C3\u30B8\u306E\u8D77\u52D5\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {message}",
1361
+ "adapter.logAskBridge": "MCP ask \u30D6\u30EA\u30C3\u30B8\u304C {url} \u3067\u5F85\u3061\u53D7\u3051\u4E2D",
1362
+ "cursor.mcpAskDesc": "\u30E6\u30FC\u30B6\u30FC\u306B\u30B9\u30DE\u30DB\uFF08tunnelbox\uFF09\u3067\u9078\u629E\u3055\u305B\u3001\u56DE\u7B54\u304C\u3042\u308B\u307E\u3067\u30D6\u30ED\u30C3\u30AF\u3057\u307E\u3059\u3002\u7D9A\u884C\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u9078\u629E\u80A2\u304B\u3089\u9078\u3076\u5FC5\u8981\u304C\u3042\u308B\u5834\u5408\uFF08\u6599\u7406\u30FB\u30E2\u30FC\u30C9\u30FB\u30D7\u30E9\u30F3\u6848\u306E\u9078\u629E\u306A\u3069\uFF09\u306B\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u9078\u629E\u3055\u308C\u305F\u9078\u629E\u80A2\u306E\u30E9\u30D9\u30EB\u3092\u8FD4\u3057\u307E\u3059\u3002",
1363
+ "cursor.mcpAskTitleDesc": "\u30B9\u30DE\u30DB\u306E\u30AB\u30FC\u30C9\u306B\u8868\u793A\u3059\u308B\u30BF\u30A4\u30C8\u30EB\uFF08\u4EFB\u610F\uFF09",
1364
+ "cursor.mcpAskQuestionsDesc": "1 \u3064\u4EE5\u4E0A\u306E\u8CEA\u554F\u3002\u5404\u8CEA\u554F\u306B\u306F\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059",
1365
+ "cursor.mcpPlanDesc": "\u30E6\u30FC\u30B6\u30FC\u306B\u30B9\u30DE\u30DB\uFF08tunnelbox\uFF09\u3067\u30D7\u30E9\u30F3\u306E\u627F\u8A8D\u3092\u6C42\u3081\u3001\u5FDC\u7B54\u304C\u3042\u308B\u307E\u3067\u30D6\u30ED\u30C3\u30AF\u3057\u307E\u3059\u3002\u627F\u8A8D\u3055\u308C\u305F\u304B\u3069\u3046\u304B\u3092\u8FD4\u3057\u307E\u3059\u3002",
1366
+ "cursor.mcpNoBridge": "tunnelbox ask \u30D6\u30EA\u30C3\u30B8\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093",
1367
+ "cursor.mcpUnanswered": "\u30E6\u30FC\u30B6\u30FC\u306F\u30B9\u30DE\u30DB\u3067\u56DE\u7B54\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u307E\u305F\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF09\u3002\u7D9A\u884C\u3059\u308B\u304B\u3001\u4F1A\u8A71\u3067\u5C0B\u306D\u3066\u304F\u3060\u3055\u3044\u3002",
1368
+ "cursor.mcpRejected": "\u30E6\u30FC\u30B6\u30FC\u306F\u30B9\u30DE\u30DB\u3067\u8CEA\u554F\u3092\u62D2\u5426\u3057\u307E\u3057\u305F\u3002",
1369
+ "cursor.mcpAnswersHeader": "\u30E6\u30FC\u30B6\u30FC\uFF08\u30B9\u30DE\u30DB\uFF09\u306E\u56DE\u7B54:",
1370
+ "cursor.mcpAccepted": "\u30E6\u30FC\u30B6\u30FC\u306F\u30D7\u30E9\u30F3\u3092\u627F\u8A8D\u3057\u307E\u3057\u305F\u3002",
1371
+ "cursor.mcpDenied": "\u30E6\u30FC\u30B6\u30FC\u306F\u30D7\u30E9\u30F3\u3092\u62D2\u5426\u3057\u307E\u3057\u305F\u3002",
1372
+ "cursor.mcpPlanUnanswered": "\u30E6\u30FC\u30B6\u30FC\u306F\u30B9\u30DE\u30DB\u3067\u30D7\u30E9\u30F3\u306B\u5FDC\u7B54\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u307E\u305F\u306F\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF09\u3002",
1373
+ "cursor.mcpAskNoQuestions": "\u8CEA\u554F\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",
1374
+ "cursor.mcpFailed": "tunnelbox ask \u304C\u5931\u6557\u3057\u307E\u3057\u305F",
1375
+ "adapter.errCursorExitCode": "Cursor CLI \u304C\u30B3\u30FC\u30C9 {code} \u3067\u7D42\u4E86\u3057\u307E\u3057\u305F",
1376
+ "adapter.errCursorExit": "Cursor CLI \u304C\u7D42\u4E86\u3057\u307E\u3057\u305F\uFF08{code}\uFF09: {err}",
1377
+ "adapter.errCursorSpawn": "Cursor CLI\uFF08agent\uFF09\u3092\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093\u3002\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3068\u30ED\u30B0\u30A4\u30F3\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08{message}\uFF09",
1378
+ "adapter.errCursorStart": "Cursor CLI \u306E\u8D77\u52D5\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {message}",
1379
+ "adapter.errCursorGeneric": "Cursor \u30A8\u30E9\u30FC"
1260
1380
  };
1261
1381
  var ko_KR_default = {
1262
1382
  "agent.err.createSession": "\uC138\uC158 \uC0DD\uC131 \uC2E4\uD328",
@@ -1533,7 +1653,37 @@ var ko_KR_default = {
1533
1653
  "adapter.logQuestionNative": "\uC120\uD0DD \uC694\uCCAD -> \uD734\uB300\uD3F0 \uC120\uD0DD \uCE74\uB4DC questionID={id} (session={session})",
1534
1654
  "adapter.logPermissionNative": "\uC2B9\uC778 \uC694\uCCAD -> \uD734\uB300\uD3F0 \uC2B9\uC778 \uCE74\uB4DC permissionID={id} (session={session})",
1535
1655
  "adapter.checkAppServerOk": "codex app-server \uC0AC\uC6A9 \uAC00\uB2A5",
1536
- "adapter.checkAppServerMissing": "\uC774 Codex CLI \uB294 `codex app-server` \uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 (Codex CLI \uB97C \uC5C5\uADF8\uB808\uC774\uB4DC\uD558\uC138\uC694)"
1656
+ "adapter.checkAppServerMissing": "\uC774 Codex CLI \uB294 `codex app-server` \uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 (Codex CLI \uB97C \uC5C5\uADF8\uB808\uC774\uB4DC\uD558\uC138\uC694)",
1657
+ "adapter.warnCursorCliMissing": 'Cursor CLI \uC2E4\uD589 \uD30C\uC77C "{bin}"\uC744(\uB97C) \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC124\uCE58\uD558\uAC70\uB098(https://cursor.com/docs/cli) TUNNELBOX_CURSOR_BIN\uC5D0 \uACBD\uB85C\uB97C \uC9C0\uC815\uD558\uC138\uC694',
1658
+ "adapter.checkCursorCliMissing": "Cursor CLI \uC2E4\uD589 \uD30C\uC77C\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4({bin}). https://cursor.com/docs/cli \uC5D0\uC11C \uC124\uCE58\uD558\uC138\uC694",
1659
+ "adapter.checkCursorAcpHint": "Cursor CLI\uB97C \uAC10\uC9C0\uD588\uC2B5\uB2C8\uB2E4. ACP \uBAA8\uB4DC(`agent acp`)\uB85C \uC2A4\uD2B8\uB9AC\uBC0D/\uC2B9\uC778/\uC120\uD0DD\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4",
1660
+ "adapter.errAcpSpawn": "cursor `agent acp` \uC2DC\uC791 \uC2E4\uD328: {message} (Cursor CLI\uAC00 `agent acp`\uB97C \uC9C0\uC6D0\uD558\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694)",
1661
+ "adapter.errAcpNoSession": "Cursor ACP\uAC00 \uC138\uC158 id\uB97C \uBC18\uD658\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",
1662
+ "adapter.logResumeFailed": "\uC138\uC158 \uC7AC\uAC1C \uC2E4\uD328, \uC0C8 \uC138\uC158\uC744 \uC2DC\uC791\uD569\uB2C8\uB2E4: {message}",
1663
+ "adapter.logPlanNative": "\uACC4\uD68D \uC2B9\uC778 -> \uD734\uB300\uD3F0 \uC2B9\uC778 \uCE74\uB4DC permissionID={id} (session={session})",
1664
+ "adapter.errTimeout": "\uC2DC\uAC04 \uCD08\uACFC\uB85C \uC790\uB3D9 \uAC70\uBD80\uD588\uC2B5\uB2C8\uB2E4(fail-closed)",
1665
+ "adapter.planApprovalPrompt": "Cursor\uAC00 \uACC4\uD68D \uC2B9\uC778\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4",
1666
+ "adapter.checkCursorHeader": "tunnelbox-cursor \uD658\uACBD \uC810\uAC80",
1667
+ "adapter.errAskBridge": "ask \uBE0C\uB9AC\uC9C0 \uC2DC\uC791 \uC2E4\uD328: {message}",
1668
+ "adapter.logAskBridge": "MCP ask \uBE0C\uB9AC\uC9C0\uAC00 {url} \uC5D0\uC11C \uB300\uAE30 \uC911",
1669
+ "cursor.mcpAskDesc": "\uC0AC\uC6A9\uC790\uAC00 \uD734\uB300\uD3F0(tunnelbox)\uC5D0\uC11C \uC120\uD0DD\uD558\uB3C4\uB85D \uC694\uCCAD\uD558\uACE0 \uC751\uB2F5\uD560 \uB54C\uAE4C\uC9C0 \uCC28\uB2E8\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uAE30 \uC804\uC5D0 \uC0AC\uC6A9\uC790\uAC00 \uC635\uC158 \uC911 \uD558\uB098\uB97C \uACE8\uB77C\uC57C \uD560 \uB54C(\uC74C\uC2DD, \uBAA8\uB4DC, \uACC4\uD68D\uC548 \uC120\uD0DD \uB4F1) \uC0AC\uC6A9\uD558\uC138\uC694. \uC120\uD0DD\uD55C \uC635\uC158 \uB77C\uBCA8\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4.",
1670
+ "cursor.mcpAskTitleDesc": "\uD734\uB300\uD3F0 \uCE74\uB4DC\uC5D0 \uD45C\uC2DC\uD560 \uC81C\uBAA9(\uC120\uD0DD)",
1671
+ "cursor.mcpAskQuestionsDesc": "\uD558\uB098 \uC774\uC0C1\uC758 \uC9C8\uBB38. \uAC01 \uC9C8\uBB38\uC5D0\uB294 \uC120\uD0DD\uC9C0\uAC00 \uC788\uC2B5\uB2C8\uB2E4",
1672
+ "cursor.mcpPlanDesc": "\uC0AC\uC6A9\uC790\uAC00 \uD734\uB300\uD3F0(tunnelbox)\uC5D0\uC11C \uACC4\uD68D\uC744 \uC2B9\uC778\uD558\uB3C4\uB85D \uC694\uCCAD\uD558\uACE0 \uC751\uB2F5\uD560 \uB54C\uAE4C\uC9C0 \uCC28\uB2E8\uD569\uB2C8\uB2E4. \uC2B9\uC778 \uC5EC\uBD80\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.",
1673
+ "cursor.mcpNoBridge": "tunnelbox ask \uBE0C\uB9AC\uC9C0\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",
1674
+ "cursor.mcpUnanswered": "\uC0AC\uC6A9\uC790\uAC00 \uD734\uB300\uD3F0\uC5D0\uC11C \uC751\uB2F5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4(\uC624\uD504\uB77C\uC778 \uB610\uB294 \uC2DC\uAC04 \uCD08\uACFC). \uACC4\uC18D \uC9C4\uD589\uD558\uAC70\uB098 \uB300\uD654\uB85C \uBB3C\uC5B4\uBCF4\uC138\uC694.",
1675
+ "cursor.mcpRejected": "\uC0AC\uC6A9\uC790\uAC00 \uD734\uB300\uD3F0\uC5D0\uC11C \uC9C8\uBB38\uC744 \uAC70\uBD80\uD588\uC2B5\uB2C8\uB2E4.",
1676
+ "cursor.mcpAnswersHeader": "\uC0AC\uC6A9\uC790(\uD734\uB300\uD3F0)\uC758 \uC751\uB2F5:",
1677
+ "cursor.mcpAccepted": "\uC0AC\uC6A9\uC790\uAC00 \uACC4\uD68D\uC744 \uC2B9\uC778\uD588\uC2B5\uB2C8\uB2E4.",
1678
+ "cursor.mcpDenied": "\uC0AC\uC6A9\uC790\uAC00 \uACC4\uD68D\uC744 \uAC70\uBD80\uD588\uC2B5\uB2C8\uB2E4.",
1679
+ "cursor.mcpPlanUnanswered": "\uC0AC\uC6A9\uC790\uAC00 \uD734\uB300\uD3F0\uC5D0\uC11C \uACC4\uD68D\uC5D0 \uC751\uB2F5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4(\uC624\uD504\uB77C\uC778 \uB610\uB294 \uC2DC\uAC04 \uCD08\uACFC).",
1680
+ "cursor.mcpAskNoQuestions": "\uC9C8\uBB38\uC774 \uC81C\uACF5\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.",
1681
+ "cursor.mcpFailed": "tunnelbox ask \uC2E4\uD328",
1682
+ "adapter.errCursorExitCode": "Cursor CLI\uAC00 \uCF54\uB4DC {code}(\uC73C)\uB85C \uC885\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4",
1683
+ "adapter.errCursorExit": "Cursor CLI \uC885\uB8CC({code}): {err}",
1684
+ "adapter.errCursorSpawn": "Cursor CLI(agent)\uB97C \uC2DC\uC791\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC124\uCE58 \uBC0F \uB85C\uADF8\uC778\uC744 \uD655\uC778\uD558\uC138\uC694({message})",
1685
+ "adapter.errCursorStart": "Cursor CLI \uC2DC\uC791 \uC2E4\uD328: {message}",
1686
+ "adapter.errCursorGeneric": "Cursor \uC624\uB958"
1537
1687
  };
1538
1688
  var fr_FR_default = {
1539
1689
  "agent.err.createSession": "\xC9chec de la cr\xE9ation de la session",
@@ -1810,7 +1960,37 @@ var fr_FR_default = {
1810
1960
  "adapter.logQuestionNative": "demande de choix -> carte de choix du t\xE9l\xE9phone questionID={id} (session={session})",
1811
1961
  "adapter.logPermissionNative": "demande d'approbation -> carte d'approbation du t\xE9l\xE9phone permissionID={id} (session={session})",
1812
1962
  "adapter.checkAppServerOk": "codex app-server disponible",
1813
- "adapter.checkAppServerMissing": "ce Codex CLI ne prend pas en charge `codex app-server` (veuillez mettre \xE0 jour Codex CLI)"
1963
+ "adapter.checkAppServerMissing": "ce Codex CLI ne prend pas en charge `codex app-server` (veuillez mettre \xE0 jour Codex CLI)",
1964
+ "adapter.warnCursorCliMissing": "Ex\xE9cutable Cursor CLI \xAB {bin} \xBB introuvable ; installez-le (https://cursor.com/docs/cli) ou d\xE9finissez TUNNELBOX_CURSOR_BIN",
1965
+ "adapter.checkCursorCliMissing": "Ex\xE9cutable Cursor CLI introuvable ({bin}) ; installez-le depuis https://cursor.com/docs/cli",
1966
+ "adapter.checkCursorAcpHint": "Cursor CLI d\xE9tect\xE9 ; le mode ACP (`agent acp`) sera utilis\xE9 pour le streaming/l'approbation/la s\xE9lection",
1967
+ "adapter.errAcpSpawn": "\xC9chec du d\xE9marrage de cursor `agent acp` : {message} (v\xE9rifiez que votre Cursor CLI prend en charge `agent acp`)",
1968
+ "adapter.errAcpNoSession": "Cursor ACP n'a pas renvoy\xE9 d'id de session",
1969
+ "adapter.logResumeFailed": "\xC9chec de la reprise de session, d\xE9marrage d'une nouvelle session : {message}",
1970
+ "adapter.logPlanNative": "approbation de plan -> carte d'approbation du t\xE9l\xE9phone permissionID={id} (session={session})",
1971
+ "adapter.errTimeout": "D\xE9lai d\xE9pass\xE9, rejet automatique (fail-closed)",
1972
+ "adapter.planApprovalPrompt": "Cursor demande l'approbation d'un plan",
1973
+ "adapter.checkCursorHeader": "v\xE9rification de l'environnement tunnelbox-cursor",
1974
+ "adapter.errAskBridge": "\xC9chec du d\xE9marrage du pont ask : {message}",
1975
+ "adapter.logAskBridge": "Pont MCP ask \xE0 l'\xE9coute sur {url}",
1976
+ "cursor.mcpAskDesc": "Demande \xE0 l'utilisateur de choisir sur son t\xE9l\xE9phone (tunnelbox) et bloque jusqu'\xE0 sa r\xE9ponse. \xC0 utiliser chaque fois que l'utilisateur doit choisir entre des options avant de continuer (plat, mode, option de plan\u2026). Renvoie le(s) libell\xE9(s) choisi(s).",
1977
+ "cursor.mcpAskTitleDesc": "Titre facultatif affich\xE9 sur la carte du t\xE9l\xE9phone",
1978
+ "cursor.mcpAskQuestionsDesc": "Une ou plusieurs questions ; chacune propose des options",
1979
+ "cursor.mcpPlanDesc": "Demande \xE0 l'utilisateur d'approuver un plan sur son t\xE9l\xE9phone (tunnelbox) et bloque jusqu'\xE0 sa r\xE9ponse. Indique si le plan a \xE9t\xE9 accept\xE9.",
1980
+ "cursor.mcpNoBridge": "le pont ask tunnelbox n'est pas disponible",
1981
+ "cursor.mcpUnanswered": "L'utilisateur n'a pas r\xE9pondu sur son t\xE9l\xE9phone (hors ligne ou d\xE9lai d\xE9pass\xE9). Continuez ou posez la question en conversation.",
1982
+ "cursor.mcpRejected": "L'utilisateur a rejet\xE9 la question sur son t\xE9l\xE9phone.",
1983
+ "cursor.mcpAnswersHeader": "R\xE9ponses de l'utilisateur (depuis son t\xE9l\xE9phone) :",
1984
+ "cursor.mcpAccepted": "L'utilisateur a accept\xE9 le plan.",
1985
+ "cursor.mcpDenied": "L'utilisateur a rejet\xE9 le plan.",
1986
+ "cursor.mcpPlanUnanswered": "L'utilisateur n'a pas r\xE9pondu au plan sur son t\xE9l\xE9phone (hors ligne ou d\xE9lai d\xE9pass\xE9).",
1987
+ "cursor.mcpAskNoQuestions": "Aucune question fournie.",
1988
+ "cursor.mcpFailed": "\xE9chec de tunnelbox ask",
1989
+ "adapter.errCursorExitCode": "Cursor CLI s'est arr\xEAt\xE9 avec le code {code}",
1990
+ "adapter.errCursorExit": "Cursor CLI arr\xEAt\xE9 ({code}) : {err}",
1991
+ "adapter.errCursorSpawn": "Impossible de d\xE9marrer Cursor CLI (agent) : v\xE9rifiez qu'il est install\xE9 et connect\xE9 ({message})",
1992
+ "adapter.errCursorStart": "\xC9chec du d\xE9marrage de Cursor CLI : {message}",
1993
+ "adapter.errCursorGeneric": "Erreur Cursor"
1814
1994
  };
1815
1995
  var de_DE_default = {
1816
1996
  "agent.err.createSession": "Sitzung konnte nicht erstellt werden",
@@ -2087,7 +2267,37 @@ var de_DE_default = {
2087
2267
  "adapter.logQuestionNative": "Auswahlanfrage -> Auswahlkarte am Handy questionID={id} (session={session})",
2088
2268
  "adapter.logPermissionNative": "Genehmigungsanfrage -> Genehmigungskarte am Handy permissionID={id} (session={session})",
2089
2269
  "adapter.checkAppServerOk": "codex app-server verf\xFCgbar",
2090
- "adapter.checkAppServerMissing": "diese Codex CLI unterst\xFCtzt `codex app-server` nicht (bitte Codex CLI aktualisieren)"
2270
+ "adapter.checkAppServerMissing": "diese Codex CLI unterst\xFCtzt `codex app-server` nicht (bitte Codex CLI aktualisieren)",
2271
+ "adapter.warnCursorCliMissing": 'Cursor-CLI-Programm "{bin}" nicht gefunden; installieren Sie es (https://cursor.com/docs/cli) oder setzen Sie TUNNELBOX_CURSOR_BIN',
2272
+ "adapter.checkCursorCliMissing": "Cursor-CLI-Programm nicht gefunden ({bin}); installieren Sie es von https://cursor.com/docs/cli",
2273
+ "adapter.checkCursorAcpHint": "Cursor CLI erkannt; der ACP-Modus (`agent acp`) wird f\xFCr Streaming/Genehmigung/Auswahl verwendet",
2274
+ "adapter.errAcpSpawn": "Start von cursor `agent acp` fehlgeschlagen: {message} (stellen Sie sicher, dass Ihre Cursor CLI `agent acp` unterst\xFCtzt)",
2275
+ "adapter.errAcpNoSession": "Cursor ACP hat keine Sitzungs-ID zur\xFCckgegeben",
2276
+ "adapter.logResumeFailed": "Sitzungswiederaufnahme fehlgeschlagen, neue Sitzung wird gestartet: {message}",
2277
+ "adapter.logPlanNative": "Plan-Genehmigung -> Genehmigungskarte am Handy permissionID={id} (session={session})",
2278
+ "adapter.errTimeout": "Zeit\xFCberschreitung, automatisch abgelehnt (fail-closed)",
2279
+ "adapter.planApprovalPrompt": "Cursor fordert die Genehmigung eines Plans an",
2280
+ "adapter.checkCursorHeader": "tunnelbox-cursor Umgebungspr\xFCfung",
2281
+ "adapter.errAskBridge": "Start der ask-Bridge fehlgeschlagen: {message}",
2282
+ "adapter.logAskBridge": "MCP ask-Bridge lauscht auf {url}",
2283
+ "cursor.mcpAskDesc": "Fordert den Nutzer auf, auf dem Handy (tunnelbox) zu w\xE4hlen, und blockiert bis zur Antwort. Verwende dies, wann immer der Nutzer vor dem Fortfahren zwischen Optionen w\xE4hlen muss (Gericht, Modus, Planoption \u2026). Gibt die gew\xE4hlten Optionsbezeichnungen zur\xFCck.",
2284
+ "cursor.mcpAskTitleDesc": "Optionaler Titel auf der Handy-Karte",
2285
+ "cursor.mcpAskQuestionsDesc": "Eine oder mehrere Fragen; jede bietet Optionen",
2286
+ "cursor.mcpPlanDesc": "Fordert den Nutzer auf, einen Plan auf dem Handy (tunnelbox) zu genehmigen, und blockiert bis zur Antwort. Gibt zur\xFCck, ob der Plan akzeptiert wurde.",
2287
+ "cursor.mcpNoBridge": "die tunnelbox ask-Bridge ist nicht verf\xFCgbar",
2288
+ "cursor.mcpUnanswered": "Der Nutzer hat auf dem Handy nicht geantwortet (offline oder Zeit\xFCberschreitung). Fahre fort oder frage im Chat.",
2289
+ "cursor.mcpRejected": "Der Nutzer hat die Frage auf dem Handy abgelehnt.",
2290
+ "cursor.mcpAnswersHeader": "Antworten des Nutzers (vom Handy):",
2291
+ "cursor.mcpAccepted": "Der Nutzer hat den Plan akzeptiert.",
2292
+ "cursor.mcpDenied": "Der Nutzer hat den Plan abgelehnt.",
2293
+ "cursor.mcpPlanUnanswered": "Der Nutzer hat auf dem Handy nicht auf den Plan geantwortet (offline oder Zeit\xFCberschreitung).",
2294
+ "cursor.mcpAskNoQuestions": "Keine Fragen angegeben.",
2295
+ "cursor.mcpFailed": "tunnelbox ask fehlgeschlagen",
2296
+ "adapter.errCursorExitCode": "Cursor CLI beendet mit Code {code}",
2297
+ "adapter.errCursorExit": "Cursor CLI beendet ({code}): {err}",
2298
+ "adapter.errCursorSpawn": "Cursor CLI (agent) kann nicht gestartet werden: Stellen Sie sicher, dass es installiert und angemeldet ist ({message})",
2299
+ "adapter.errCursorStart": "Start von Cursor CLI fehlgeschlagen: {message}",
2300
+ "adapter.errCursorGeneric": "Cursor-Fehler"
2091
2301
  };
2092
2302
  var es_ES_default = {
2093
2303
  "agent.err.createSession": "No se pudo crear la sesi\xF3n",
@@ -2364,7 +2574,37 @@ var es_ES_default = {
2364
2574
  "adapter.logQuestionNative": "solicitud de elecci\xF3n -> tarjeta de elecci\xF3n del tel\xE9fono questionID={id} (session={session})",
2365
2575
  "adapter.logPermissionNative": "solicitud de aprobaci\xF3n -> tarjeta de aprobaci\xF3n del tel\xE9fono permissionID={id} (session={session})",
2366
2576
  "adapter.checkAppServerOk": "codex app-server disponible",
2367
- "adapter.checkAppServerMissing": "este Codex CLI no admite `codex app-server` (actualiza Codex CLI)"
2577
+ "adapter.checkAppServerMissing": "este Codex CLI no admite `codex app-server` (actualiza Codex CLI)",
2578
+ "adapter.warnCursorCliMissing": 'No se encontr\xF3 el ejecutable de Cursor CLI "{bin}"; inst\xE1lalo (https://cursor.com/docs/cli) o define TUNNELBOX_CURSOR_BIN',
2579
+ "adapter.checkCursorCliMissing": "No se encontr\xF3 el ejecutable de Cursor CLI ({bin}); inst\xE1lalo desde https://cursor.com/docs/cli",
2580
+ "adapter.checkCursorAcpHint": "Cursor CLI detectado; se usar\xE1 el modo ACP (`agent acp`) para streaming/aprobaci\xF3n/selecci\xF3n",
2581
+ "adapter.errAcpSpawn": "No se pudo iniciar cursor `agent acp`: {message} (comprueba que tu Cursor CLI admita `agent acp`)",
2582
+ "adapter.errAcpNoSession": "Cursor ACP no devolvi\xF3 un id de sesi\xF3n",
2583
+ "adapter.logResumeFailed": "Fall\xF3 la reanudaci\xF3n de la sesi\xF3n; se inicia una nueva sesi\xF3n: {message}",
2584
+ "adapter.logPlanNative": "aprobaci\xF3n de plan -> tarjeta de aprobaci\xF3n del tel\xE9fono permissionID={id} (session={session})",
2585
+ "adapter.errTimeout": "Tiempo de espera agotado, rechazo autom\xE1tico (fail-closed)",
2586
+ "adapter.planApprovalPrompt": "Cursor solicita aprobaci\xF3n de un plan",
2587
+ "adapter.checkCursorHeader": "comprobaci\xF3n de entorno de tunnelbox-cursor",
2588
+ "adapter.errAskBridge": "No se pudo iniciar el puente ask: {message}",
2589
+ "adapter.logAskBridge": "Puente MCP ask escuchando en {url}",
2590
+ "cursor.mcpAskDesc": "Pide al usuario que elija en su tel\xE9fono (tunnelbox) y bloquea hasta que responda. \xDAsalo siempre que el usuario deba elegir entre opciones antes de continuar (plato, modo, opci\xF3n de plan\u2026). Devuelve la(s) etiqueta(s) elegida(s).",
2591
+ "cursor.mcpAskTitleDesc": "T\xEDtulo opcional mostrado en la tarjeta del tel\xE9fono",
2592
+ "cursor.mcpAskQuestionsDesc": "Una o m\xE1s preguntas; cada una tiene opciones",
2593
+ "cursor.mcpPlanDesc": "Pide al usuario que apruebe un plan en su tel\xE9fono (tunnelbox) y bloquea hasta que responda. Indica si el plan fue aceptado.",
2594
+ "cursor.mcpNoBridge": "el puente ask de tunnelbox no est\xE1 disponible",
2595
+ "cursor.mcpUnanswered": "El usuario no respondi\xF3 en su tel\xE9fono (sin conexi\xF3n o tiempo agotado). Contin\xFAa o pregunta en el chat.",
2596
+ "cursor.mcpRejected": "El usuario rechaz\xF3 la pregunta en su tel\xE9fono.",
2597
+ "cursor.mcpAnswersHeader": "Respuestas del usuario (desde su tel\xE9fono):",
2598
+ "cursor.mcpAccepted": "El usuario acept\xF3 el plan.",
2599
+ "cursor.mcpDenied": "El usuario rechaz\xF3 el plan.",
2600
+ "cursor.mcpPlanUnanswered": "El usuario no respondi\xF3 al plan en su tel\xE9fono (sin conexi\xF3n o tiempo agotado).",
2601
+ "cursor.mcpAskNoQuestions": "No se proporcionaron preguntas.",
2602
+ "cursor.mcpFailed": "fall\xF3 tunnelbox ask",
2603
+ "adapter.errCursorExitCode": "Cursor CLI finaliz\xF3 con el c\xF3digo {code}",
2604
+ "adapter.errCursorExit": "Cursor CLI finaliz\xF3 ({code}): {err}",
2605
+ "adapter.errCursorSpawn": "No se puede iniciar Cursor CLI (agent): comprueba que est\xE9 instalado y con sesi\xF3n iniciada ({message})",
2606
+ "adapter.errCursorStart": "Fall\xF3 el inicio de Cursor CLI: {message}",
2607
+ "adapter.errCursorGeneric": "Error de Cursor"
2368
2608
  };
2369
2609
  var DEFAULT_LANG = "en-US";
2370
2610
  var dicts = {
@@ -3005,7 +3245,7 @@ function findDir(dir, name2) {
3005
3245
  }
3006
3246
 
3007
3247
  // src/bridge.ts
3008
- var VERSION = true ? "0.1.20" : "0.0.0-dev";
3248
+ var VERSION = true ? "0.1.21" : "0.0.0-dev";
3009
3249
  var AGENT_TYPE = "dsh";
3010
3250
  var APPROVAL_TIMEOUT_MS = 12e4;
3011
3251
  var ADAPTER_COMMANDS = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tunnelbox/dsh-tunnelbox",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "tunnelbox 的 dsh 原生 Cordis 插件:手机远程驱动 DeepSeek Harness(agent/session/tools/审批/中止)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",
@@ -36,7 +36,7 @@
36
36
  "@deepseek-ai/schemastery": "^3.18.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@tunnelbox/core": "0.1.20",
39
+ "@tunnelbox/core": "0.1.21",
40
40
  "@types/node": "^22.0.0",
41
41
  "esbuild": "^0.24.0",
42
42
  "typescript": "^5.4.5"