reasonix 0.46.0 → 0.46.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.
Files changed (147) hide show
  1. package/README.md +3 -0
  2. package/README.zh-CN.md +3 -0
  3. package/dashboard/dist/app.js +76 -6
  4. package/dashboard/dist/app.js.map +1 -1
  5. package/dist/cli/{acp-LGBLHBKY.js → acp-LKJU5DZX.js} +19 -19
  6. package/dist/cli/chat-W7LAWEN6.js +51 -0
  7. package/dist/cli/chunk-2425HK6U.js +0 -0
  8. package/dist/cli/chunk-25T6CVUP.js +0 -0
  9. package/dist/cli/{chunk-5I2C4JEO.js → chunk-2AASOSD5.js} +6 -6
  10. package/dist/cli/{chunk-5I2C4JEO.js.map → chunk-2AASOSD5.js.map} +1 -1
  11. package/dist/cli/chunk-2UQP6H6T.js +0 -0
  12. package/dist/cli/{chunk-HVUZWNSP.js → chunk-3AAG2CUT.js} +2 -2
  13. package/dist/cli/chunk-5QCB62C4.js +0 -0
  14. package/dist/cli/chunk-6OWJV3YW.js +0 -0
  15. package/dist/cli/{chunk-IJ7JA32V.js → chunk-6VANO7KB.js} +44 -8
  16. package/dist/cli/chunk-6VANO7KB.js.map +1 -0
  17. package/dist/cli/{chunk-LIR2HBQH.js → chunk-7LOJS3LV.js} +2 -2
  18. package/dist/cli/{chunk-I4L2GTSE.js → chunk-7SGGXNB2.js} +2 -2
  19. package/dist/cli/{chunk-CBIQWMS6.js → chunk-7YW6TPXK.js} +7 -7
  20. package/dist/cli/{chunk-A3TSSDS2.js → chunk-C72TNHDE.js} +2 -2
  21. package/dist/cli/chunk-CXVWUPA3.js +0 -0
  22. package/dist/cli/{chunk-AVFXO2EZ.js → chunk-DGA5QYFM.js} +107 -4
  23. package/dist/cli/chunk-DGA5QYFM.js.map +1 -0
  24. package/dist/cli/{chunk-JNAQYELD.js → chunk-DHRVZJ2D.js} +2 -2
  25. package/dist/cli/{chunk-5ACMUK4Q.js → chunk-E7TAHQ4A.js} +2 -1
  26. package/dist/cli/{chunk-C53JQES5.js → chunk-EAOL43HB.js} +3 -3
  27. package/dist/cli/chunk-FEZK652I.js +0 -0
  28. package/dist/cli/chunk-HNXDZGC6.js +0 -0
  29. package/dist/cli/{chunk-QJDDIK3Z.js → chunk-IYQ325V7.js} +2 -2
  30. package/dist/cli/chunk-J5XJHLWM.js +0 -0
  31. package/dist/cli/{chunk-4CTDEJUF.js → chunk-JLQDNLZF.js} +2 -2
  32. package/dist/cli/chunk-JMBMLOBP.js +0 -0
  33. package/dist/cli/{chunk-RDRC3XDT.js → chunk-JVFEJAJX.js} +2 -2
  34. package/dist/cli/{chunk-GTZTQNX5.js → chunk-JVQT5IYP.js} +7 -7
  35. package/dist/cli/{chunk-YY227BIQ.js → chunk-K3AIFMI6.js} +2 -2
  36. package/dist/cli/{chunk-ZZYBBX5N.js → chunk-M4E5JK6S.js} +23 -9
  37. package/dist/cli/chunk-M4E5JK6S.js.map +1 -0
  38. package/dist/cli/{chunk-V26WPN3J.js → chunk-MIIZJD5O.js} +28 -1
  39. package/dist/cli/chunk-MIIZJD5O.js.map +1 -0
  40. package/dist/cli/{chunk-4HCP2UQW.js → chunk-NCBP5D6E.js} +2 -2
  41. package/dist/cli/chunk-PLHAZOLZ.js +0 -0
  42. package/dist/cli/{chunk-HKWSPKMU.js → chunk-R2ASNSEO.js} +8 -8
  43. package/dist/cli/chunk-S4XVGLRW.js +0 -0
  44. package/dist/cli/{chunk-W7YGWUWU.js → chunk-SE7C5ZSI.js} +3 -3
  45. package/dist/cli/{chunk-KQU2TYIL.js → chunk-SPXN5JIT.js} +1128 -675
  46. package/dist/cli/chunk-SPXN5JIT.js.map +1 -0
  47. package/dist/cli/chunk-SZ5XES2N.js +0 -0
  48. package/dist/cli/{chunk-WK3UFQY3.js → chunk-TDSBASOF.js} +2 -2
  49. package/dist/cli/chunk-TEUDEGX2.js +0 -0
  50. package/dist/cli/chunk-TUK7OWJA.js +0 -0
  51. package/dist/cli/{chunk-XSU4QVFW.js → chunk-WQ6ZRDQM.js} +12 -3
  52. package/dist/cli/chunk-WQ6ZRDQM.js.map +1 -0
  53. package/dist/cli/{chunk-R3CTO2HM.js → chunk-WRONKNIH.js} +2 -2
  54. package/dist/cli/chunk-X53B3JIX.js +0 -0
  55. package/dist/cli/chunk-XJXDHAES.js +0 -0
  56. package/dist/cli/{chunk-MJ6W5UN3.js → chunk-XPAUNFOL.js} +2 -2
  57. package/dist/cli/chunk-XXC2BYTV.js +0 -0
  58. package/dist/cli/{chunk-NVURFF27.js → chunk-YRLC2EDF.js} +2 -2
  59. package/dist/cli/{chunk-WL6SNQ5T.js → chunk-ZOQHVQON.js} +9 -93
  60. package/dist/cli/chunk-ZOQHVQON.js.map +1 -0
  61. package/dist/cli/chunk-ZZM6QJ4W.js +0 -0
  62. package/dist/cli/{code-DFHSASJ4.js → code-2JIHL5M2.js} +29 -30
  63. package/dist/cli/code-2JIHL5M2.js.map +1 -0
  64. package/dist/cli/{commands-OCU42XG4.js → commands-OPT5AJNH.js} +4 -4
  65. package/dist/cli/{commit-XCQIQCYG.js → commit-KA37H6GM.js} +3 -3
  66. package/dist/cli/{desktop-ZCUG7LMF.js → desktop-5ONTRU3C.js} +20 -20
  67. package/dist/cli/devtools-HW3WDT3Q.js +0 -0
  68. package/dist/cli/{diff-66B2KWOJ.js → diff-SOIA7AKH.js} +8 -8
  69. package/dist/cli/{doctor-Y73CPPRZ.js → doctor-RCUP4XRV.js} +9 -9
  70. package/dist/cli/{events-NGZ2OJYH.js → events-6KHITNX4.js} +3 -3
  71. package/dist/cli/index.js +39 -88
  72. package/dist/cli/index.js.map +1 -1
  73. package/dist/cli/{mcp-MPVGBBJF.js → mcp-JP5OWD6R.js} +2 -2
  74. package/dist/cli/{mcp-browse-4XOTC3FJ.js → mcp-browse-ONCJJPJN.js} +2 -2
  75. package/dist/cli/{mcp-inspect-CEMGKKAH.js → mcp-inspect-TPLHW5JA.js} +4 -4
  76. package/dist/cli/{prompt-2D7ID24X.js → prompt-RJDNCQAP.js} +3 -3
  77. package/dist/cli/{prune-sessions-OJEYYLHY.js → prune-sessions-MKEATRVL.js} +2 -2
  78. package/dist/cli/{replay-AKYQNAQJ.js → replay-4NILJG4U.js} +8 -8
  79. package/dist/cli/{run-5DPQFSP6.js → run-WFGXB4SB.js} +17 -18
  80. package/dist/cli/run-WFGXB4SB.js.map +1 -0
  81. package/dist/cli/{server-TQ2IHYQJ.js → server-5VFQP3PV.js} +13 -13
  82. package/dist/cli/{sessions-KY54NG45.js → sessions-5XDJDALO.js} +28 -14
  83. package/dist/cli/sessions-5XDJDALO.js.map +1 -0
  84. package/dist/cli/{setup-XPIOZWS7.js → setup-F6XSWLRA.js} +7 -7
  85. package/dist/cli/setup-F6XSWLRA.js.map +1 -0
  86. package/dist/cli/{stats-X2VTWKNS.js → stats-ALHBZICE.js} +6 -6
  87. package/dist/cli/update-6ITLPRDV.js +0 -0
  88. package/dist/cli/{version-7O6A5T7Q.js → version-JVRAHBMM.js} +14 -14
  89. package/dist/index.d.ts +23 -13
  90. package/dist/index.js +1112 -1090
  91. package/dist/index.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/cli/.-3G6VX5S7.js +0 -327
  94. package/dist/cli/.-6YRPB2C7.js +0 -329
  95. package/dist/cli/.-EYSVINK3.js +0 -317
  96. package/dist/cli/chat-ECK5ZGMV.js +0 -51
  97. package/dist/cli/chunk-AVFXO2EZ.js.map +0 -1
  98. package/dist/cli/chunk-IJ7JA32V.js.map +0 -1
  99. package/dist/cli/chunk-KQU2TYIL.js.map +0 -1
  100. package/dist/cli/chunk-V26WPN3J.js.map +0 -1
  101. package/dist/cli/chunk-WL6SNQ5T.js.map +0 -1
  102. package/dist/cli/chunk-XSU4QVFW.js.map +0 -1
  103. package/dist/cli/chunk-ZZYBBX5N.js.map +0 -1
  104. package/dist/cli/code-DFHSASJ4.js.map +0 -1
  105. package/dist/cli/doctor-Y73CPPRZ.js.map +0 -1
  106. package/dist/cli/prompt-2D7ID24X.js.map +0 -1
  107. package/dist/cli/run-5DPQFSP6.js.map +0 -1
  108. package/dist/cli/sessions-KY54NG45.js.map +0 -1
  109. package/dist/cli/setup-XPIOZWS7.js.map +0 -1
  110. package/dist/cli/stats-X2VTWKNS.js.map +0 -1
  111. /package/dist/cli/{acp-LGBLHBKY.js.map → acp-LKJU5DZX.js.map} +0 -0
  112. /package/dist/cli/{.-3G6VX5S7.js.map → chat-W7LAWEN6.js.map} +0 -0
  113. /package/dist/cli/{chunk-HVUZWNSP.js.map → chunk-3AAG2CUT.js.map} +0 -0
  114. /package/dist/cli/{chunk-LIR2HBQH.js.map → chunk-7LOJS3LV.js.map} +0 -0
  115. /package/dist/cli/{chunk-I4L2GTSE.js.map → chunk-7SGGXNB2.js.map} +0 -0
  116. /package/dist/cli/{chunk-CBIQWMS6.js.map → chunk-7YW6TPXK.js.map} +0 -0
  117. /package/dist/cli/{chunk-A3TSSDS2.js.map → chunk-C72TNHDE.js.map} +0 -0
  118. /package/dist/cli/{chunk-JNAQYELD.js.map → chunk-DHRVZJ2D.js.map} +0 -0
  119. /package/dist/cli/{chunk-5ACMUK4Q.js.map → chunk-E7TAHQ4A.js.map} +0 -0
  120. /package/dist/cli/{chunk-C53JQES5.js.map → chunk-EAOL43HB.js.map} +0 -0
  121. /package/dist/cli/{chunk-QJDDIK3Z.js.map → chunk-IYQ325V7.js.map} +0 -0
  122. /package/dist/cli/{chunk-4CTDEJUF.js.map → chunk-JLQDNLZF.js.map} +0 -0
  123. /package/dist/cli/{chunk-RDRC3XDT.js.map → chunk-JVFEJAJX.js.map} +0 -0
  124. /package/dist/cli/{chunk-GTZTQNX5.js.map → chunk-JVQT5IYP.js.map} +0 -0
  125. /package/dist/cli/{chunk-YY227BIQ.js.map → chunk-K3AIFMI6.js.map} +0 -0
  126. /package/dist/cli/{chunk-4HCP2UQW.js.map → chunk-NCBP5D6E.js.map} +0 -0
  127. /package/dist/cli/{chunk-HKWSPKMU.js.map → chunk-R2ASNSEO.js.map} +0 -0
  128. /package/dist/cli/{chunk-W7YGWUWU.js.map → chunk-SE7C5ZSI.js.map} +0 -0
  129. /package/dist/cli/{chunk-WK3UFQY3.js.map → chunk-TDSBASOF.js.map} +0 -0
  130. /package/dist/cli/{chunk-R3CTO2HM.js.map → chunk-WRONKNIH.js.map} +0 -0
  131. /package/dist/cli/{chunk-MJ6W5UN3.js.map → chunk-XPAUNFOL.js.map} +0 -0
  132. /package/dist/cli/{chunk-NVURFF27.js.map → chunk-YRLC2EDF.js.map} +0 -0
  133. /package/dist/cli/{commands-OCU42XG4.js.map → commands-OPT5AJNH.js.map} +0 -0
  134. /package/dist/cli/{commit-XCQIQCYG.js.map → commit-KA37H6GM.js.map} +0 -0
  135. /package/dist/cli/{desktop-ZCUG7LMF.js.map → desktop-5ONTRU3C.js.map} +0 -0
  136. /package/dist/cli/{diff-66B2KWOJ.js.map → diff-SOIA7AKH.js.map} +0 -0
  137. /package/dist/cli/{.-6YRPB2C7.js.map → doctor-RCUP4XRV.js.map} +0 -0
  138. /package/dist/cli/{events-NGZ2OJYH.js.map → events-6KHITNX4.js.map} +0 -0
  139. /package/dist/cli/{mcp-MPVGBBJF.js.map → mcp-JP5OWD6R.js.map} +0 -0
  140. /package/dist/cli/{mcp-browse-4XOTC3FJ.js.map → mcp-browse-ONCJJPJN.js.map} +0 -0
  141. /package/dist/cli/{mcp-inspect-CEMGKKAH.js.map → mcp-inspect-TPLHW5JA.js.map} +0 -0
  142. /package/dist/cli/{.-EYSVINK3.js.map → prompt-RJDNCQAP.js.map} +0 -0
  143. /package/dist/cli/{prune-sessions-OJEYYLHY.js.map → prune-sessions-MKEATRVL.js.map} +0 -0
  144. /package/dist/cli/{replay-AKYQNAQJ.js.map → replay-4NILJG4U.js.map} +0 -0
  145. /package/dist/cli/{server-TQ2IHYQJ.js.map → server-5VFQP3PV.js.map} +0 -0
  146. /package/dist/cli/{chat-ECK5ZGMV.js.map → stats-ALHBZICE.js.map} +0 -0
  147. /package/dist/cli/{version-7O6A5T7Q.js.map → version-JVRAHBMM.js.map} +0 -0
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; if (typeof globalThis.require === 'undefined') { globalThis.require = __cr(import.meta.url); }
3
- import "./chunk-WL6SNQ5T.js";
4
- import "./chunk-WK3UFQY3.js";
5
- import "./chunk-C53JQES5.js";
6
- import "./chunk-XSU4QVFW.js";
7
- import "./chunk-JNAQYELD.js";
3
+ import "./chunk-ZOQHVQON.js";
4
+ import "./chunk-TDSBASOF.js";
5
+ import "./chunk-EAOL43HB.js";
6
+ import "./chunk-WQ6ZRDQM.js";
7
+ import "./chunk-DHRVZJ2D.js";
8
8
  import "./chunk-6OWJV3YW.js";
9
- import "./chunk-V26WPN3J.js";
9
+ import "./chunk-MIIZJD5O.js";
10
10
  import "./chunk-25T6CVUP.js";
11
11
  import "./chunk-2UQP6H6T.js";
12
- import "./chunk-RDRC3XDT.js";
12
+ import "./chunk-JVFEJAJX.js";
13
13
  import "./chunk-TEUDEGX2.js";
14
- import "./chunk-A3TSSDS2.js";
14
+ import "./chunk-C72TNHDE.js";
15
15
  import "./chunk-S4XVGLRW.js";
16
- import "./chunk-5ACMUK4Q.js";
17
- import "./chunk-R3CTO2HM.js";
18
- import "./chunk-ZZYBBX5N.js";
19
- import "./chunk-IJ7JA32V.js";
20
- import "./chunk-AVFXO2EZ.js";
16
+ import "./chunk-E7TAHQ4A.js";
17
+ import "./chunk-WRONKNIH.js";
18
+ import "./chunk-M4E5JK6S.js";
19
+ import "./chunk-6VANO7KB.js";
20
+ import "./chunk-DGA5QYFM.js";
21
21
  import {
22
22
  VERSION
23
23
  } from "./chunk-XXC2BYTV.js";
@@ -30,4 +30,4 @@ function versionCommand() {
30
30
  export {
31
31
  versionCommand
32
32
  };
33
- //# sourceMappingURL=version-7O6A5T7Q.js.map
33
+ //# sourceMappingURL=version-JVRAHBMM.js.map
package/dist/index.d.ts CHANGED
@@ -136,6 +136,9 @@ interface DeepSeekClientOptions {
136
136
  baseUrl?: string;
137
137
  timeoutMs?: number;
138
138
  fetch?: typeof fetch;
139
+ rateLimit?: {
140
+ rpm?: number;
141
+ };
139
142
  /** Retry configuration. Pass `{ maxAttempts: 1 }` to disable retries. */
140
143
  retry?: RetryOptions;
141
144
  }
@@ -145,7 +148,10 @@ declare class DeepSeekClient {
145
148
  readonly timeoutMs: number;
146
149
  readonly retry: RetryOptions;
147
150
  private readonly _fetch;
151
+ private readonly minChatIntervalMs;
152
+ private nextChatRequestAt;
148
153
  constructor(opts?: DeepSeekClientOptions);
154
+ private waitForChatRateLimit;
149
155
  private buildPayload;
150
156
  /** Returns null on failure so callers can degrade — session must keep working without balance UI. */
151
157
  getBalance(opts?: {
@@ -546,11 +552,11 @@ declare class ToolCallRepair {
546
552
  };
547
553
  }
548
554
 
549
- declare function costUsd(model: string, usage: Usage): number;
555
+ declare function costUsd(model: string, usage: Usage, path?: string): number;
550
556
  /** Input-side cost only (prompt, cache hit + miss). Used for the panel breakdown. */
551
- declare function inputCostUsd(model: string, usage: Usage): number;
557
+ declare function inputCostUsd(model: string, usage: Usage, path?: string): number;
552
558
  /** Output-side cost only (completion tokens). Used for the panel breakdown. */
553
- declare function outputCostUsd(model: string, usage: Usage): number;
559
+ declare function outputCostUsd(model: string, usage: Usage, path?: string): number;
554
560
  declare function claudeEquivalentCost(usage: Usage): number;
555
561
  interface TurnStats {
556
562
  turn: number;
@@ -764,8 +770,6 @@ interface CacheFirstLoopOptions {
764
770
  autoEscalate?: boolean;
765
771
  /** Soft USD cap — warns at 80%, refuses next turn at 100%. Opt-in (default no cap). */
766
772
  budgetUsd?: number;
767
- /** Per-turn repair/error signal count required to escalate flash→pro. Defaults to FAILURE_ESCALATION_THRESHOLD. Out-of-range values warn + fall back. */
768
- failureThreshold?: number;
769
773
  session?: string;
770
774
  /** PreToolUse + PostToolUse only — UserPromptSubmit / Stop live at the App boundary. */
771
775
  hooks?: ResolvedHook[];
@@ -781,7 +785,7 @@ interface ReconfigurableOptions {
781
785
  stream?: boolean;
782
786
  /** V4 thinking mode only; deepseek-chat ignores. */
783
787
  reasoningEffort?: "high" | "max";
784
- /** `false` pins to `model` — kills both NEEDS_PRO marker scavenge and failure-count threshold. */
788
+ /** `false` pins to `model` — disables the model-marker scavenge that flips flash→pro. */
785
789
  autoEscalate?: boolean;
786
790
  }
787
791
  declare class CacheFirstLoop {
@@ -824,7 +828,6 @@ declare class CacheFirstLoop {
824
828
  get steerConsumed(): boolean;
825
829
  private _proArmedForNextTurn;
826
830
  private _escalateThisTurn;
827
- private readonly _turnFailures;
828
831
  private _turnSelfCorrected;
829
832
  private _foldedThisTurn;
830
833
  private context;
@@ -871,8 +874,6 @@ declare class CacheFirstLoop {
871
874
  /** UI surface — model id of the call about to run (or running) right now, including escalation. */
872
875
  get currentCallModel(): string;
873
876
  private modelForCurrentCall;
874
- /** Returns true ONLY on the tipping call — caller surfaces a one-shot warning. */
875
- private noteToolFailureSignal;
876
877
  /** A call counts as mutating when its definition reports `readOnly !== true` and any dynamic `readOnlyCheck` doesn't override that for these args. */
877
878
  private isMutating;
878
879
  private runOneToolCall;
@@ -1116,6 +1117,16 @@ interface QQBotConfig {
1116
1117
  appSecret?: string;
1117
1118
  sandbox?: boolean;
1118
1119
  enabled?: boolean;
1120
+ ownerOpenId?: string;
1121
+ allowlist?: string[];
1122
+ }
1123
+ interface PricingOverride {
1124
+ inputCacheHit?: number;
1125
+ inputCacheMiss?: number;
1126
+ output?: number;
1127
+ }
1128
+ interface RateLimitConfig {
1129
+ rpm?: number;
1119
1130
  }
1120
1131
  interface ReasonixConfig {
1121
1132
  apiKey?: string;
@@ -1162,10 +1173,6 @@ interface ReasonixConfig {
1162
1173
  /** Stable URL token (#968). If unset, a fresh token is minted each boot. Min 16 chars enforced at load time. */
1163
1174
  token?: string;
1164
1175
  };
1165
- escalation?: {
1166
- /** Per-turn repair/error signal count required to escalate flash→pro. Defaults to 3. Out-of-range → default. */
1167
- failureThreshold?: number;
1168
- };
1169
1176
  /** Per-field visibility toggles for the bottom status row. All default to true (visible). */
1170
1177
  statusBar?: {
1171
1178
  showBalance?: boolean;
@@ -1200,6 +1207,8 @@ interface ReasonixConfig {
1200
1207
  memory?: {
1201
1208
  customTypes?: CustomMemoryTypeConfig[];
1202
1209
  };
1210
+ pricingOverride?: Record<string, PricingOverride>;
1211
+ rateLimit?: RateLimitConfig;
1203
1212
  /** QQ Bot configuration */
1204
1213
  qq?: QQBotConfig;
1205
1214
  }
@@ -2064,6 +2073,7 @@ declare class StdioTransport implements McpTransport {
2064
2073
  close(): Promise<void>;
2065
2074
  /** Parse incoming stdout chunks into NDJSON messages. */
2066
2075
  private onStdout;
2076
+ private onStderr;
2067
2077
  private onClose;
2068
2078
  private push;
2069
2079
  }