mindweave 2.5.1 → 3.0.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 (236) hide show
  1. package/README.md +50 -114
  2. package/dist/cli/App.js +580 -305
  3. package/dist/cli/App.js.map +1 -1
  4. package/dist/cli/analytics.js +27 -18
  5. package/dist/cli/analytics.js.map +1 -1
  6. package/dist/cli/attachments.js +34 -0
  7. package/dist/cli/attachments.js.map +1 -1
  8. package/dist/cli/bannerFit.js +70 -0
  9. package/dist/cli/bannerFit.js.map +1 -0
  10. package/dist/cli/bootstrap.js +41 -3
  11. package/dist/cli/bootstrap.js.map +1 -1
  12. package/dist/cli/commands.js +4 -1
  13. package/dist/cli/commands.js.map +1 -1
  14. package/dist/cli/components/ApprovalBox.js +3 -2
  15. package/dist/cli/components/ApprovalBox.js.map +1 -1
  16. package/dist/cli/components/BlockView.js +27 -6
  17. package/dist/cli/components/BlockView.js.map +1 -1
  18. package/dist/cli/components/FirstRunFrame.js +2 -1
  19. package/dist/cli/components/FirstRunFrame.js.map +1 -1
  20. package/dist/cli/components/KeyManager.js +5 -4
  21. package/dist/cli/components/KeyManager.js.map +1 -1
  22. package/dist/cli/components/KeySetup.js +29 -13
  23. package/dist/cli/components/KeySetup.js.map +1 -1
  24. package/dist/cli/components/MarathonBox.js +64 -0
  25. package/dist/cli/components/MarathonBox.js.map +1 -0
  26. package/dist/cli/components/McpMinitabs.js +8 -7
  27. package/dist/cli/components/McpMinitabs.js.map +1 -1
  28. package/dist/cli/components/Picker.js +4 -3
  29. package/dist/cli/components/Picker.js.map +1 -1
  30. package/dist/cli/components/PromptInput.js +47 -8
  31. package/dist/cli/components/PromptInput.js.map +1 -1
  32. package/dist/cli/components/PulseDot.js +42 -0
  33. package/dist/cli/components/PulseDot.js.map +1 -0
  34. package/dist/cli/components/SubagentView.js +9 -6
  35. package/dist/cli/components/SubagentView.js.map +1 -1
  36. package/dist/cli/components/TipLine.js +2 -1
  37. package/dist/cli/components/TipLine.js.map +1 -1
  38. package/dist/cli/components/ToolGroup.js +65 -49
  39. package/dist/cli/components/ToolGroup.js.map +1 -1
  40. package/dist/cli/components/ToolLine.js +20 -19
  41. package/dist/cli/components/ToolLine.js.map +1 -1
  42. package/dist/cli/components/TrustGate.js +2 -1
  43. package/dist/cli/components/TrustGate.js.map +1 -1
  44. package/dist/cli/components/minitabs.js +3 -2
  45. package/dist/cli/components/minitabs.js.map +1 -1
  46. package/dist/cli/desktopApp.js +45 -0
  47. package/dist/cli/desktopApp.js.map +1 -0
  48. package/dist/cli/help.js +1 -0
  49. package/dist/cli/help.js.map +1 -1
  50. package/dist/cli/inkOutputPatch.js +285 -0
  51. package/dist/cli/inkOutputPatch.js.map +1 -0
  52. package/dist/cli/inkSpeed.js +29 -0
  53. package/dist/cli/inkSpeed.js.map +1 -0
  54. package/dist/cli/inkSpeedLoader.js +47 -0
  55. package/dist/cli/inkSpeedLoader.js.map +1 -0
  56. package/dist/cli/inputText.js +30 -0
  57. package/dist/cli/inputText.js.map +1 -0
  58. package/dist/cli/keyManager.js +2 -1
  59. package/dist/cli/keyManager.js.map +1 -1
  60. package/dist/cli/keyPrefs.js +90 -0
  61. package/dist/cli/keyPrefs.js.map +1 -0
  62. package/dist/cli/keySetup.js +5 -2
  63. package/dist/cli/keySetup.js.map +1 -1
  64. package/dist/cli/marathonUi.js +113 -0
  65. package/dist/cli/marathonUi.js.map +1 -0
  66. package/dist/cli/markdown.js +63 -11
  67. package/dist/cli/markdown.js.map +1 -1
  68. package/dist/cli/modes.js +3 -3
  69. package/dist/cli/modes.js.map +1 -1
  70. package/dist/cli/prodEnv.js +43 -0
  71. package/dist/cli/prodEnv.js.map +1 -0
  72. package/dist/cli/revealPace.js +5 -5
  73. package/dist/cli/revealPace.js.map +1 -1
  74. package/dist/cli/revealQueue.js +120 -0
  75. package/dist/cli/revealQueue.js.map +1 -0
  76. package/dist/cli/startupArgs.js +1 -1
  77. package/dist/cli/theme.js +47 -0
  78. package/dist/cli/theme.js.map +1 -0
  79. package/dist/cli/toolDisplay.js +112 -18
  80. package/dist/cli/toolDisplay.js.map +1 -1
  81. package/dist/cli/transcript.js +1 -1
  82. package/dist/cli/transcript.js.map +1 -1
  83. package/dist/cli/virtualWindow.js +14 -2
  84. package/dist/cli/virtualWindow.js.map +1 -1
  85. package/dist/cli/wheelAccel.js +73 -0
  86. package/dist/cli/wheelAccel.js.map +1 -0
  87. package/dist/cli/widestLinePatch.js +48 -0
  88. package/dist/cli/widestLinePatch.js.map +1 -0
  89. package/dist/cli/workingVerb.js +88 -28
  90. package/dist/cli/workingVerb.js.map +1 -1
  91. package/dist/cli/wrap.js +1 -1
  92. package/dist/cli/wrap.js.map +1 -1
  93. package/dist/core/contextSettings.js +84 -0
  94. package/dist/core/contextSettings.js.map +1 -0
  95. package/dist/core/limitsView.js +40 -0
  96. package/dist/core/limitsView.js.map +1 -0
  97. package/dist/core/mcpServers.js +164 -0
  98. package/dist/core/mcpServers.js.map +1 -0
  99. package/dist/core/permissions.js +209 -0
  100. package/dist/core/permissions.js.map +1 -0
  101. package/dist/core/providerKeys.js +187 -0
  102. package/dist/core/providerKeys.js.map +1 -0
  103. package/dist/core/rulesSkills.js +142 -0
  104. package/dist/core/rulesSkills.js.map +1 -0
  105. package/dist/core/spendView.js +90 -0
  106. package/dist/core/spendView.js.map +1 -0
  107. package/dist/core/turnRunner.js +453 -60
  108. package/dist/core/turnRunner.js.map +1 -1
  109. package/dist/drivers/anthropic/client.js +24 -5
  110. package/dist/drivers/anthropic/client.js.map +1 -1
  111. package/dist/drivers/anthropic/manifest.js +15 -2
  112. package/dist/drivers/anthropic/manifest.js.map +1 -1
  113. package/dist/drivers/cerebras/manifest.js +6 -2
  114. package/dist/drivers/cerebras/manifest.js.map +1 -1
  115. package/dist/drivers/deepseek/manifest.js +12 -3
  116. package/dist/drivers/deepseek/manifest.js.map +1 -1
  117. package/dist/drivers/glm/manifest.js +3 -1
  118. package/dist/drivers/glm/manifest.js.map +1 -1
  119. package/dist/drivers/groq/manifest.js +5 -2
  120. package/dist/drivers/groq/manifest.js.map +1 -1
  121. package/dist/drivers/ollama/catalog.js +71 -0
  122. package/dist/drivers/ollama/catalog.js.map +1 -0
  123. package/dist/drivers/ollama/client.js +164 -0
  124. package/dist/drivers/ollama/client.js.map +1 -0
  125. package/dist/drivers/ollama/endpoint.js +42 -0
  126. package/dist/drivers/ollama/endpoint.js.map +1 -0
  127. package/dist/drivers/ollama/index.js +5 -0
  128. package/dist/drivers/ollama/index.js.map +1 -0
  129. package/dist/drivers/ollama/manifest.js +64 -0
  130. package/dist/drivers/ollama/manifest.js.map +1 -0
  131. package/dist/drivers/openai/client.js +10 -4
  132. package/dist/drivers/openai/client.js.map +1 -1
  133. package/dist/drivers/openai/manifest.js +46 -12
  134. package/dist/drivers/openai/manifest.js.map +1 -1
  135. package/dist/drivers/registry.js +11 -0
  136. package/dist/drivers/registry.js.map +1 -1
  137. package/dist/drivers/retryPolicy.js +26 -1
  138. package/dist/drivers/retryPolicy.js.map +1 -1
  139. package/dist/dynamo/auxModel.js +54 -0
  140. package/dist/dynamo/auxModel.js.map +1 -0
  141. package/dist/dynamo/engine.js +380 -99
  142. package/dist/dynamo/engine.js.map +1 -1
  143. package/dist/dynamo/guard.js +10 -0
  144. package/dist/dynamo/guard.js.map +1 -1
  145. package/dist/dynamo/liveMeter.js +25 -6
  146. package/dist/dynamo/liveMeter.js.map +1 -1
  147. package/dist/dynamo/marathon.js +409 -0
  148. package/dist/dynamo/marathon.js.map +1 -0
  149. package/dist/dynamo/marathonPrompt.js +45 -0
  150. package/dist/dynamo/marathonPrompt.js.map +1 -0
  151. package/dist/dynamo/model.js +6 -2
  152. package/dist/dynamo/model.js.map +1 -1
  153. package/dist/dynamo/toolBatches.js +58 -0
  154. package/dist/dynamo/toolBatches.js.map +1 -0
  155. package/dist/dynamo/usageLimits.js +446 -0
  156. package/dist/dynamo/usageLimits.js.map +1 -0
  157. package/dist/governor/freshness.js +10 -7
  158. package/dist/governor/freshness.js.map +1 -1
  159. package/dist/governor/index.js +76 -9
  160. package/dist/governor/index.js.map +1 -1
  161. package/dist/governor/write.js +43 -14
  162. package/dist/governor/write.js.map +1 -1
  163. package/dist/index.js +18 -151
  164. package/dist/index.js.map +1 -1
  165. package/dist/main.js +162 -0
  166. package/dist/main.js.map +1 -0
  167. package/dist/mcp/manager.js +18 -0
  168. package/dist/mcp/manager.js.map +1 -1
  169. package/dist/memory/allMetas.js +69 -0
  170. package/dist/memory/allMetas.js.map +1 -0
  171. package/dist/memory/compaction.js +69 -14
  172. package/dist/memory/compaction.js.map +1 -1
  173. package/dist/memory/earlier.js +15 -0
  174. package/dist/memory/earlier.js.map +1 -0
  175. package/dist/memory/profile.js +93 -0
  176. package/dist/memory/profile.js.map +1 -0
  177. package/dist/memory/rewind.js +262 -0
  178. package/dist/memory/rewind.js.map +1 -0
  179. package/dist/memory/session.js +42 -10
  180. package/dist/memory/session.js.map +1 -1
  181. package/dist/memory/sessionMemory.js +48 -13
  182. package/dist/memory/sessionMemory.js.map +1 -1
  183. package/dist/memory/sessionMemoryCompact.js +1 -1
  184. package/dist/memory/sessionMemoryCompact.js.map +1 -1
  185. package/dist/memory/sessionTitle.js +50 -0
  186. package/dist/memory/sessionTitle.js.map +1 -0
  187. package/dist/memory/store.js +42 -1
  188. package/dist/memory/store.js.map +1 -1
  189. package/dist/memory/types.js.map +1 -1
  190. package/dist/tools/askUser.js +14 -0
  191. package/dist/tools/askUser.js.map +1 -1
  192. package/dist/tools/backgroundShells.js +208 -5
  193. package/dist/tools/backgroundShells.js.map +1 -1
  194. package/dist/tools/browser.js +176 -0
  195. package/dist/tools/browser.js.map +1 -0
  196. package/dist/tools/cdp.js +165 -0
  197. package/dist/tools/cdp.js.map +1 -0
  198. package/dist/tools/checkpoints.js +208 -5
  199. package/dist/tools/checkpoints.js.map +1 -1
  200. package/dist/tools/deferredNative.js +2 -0
  201. package/dist/tools/deferredNative.js.map +1 -1
  202. package/dist/tools/exitPlan.js +4 -0
  203. package/dist/tools/exitPlan.js.map +1 -1
  204. package/dist/tools/hiddenDesktop.js +273 -0
  205. package/dist/tools/hiddenDesktop.js.map +1 -0
  206. package/dist/tools/listeningPorts.js +134 -0
  207. package/dist/tools/listeningPorts.js.map +1 -0
  208. package/dist/tools/mcpSearch.js +8 -0
  209. package/dist/tools/mcpSearch.js.map +1 -1
  210. package/dist/tools/mindweaveStatus.js +1 -1
  211. package/dist/tools/mindweaveStatus.js.map +1 -1
  212. package/dist/tools/registry.js +3 -0
  213. package/dist/tools/registry.js.map +1 -1
  214. package/dist/tools/runCommand.js +107 -6
  215. package/dist/tools/runCommand.js.map +1 -1
  216. package/dist/tools/screenshot.js +4 -6
  217. package/dist/tools/screenshot.js.map +1 -1
  218. package/dist/tools/screenshotWin.js +26 -9
  219. package/dist/tools/screenshotWin.js.map +1 -1
  220. package/dist/tools/stateCheckpoint.js +128 -0
  221. package/dist/tools/stateCheckpoint.js.map +1 -0
  222. package/dist/tools/todo.js +6 -0
  223. package/dist/tools/todo.js.map +1 -1
  224. package/dist/tools/ui.js +1295 -0
  225. package/dist/tools/ui.js.map +1 -0
  226. package/dist/tools/uiHide.js +356 -0
  227. package/dist/tools/uiHide.js.map +1 -0
  228. package/dist/tools/uiPage.js +861 -0
  229. package/dist/tools/uiPage.js.map +1 -0
  230. package/dist/tools/uiWin.js +506 -0
  231. package/dist/tools/uiWin.js.map +1 -0
  232. package/dist/tools/webFetch.js +32 -25
  233. package/dist/tools/webFetch.js.map +1 -1
  234. package/dist/tools/webSearch.js +12 -0
  235. package/dist/tools/webSearch.js.map +1 -1
  236. package/package.json +78 -78
@@ -47,6 +47,31 @@ const MAX_DELAY_MS = 8_000;
47
47
  * again, and retrying a malformed request three times just makes a bug slower to see.
48
48
  */
49
49
  const RETRYABLE_STATUSES = new Set([408, 425, 429, 500, 502, 503, 504, 529]);
50
+ /**
51
+ * Words a provider uses when the ACCOUNT has no money left, as opposed to being busy.
52
+ *
53
+ * Several providers answer both with a 429, and the two are opposites for a retry: a busy
54
+ * provider clears in seconds, an empty balance never does, so retrying it only delays the
55
+ * explanation by the whole backoff and sends requests that cannot succeed. Deliberately
56
+ * narrower than the list `providerError.ts` uses to word the notice: "exceeded your current
57
+ * quota" is also how some providers phrase a per-minute limit that DOES clear, and that one
58
+ * has to keep its retries.
59
+ */
60
+ const SPENT_BALANCE = [
61
+ "insufficient balance",
62
+ "insufficient_quota",
63
+ "credit balance",
64
+ "no resource package",
65
+ "payment required",
66
+ "purchase credits",
67
+ "please recharge",
68
+ ];
69
+ /** Does this failure say the account is out of money, so waiting cannot help (pure)? */
70
+ export function isSpentBalance(error) {
71
+ const e = error;
72
+ const text = `${typeof e?.detail === "string" ? e.detail : ""} ${typeof e?.message === "string" ? e.message : ""}`.toLowerCase();
73
+ return SPENT_BALANCE.some((phrase) => text.includes(phrase));
74
+ }
50
75
  /** Transport failures that are worth another go. */
51
76
  const RETRYABLE_NETWORK = [
52
77
  "econnreset",
@@ -72,7 +97,7 @@ export function isRetryable(error, status) {
72
97
  if (isAbortLike(error))
73
98
  return false;
74
99
  if (typeof status === "number")
75
- return RETRYABLE_STATUSES.has(status);
100
+ return RETRYABLE_STATUSES.has(status) && !isSpentBalance(error);
76
101
  const e = error;
77
102
  const text = [
78
103
  typeof e?.code === "string" ? e.code : "",
@@ -1 +1 @@
1
- {"version":3,"file":"retryPolicy.js","sourceRoot":"","sources":["../../src/drivers/retryPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retryPolicy.js","sourceRoot":"","sources":["../../src/drivers/retryPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /** Models that refused a call with reasoning off, for the life of this process. */
2
+ const reasoningRequired = new Set();
3
+ /** Models that refused a call with no tool schemas attached, for the life of this process. */
4
+ const needsTools = new Set();
5
+ /** Did the provider refuse because reasoning cannot be switched off? Pure. */
6
+ export function isReasoningRequired(error) {
7
+ const text = errorText(error);
8
+ return (/reasoning[^.]{0,40}\b(mandatory|required)\b/i.test(text) ||
9
+ /cannot\s+(be\s+)?disabl\w*[^.]{0,30}\b(reasoning|thinking)\b/i.test(text) ||
10
+ /\b(reasoning|thinking)\b[^.]{0,40}cannot\s+be\s+disabled/i.test(text));
11
+ }
12
+ /** Did the provider refuse because this model only serves tool-using ("agentic") calls? Pure. */
13
+ export function isAgenticOnlyRefusal(error) {
14
+ return /agentic\s+harness/i.test(errorText(error));
15
+ }
16
+ /** The settings a background call uses for this model. Pure apart from the memo. */
17
+ export function auxConfig(config, thinking = reasoningRequired.has(config.model)) {
18
+ return thinking ? { ...config, thinking: true, effort: "low" } : { ...config, thinking: false };
19
+ }
20
+ /**
21
+ * Run a background call, retrying once for whichever refusal the provider actually gave —
22
+ * reasoning forced on, or tool schemas attached — and once more if BOTH turn out to be
23
+ * needed. `run`'s second argument says whether to attach real tool schemas this attempt;
24
+ * building them from the tool registry is the caller's job.
25
+ */
26
+ export async function withAuxModel(config, run) {
27
+ return attempt(config, run, reasoningRequired.has(config.model), needsTools.has(config.model));
28
+ }
29
+ async function attempt(config, run, thinking, tools) {
30
+ try {
31
+ return await run(auxConfig(config, thinking), tools);
32
+ }
33
+ catch (error) {
34
+ if (!thinking && isReasoningRequired(error)) {
35
+ reasoningRequired.add(config.model);
36
+ return attempt(config, run, true, tools);
37
+ }
38
+ if (!tools && isAgenticOnlyRefusal(error)) {
39
+ needsTools.add(config.model);
40
+ return attempt(config, run, thinking, true);
41
+ }
42
+ throw error;
43
+ }
44
+ }
45
+ function errorText(error) {
46
+ if (!error)
47
+ return "";
48
+ if (typeof error === "string")
49
+ return error;
50
+ const e = error;
51
+ const parts = [e.message, e.detail, e.body, e.error].map((p) => (typeof p === "string" ? p : p ? JSON.stringify(p) : ""));
52
+ return parts.join(" ");
53
+ }
54
+ //# sourceMappingURL=auxModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auxModel.js","sourceRoot":"","sources":["../../src/dynamo/auxModel.ts"],"names":[],"mappings":"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"}