reasonix 0.46.1 → 0.47.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/README.md +62 -13
- package/README.zh-CN.md +52 -10
- package/dashboard/dist/app.js +217 -60
- package/dashboard/dist/app.js.map +1 -1
- package/dist/cli/{acp-LKJU5DZX.js → acp-GEOAKSTU.js} +26 -54
- package/dist/cli/acp-GEOAKSTU.js.map +1 -0
- package/dist/cli/chat-YTPATMMG.js +51 -0
- package/dist/cli/{chunk-R2ASNSEO.js → chunk-2XY77LW7.js} +8 -8
- package/dist/cli/{chunk-SE7C5ZSI.js → chunk-4MFCAZ2W.js} +3 -3
- package/dist/cli/{chunk-DGA5QYFM.js → chunk-6CRPCJAU.js} +55 -13
- package/dist/cli/chunk-6CRPCJAU.js.map +1 -0
- package/dist/cli/{chunk-TDSBASOF.js → chunk-6QC5RQLE.js} +2 -2
- package/dist/cli/chunk-BQ6HC66J.js +530 -0
- package/dist/cli/chunk-BQ6HC66J.js.map +1 -0
- package/dist/cli/{chunk-7SGGXNB2.js → chunk-CCJAP7G3.js} +2 -2
- package/dist/cli/{chunk-3AAG2CUT.js → chunk-CNG32VAB.js} +2 -2
- package/dist/cli/{chunk-WRONKNIH.js → chunk-DN4B5S6Y.js} +2 -2
- package/dist/cli/{chunk-NCBP5D6E.js → chunk-DQ6K5ZQ7.js} +2 -2
- package/dist/cli/{chunk-MIIZJD5O.js → chunk-DWPAKZTY.js} +14 -3
- package/dist/cli/chunk-DWPAKZTY.js.map +1 -0
- package/dist/cli/{chunk-IYQ325V7.js → chunk-E5WCLUIU.js} +2 -2
- package/dist/cli/{chunk-YRLC2EDF.js → chunk-EQATK2L2.js} +2 -2
- package/dist/cli/{chunk-TEUDEGX2.js → chunk-FY4S7TJZ.js} +19 -5
- package/dist/cli/chunk-FY4S7TJZ.js.map +1 -0
- package/dist/cli/{chunk-C72TNHDE.js → chunk-GH7DC2Y5.js} +2 -2
- package/dist/cli/{chunk-WQ6ZRDQM.js → chunk-HIYTRCSW.js} +16 -12
- package/dist/cli/chunk-HIYTRCSW.js.map +1 -0
- package/dist/cli/{chunk-EAOL43HB.js → chunk-HUILPCYX.js} +3 -3
- package/dist/cli/{chunk-ZOQHVQON.js → chunk-JBH5RM7X.js} +473 -87
- package/dist/cli/chunk-JBH5RM7X.js.map +1 -0
- package/dist/cli/{chunk-XPAUNFOL.js → chunk-KVZZ5U75.js} +3 -2
- package/dist/cli/chunk-KVZZ5U75.js.map +1 -0
- package/dist/cli/{chunk-2AASOSD5.js → chunk-KYQVQ5X4.js} +85 -10
- package/dist/cli/chunk-KYQVQ5X4.js.map +1 -0
- package/dist/cli/{chunk-2425HK6U.js → chunk-LGEKVMMV.js} +7 -2
- package/dist/cli/{chunk-2425HK6U.js.map → chunk-LGEKVMMV.js.map} +1 -1
- package/dist/cli/{chunk-6VANO7KB.js → chunk-NRQ5UP5T.js} +165 -24
- package/dist/cli/chunk-NRQ5UP5T.js.map +1 -0
- package/dist/cli/{chunk-M4E5JK6S.js → chunk-QCFLPSPH.js} +2 -2
- package/dist/cli/{chunk-E7TAHQ4A.js → chunk-RRXUIPWG.js} +19 -18
- package/dist/cli/chunk-RRXUIPWG.js.map +1 -0
- package/dist/cli/{chunk-JLQDNLZF.js → chunk-T5A7EY6B.js} +26 -14
- package/dist/cli/chunk-T5A7EY6B.js.map +1 -0
- package/dist/cli/{chunk-7LOJS3LV.js → chunk-TDHXB2ER.js} +2 -2
- package/dist/cli/{chunk-CXVWUPA3.js → chunk-TKVXTQ3T.js} +26 -26
- package/dist/cli/chunk-TKVXTQ3T.js.map +1 -0
- package/dist/cli/{chunk-JVFEJAJX.js → chunk-TRSAHHCL.js} +107 -11
- package/dist/cli/chunk-TRSAHHCL.js.map +1 -0
- package/dist/cli/{chunk-K3AIFMI6.js → chunk-TRWHTFG7.js} +2 -2
- package/dist/cli/{chunk-7YW6TPXK.js → chunk-XD6P7AFH.js} +28 -31
- package/dist/cli/chunk-XD6P7AFH.js.map +1 -0
- package/dist/cli/{chunk-SPXN5JIT.js → chunk-XMHP7BEE.js} +1787 -1081
- package/dist/cli/chunk-XMHP7BEE.js.map +1 -0
- package/dist/cli/{chunk-JVQT5IYP.js → chunk-YFP3MYMY.js} +19 -9
- package/dist/cli/chunk-YFP3MYMY.js.map +1 -0
- package/dist/cli/{chunk-HNXDZGC6.js → chunk-ZXSCAODE.js} +9 -9
- package/dist/cli/{chunk-HNXDZGC6.js.map → chunk-ZXSCAODE.js.map} +1 -1
- package/dist/cli/{code-2JIHL5M2.js → code-Q4NRVEDG.js} +42 -35
- package/dist/cli/code-Q4NRVEDG.js.map +1 -0
- package/dist/cli/{commands-OPT5AJNH.js → commands-4CDI4GFM.js} +4 -4
- package/dist/cli/{commit-KA37H6GM.js → commit-GW7LDQP5.js} +3 -3
- package/dist/cli/{desktop-5ONTRU3C.js → desktop-EG6P5SF2.js} +321 -36
- package/dist/cli/desktop-EG6P5SF2.js.map +1 -0
- package/dist/cli/{diff-SOIA7AKH.js → diff-VI2YX4FN.js} +8 -8
- package/dist/cli/{doctor-RCUP4XRV.js → doctor-CQTTZP27.js} +9 -9
- package/dist/cli/{events-6KHITNX4.js → events-VRYXOSKI.js} +3 -3
- package/dist/cli/index.js +94 -45
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/{mcp-JP5OWD6R.js → mcp-J2UCD4RZ.js} +2 -2
- package/dist/cli/{mcp-browse-ONCJJPJN.js → mcp-browse-GSX34JEK.js} +2 -2
- package/dist/cli/{mcp-inspect-TPLHW5JA.js → mcp-inspect-RRFYF4ZV.js} +4 -4
- package/dist/cli/{prompt-RJDNCQAP.js → prompt-5TQPIVHV.js} +4 -4
- package/dist/cli/{prune-sessions-MKEATRVL.js → prune-sessions-SEWX7GP6.js} +2 -2
- package/dist/cli/{replay-4NILJG4U.js → replay-MJCEMODU.js} +9 -9
- package/dist/cli/{run-WFGXB4SB.js → run-P4D5VDYE.js} +17 -17
- package/dist/cli/{server-5VFQP3PV.js → server-C25JNNZV.js} +82 -34
- package/dist/cli/server-C25JNNZV.js.map +1 -0
- package/dist/cli/{sessions-5XDJDALO.js → sessions-QIONZJQ6.js} +15 -15
- package/dist/cli/{setup-F6XSWLRA.js → setup-NLQ6G5G4.js} +7 -7
- package/dist/cli/setup-NLQ6G5G4.js.map +1 -0
- package/dist/cli/{stats-ALHBZICE.js → stats-DFZEXHP4.js} +6 -6
- package/dist/cli/{version-JVRAHBMM.js → version-GR3X3MPI.js} +15 -15
- package/dist/index.d.ts +69 -56
- package/dist/index.js +791 -303
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/dist/cli/acp-LKJU5DZX.js.map +0 -1
- package/dist/cli/chat-W7LAWEN6.js +0 -51
- package/dist/cli/chunk-2AASOSD5.js.map +0 -1
- package/dist/cli/chunk-6VANO7KB.js.map +0 -1
- package/dist/cli/chunk-7YW6TPXK.js.map +0 -1
- package/dist/cli/chunk-CXVWUPA3.js.map +0 -1
- package/dist/cli/chunk-DGA5QYFM.js.map +0 -1
- package/dist/cli/chunk-DHRVZJ2D.js +0 -642
- package/dist/cli/chunk-DHRVZJ2D.js.map +0 -1
- package/dist/cli/chunk-E7TAHQ4A.js.map +0 -1
- package/dist/cli/chunk-JLQDNLZF.js.map +0 -1
- package/dist/cli/chunk-JVFEJAJX.js.map +0 -1
- package/dist/cli/chunk-JVQT5IYP.js.map +0 -1
- package/dist/cli/chunk-MIIZJD5O.js.map +0 -1
- package/dist/cli/chunk-SPXN5JIT.js.map +0 -1
- package/dist/cli/chunk-TEUDEGX2.js.map +0 -1
- package/dist/cli/chunk-WQ6ZRDQM.js.map +0 -1
- package/dist/cli/chunk-XPAUNFOL.js.map +0 -1
- package/dist/cli/chunk-ZOQHVQON.js.map +0 -1
- package/dist/cli/code-2JIHL5M2.js.map +0 -1
- package/dist/cli/desktop-5ONTRU3C.js.map +0 -1
- package/dist/cli/server-5VFQP3PV.js.map +0 -1
- package/dist/cli/setup-F6XSWLRA.js.map +0 -1
- /package/dist/cli/{chat-W7LAWEN6.js.map → chat-YTPATMMG.js.map} +0 -0
- /package/dist/cli/{chunk-R2ASNSEO.js.map → chunk-2XY77LW7.js.map} +0 -0
- /package/dist/cli/{chunk-SE7C5ZSI.js.map → chunk-4MFCAZ2W.js.map} +0 -0
- /package/dist/cli/{chunk-TDSBASOF.js.map → chunk-6QC5RQLE.js.map} +0 -0
- /package/dist/cli/{chunk-7SGGXNB2.js.map → chunk-CCJAP7G3.js.map} +0 -0
- /package/dist/cli/{chunk-3AAG2CUT.js.map → chunk-CNG32VAB.js.map} +0 -0
- /package/dist/cli/{chunk-WRONKNIH.js.map → chunk-DN4B5S6Y.js.map} +0 -0
- /package/dist/cli/{chunk-NCBP5D6E.js.map → chunk-DQ6K5ZQ7.js.map} +0 -0
- /package/dist/cli/{chunk-IYQ325V7.js.map → chunk-E5WCLUIU.js.map} +0 -0
- /package/dist/cli/{chunk-YRLC2EDF.js.map → chunk-EQATK2L2.js.map} +0 -0
- /package/dist/cli/{chunk-C72TNHDE.js.map → chunk-GH7DC2Y5.js.map} +0 -0
- /package/dist/cli/{chunk-EAOL43HB.js.map → chunk-HUILPCYX.js.map} +0 -0
- /package/dist/cli/{chunk-M4E5JK6S.js.map → chunk-QCFLPSPH.js.map} +0 -0
- /package/dist/cli/{chunk-7LOJS3LV.js.map → chunk-TDHXB2ER.js.map} +0 -0
- /package/dist/cli/{chunk-K3AIFMI6.js.map → chunk-TRWHTFG7.js.map} +0 -0
- /package/dist/cli/{commands-OPT5AJNH.js.map → commands-4CDI4GFM.js.map} +0 -0
- /package/dist/cli/{commit-KA37H6GM.js.map → commit-GW7LDQP5.js.map} +0 -0
- /package/dist/cli/{diff-SOIA7AKH.js.map → diff-VI2YX4FN.js.map} +0 -0
- /package/dist/cli/{doctor-RCUP4XRV.js.map → doctor-CQTTZP27.js.map} +0 -0
- /package/dist/cli/{events-6KHITNX4.js.map → events-VRYXOSKI.js.map} +0 -0
- /package/dist/cli/{mcp-JP5OWD6R.js.map → mcp-J2UCD4RZ.js.map} +0 -0
- /package/dist/cli/{mcp-browse-ONCJJPJN.js.map → mcp-browse-GSX34JEK.js.map} +0 -0
- /package/dist/cli/{mcp-inspect-TPLHW5JA.js.map → mcp-inspect-RRFYF4ZV.js.map} +0 -0
- /package/dist/cli/{prompt-RJDNCQAP.js.map → prompt-5TQPIVHV.js.map} +0 -0
- /package/dist/cli/{prune-sessions-MKEATRVL.js.map → prune-sessions-SEWX7GP6.js.map} +0 -0
- /package/dist/cli/{replay-4NILJG4U.js.map → replay-MJCEMODU.js.map} +0 -0
- /package/dist/cli/{run-WFGXB4SB.js.map → run-P4D5VDYE.js.map} +0 -0
- /package/dist/cli/{sessions-5XDJDALO.js.map → sessions-QIONZJQ6.js.map} +0 -0
- /package/dist/cli/{stats-ALHBZICE.js.map → stats-DFZEXHP4.js.map} +0 -0
- /package/dist/cli/{version-JVRAHBMM.js.map → version-GR3X3MPI.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import { createRequire as __cr } from 'node:module'; if (typeof globalThis.requi
|
|
|
3
3
|
import {
|
|
4
4
|
loadLanguage,
|
|
5
5
|
saveLanguage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6CRPCJAU.js";
|
|
7
7
|
|
|
8
8
|
// src/i18n/EN.ts
|
|
9
9
|
var EN = {
|
|
@@ -104,8 +104,9 @@ var EN = {
|
|
|
104
104
|
{ key: "wheel", text: "scrolls chat history (works on web/cloud/SSH terminals too)" },
|
|
105
105
|
{
|
|
106
106
|
key: "\u2191 / \u2193",
|
|
107
|
-
text: "
|
|
108
|
-
}
|
|
107
|
+
text: "prompt history (or per-line cursor in a multi-line draft) \u2014 Ctrl+P / Ctrl+N alias"
|
|
108
|
+
},
|
|
109
|
+
{ key: "PgUp / PgDn", text: "scroll chat history (mouse wheel routes here too)" }
|
|
109
110
|
]
|
|
110
111
|
}
|
|
111
112
|
],
|
|
@@ -119,11 +120,11 @@ var EN = {
|
|
|
119
120
|
rows: [
|
|
120
121
|
{ key: "Enter", text: "submit the prompt" },
|
|
121
122
|
{ key: "Shift+Enter", text: "insert a newline in the prompt" },
|
|
122
|
-
{ key: "\u2191 / \u2193", text: "scroll chat history (mouse wheel routes here too)" },
|
|
123
123
|
{
|
|
124
|
-
key: "
|
|
124
|
+
key: "\u2191 / \u2193",
|
|
125
125
|
text: "previous / next prompt history \xB7 cursor up / down in a multi-line draft"
|
|
126
126
|
},
|
|
127
|
+
{ key: "Ctrl+P / Ctrl+N", text: "readline alias for \u2191 / \u2193" },
|
|
127
128
|
{ key: "Ctrl+A / Ctrl+E", text: "jump to start / end of the current line" },
|
|
128
129
|
{ key: "Ctrl+W", text: "delete the word before the cursor" },
|
|
129
130
|
{ key: "Ctrl+U", text: "clear the entire prompt buffer" },
|
|
@@ -132,7 +133,11 @@ var EN = {
|
|
|
132
133
|
{ key: "Esc", text: "dismiss picker \xB7 abort the running model turn" },
|
|
133
134
|
{ key: "Ctrl+C", text: "abort the running model turn (NOT copy \u2014 see clipboard)" },
|
|
134
135
|
{ key: "PgUp / PgDn", text: "scroll chat history a page at a time" },
|
|
135
|
-
{ key: "End", text: "jump chat to the most recent line" }
|
|
136
|
+
{ key: "End", text: "jump chat to the most recent line" },
|
|
137
|
+
{
|
|
138
|
+
key: "Ctrl+R",
|
|
139
|
+
text: "toggle verbose mode \u2014 full reasoning + tool output, no head/tail elision"
|
|
140
|
+
}
|
|
136
141
|
]
|
|
137
142
|
},
|
|
138
143
|
{
|
|
@@ -171,7 +176,7 @@ var EN = {
|
|
|
171
176
|
]
|
|
172
177
|
}
|
|
173
178
|
],
|
|
174
|
-
footer: "Wheel
|
|
179
|
+
footer: "Wheel scrolls chat on most terminals (web/cloud/SSH included) \u2014 SGR mouse tracking is on by default and stays out of the way of native drag-select and right-click. Pass --no-mouse to opt out."
|
|
175
180
|
},
|
|
176
181
|
tipShownOnce: "shown once",
|
|
177
182
|
modelOverride: "override the default model",
|
|
@@ -326,7 +331,7 @@ var EN = {
|
|
|
326
331
|
sessions: { description: "list saved sessions (current marked with \u25B8)" },
|
|
327
332
|
title: { description: "ask the model to rename this session from the conversation" },
|
|
328
333
|
qq: {
|
|
329
|
-
description: "connect, inspect, or disconnect the QQ channel for this session",
|
|
334
|
+
description: "connect, inspect, or disconnect the QQ channel for this session (first connect guides App ID / App Secret setup)",
|
|
330
335
|
argsHint: "[connect [appId appSecret [sandbox]]|status|disconnect]"
|
|
331
336
|
},
|
|
332
337
|
setup: { description: "reminds you to exit and run `reasonix setup`" },
|
|
@@ -445,6 +450,7 @@ var EN = {
|
|
|
445
450
|
reviewSaveError: "Could not save config: {message}",
|
|
446
451
|
reviewFooter: "[Enter] save \xB7 [Esc] cancel",
|
|
447
452
|
savedTitle: "\u25B8 Saved.",
|
|
453
|
+
savedShellHint: "Shell commands the model wants to run ask each time \u2014 pick `allow always` on the prompt to whitelist that exact command for this project. No global allow-all flag by design.",
|
|
448
454
|
savedFooter: "[Enter] to exit",
|
|
449
455
|
selectFooter: "[\u2191\u2193] navigate \xB7 [Enter] confirm \xB7 [Esc] cancel",
|
|
450
456
|
stepCounter: "Step {step}/{total} \xB7 ",
|
|
@@ -509,6 +515,8 @@ var EN = {
|
|
|
509
515
|
title: "Checkpoint \u2014 step done",
|
|
510
516
|
continue: "Continue \u2014 run the next step",
|
|
511
517
|
continueHint: "Model resumes with the next step.",
|
|
518
|
+
finish: "Finish \u2014 summarize and close",
|
|
519
|
+
finishHint: "Model records the final step and summarizes the completed plan.",
|
|
512
520
|
revise: "Revise \u2014 give feedback before the next step",
|
|
513
521
|
reviseHint: "Stay paused, type guidance; model adjusts the remaining plan.",
|
|
514
522
|
stop: "Stop \u2014 end the plan here",
|
|
@@ -550,6 +558,8 @@ var EN = {
|
|
|
550
558
|
notedVerbCreated: "created",
|
|
551
559
|
notedVerbAppended: "appended to",
|
|
552
560
|
memoryWriteFailed: "# memory write failed",
|
|
561
|
+
verboseOn: "\u25B8 verbose mode on \u2014 full reasoning + tool output",
|
|
562
|
+
verboseOff: "\u25B8 verbose mode off \u2014 head/tail elision restored",
|
|
553
563
|
commandFailed: "! command failed",
|
|
554
564
|
btwUsage: "\u25B8 /btw <question> \u2014 ask a side question without polluting the conversation context.",
|
|
555
565
|
btwHeader: "\u226B btw",
|
|
@@ -647,6 +657,10 @@ var EN = {
|
|
|
647
657
|
helpShellDetail: " the conversation so the model sees it next turn.",
|
|
648
658
|
helpShellConsent: " No allowlist gate \u2014 user-typed = explicit consent.",
|
|
649
659
|
helpShellExample: " Example: !git status !ls src/ !npm test",
|
|
660
|
+
helpShellGateTitle: "Model-invoked shell commands (per-call approval):",
|
|
661
|
+
helpShellGate: " \u2191\u2193 + \u23CE each call shows a prompt with `allow once` / `allow always`",
|
|
662
|
+
helpShellGateDetail: " / `deny`. Pick `allow always` to whitelist that exact",
|
|
663
|
+
helpShellGatePolicy: " command prefix for this project. No global allow-all flag.",
|
|
650
664
|
helpMemoryTitle: "Quick memory:",
|
|
651
665
|
helpMemoryPin: " #<note> append <note> to <project>/REASONIX.md (committable).",
|
|
652
666
|
helpMemoryPinEx: " Example: #findByEmail must be case-insensitive",
|
|
@@ -684,6 +698,48 @@ var EN = {
|
|
|
684
698
|
titleStarted: "\u25B8 naming session\u2026",
|
|
685
699
|
titleFailed: "\u25B8 session title failed: {reason}"
|
|
686
700
|
},
|
|
701
|
+
qq: {
|
|
702
|
+
unavailable: "/qq is not available in this session.",
|
|
703
|
+
connecting: "QQ: connecting\u2026",
|
|
704
|
+
connectFailed: "QQ connect failed: {reason}",
|
|
705
|
+
disconnecting: "QQ: disconnecting\u2026",
|
|
706
|
+
disconnectFailed: "QQ disconnect failed: {reason}",
|
|
707
|
+
usage: "Usage: /qq connect [appId appSecret [sandbox]] | /qq status | /qq disconnect",
|
|
708
|
+
promptAppId: "QQ setup: enter your QQ Open Platform App ID, then press Enter. Type /cancel to abort.",
|
|
709
|
+
promptAppSecret: "QQ setup: enter your QQ Open Platform App Secret, then press Enter. Type /cancel to abort.",
|
|
710
|
+
setupWaitingAppId: "waiting for App ID",
|
|
711
|
+
setupWaitingAppSecret: "waiting for App Secret",
|
|
712
|
+
setupCancelled: "QQ setup cancelled.",
|
|
713
|
+
credentialsRequired: "QQ App ID and App Secret are required.",
|
|
714
|
+
connected: "QQ connected in {mode} mode. It will auto-start on future launches.",
|
|
715
|
+
alreadyConnected: "QQ is already connected in {mode} mode. Auto-start is enabled.",
|
|
716
|
+
disconnected: "QQ disconnected. Auto-start is disabled.",
|
|
717
|
+
status: "QQ: {connected}, auto-start {enabled}, credentials {configured}, appId {appId}, {sandbox}, access {access}, current mode {mode}.",
|
|
718
|
+
statusSetup: "QQ: setup in progress \u2014 {step}",
|
|
719
|
+
stateConnected: "connected",
|
|
720
|
+
stateDisconnected: "disconnected",
|
|
721
|
+
stateEnabled: "enabled",
|
|
722
|
+
stateDisabled: "disabled",
|
|
723
|
+
stateConfigured: "configured",
|
|
724
|
+
stateNotConfigured: "not configured",
|
|
725
|
+
sandbox: "sandbox",
|
|
726
|
+
production: "production",
|
|
727
|
+
none: "none",
|
|
728
|
+
modeChat: "chat",
|
|
729
|
+
modeCode: "code",
|
|
730
|
+
accessOwner: "owner {owner}",
|
|
731
|
+
accessOwnerWithAllowlist: "owner {owner}, allowlist {count}",
|
|
732
|
+
accessAllowlist: "allowlist {count}",
|
|
733
|
+
accessRuntime: "first-sender (runtime only, {owner})",
|
|
734
|
+
accessOpen: "open (unbound)",
|
|
735
|
+
lockAlreadyRunning: "QQ channel is already running in process {pid}. Stop that process before starting another QQ channel.",
|
|
736
|
+
unauthorizedMessage: "QQ ignored message from unauthorized openid {openid}. Current access: {access}.",
|
|
737
|
+
runtimeBound: "QQ temporarily bound this run to first sender {openid}. Set `qq.ownerOpenId` in config to persist access.",
|
|
738
|
+
missingAppId: "QQ App ID is required. Run `/qq connect` to configure.",
|
|
739
|
+
missingAppSecret: "QQ App Secret is required. Run `/qq connect` to configure.",
|
|
740
|
+
authFailed: "QQ bot authentication failed \u2014 check your App ID and App Secret.",
|
|
741
|
+
readyTimeout: "QQ bot did not receive READY within 15s \u2014 check your App ID and App Secret."
|
|
742
|
+
},
|
|
687
743
|
admin: {
|
|
688
744
|
doctorNeedsTui: "/doctor needs a TUI context (postDoctor wired).",
|
|
689
745
|
doctorRunning: "\u2695 Doctor \u2014 running health checks\u2026",
|
|
@@ -916,7 +972,7 @@ var EN = {
|
|
|
916
972
|
changesNoteShort: "Changes take effect on next /new or launch. Subcommands: /memory list | show | forget | clear"
|
|
917
973
|
},
|
|
918
974
|
mcp: {
|
|
919
|
-
noServers: 'no MCP servers attached. Run `reasonix setup` to pick some, or launch with --mcp "<spec>". `reasonix mcp list` shows the catalog.',
|
|
975
|
+
noServers: 'no MCP servers attached. Run `reasonix setup` to pick some, or launch with --mcp "<spec>". `reasonix mcp list` shows the catalog. Note: model-invoked shell commands are gated per-call (allow once / allow always / deny) \u2014 no global allow-all flag.',
|
|
920
976
|
toolsLabel: " tools {count}",
|
|
921
977
|
resourcesHint: "`/resource` to browse+read",
|
|
922
978
|
promptsHint: "`/prompt` to browse+fetch",
|
|
@@ -950,12 +1006,14 @@ var EN = {
|
|
|
950
1006
|
usageSearxng: " /search-engine searxng use SearXNG at default endpoint",
|
|
951
1007
|
usageSearxngUrl: " /search-engine searxng <url> use SearXNG at custom endpoint",
|
|
952
1008
|
usageMetaso: " /search-engine metaso use Metaso API (100/d free, configure your own API key for more)",
|
|
1009
|
+
usageTavily: " /search-engine tavily use Tavily API (LLM-friendly, free 1000/mo \u2014 set TAVILY_API_KEY or tavilyApiKey in config; get one at https://tavily.com)",
|
|
953
1010
|
alias: "Alias: /se",
|
|
954
1011
|
searxngInfo: "SearXNG is a self-hosted metasearch engine (https://github.com/searxng/searxng).",
|
|
955
1012
|
searxngInstall: "Install it with: docker run -d -p 8080:8080 searxng/searxng",
|
|
956
1013
|
switched: 'Switched web search engine to "{engine}".{note}',
|
|
957
1014
|
switchedSearxngNote: " Make sure SearXNG is running at {endpoint}.",
|
|
958
1015
|
switchedMetasoNote: " There is a daily quota of 100 (configure your own API key for higher limits).",
|
|
1016
|
+
switchedTavilyNote: " Set TAVILY_API_KEY or `tavilyApiKey` in config; free 1000/mo at https://tavily.com.",
|
|
959
1017
|
confirmed: '\u2713 Web search engine set to "{engine}"{detail}. Next assistant turn will pick up the change.',
|
|
960
1018
|
confirmedDetail: " ({endpoint})"
|
|
961
1019
|
},
|
|
@@ -1091,6 +1149,13 @@ var EN = {
|
|
|
1091
1149
|
linesBelow: " \u2193 {count} line below (\u2193/j or Space/PgDn)",
|
|
1092
1150
|
linesBelowPlural: " \u2193 {count} lines below (\u2193/j or Space/PgDn)"
|
|
1093
1151
|
},
|
|
1152
|
+
editPicker: {
|
|
1153
|
+
title: "edit a previous message",
|
|
1154
|
+
hint: "\u2191\u2193 pick \xB7 Enter to load into composer \xB7 Esc to cancel",
|
|
1155
|
+
empty: "no user turns yet \u2014 nothing to edit",
|
|
1156
|
+
dismiss: "Esc to dismiss",
|
|
1157
|
+
forked: "\u25B8 forked at turn #{turn} \u2014 buffer holds the original text"
|
|
1158
|
+
},
|
|
1094
1159
|
sessionPicker: {
|
|
1095
1160
|
header: " \u25C8 REASONIX \xB7 pick a session ",
|
|
1096
1161
|
title: "pick a session \u2014 {workspace}",
|
|
@@ -1224,6 +1289,11 @@ var EN = {
|
|
|
1224
1289
|
metasoServerError: "web_search: Metaso server error ({status}) \u2014 try again later, or switch engine with /search-engine mojeek",
|
|
1225
1290
|
metasoParseError: "web_search: Metaso returned unparseable response (HTTP {status}) \u2014 try again later",
|
|
1226
1291
|
metasoApiError: "web_search: Metaso API error (code {code}: {message}) \u2014 try again later",
|
|
1292
|
+
tavilyMissingKey: "web_search: Tavily backend requires an API key \u2014 set TAVILY_API_KEY env var or `tavilyApiKey` in ~/.reasonix/config.json; free 1000/mo signup at https://tavily.com",
|
|
1293
|
+
tavilyUnauthorized: "web_search: Tavily API key rejected \u2014 check TAVILY_API_KEY or get one at https://tavily.com",
|
|
1294
|
+
tavilyRateLimit: "web_search: Tavily rate-limited or monthly quota exceeded \u2014 wait, switch engine with /search-engine mojeek, or upgrade your Tavily plan",
|
|
1295
|
+
tavilyServerError: "web_search: Tavily server error ({status}) \u2014 try again later, or switch engine with /search-engine mojeek",
|
|
1296
|
+
tavilyParseError: "web_search: Tavily returned unparseable response (HTTP {status}) \u2014 try again later",
|
|
1227
1297
|
fetchStatus: "web_fetch {status} for {url} \u2014 try: confirm the URL resolves in a browser; status suggests the host returned an error page",
|
|
1228
1298
|
fetchRateLimit429: "web_fetch 429 for {url} \u2014 try: wait 10s before retrying; the host is rate-limiting this client",
|
|
1229
1299
|
fetchForbidden403: "web_fetch 403 for {url} \u2014 try: the host is blocking this client; the page may require login or block bots \u2014 use web_search snippets instead",
|
|
@@ -1333,7 +1403,7 @@ var EN = {
|
|
|
1333
1403
|
slow: "slow \xB7 {ms}ms",
|
|
1334
1404
|
verySlow: "very slow \xB7 {ms}ms",
|
|
1335
1405
|
slowToast: "\u26A0 MCP `{name}` slow \xB7 {seconds}s p95 over the last {sampleSize} calls",
|
|
1336
|
-
emptyHint: "\u2139 no MCP servers configured \u2014 try: `reasonix setup` to re-pick, or `reasonix mcp install filesystem`"
|
|
1406
|
+
emptyHint: "\u2139 no MCP servers configured \u2014 try: `reasonix setup` to re-pick, or `reasonix mcp install filesystem` \xB7 shell commands gate per-call (allow once / allow always / deny), no global allow-all"
|
|
1337
1407
|
},
|
|
1338
1408
|
denyContextInput: {
|
|
1339
1409
|
description: "Tell the agent why you denied this. The next attempt will see your reason as additional context."
|
|
@@ -1342,7 +1412,8 @@ var EN = {
|
|
|
1342
1412
|
scrollAbove: " \u2191 {scroll} / {max} row above",
|
|
1343
1413
|
scrollAbovePlural: " \u2191 {scroll} / {max} rows above",
|
|
1344
1414
|
scrollMore: " \u2014 {remaining} more",
|
|
1345
|
-
scrollPgUp: " \xB7 PgUp / wheel
|
|
1415
|
+
scrollPgUp: " \xB7 PgUp / wheel",
|
|
1416
|
+
scrollCopy: " \xB7 /copy enters copy mode"
|
|
1346
1417
|
},
|
|
1347
1418
|
slashArgPicker: {
|
|
1348
1419
|
noMatch: 'no match for "{partial}"',
|
|
@@ -1400,7 +1471,8 @@ var EN = {
|
|
|
1400
1471
|
reconnectDetail: "tearing down \xB7 re-handshake \xB7 listing tools",
|
|
1401
1472
|
disabledDetail: "via /mcp disable {name}",
|
|
1402
1473
|
failedSetupHint: "\u2192 run `reasonix setup` to remove this entry, or fix the underlying issue (missing npm package, network, etc.).",
|
|
1403
|
-
failedSetupConfigHint: "\u2192 run `reasonix setup` to remove broken entries from your saved config."
|
|
1474
|
+
failedSetupConfigHint: "\u2192 run `reasonix setup` to remove broken entries from your saved config.",
|
|
1475
|
+
abortedHint: "MCP startup aborted \u2014 {count} server(s) skipped. Run /mcp to retry once you've fixed the underlying issue."
|
|
1404
1476
|
},
|
|
1405
1477
|
checkpointPicker: {
|
|
1406
1478
|
title: "restore a checkpoint \u2014 {workspace}",
|
|
@@ -1545,8 +1617,9 @@ var zhCN = {
|
|
|
1545
1617
|
{ key: "\u6EDA\u8F6E", text: "\u6EDA\u52A8\u804A\u5929\u8BB0\u5F55\uFF08Web / \u4E91\u7AEF / SSH \u7EC8\u7AEF\u4E5F\u80FD\u7528\uFF09" },
|
|
1546
1618
|
{
|
|
1547
1619
|
key: "\u2191 / \u2193",
|
|
1548
|
-
text: "\
|
|
1549
|
-
}
|
|
1620
|
+
text: "\u8F93\u5165\u5386\u53F2\uFF08\u591A\u884C\u8349\u7A3F\u65F6\u6309\u884C\u79FB\u52A8\u5149\u6807\uFF09\u2014 Ctrl+P / Ctrl+N \u540C\u4E49"
|
|
1621
|
+
},
|
|
1622
|
+
{ key: "PgUp / PgDn", text: "\u6EDA\u52A8\u804A\u5929\u8BB0\u5F55\uFF08\u9F20\u6807\u6EDA\u8F6E\u4E5F\u8D70\u8FD9\u6761\u8DEF\u5F84\uFF09" }
|
|
1550
1623
|
]
|
|
1551
1624
|
}
|
|
1552
1625
|
],
|
|
@@ -1560,11 +1633,11 @@ var zhCN = {
|
|
|
1560
1633
|
rows: [
|
|
1561
1634
|
{ key: "Enter", text: "\u63D0\u4EA4\u8F93\u5165" },
|
|
1562
1635
|
{ key: "Shift+Enter", text: "\u5728\u8F93\u5165\u6846\u4E2D\u63D2\u5165\u6362\u884C" },
|
|
1563
|
-
{ key: "\u2191 / \u2193", text: "\u6EDA\u52A8\u804A\u5929\u8BB0\u5F55\uFF08\u9F20\u6807\u6EDA\u8F6E\u4E5F\u8D70\u8FD9\u6761\u8DEF\u5F84\uFF09" },
|
|
1564
1636
|
{
|
|
1565
|
-
key: "
|
|
1637
|
+
key: "\u2191 / \u2193",
|
|
1566
1638
|
text: "\u4E0A\u4E00\u6761 / \u4E0B\u4E00\u6761\u8F93\u5165\u5386\u53F2 \xB7 \u591A\u884C\u8349\u7A3F\u4E2D\u6309\u884C\u79FB\u52A8\u5149\u6807"
|
|
1567
1639
|
},
|
|
1640
|
+
{ key: "Ctrl+P / Ctrl+N", text: "\u2191 / \u2193 \u7684 readline \u540C\u4E49\u952E" },
|
|
1568
1641
|
{ key: "Ctrl+A / Ctrl+E", text: "\u8DF3\u5230\u5F53\u524D\u884C\u7684\u5F00\u5934 / \u7ED3\u5C3E" },
|
|
1569
1642
|
{ key: "Ctrl+W", text: "\u5220\u9664\u5149\u6807\u524D\u7684\u4E00\u4E2A\u8BCD" },
|
|
1570
1643
|
{ key: "Ctrl+U", text: "\u6E05\u7A7A\u6574\u4E2A\u8F93\u5165\u7F13\u51B2\u533A" },
|
|
@@ -1573,7 +1646,8 @@ var zhCN = {
|
|
|
1573
1646
|
{ key: "Esc", text: "\u5173\u95ED\u5F39\u51FA\u9009\u62E9\u5668 \xB7 \u4E2D\u6B62\u5F53\u524D\u6A21\u578B\u56DE\u5408" },
|
|
1574
1647
|
{ key: "Ctrl+C", text: "\u4E2D\u6B62\u5F53\u524D\u6A21\u578B\u56DE\u5408\uFF08\u4E0D\u662F\u590D\u5236 \u2014 \u89C1\u526A\u8D34\u677F\u6BB5\uFF09" },
|
|
1575
1648
|
{ key: "PgUp / PgDn", text: "\u6574\u9875\u6EDA\u52A8\u804A\u5929\u8BB0\u5F55" },
|
|
1576
|
-
{ key: "End", text: "\u8DF3\u5230\u804A\u5929\u7684\u6700\u65B0\u4E00\u884C" }
|
|
1649
|
+
{ key: "End", text: "\u8DF3\u5230\u804A\u5929\u7684\u6700\u65B0\u4E00\u884C" },
|
|
1650
|
+
{ key: "Ctrl+R", text: "\u5207\u6362\u8BE6\u7EC6\u6A21\u5F0F \u2014 \u663E\u793A\u5B8C\u6574\u63A8\u7406 + \u5DE5\u5177\u8F93\u51FA\uFF0C\u4E0D\u7701\u7565" }
|
|
1577
1651
|
]
|
|
1578
1652
|
},
|
|
1579
1653
|
{
|
|
@@ -1612,7 +1686,7 @@ var zhCN = {
|
|
|
1612
1686
|
]
|
|
1613
1687
|
}
|
|
1614
1688
|
],
|
|
1615
|
-
footer: "\
|
|
1689
|
+
footer: "\u6EDA\u8F6E\u5728\u5927\u591A\u6570\u7EC8\u7AEF\uFF08\u542B Web / \u4E91\u7AEF / SSH\uFF09\u90FD\u80FD\u6EDA\u804A\u5929 \u2014 \u9ED8\u8BA4\u5F00\u542F SGR \u9F20\u6807\u8DDF\u8E2A\uFF0C\u4F46\u4E0D\u4F1A\u5F71\u54CD\u7EC8\u7AEF\u539F\u751F\u62D6\u9009\u548C\u53F3\u952E\u83DC\u5355\u3002\u76F4\u63A5\u62D6\u52A8\u9009\u4E2D\u6587\u672C\u65E0\u9700 Shift\u3002\u4F20\u5165 --no-mouse \u53EF\u5173\u95ED\u3002"
|
|
1616
1690
|
},
|
|
1617
1691
|
tipShownOnce: "\u4EC5\u663E\u793A\u4E00\u6B21",
|
|
1618
1692
|
modelOverride: "\u8986\u76D6\u9ED8\u8BA4\u6A21\u578B",
|
|
@@ -1769,7 +1843,7 @@ var zhCN = {
|
|
|
1769
1843
|
sessions: { description: "\u5217\u51FA\u5DF2\u4FDD\u5B58\u7684\u4F1A\u8BDD\uFF08\u5F53\u524D\u6807\u8BB0\u4E3A \u25B8\uFF09" },
|
|
1770
1844
|
title: { description: "\u8BA9\u6A21\u578B\u6839\u636E\u5F53\u524D\u5BF9\u8BDD\u91CD\u547D\u540D\u6B64\u4F1A\u8BDD" },
|
|
1771
1845
|
qq: {
|
|
1772
|
-
description: "\u8FDE\u63A5\u3001\u67E5\u770B\u6216\u65AD\u5F00\u5F53\u524D\u4F1A\u8BDD\u7684 QQ \u901A\u9053",
|
|
1846
|
+
description: "\u8FDE\u63A5\u3001\u67E5\u770B\u6216\u65AD\u5F00\u5F53\u524D\u4F1A\u8BDD\u7684 QQ \u901A\u9053\uFF08\u9996\u6B21\u8FDE\u63A5\u4F1A\u5F15\u5BFC\u5F55\u5165 App ID / App Secret\uFF09",
|
|
1773
1847
|
argsHint: "[connect [appId appSecret [sandbox]]|status|disconnect]"
|
|
1774
1848
|
},
|
|
1775
1849
|
setup: { description: "\u63D0\u9192\u60A8\u9000\u51FA\u5E76\u8FD0\u884C `reasonix setup`" },
|
|
@@ -1890,6 +1964,7 @@ var zhCN = {
|
|
|
1890
1964
|
reviewSaveError: "\u4FDD\u5B58\u914D\u7F6E\u5931\u8D25\uFF1A{message}",
|
|
1891
1965
|
reviewFooter: "[Enter] \u4FDD\u5B58 \xB7 [Esc] \u53D6\u6D88",
|
|
1892
1966
|
savedTitle: "\u25B8 \u5DF2\u4FDD\u5B58\u3002",
|
|
1967
|
+
savedShellHint: "\u6A21\u578B\u53D1\u8D77\u7684 shell \u547D\u4EE4\u6BCF\u6B21\u90FD\u4F1A\u5F39\u51FA\u786E\u8BA4 \u2014\u2014 \u5728\u63D0\u793A\u6846\u91CC\u9009 `allow always` \u53EF\u5C06\u8BE5\u547D\u4EE4\u524D\u7F00\u52A0\u5165\u672C\u9879\u76EE\u767D\u540D\u5355\u3002\u8BBE\u8BA1\u4E0A\u6CA1\u6709\u300C\u5168\u5C40\u653E\u884C\u300D\u5F00\u5173\u3002",
|
|
1893
1968
|
savedFooter: "[Enter] \u9000\u51FA",
|
|
1894
1969
|
selectFooter: "[\u2191\u2193] \u79FB\u52A8 \xB7 [Enter] \u786E\u8BA4 \xB7 [Esc] \u53D6\u6D88",
|
|
1895
1970
|
stepCounter: "\u6B65\u9AA4 {step}/{total} \xB7 ",
|
|
@@ -1954,6 +2029,8 @@ var zhCN = {
|
|
|
1954
2029
|
title: "\u68C0\u67E5\u70B9 \u2014\u2014 \u5F53\u524D\u6B65\u9AA4\u5DF2\u5B8C\u6210",
|
|
1955
2030
|
continue: "\u7EE7\u7EED \u2014\u2014 \u6267\u884C\u4E0B\u4E00\u6B65",
|
|
1956
2031
|
continueHint: "\u6A21\u578B\u4ECE\u4E0B\u4E00\u6B65\u7EE7\u7EED\u3002",
|
|
2032
|
+
finish: "\u5B8C\u6210 \u2014\u2014 \u603B\u7ED3\u5E76\u6536\u5C3E",
|
|
2033
|
+
finishHint: "\u6A21\u578B\u8BB0\u5F55\u6700\u540E\u4E00\u6B65\uFF0C\u7136\u540E\u603B\u7ED3\u5DF2\u5B8C\u6210\u7684\u8BA1\u5212\u3002",
|
|
1957
2034
|
revise: "\u8C03\u6574 \u2014\u2014 \u5728\u4E0B\u4E00\u6B65\u524D\u7ED9\u53CD\u9988",
|
|
1958
2035
|
reviseHint: "\u5148\u6682\u505C\uFF0C\u8F93\u5165\u6307\u5F15\uFF1B\u6A21\u578B\u4F1A\u8C03\u6574\u5269\u4F59\u8BA1\u5212\u3002",
|
|
1959
2036
|
stop: "\u505C\u6B62 \u2014\u2014 \u5728\u6B64\u7ED3\u675F\u8BA1\u5212",
|
|
@@ -1995,6 +2072,8 @@ var zhCN = {
|
|
|
1995
2072
|
notedVerbCreated: "\u521B\u5EFA",
|
|
1996
2073
|
notedVerbAppended: "\u8FFD\u52A0\u5230",
|
|
1997
2074
|
memoryWriteFailed: "# \u8BB0\u5FC6\u5199\u5165\u5931\u8D25",
|
|
2075
|
+
verboseOn: "\u25B8 \u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u5F00 \u2014 \u663E\u793A\u5B8C\u6574\u63A8\u7406 + \u5DE5\u5177\u8F93\u51FA",
|
|
2076
|
+
verboseOff: "\u25B8 \u8BE6\u7EC6\u6A21\u5F0F\u5DF2\u5173 \u2014 \u6062\u590D\u5934\u5C3E\u7701\u7565",
|
|
1998
2077
|
commandFailed: "! \u547D\u4EE4\u5931\u8D25",
|
|
1999
2078
|
btwUsage: "\u25B8 /btw <\u95EE\u9898> \u2014 \u987A\u4FBF\u95EE\u4E2A\u9898\u5916\u8BDD\uFF0C\u4E0D\u4F1A\u5199\u5165\u5F53\u524D\u4F1A\u8BDD\u4E0A\u4E0B\u6587\u3002",
|
|
2000
2079
|
btwHeader: "\u226B btw",
|
|
@@ -2092,6 +2171,10 @@ var zhCN = {
|
|
|
2092
2171
|
helpShellDetail: " \u4EE5\u4FBF\u6A21\u578B\u5728\u4E0B\u4E00\u8F6E\u770B\u5230\u3002\u65E0\u5141\u8BB8\u5217\u8868\u9650\u5236\u3002",
|
|
2093
2172
|
helpShellConsent: " \u7528\u6237\u8F93\u5165 = \u660E\u786E\u540C\u610F\u3002",
|
|
2094
2173
|
helpShellExample: " \u793A\u4F8B\uFF1A!git status !ls src/ !npm test",
|
|
2174
|
+
helpShellGateTitle: "\u6A21\u578B\u53D1\u8D77\u7684 shell \u547D\u4EE4\uFF08\u6309\u6B21\u5BA1\u6279\uFF09\uFF1A",
|
|
2175
|
+
helpShellGate: " \u2191\u2193 + \u23CE \u6BCF\u6B21\u90FD\u4F1A\u5F39\u51FA `allow once` / `allow always` /",
|
|
2176
|
+
helpShellGateDetail: " `deny` \u4E09\u9009\u4E00\u3002\u9009 `allow always` \u53EF\u5C06\u8BE5\u547D\u4EE4\u524D\u7F00",
|
|
2177
|
+
helpShellGatePolicy: " \u52A0\u5165\u672C\u9879\u76EE\u767D\u540D\u5355\u3002\u8BBE\u8BA1\u4E0A\u6CA1\u6709\u300C\u5168\u5C40\u653E\u884C\u300D\u5F00\u5173\u3002",
|
|
2095
2178
|
helpMemoryTitle: "\u5FEB\u901F\u8BB0\u5FC6\uFF1A",
|
|
2096
2179
|
helpMemoryPin: " #<note> \u5C06 <note> \u8FFD\u52A0\u5230 <project>/REASONIX.md\uFF08\u53EF\u63D0\u4EA4\uFF09\u3002",
|
|
2097
2180
|
helpMemoryPinEx: " \u793A\u4F8B\uFF1A#findByEmail \u5FC5\u987B\u533A\u5206\u5927\u5C0F\u5199",
|
|
@@ -2129,6 +2212,48 @@ var zhCN = {
|
|
|
2129
2212
|
titleStarted: "\u25B8 \u6B63\u5728\u547D\u540D\u4F1A\u8BDD\u2026",
|
|
2130
2213
|
titleFailed: "\u25B8 \u4F1A\u8BDD\u547D\u540D\u5931\u8D25\uFF1A{reason}"
|
|
2131
2214
|
},
|
|
2215
|
+
qq: {
|
|
2216
|
+
unavailable: "/qq \u5728\u5F53\u524D\u4F1A\u8BDD\u4E2D\u4E0D\u53EF\u7528\u3002",
|
|
2217
|
+
connecting: "QQ\uFF1A\u6B63\u5728\u8FDE\u63A5\u2026",
|
|
2218
|
+
connectFailed: "QQ \u8FDE\u63A5\u5931\u8D25\uFF1A{reason}",
|
|
2219
|
+
disconnecting: "QQ\uFF1A\u6B63\u5728\u65AD\u5F00\u2026",
|
|
2220
|
+
disconnectFailed: "QQ \u65AD\u5F00\u5931\u8D25\uFF1A{reason}",
|
|
2221
|
+
usage: "\u7528\u6CD5\uFF1A/qq connect [appId appSecret [sandbox]] | /qq status | /qq disconnect",
|
|
2222
|
+
promptAppId: "QQ \u9996\u6B21\u914D\u7F6E\uFF1A\u8BF7\u8F93\u5165 QQ \u5F00\u653E\u5E73\u53F0 App ID \u540E\u56DE\u8F66\u3002\u8F93\u5165 /cancel \u53EF\u53D6\u6D88\u3002",
|
|
2223
|
+
promptAppSecret: "QQ \u9996\u6B21\u914D\u7F6E\uFF1A\u8BF7\u8F93\u5165 QQ \u5F00\u653E\u5E73\u53F0 App Secret \u540E\u56DE\u8F66\u3002\u8F93\u5165 /cancel \u53EF\u53D6\u6D88\u3002",
|
|
2224
|
+
setupWaitingAppId: "\u7B49\u5F85\u8F93\u5165 App ID",
|
|
2225
|
+
setupWaitingAppSecret: "\u7B49\u5F85\u8F93\u5165 App Secret",
|
|
2226
|
+
setupCancelled: "QQ \u9996\u6B21\u914D\u7F6E\u5DF2\u53D6\u6D88\u3002",
|
|
2227
|
+
credentialsRequired: "QQ App ID \u548C App Secret \u4E0D\u80FD\u4E3A\u7A7A\u3002",
|
|
2228
|
+
connected: "QQ \u5DF2\u5728{mode}\u6A21\u5F0F\u4E0B\u8FDE\u63A5\u6210\u529F\uFF0C\u540E\u7EED\u542F\u52A8\u4F1A\u81EA\u52A8\u542F\u7528\u3002",
|
|
2229
|
+
alreadyConnected: "QQ \u5DF2\u5728{mode}\u6A21\u5F0F\u4E0B\u8FDE\u63A5\uFF0C\u81EA\u52A8\u542F\u52A8\u5DF2\u542F\u7528\u3002",
|
|
2230
|
+
disconnected: "QQ \u5DF2\u65AD\u5F00\u8FDE\u63A5\uFF0C\u81EA\u52A8\u542F\u52A8\u5DF2\u5173\u95ED\u3002",
|
|
2231
|
+
status: "QQ\uFF1A{connected}\uFF0C\u81EA\u52A8\u542F\u52A8{enabled}\uFF0C\u51ED\u636E{configured}\uFF0CappId {appId}\uFF0C{sandbox}\uFF0C\u8BBF\u95EE\u63A7\u5236 {access}\uFF0C\u5F53\u524D\u6A21\u5F0F {mode}\u3002",
|
|
2232
|
+
statusSetup: "QQ\uFF1A\u9996\u6B21\u914D\u7F6E\u8FDB\u884C\u4E2D \u2014\u2014 {step}",
|
|
2233
|
+
stateConnected: "\u5DF2\u8FDE\u63A5",
|
|
2234
|
+
stateDisconnected: "\u672A\u8FDE\u63A5",
|
|
2235
|
+
stateEnabled: "\u5DF2\u542F\u7528",
|
|
2236
|
+
stateDisabled: "\u672A\u542F\u7528",
|
|
2237
|
+
stateConfigured: "\u5DF2\u914D\u7F6E",
|
|
2238
|
+
stateNotConfigured: "\u672A\u914D\u7F6E",
|
|
2239
|
+
sandbox: "\u6C99\u7BB1\u73AF\u5883",
|
|
2240
|
+
production: "\u6B63\u5F0F\u73AF\u5883",
|
|
2241
|
+
none: "\u65E0",
|
|
2242
|
+
modeChat: "\u804A\u5929",
|
|
2243
|
+
modeCode: "\u4EE3\u7801",
|
|
2244
|
+
accessOwner: "\u6240\u6709\u8005 {owner}",
|
|
2245
|
+
accessOwnerWithAllowlist: "\u6240\u6709\u8005 {owner}\uFF0C\u767D\u540D\u5355 {count}",
|
|
2246
|
+
accessAllowlist: "\u767D\u540D\u5355 {count}",
|
|
2247
|
+
accessRuntime: "\u9996\u4E2A\u79C1\u804A\u7528\u6237\uFF08\u4EC5\u672C\u6B21\u8FD0\u884C\uFF0C{owner}\uFF09",
|
|
2248
|
+
accessOpen: "\u5F00\u653E\uFF08\u672A\u7ED1\u5B9A\uFF09",
|
|
2249
|
+
lockAlreadyRunning: "QQ \u901A\u9053\u5DF2\u5728\u8FDB\u7A0B {pid} \u4E2D\u8FD0\u884C\u3002\u8BF7\u5148\u505C\u6B62\u8BE5\u8FDB\u7A0B\uFF0C\u518D\u542F\u52A8\u65B0\u7684 QQ \u901A\u9053\u3002",
|
|
2250
|
+
unauthorizedMessage: "QQ \u5FFD\u7565\u4E86\u672A\u6388\u6743 openid {openid} \u7684\u6D88\u606F\u3002\u5F53\u524D\u8BBF\u95EE\u63A7\u5236\uFF1A{access}\u3002",
|
|
2251
|
+
runtimeBound: "QQ \u5DF2\u5728\u672C\u6B21\u8FD0\u884C\u4E2D\u4E34\u65F6\u7ED1\u5B9A\u5230\u9996\u4E2A\u53D1\u9001\u8005 {openid}\u3002\u5982\u9700\u6301\u4E45\u5316\uFF0C\u8BF7\u5728\u914D\u7F6E\u4E2D\u8BBE\u7F6E `qq.ownerOpenId`\u3002",
|
|
2252
|
+
missingAppId: "\u7F3A\u5C11 QQ App ID\u3002\u8BF7\u5148\u8FD0\u884C `/qq connect` \u5B8C\u6210\u914D\u7F6E\u3002",
|
|
2253
|
+
missingAppSecret: "\u7F3A\u5C11 QQ App Secret\u3002\u8BF7\u5148\u8FD0\u884C `/qq connect` \u5B8C\u6210\u914D\u7F6E\u3002",
|
|
2254
|
+
authFailed: "QQ \u673A\u5668\u4EBA\u9274\u6743\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5 App ID \u548C App Secret\u3002",
|
|
2255
|
+
readyTimeout: "QQ \u673A\u5668\u4EBA 15 \u79D2\u5185\u672A\u6536\u5230 READY\uFF0C\u8BF7\u68C0\u67E5 App ID \u548C App Secret\u3002"
|
|
2256
|
+
},
|
|
2132
2257
|
admin: {
|
|
2133
2258
|
doctorNeedsTui: "/doctor \u9700\u8981 TUI \u4E0A\u4E0B\u6587\uFF08postDoctor \u5DF2\u8FDE\u63A5\uFF09\u3002",
|
|
2134
2259
|
doctorRunning: "\u2695 \u5065\u5EB7\u68C0\u67E5 \u2014 \u6B63\u5728\u8FD0\u884C\u2026",
|
|
@@ -2361,7 +2486,7 @@ var zhCN = {
|
|
|
2361
2486
|
changesNoteShort: "\u66F4\u6539\u5728\u4E0B\u6B21 /new \u6216\u542F\u52A8\u65F6\u751F\u6548\u3002\u5B50\u547D\u4EE4\uFF1A/memory list | show | forget | clear"
|
|
2362
2487
|
},
|
|
2363
2488
|
mcp: {
|
|
2364
|
-
noServers: '\u672A\u9644\u52A0 MCP \u670D\u52A1\u5668\u3002\u8FD0\u884C `reasonix setup` \u9009\u62E9\u4E00\u4E9B\uFF0C\u6216\u4F7F\u7528 --mcp "<spec>" \u542F\u52A8\u3002`reasonix mcp list` \u663E\u793A\u76EE\u5F55\u3002',
|
|
2489
|
+
noServers: '\u672A\u9644\u52A0 MCP \u670D\u52A1\u5668\u3002\u8FD0\u884C `reasonix setup` \u9009\u62E9\u4E00\u4E9B\uFF0C\u6216\u4F7F\u7528 --mcp "<spec>" \u542F\u52A8\u3002`reasonix mcp list` \u663E\u793A\u76EE\u5F55\u3002\u6CE8\uFF1A\u6A21\u578B\u53D1\u8D77\u7684 shell \u547D\u4EE4\u6309\u6B21\u5BA1\u6279\uFF08allow once / allow always / deny\uFF09\uFF0C\u8BBE\u8BA1\u4E0A\u6CA1\u6709\u300C\u5168\u5C40\u653E\u884C\u300D\u5F00\u5173\u3002',
|
|
2365
2490
|
toolsLabel: " \u5DE5\u5177 {count}",
|
|
2366
2491
|
resourcesHint: "`/resource` \u6D4F\u89C8+\u8BFB\u53D6",
|
|
2367
2492
|
promptsHint: "`/prompt` \u6D4F\u89C8+\u83B7\u53D6",
|
|
@@ -2395,12 +2520,14 @@ var zhCN = {
|
|
|
2395
2520
|
usageSearxng: " /search-engine searxng \u4F7F\u7528 SearXNG \u9ED8\u8BA4\u7AEF\u70B9",
|
|
2396
2521
|
usageSearxngUrl: " /search-engine searxng <url> \u4F7F\u7528 SearXNG \u81EA\u5B9A\u4E49\u7AEF\u70B9",
|
|
2397
2522
|
usageMetaso: " /search-engine metaso \u4F7F\u7528 Metaso API\uFF08\u6BCF\u5929 100 \u6B21\u514D\u8D39\uFF0C\u914D\u7F6E\u4F60\u81EA\u5DF1\u7684 API \u5BC6\u94A5\u53EF\u63D0\u5347\u9650\u989D\uFF09",
|
|
2523
|
+
usageTavily: " /search-engine tavily \u4F7F\u7528 Tavily API\uFF08LLM \u53CB\u597D\uFF0C\u6BCF\u6708 1000 \u6B21\u514D\u8D39 \u2014 \u8BBE\u7F6E TAVILY_API_KEY \u6216 config \u7684 tavilyApiKey\uFF1B\u6CE8\u518C https://tavily.com\uFF09",
|
|
2398
2524
|
alias: "\u522B\u540D\uFF1A/se",
|
|
2399
2525
|
searxngInfo: "SearXNG \u662F\u4E00\u4E2A\u81EA\u6258\u7BA1\u7684\u5143\u641C\u7D22\u5F15\u64CE\uFF08https://github.com/searxng/searxng\uFF09\u3002",
|
|
2400
2526
|
searxngInstall: "\u5B89\u88C5\u547D\u4EE4\uFF1A docker run -d -p 8080:8080 searxng/searxng",
|
|
2401
2527
|
switched: '\u5DF2\u5207\u6362\u7F51\u9875\u641C\u7D22\u5F15\u64CE\u4E3A "{engine}"\u3002{note}',
|
|
2402
2528
|
switchedSearxngNote: " \u8BF7\u786E\u4FDD SearXNG \u5728 {endpoint} \u8FD0\u884C\u3002",
|
|
2403
2529
|
switchedMetasoNote: " \u6BCF\u65E5\u9650\u989D 100 \u6B21\uFF08\u914D\u7F6E\u4F60\u81EA\u5DF1\u7684 API \u5BC6\u94A5\u53EF\u63D0\u5347\u9650\u989D\uFF09\u3002",
|
|
2530
|
+
switchedTavilyNote: " \u8BF7\u8BBE\u7F6E\u73AF\u5883\u53D8\u91CF TAVILY_API_KEY \u6216 config \u4E2D\u7684 `tavilyApiKey`\uFF1Bhttps://tavily.com \u6BCF\u6708 1000 \u6B21\u514D\u8D39\u3002",
|
|
2404
2531
|
confirmed: '\u2713 \u7F51\u9875\u641C\u7D22\u5F15\u64CE\u5DF2\u8BBE\u4E3A "{engine}"{detail}\u3002\u4E0B\u4E00\u8F6E\u6A21\u578B\u8C03\u7528\u5C06\u751F\u6548\u3002',
|
|
2405
2532
|
confirmedDetail: "\uFF08{endpoint}\uFF09"
|
|
2406
2533
|
},
|
|
@@ -2536,6 +2663,13 @@ var zhCN = {
|
|
|
2536
2663
|
linesBelow: " \u2193 \u4E0B\u65B9 {count} \u884C\uFF08\u2193/j \u6216 Space/PgDn\uFF09",
|
|
2537
2664
|
linesBelowPlural: " \u2193 \u4E0B\u65B9 {count} \u884C\uFF08\u2193/j \u6216 Space/PgDn\uFF09"
|
|
2538
2665
|
},
|
|
2666
|
+
editPicker: {
|
|
2667
|
+
title: "\u7F16\u8F91\u4E4B\u524D\u7684\u6D88\u606F",
|
|
2668
|
+
hint: "\u2191\u2193 \u9009\u62E9 \xB7 Enter \u52A0\u8F7D\u5230\u8F93\u5165\u6846 \xB7 Esc \u53D6\u6D88",
|
|
2669
|
+
empty: "\u8FD8\u6CA1\u6709\u7528\u6237\u53D1\u8A00 \u2014 \u6CA1\u4EC0\u4E48\u53EF\u4EE5\u7F16\u8F91\u7684",
|
|
2670
|
+
dismiss: "Esc \u5173\u95ED",
|
|
2671
|
+
forked: "\u25B8 \u4ECE\u7B2C #{turn} \u8F6E\u5206\u53C9 \u2014 \u539F\u6587\u5DF2\u586B\u56DE\u8F93\u5165\u6846"
|
|
2672
|
+
},
|
|
2539
2673
|
sessionPicker: {
|
|
2540
2674
|
header: " \u25C8 REASONIX \xB7 \u9009\u62E9\u4F1A\u8BDD ",
|
|
2541
2675
|
title: "\u9009\u62E9\u4F1A\u8BDD \u2014 {workspace}",
|
|
@@ -2669,6 +2803,11 @@ var zhCN = {
|
|
|
2669
2803
|
metasoServerError: "web_search: Metaso \u670D\u52A1\u5668\u9519\u8BEF\uFF08{status}\uFF09\u2014 \u7A0D\u540E\u91CD\u8BD5\uFF0C\u6216\u4F7F\u7528 /search-engine mojeek \u5207\u6362\u5F15\u64CE",
|
|
2670
2804
|
metasoParseError: "web_search: Metaso \u8FD4\u56DE\u65E0\u6CD5\u89E3\u6790\u7684\u54CD\u5E94\uFF08HTTP {status}\uFF09\u2014 \u7A0D\u540E\u91CD\u8BD5",
|
|
2671
2805
|
metasoApiError: "web_search: Metaso API \u9519\u8BEF\uFF08code {code}: {message}\uFF09\u2014 \u7A0D\u540E\u91CD\u8BD5",
|
|
2806
|
+
tavilyMissingKey: "web_search: Tavily \u540E\u7AEF\u9700\u8981 API \u5BC6\u94A5 \u2014 \u8BBE\u7F6E TAVILY_API_KEY \u73AF\u5883\u53D8\u91CF\uFF0C\u6216\u5728 ~/.reasonix/config.json \u4E2D\u914D\u7F6E `tavilyApiKey`\uFF1Bhttps://tavily.com \u6BCF\u6708 1000 \u6B21\u514D\u8D39",
|
|
2807
|
+
tavilyUnauthorized: "web_search: Tavily API \u5BC6\u94A5\u88AB\u62D2\u7EDD \u2014 \u68C0\u67E5 TAVILY_API_KEY\uFF0C\u6216\u5728 https://tavily.com \u83B7\u53D6\u5BC6\u94A5",
|
|
2808
|
+
tavilyRateLimit: "web_search: Tavily \u8BF7\u6C42\u9891\u7387\u9650\u5236\u6216\u6708\u5EA6\u914D\u989D\u7528\u5C3D \u2014 \u7B49\u5F85\u3001\u7528 /search-engine mojeek \u5207\u6362\u5F15\u64CE\uFF0C\u6216\u5347\u7EA7 Tavily \u8BA1\u5212",
|
|
2809
|
+
tavilyServerError: "web_search: Tavily \u670D\u52A1\u5668\u9519\u8BEF\uFF08{status}\uFF09\u2014 \u7A0D\u540E\u91CD\u8BD5\uFF0C\u6216\u4F7F\u7528 /search-engine mojeek \u5207\u6362\u5F15\u64CE",
|
|
2810
|
+
tavilyParseError: "web_search: Tavily \u8FD4\u56DE\u65E0\u6CD5\u89E3\u6790\u7684\u54CD\u5E94\uFF08HTTP {status}\uFF09\u2014 \u7A0D\u540E\u91CD\u8BD5",
|
|
2672
2811
|
fetchStatus: "web_fetch {status} for {url} \u2014 try: \u5728\u6D4F\u89C8\u5668\u4E2D\u786E\u8BA4\u8BE5 URL \u80FD\u5426\u8BBF\u95EE\uFF1B\u8BE5\u72B6\u6001\u7801\u8868\u660E\u76EE\u6807\u4E3B\u673A\u8FD4\u56DE\u4E86\u9519\u8BEF\u9875\u9762",
|
|
2673
2812
|
fetchRateLimit429: "web_fetch 429 for {url} \u2014 try: \u7B49\u5F85 10 \u79D2\u540E\u91CD\u8BD5\uFF1B\u76EE\u6807\u4E3B\u673A\u6B63\u5728\u5BF9\u8BE5\u5BA2\u6237\u7AEF\u8FDB\u884C\u9650\u6D41",
|
|
2674
2813
|
fetchForbidden403: "web_fetch 403 for {url} \u2014 try: \u76EE\u6807\u4E3B\u673A\u62D2\u7EDD\u8BE5\u5BA2\u6237\u7AEF\u8BBF\u95EE\uFF1B\u8BE5\u9875\u9762\u53EF\u80FD\u9700\u8981\u767B\u5F55\u6216\u5C4F\u853D\u722C\u866B \u2014 \u6539\u7528 web_search \u6458\u8981",
|
|
@@ -2778,7 +2917,7 @@ var zhCN = {
|
|
|
2778
2917
|
slow: "\u7F13\u6162 \xB7 {ms}ms",
|
|
2779
2918
|
verySlow: "\u975E\u5E38\u6162 \xB7 {ms}ms",
|
|
2780
2919
|
slowToast: "\u26A0 MCP `{name}` \u54CD\u5E94\u7F13\u6162 \xB7 P95 {seconds}s \xB7 \u6700\u8FD1 {sampleSize} \u6B21\u8C03\u7528",
|
|
2781
|
-
emptyHint: "\u2139 \u672A\u914D\u7F6E MCP \u670D\u52A1\u5668 \u2014\u2014 \u53EF\u5C1D\u8BD5\uFF1A`reasonix setup` \u91CD\u65B0\u9009\u62E9\uFF0C\u6216 `reasonix mcp install filesystem`"
|
|
2920
|
+
emptyHint: "\u2139 \u672A\u914D\u7F6E MCP \u670D\u52A1\u5668 \u2014\u2014 \u53EF\u5C1D\u8BD5\uFF1A`reasonix setup` \u91CD\u65B0\u9009\u62E9\uFF0C\u6216 `reasonix mcp install filesystem` \xB7 shell \u547D\u4EE4\u6309\u6B21\u5BA1\u6279\uFF08allow once / allow always / deny\uFF09\uFF0C\u65E0\u5168\u5C40\u653E\u884C"
|
|
2782
2921
|
},
|
|
2783
2922
|
denyContextInput: {
|
|
2784
2923
|
description: "\u544A\u8BC9\u6A21\u578B\u4F60\u4E3A\u4EC0\u4E48\u62D2\u7EDD\u4E86\u3002\u6A21\u578B\u4E0B\u6B21\u4F1A\u770B\u5230\u4F60\u7684\u7406\u7531\u4F5C\u4E3A\u989D\u5916\u7684\u4E0A\u4E0B\u6587\u3002"
|
|
@@ -2787,7 +2926,8 @@ var zhCN = {
|
|
|
2787
2926
|
scrollAbove: " \u2191 {scroll}/{max} \u884C",
|
|
2788
2927
|
scrollAbovePlural: " \u2191 {scroll}/{max} \u884C",
|
|
2789
2928
|
scrollMore: " \u2014 \u8FD8\u6709 {remaining} \u884C",
|
|
2790
|
-
scrollPgUp: " \xB7 PgUp/\u6EDA\u8F6E
|
|
2929
|
+
scrollPgUp: " \xB7 PgUp/\u6EDA\u8F6E",
|
|
2930
|
+
scrollCopy: " \xB7 /copy \u8FDB\u5165\u590D\u5236\u6A21\u5F0F"
|
|
2791
2931
|
},
|
|
2792
2932
|
slashArgPicker: {
|
|
2793
2933
|
noMatch: '\u6CA1\u6709\u5339\u914D "{partial}"',
|
|
@@ -2845,7 +2985,8 @@ var zhCN = {
|
|
|
2845
2985
|
reconnectDetail: "\u65AD\u5F00\u65E7\u8FDE\u63A5 \xB7 \u91CD\u65B0\u63E1\u624B \xB7 \u5217\u51FA\u5DE5\u5177",
|
|
2846
2986
|
disabledDetail: "\u901A\u8FC7 /mcp disable {name}",
|
|
2847
2987
|
failedSetupHint: "\u2192 \u8FD0\u884C `reasonix setup` \u79FB\u9664\u6B64\u6761\u76EE\uFF0C\u6216\u4FEE\u590D\u5E95\u5C42\u95EE\u9898\uFF08\u7F3A\u5C11 npm \u5305\u3001\u7F51\u7EDC\u7B49\uFF09\u3002",
|
|
2848
|
-
failedSetupConfigHint: "\u2192 \u8FD0\u884C `reasonix setup` \u4ECE\u5DF2\u4FDD\u5B58\u914D\u7F6E\u4E2D\u79FB\u9664\u635F\u574F\u7684\u6761\u76EE\u3002"
|
|
2988
|
+
failedSetupConfigHint: "\u2192 \u8FD0\u884C `reasonix setup` \u4ECE\u5DF2\u4FDD\u5B58\u914D\u7F6E\u4E2D\u79FB\u9664\u635F\u574F\u7684\u6761\u76EE\u3002",
|
|
2989
|
+
abortedHint: "\u5DF2\u4E2D\u65AD MCP \u542F\u52A8 \u2014 \u8DF3\u8FC7 {count} \u4E2A\u670D\u52A1\u5668\u3002\u95EE\u9898\u4FEE\u590D\u540E\u7528 /mcp \u91CD\u65B0\u8FDE\u63A5\u3002"
|
|
2849
2990
|
},
|
|
2850
2991
|
checkpointPicker: {
|
|
2851
2992
|
title: "\u6062\u590D\u68C0\u67E5\u70B9 \u2014 {workspace}",
|
|
@@ -2981,4 +3122,4 @@ export {
|
|
|
2981
3122
|
tObj,
|
|
2982
3123
|
t
|
|
2983
3124
|
};
|
|
2984
|
-
//# sourceMappingURL=chunk-
|
|
3125
|
+
//# sourceMappingURL=chunk-NRQ5UP5T.js.map
|