mindweave 2.5.0 → 3.0.0
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 +81 -145
- package/dist/cli/App.js +579 -304
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/analytics.js +27 -18
- package/dist/cli/analytics.js.map +1 -1
- package/dist/cli/attachments.js +34 -0
- package/dist/cli/attachments.js.map +1 -1
- package/dist/cli/bannerFit.js +70 -0
- package/dist/cli/bannerFit.js.map +1 -0
- package/dist/cli/bootstrap.js +41 -3
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/commands.js +4 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/components/ApprovalBox.js +3 -2
- package/dist/cli/components/ApprovalBox.js.map +1 -1
- package/dist/cli/components/BlockView.js +27 -6
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/FirstRunFrame.js +2 -1
- package/dist/cli/components/FirstRunFrame.js.map +1 -1
- package/dist/cli/components/KeyManager.js +5 -4
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/KeySetup.js +29 -13
- package/dist/cli/components/KeySetup.js.map +1 -1
- package/dist/cli/components/MarathonBox.js +64 -0
- package/dist/cli/components/MarathonBox.js.map +1 -0
- package/dist/cli/components/McpMinitabs.js +8 -7
- package/dist/cli/components/McpMinitabs.js.map +1 -1
- package/dist/cli/components/Picker.js +4 -3
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/components/PromptInput.js +47 -8
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/PulseDot.js +42 -0
- package/dist/cli/components/PulseDot.js.map +1 -0
- package/dist/cli/components/SubagentView.js +9 -6
- package/dist/cli/components/SubagentView.js.map +1 -1
- package/dist/cli/components/TipLine.js +2 -1
- package/dist/cli/components/TipLine.js.map +1 -1
- package/dist/cli/components/ToolGroup.js +65 -49
- package/dist/cli/components/ToolGroup.js.map +1 -1
- package/dist/cli/components/ToolLine.js +20 -19
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/TrustGate.js +2 -1
- package/dist/cli/components/TrustGate.js.map +1 -1
- package/dist/cli/components/minitabs.js +3 -2
- package/dist/cli/components/minitabs.js.map +1 -1
- package/dist/cli/desktopApp.js +45 -0
- package/dist/cli/desktopApp.js.map +1 -0
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inkOutputPatch.js +285 -0
- package/dist/cli/inkOutputPatch.js.map +1 -0
- package/dist/cli/inkSpeed.js +29 -0
- package/dist/cli/inkSpeed.js.map +1 -0
- package/dist/cli/inkSpeedLoader.js +47 -0
- package/dist/cli/inkSpeedLoader.js.map +1 -0
- package/dist/cli/inputText.js +30 -0
- package/dist/cli/inputText.js.map +1 -0
- package/dist/cli/keyManager.js +2 -1
- package/dist/cli/keyManager.js.map +1 -1
- package/dist/cli/keyPrefs.js +90 -0
- package/dist/cli/keyPrefs.js.map +1 -0
- package/dist/cli/keySetup.js +5 -2
- package/dist/cli/keySetup.js.map +1 -1
- package/dist/cli/marathonUi.js +113 -0
- package/dist/cli/marathonUi.js.map +1 -0
- package/dist/cli/markdown.js +63 -11
- package/dist/cli/markdown.js.map +1 -1
- package/dist/cli/modes.js +3 -3
- package/dist/cli/modes.js.map +1 -1
- package/dist/cli/prodEnv.js +43 -0
- package/dist/cli/prodEnv.js.map +1 -0
- package/dist/cli/revealPace.js +5 -5
- package/dist/cli/revealPace.js.map +1 -1
- package/dist/cli/revealQueue.js +120 -0
- package/dist/cli/revealQueue.js.map +1 -0
- package/dist/cli/theme.js +47 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/cli/toolDisplay.js +112 -18
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +1 -1
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/virtualWindow.js +14 -2
- package/dist/cli/virtualWindow.js.map +1 -1
- package/dist/cli/wheelAccel.js +73 -0
- package/dist/cli/wheelAccel.js.map +1 -0
- package/dist/cli/widestLinePatch.js +48 -0
- package/dist/cli/widestLinePatch.js.map +1 -0
- package/dist/cli/workingVerb.js +88 -28
- package/dist/cli/workingVerb.js.map +1 -1
- package/dist/cli/wrap.js +1 -1
- package/dist/cli/wrap.js.map +1 -1
- package/dist/core/contextSettings.js +84 -0
- package/dist/core/contextSettings.js.map +1 -0
- package/dist/core/limitsView.js +40 -0
- package/dist/core/limitsView.js.map +1 -0
- package/dist/core/mcpServers.js +164 -0
- package/dist/core/mcpServers.js.map +1 -0
- package/dist/core/permissions.js +209 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/providerKeys.js +187 -0
- package/dist/core/providerKeys.js.map +1 -0
- package/dist/core/rulesSkills.js +142 -0
- package/dist/core/rulesSkills.js.map +1 -0
- package/dist/core/spendView.js +90 -0
- package/dist/core/spendView.js.map +1 -0
- package/dist/core/turnRunner.js +759 -0
- package/dist/core/turnRunner.js.map +1 -0
- package/dist/drivers/anthropic/client.js +101 -26
- package/dist/drivers/anthropic/client.js.map +1 -1
- package/dist/drivers/anthropic/manifest.js +43 -13
- package/dist/drivers/anthropic/manifest.js.map +1 -1
- package/dist/drivers/cerebras/manifest.js +13 -3
- package/dist/drivers/cerebras/manifest.js.map +1 -1
- package/dist/drivers/deepseek/manifest.js +24 -34
- package/dist/drivers/deepseek/manifest.js.map +1 -1
- package/dist/drivers/glm/manifest.js +21 -6
- package/dist/drivers/glm/manifest.js.map +1 -1
- package/dist/drivers/groq/manifest.js +5 -2
- package/dist/drivers/groq/manifest.js.map +1 -1
- package/dist/drivers/kimi/manifest.js +13 -10
- package/dist/drivers/kimi/manifest.js.map +1 -1
- package/dist/drivers/meta/manifest.js +21 -16
- package/dist/drivers/meta/manifest.js.map +1 -1
- package/dist/drivers/minimax/manifest.js +15 -12
- package/dist/drivers/minimax/manifest.js.map +1 -1
- package/dist/drivers/ollama/catalog.js +71 -0
- package/dist/drivers/ollama/catalog.js.map +1 -0
- package/dist/drivers/ollama/client.js +164 -0
- package/dist/drivers/ollama/client.js.map +1 -0
- package/dist/drivers/ollama/endpoint.js +42 -0
- package/dist/drivers/ollama/endpoint.js.map +1 -0
- package/dist/drivers/ollama/index.js +5 -0
- package/dist/drivers/ollama/index.js.map +1 -0
- package/dist/drivers/ollama/manifest.js +64 -0
- package/dist/drivers/ollama/manifest.js.map +1 -0
- package/dist/drivers/openai/client.js +10 -4
- package/dist/drivers/openai/client.js.map +1 -1
- package/dist/drivers/openai/manifest.js +69 -18
- package/dist/drivers/openai/manifest.js.map +1 -1
- package/dist/drivers/qwen/manifest.js +19 -6
- package/dist/drivers/qwen/manifest.js.map +1 -1
- package/dist/drivers/registry.js +11 -0
- package/dist/drivers/registry.js.map +1 -1
- package/dist/drivers/retryPolicy.js +26 -1
- package/dist/drivers/retryPolicy.js.map +1 -1
- package/dist/drivers/xai/client.js +12 -10
- package/dist/drivers/xai/client.js.map +1 -1
- package/dist/drivers/xai/manifest.js +62 -25
- package/dist/drivers/xai/manifest.js.map +1 -1
- package/dist/dynamo/auxModel.js +54 -0
- package/dist/dynamo/auxModel.js.map +1 -0
- package/dist/dynamo/engine.js +407 -99
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/guard.js +10 -0
- package/dist/dynamo/guard.js.map +1 -1
- package/dist/dynamo/liveMeter.js +25 -6
- package/dist/dynamo/liveMeter.js.map +1 -1
- package/dist/dynamo/marathon.js +409 -0
- package/dist/dynamo/marathon.js.map +1 -0
- package/dist/dynamo/marathonPrompt.js +45 -0
- package/dist/dynamo/marathonPrompt.js.map +1 -0
- package/dist/dynamo/model.js +6 -2
- package/dist/dynamo/model.js.map +1 -1
- package/dist/dynamo/toolBatches.js +58 -0
- package/dist/dynamo/toolBatches.js.map +1 -0
- package/dist/dynamo/usageLimits.js +446 -0
- package/dist/dynamo/usageLimits.js.map +1 -0
- package/dist/governor/freshness.js +10 -7
- package/dist/governor/freshness.js.map +1 -1
- package/dist/governor/index.js +76 -9
- package/dist/governor/index.js.map +1 -1
- package/dist/governor/write.js +43 -14
- package/dist/governor/write.js.map +1 -1
- package/dist/index.js +18 -151
- package/dist/index.js.map +1 -1
- package/dist/main.js +162 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/manager.js +18 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/memory/allMetas.js +69 -0
- package/dist/memory/allMetas.js.map +1 -0
- package/dist/memory/compaction.js +70 -15
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/earlier.js +15 -0
- package/dist/memory/earlier.js.map +1 -0
- package/dist/memory/profile.js +93 -0
- package/dist/memory/profile.js.map +1 -0
- package/dist/memory/rewind.js +262 -0
- package/dist/memory/rewind.js.map +1 -0
- package/dist/memory/session.js +42 -10
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/sessionMemory.js +48 -13
- package/dist/memory/sessionMemory.js.map +1 -1
- package/dist/memory/sessionMemoryCompact.js +1 -1
- package/dist/memory/sessionMemoryCompact.js.map +1 -1
- package/dist/memory/sessionTitle.js +50 -0
- package/dist/memory/sessionTitle.js.map +1 -0
- package/dist/memory/store.js +42 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/askUser.js +14 -0
- package/dist/tools/askUser.js.map +1 -1
- package/dist/tools/backgroundShells.js +208 -5
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/browser.js +176 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/cdp.js +165 -0
- package/dist/tools/cdp.js.map +1 -0
- package/dist/tools/checkpoints.js +208 -5
- package/dist/tools/checkpoints.js.map +1 -1
- package/dist/tools/deferredNative.js +2 -0
- package/dist/tools/deferredNative.js.map +1 -1
- package/dist/tools/detail.js +9 -6
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/edit.js +2 -1
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/exitPlan.js +4 -0
- package/dist/tools/exitPlan.js.map +1 -1
- package/dist/tools/hiddenDesktop.js +273 -0
- package/dist/tools/hiddenDesktop.js.map +1 -0
- package/dist/tools/listeningPorts.js +134 -0
- package/dist/tools/listeningPorts.js.map +1 -0
- package/dist/tools/mcpSearch.js +8 -0
- package/dist/tools/mcpSearch.js.map +1 -1
- package/dist/tools/mindweaveStatus.js +1 -1
- package/dist/tools/mindweaveStatus.js.map +1 -1
- package/dist/tools/registry.js +3 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/replaceSymbol.js +2 -1
- package/dist/tools/replaceSymbol.js.map +1 -1
- package/dist/tools/runCommand.js +113 -9
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/screenshot.js +4 -6
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/screenshotWin.js +26 -9
- package/dist/tools/screenshotWin.js.map +1 -1
- package/dist/tools/stateCheckpoint.js +128 -0
- package/dist/tools/stateCheckpoint.js.map +1 -0
- package/dist/tools/todo.js +6 -0
- package/dist/tools/todo.js.map +1 -1
- package/dist/tools/ui.js +1295 -0
- package/dist/tools/ui.js.map +1 -0
- package/dist/tools/uiHide.js +356 -0
- package/dist/tools/uiHide.js.map +1 -0
- package/dist/tools/uiPage.js +861 -0
- package/dist/tools/uiPage.js.map +1 -0
- package/dist/tools/uiWin.js +506 -0
- package/dist/tools/uiWin.js.map +1 -0
- package/dist/tools/webFetch.js +32 -25
- package/dist/tools/webFetch.js.map +1 -1
- package/dist/tools/webSearch.js +12 -0
- package/dist/tools/webSearch.js.map +1 -1
- package/dist/tools/writeFile.js +2 -1
- package/dist/tools/writeFile.js.map +1 -1
- package/package.json +78 -75
package/dist/cli/analytics.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* analytics.ts — anonymous usage count,
|
|
2
|
+
* analytics.ts — the anonymous usage count, PAUSED while a better one is built.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Nothing is sent, for anyone, whatever an older install saved in its settings file. The
|
|
5
|
+
* on/off switch is kept so the commands and screens that mention it keep working, but it
|
|
6
|
+
* cannot be turned on: `setAnalyticsEnabled(true)` is refused and says why.
|
|
7
|
+
*
|
|
8
|
+
* It used to send `{ id, version }`, a random uuid made once per machine plus the version
|
|
9
|
+
* number, to a plain HTTP endpoint. To bring it back, flip `ANALYTICS_PAUSED` and change
|
|
10
|
+
* what is sent in one place; the callers do not need to change.
|
|
10
11
|
*/
|
|
11
12
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
12
13
|
import { join } from "node:path";
|
|
@@ -17,6 +18,11 @@ import { stateRoot } from "../memory/store.js";
|
|
|
17
18
|
* has a real domain — nothing else here needs to change.
|
|
18
19
|
*/
|
|
19
20
|
const DEFAULT_ENDPOINT = "https://mindweavedev.netlify.app/.netlify/functions/ping";
|
|
21
|
+
/** The counting is switched off for everyone until the replacement exists. */
|
|
22
|
+
export const ANALYTICS_PAUSED = true;
|
|
23
|
+
/** What to tell someone who tries to turn it on while it is paused. */
|
|
24
|
+
export const ANALYTICS_PAUSED_MESSAGE = "Analytics is off and cannot be turned on for now. We are building a better way to count " +
|
|
25
|
+
"how many people use Mindweave, and nothing is sent in the meantime.";
|
|
20
26
|
function endpoint() {
|
|
21
27
|
return process.env.MINDWEAVE_ANALYTICS_URL?.trim() || DEFAULT_ENDPOINT;
|
|
22
28
|
}
|
|
@@ -50,27 +56,30 @@ function config() {
|
|
|
50
56
|
return cached;
|
|
51
57
|
}
|
|
52
58
|
export function analyticsEnabled() {
|
|
53
|
-
return config().enabled;
|
|
59
|
+
return !ANALYTICS_PAUSED && config().enabled;
|
|
54
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Switch the count on or off. Returns whether it is on afterwards, which while paused is
|
|
63
|
+
* always false: a request to turn it on is ignored and the saved setting is left alone.
|
|
64
|
+
*/
|
|
55
65
|
export function setAnalyticsEnabled(on) {
|
|
66
|
+
if (ANALYTICS_PAUSED)
|
|
67
|
+
return false;
|
|
56
68
|
const cfg = config();
|
|
57
69
|
cfg.enabled = on;
|
|
58
70
|
writeConfig(cfg);
|
|
71
|
+
return cfg.enabled;
|
|
59
72
|
}
|
|
60
73
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* reads what it does and where to check it themselves.
|
|
74
|
+
* What /analytics prints: why usage counting is off for now. Nothing is sent, and there is no
|
|
75
|
+
* switch to flip while it is paused.
|
|
64
76
|
*/
|
|
65
|
-
export const ANALYTICS_EXPLANATION = "
|
|
66
|
-
"
|
|
67
|
-
"github.com/mindweave-cli/Mindweave · https://mindweavedev.netlify.app/";
|
|
68
|
-
/** Shown once per launch, every launch — not a one-time notice. */
|
|
69
|
-
export function startupStatusLine() {
|
|
70
|
-
return `Analytics: ${analyticsEnabled() ? "on" : "off"} — /analytics for details.`;
|
|
71
|
-
}
|
|
77
|
+
export const ANALYTICS_EXPLANATION = "Usage counting is off for now, and nothing is sent. We are building a better way to count " +
|
|
78
|
+
"how many people use Mindweave. When it is ready it will stay off until you turn it on.";
|
|
72
79
|
/** Fire-and-forget. Never throws, never delays startup. */
|
|
73
80
|
export function sendAnalyticsPing(version) {
|
|
81
|
+
if (ANALYTICS_PAUSED)
|
|
82
|
+
return;
|
|
74
83
|
const cfg = config();
|
|
75
84
|
if (!cfg.enabled)
|
|
76
85
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/attachments.js
CHANGED
|
@@ -178,6 +178,40 @@ export function stripAttachments(content) {
|
|
|
178
178
|
.replace(IMAGE_SOURCE_RE, "")
|
|
179
179
|
.trimEnd();
|
|
180
180
|
}
|
|
181
|
+
/** The files a message carried in full (its `<attached_file>` blocks), as absolute
|
|
182
|
+
* paths, so a front end can show each one as a card to open. Read from the message
|
|
183
|
+
* itself, so a reopened session shows the same cards the live one did. */
|
|
184
|
+
export function attachedFiles(content, cwd) {
|
|
185
|
+
const out = [];
|
|
186
|
+
for (const m of content.matchAll(/<attached_file path="([^"]*)">\n/g)) {
|
|
187
|
+
const abs = isAbsolute(m[1]) ? m[1] : resolve(cwd, m[1]);
|
|
188
|
+
if (!out.includes(abs))
|
|
189
|
+
out.push(abs);
|
|
190
|
+
}
|
|
191
|
+
return out;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* The chat shows attached images and files as their own cards, so their names are
|
|
195
|
+
* dropped from the text beside them (the model still gets the names; this is display
|
|
196
|
+
* only). Only a line made up entirely of file names goes (the line the app appends for
|
|
197
|
+
* attachments); a name the person typed inside a sentence stays.
|
|
198
|
+
*/
|
|
199
|
+
export function hideAttachedNames(text, paths) {
|
|
200
|
+
if (!paths.length)
|
|
201
|
+
return text;
|
|
202
|
+
const names = paths.map((p) => p.split(/[\\/]/).pop() ?? p);
|
|
203
|
+
const lines = text.split("\n").map((line) => {
|
|
204
|
+
let rest = line;
|
|
205
|
+
for (const name of names)
|
|
206
|
+
rest = rest.split(name).join(" ");
|
|
207
|
+
if (rest === line)
|
|
208
|
+
return line;
|
|
209
|
+
// What's left must be other attached file names (a.ts, notes.md) or nothing.
|
|
210
|
+
const others = rest.trim().split(/\s+/).filter(Boolean);
|
|
211
|
+
return others.every((t) => /^[^\s]+\.[A-Za-z0-9]{1,8}$/.test(t)) ? others.join(" ") : line;
|
|
212
|
+
});
|
|
213
|
+
return lines.join("\n").replace(/[ \t]+\n/g, "\n").replace(/\n{3,}/g, "\n\n").trim();
|
|
214
|
+
}
|
|
181
215
|
/** The line that tells the model where an attached image lives on disk. */
|
|
182
216
|
export function imageSourceLine(path) {
|
|
183
217
|
return `[Image source: ${path}]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/cli/attachments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/cli/attachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* bannerFit.ts — what the header row shows at a given width. Always exactly one row.
|
|
3
|
+
*
|
|
4
|
+
* The header was laid out as a row of text pieces with nothing deciding what happens when they do
|
|
5
|
+
* not fit, so the layout engine wrapped each piece inside its own box: "Mindweave 1" broke into
|
|
6
|
+
* "Mindwe" over "ve 1", the model name into "stub:" over "7b", and the header grew a second row
|
|
7
|
+
* that the transcript then scrolled into. How long the header is depends on the model and the
|
|
8
|
+
* mode, so the same window width was fine with one model and broken with another, which is why it
|
|
9
|
+
* came and went.
|
|
10
|
+
*
|
|
11
|
+
* Instead, when space runs out the header gives things up in a fixed order, least useful first,
|
|
12
|
+
* and never breaks a word:
|
|
13
|
+
* 1. "LIGHTNING MODE ON" becomes "LIGHTNING"
|
|
14
|
+
* 2. a long model name is shortened with "…"
|
|
15
|
+
* 3. the busy animation goes
|
|
16
|
+
* 4. the effort level goes
|
|
17
|
+
* 5. the title goes
|
|
18
|
+
* 6. whatever is left is cut at the edge
|
|
19
|
+
*/
|
|
20
|
+
const SEP = " | ";
|
|
21
|
+
/** The shortest a shortened model name is allowed to get before something else gives way. */
|
|
22
|
+
const MIN_MODEL = 10;
|
|
23
|
+
function rightOf(mode, model, effort) {
|
|
24
|
+
return [mode, model, effort].filter(Boolean).join(SEP);
|
|
25
|
+
}
|
|
26
|
+
function leftWidth(title, shuttle, shuttleCells) {
|
|
27
|
+
if (!title)
|
|
28
|
+
return shuttle ? shuttleCells : 0;
|
|
29
|
+
return title.length + (shuttle ? 1 + shuttleCells : 0);
|
|
30
|
+
}
|
|
31
|
+
function clip(text, max) {
|
|
32
|
+
if (max <= 0)
|
|
33
|
+
return "";
|
|
34
|
+
return text.length <= max ? text : text.slice(0, Math.max(0, max - 1)) + "…";
|
|
35
|
+
}
|
|
36
|
+
/** The header for `width` columns of content (the row's inset already taken off). Pure. */
|
|
37
|
+
export function fitBanner(width, p) {
|
|
38
|
+
const full = `${p.mode} MODE ON`;
|
|
39
|
+
let title = p.title;
|
|
40
|
+
let shuttle = true;
|
|
41
|
+
let mode = full;
|
|
42
|
+
let model = p.model;
|
|
43
|
+
let effort = p.effort;
|
|
44
|
+
const used = () => leftWidth(title, shuttle, p.shuttle) + 1 + rightOf(mode, model, effort).length;
|
|
45
|
+
const done = () => ({ title, showShuttle: shuttle, mode, model, effort, gap: Math.max(1, width - used() + 1) });
|
|
46
|
+
if (used() <= width)
|
|
47
|
+
return done();
|
|
48
|
+
mode = p.mode;
|
|
49
|
+
if (used() <= width)
|
|
50
|
+
return done();
|
|
51
|
+
if (model.length > MIN_MODEL) {
|
|
52
|
+
const over = used() - width;
|
|
53
|
+
model = clip(p.model, Math.max(MIN_MODEL, p.model.length - over));
|
|
54
|
+
if (used() <= width)
|
|
55
|
+
return done();
|
|
56
|
+
}
|
|
57
|
+
shuttle = false;
|
|
58
|
+
if (used() <= width)
|
|
59
|
+
return done();
|
|
60
|
+
effort = "";
|
|
61
|
+
if (used() <= width)
|
|
62
|
+
return done();
|
|
63
|
+
title = "";
|
|
64
|
+
if (used() <= width)
|
|
65
|
+
return done();
|
|
66
|
+
// Only the status is left: cut it at the edge, keeping the mode first.
|
|
67
|
+
const status = clip(rightOf(mode, model, effort), Math.max(0, width - 1));
|
|
68
|
+
return { title: "", showShuttle: false, mode: status, model: "", effort: "", gap: 1 };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=bannerFit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bannerFit.js","sourceRoot":"","sources":["../../src/cli/bannerFit.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/bootstrap.js
CHANGED
|
@@ -21,6 +21,7 @@ import { join } from "node:path";
|
|
|
21
21
|
import { stateRoot } from "../memory/store.js";
|
|
22
22
|
import { allProviders } from "../drivers/registry.js";
|
|
23
23
|
import { keysFor, slotVar } from "./keyStore.js";
|
|
24
|
+
import { isKeyDisabled } from "./keyPrefs.js";
|
|
24
25
|
/**
|
|
25
26
|
* The global Mindweave config directory (~/.mindweave).
|
|
26
27
|
*
|
|
@@ -73,7 +74,8 @@ function activateStoredKeys() {
|
|
|
73
74
|
for (const provider of allProviders()) {
|
|
74
75
|
if (process.env[provider.apiKeyEnv]?.trim())
|
|
75
76
|
continue;
|
|
76
|
-
|
|
77
|
+
// The first key the user has not switched off; a disabled key is kept, never sent.
|
|
78
|
+
const first = keysFor(provider.apiKeyEnv).find((k) => !isKeyDisabled(k.value));
|
|
77
79
|
if (first)
|
|
78
80
|
process.env[provider.apiKeyEnv] = first.value;
|
|
79
81
|
}
|
|
@@ -159,11 +161,45 @@ export function saveApiKey(apiKeyEnv, key, slot = 1) {
|
|
|
159
161
|
return;
|
|
160
162
|
normalizeLegacy(apiKeyEnv);
|
|
161
163
|
const envVar = slotVar(apiKeyEnv, slot);
|
|
164
|
+
// Replacing the key that is live must replace what the drivers send, too; otherwise an
|
|
165
|
+
// edited key only took effect on the next launch.
|
|
166
|
+
const wasLive = Boolean(process.env[envVar]?.trim()) && process.env[envVar]?.trim() === process.env[apiKeyEnv]?.trim();
|
|
162
167
|
process.env[envVar] = trimmed;
|
|
163
168
|
writeEnvVar(envVar, trimmed);
|
|
164
|
-
if (!process.env[apiKeyEnv]?.trim() || slot === 1)
|
|
169
|
+
if (!process.env[apiKeyEnv]?.trim() || slot === 1 || wasLive)
|
|
165
170
|
process.env[apiKeyEnv] = trimmed;
|
|
166
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Make a stored key the default: move it to slot 1, where every launch starts, and make
|
|
174
|
+
* it live now. The others keep their order behind it. Cleared and rewritten from 1, the
|
|
175
|
+
* same way `removeApiKey` renumbers, so no value is overwritten before it has moved.
|
|
176
|
+
*/
|
|
177
|
+
export function makeDefaultApiKey(apiKeyEnv, slot) {
|
|
178
|
+
normalizeLegacy(apiKeyEnv);
|
|
179
|
+
const before = keysFor(apiKeyEnv);
|
|
180
|
+
const chosen = before.find((k) => k.slot === slot);
|
|
181
|
+
if (!chosen)
|
|
182
|
+
return false;
|
|
183
|
+
const ordered = [chosen, ...before.filter((k) => k.slot !== slot)];
|
|
184
|
+
for (const k of before) {
|
|
185
|
+
delete process.env[k.envVar];
|
|
186
|
+
writeEnvVar(k.envVar, null);
|
|
187
|
+
}
|
|
188
|
+
ordered.forEach((k, i) => {
|
|
189
|
+
const envVar = slotVar(apiKeyEnv, i + 1);
|
|
190
|
+
process.env[envVar] = k.value;
|
|
191
|
+
writeEnvVar(envVar, k.value);
|
|
192
|
+
});
|
|
193
|
+
process.env[apiKeyEnv] = chosen.value;
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
/** Point the drivers at a given key value, or at none. For callers that pick by value. */
|
|
197
|
+
export function setLiveApiKey(apiKeyEnv, value) {
|
|
198
|
+
if (value)
|
|
199
|
+
process.env[apiKeyEnv] = value;
|
|
200
|
+
else
|
|
201
|
+
delete process.env[apiKeyEnv];
|
|
202
|
+
}
|
|
167
203
|
/**
|
|
168
204
|
* Remove one stored key, closing the gap behind it.
|
|
169
205
|
*
|
|
@@ -225,7 +261,9 @@ const GLOBAL_ENV_TEMPLATE = [
|
|
|
225
261
|
// fine and parses as a VALUE of "# DeepSeek", so every provider would have reported a
|
|
226
262
|
// key it did not have: no first-run prompt, and every request rejected with no
|
|
227
263
|
// explanation. Caught by reading the parsed result rather than the file.
|
|
228
|
-
|
|
264
|
+
// A local runtime (Ollama) has no key line: it counts as set up while it runs, which the
|
|
265
|
+
// file still says, so a reader learns it is there.
|
|
266
|
+
...allProviders().flatMap((p) => p.local ? [`# ${p.label}: models on this machine, no key. Start it and pull a model; nothing to fill in.`] : [`# ${p.label}`, `${p.apiKeyEnv}=`]),
|
|
229
267
|
"",
|
|
230
268
|
"# Optional:",
|
|
231
269
|
"# MINDWEAVE_MODEL — which model to open with. Run /model in Mindweave for the list.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/cli/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACpD,oBAAoB,EAAE,CAAC;IACvB,YAAY,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAChC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9B,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB;IACzB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAAE,SAAS;QACtD,mFAAmF;QACnF,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,KAAoB;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IACD,sFAAsF;IACtF,uFAAuF;IACvF,oFAAoF;IACpF,qFAAqF;IACrF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,qBAAqB,MAAM,GAAG,CAAC;IAC5C,IAAI,IAAY,CAAC;IACjB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,oFAAoF;QACpF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACjE,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;YACjC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IACjE,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QAAE,OAAO;IACvD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1C,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,GAAW,EAAE,IAAI,GAAG,CAAC;IACjE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxC,uFAAuF;IACvF,kDAAkD;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IACvH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IAC9B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;AACjG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,IAAY;IAC/D,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,KAAoB;IACnE,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,IAAY;IAC1D,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,oFAAoF;IACpF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;YACzD,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,IAAY;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG;IAC1B,uDAAuD;IACvD,oFAAoF;IACpF,mEAAmE;IACnE,EAAE;IACF,qFAAqF;IACrF,sFAAsF;IACtF,+EAA+E;IAC/E,yEAAyE;IACzE,yFAAyF;IACzF,mDAAmD;IACnD,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,kFAAkF,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CACjJ;IACD,EAAE;IACF,aAAa;IACb,qFAAqF;IACrF,oBAAoB;IACpB,EAAE;CACH,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAGhC,gFAAgF;AAChF,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,aAAa,CACX,IAAI,EACJ,mBAAmB,EACnB,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,sBAAsB;IAChC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG;YAAE,SAAS,CAAC,mBAAmB;QAC7D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,SAAS,CAAC,0DAA0D;QAChF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -33,9 +33,12 @@ export const BASE_COMMANDS = [
|
|
|
33
33
|
{ name: "/mcp", description: "view MCP servers; /mcp add <name> <command|url> to connect one" },
|
|
34
34
|
{ name: "/context", description: "show what is filling the context window" },
|
|
35
35
|
{ name: "/undo", description: "roll back file changes: /undo, /undo list, /undo <n>" },
|
|
36
|
+
{ name: "/rewind", description: "go back to before one of your messages, files included, and edit it" },
|
|
37
|
+
{ name: "/marathon", description: "hand over a goal and let it run on its own until it is done" },
|
|
36
38
|
{ name: "/compact", description: "summarize the conversation to free up context" },
|
|
37
39
|
{ name: "/update", description: "update Mindweave and restart into this conversation" },
|
|
38
|
-
{ name: "/
|
|
40
|
+
{ name: "/app", description: "get the Mindweave desktop app, free and open source" },
|
|
41
|
+
{ name: "/analytics", description: "usage counting is off for now, see why" },
|
|
39
42
|
{ name: "/feedback", description: "send the maintainer a message: /feedback <what you want to say>" },
|
|
40
43
|
{ name: "/clear", description: "start a fresh conversation in this project" },
|
|
41
44
|
{ name: "/continue", description: "pick a past session to resume" },
|
package/dist/cli/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH;qDACqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2EAA2E,EAAE;IAC3G,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC/E,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;IACxE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gDAAgD,EAAE;IAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACnF,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACtF,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,4DAA4D,EAAE;IACtG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,4DAA4D,EAAE;IAC5F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gDAAgD,EAAE;IACnF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mDAAmD,EAAE;IACrF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gEAAgE,EAAE;IAC/F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC5E,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACtF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,+CAA+C,EAAE;IAClF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACvF,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH;qDACqD;AACrD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAChD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2EAA2E,EAAE;IAC3G,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC/E,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;IACxE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gDAAgD,EAAE;IAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACnF,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,iDAAiD,EAAE;IACtF,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,4DAA4D,EAAE;IACtG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,4DAA4D,EAAE;IAC5F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gDAAgD,EAAE;IACnF,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mDAAmD,EAAE;IACrF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,gEAAgE,EAAE;IAC/F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC5E,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACtF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qEAAqE,EAAE;IACvG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,6DAA6D,EAAE;IACjG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,+CAA+C,EAAE;IAClF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACvF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACpF,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,wCAAwC,EAAE;IAC7E,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,iEAAiE,EAAE;IACrG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC7E,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,+BAA+B,EAAE;CACpE,CAAC"}
|
|
@@ -32,6 +32,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
32
32
|
import { useState } from "react";
|
|
33
33
|
import { Box, Text, useInput } from "ink";
|
|
34
34
|
import { clipRows } from "../wrap.js";
|
|
35
|
+
import { ACCENT } from "../theme.js";
|
|
35
36
|
/** Rows the question may occupy before it is cut (wrapping included). */
|
|
36
37
|
const MAX_QUESTION_ROWS = 4;
|
|
37
38
|
/** Answers shown. More than this and the caller is asking the wrong question. */
|
|
@@ -113,8 +114,8 @@ export function ApprovalBox({ question, options, onSelect, onCancel, width, acti
|
|
|
113
114
|
// real height, and the height is what the footer measurement depends on.
|
|
114
115
|
return (_jsxs(_Fragment, { children: [questionRows.map((line, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { bold: true, wrap: "truncate-end", children: line }) }, `q${i}`))), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }), shown.map((label, i) => {
|
|
115
116
|
const on = i === sel;
|
|
116
|
-
return (_jsxs(Box, { width: inner, flexShrink: 0, children: [_jsxs(Text, { color: on ?
|
|
117
|
-
}), freeText ? (_jsxs(Box, { width: inner, flexShrink: 0, children: [_jsxs(Text, { color: onText ?
|
|
117
|
+
return (_jsxs(Box, { width: inner, flexShrink: 0, children: [_jsxs(Text, { color: on ? ACCENT : undefined, bold: on, children: [on ? " › " : " ", `[${i + 1}] `] }), _jsx(Box, { width: Math.max(4, inner - 7), children: _jsx(Text, { color: on ? ACCENT : undefined, bold: on, wrap: "truncate-end", children: label }) })] }, i));
|
|
118
|
+
}), freeText ? (_jsxs(Box, { width: inner, flexShrink: 0, children: [_jsxs(Text, { color: onText ? ACCENT : undefined, bold: onText, children: [onText ? " › " : " ", `[${shown.length + 1}] `] }), _jsx(Box, { width: Math.max(4, inner - 7), children: _jsx(Text, { color: onText ? ACCENT : undefined, bold: onText, wrap: "truncate-end", children: onText ? `${freeText.label}: ${typed}█` : freeText.label }) })] })) : null, detailReserve > 0 ? (_jsxs(_Fragment, { children: [detailRows.map((line, i) => (_jsx(Box, { width: inner, flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }) }, `d${i}`))), Array.from({ length: SEL_DETAIL_ROWS - detailRows.length }).map((_, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }, `dp${i}`)))] })) : null, _jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: onText
|
|
118
119
|
? `type your answer · Enter to send · ↑/↓ to go back · Esc to cancel`
|
|
119
120
|
: `↑/↓ or 1-${shown.length} · Enter to choose · Esc to cancel` }) })] }));
|
|
120
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalBox.js","sourceRoot":"","sources":["../../../src/cli/components/ApprovalBox.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ApprovalBox.js","sourceRoot":"","sources":["../../../src/cli/components/ApprovalBox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
import { memo } from "react";
|
|
16
16
|
import { Box, Text } from "ink";
|
|
17
17
|
import { renderMarkdown } from "../markdown.js";
|
|
18
|
-
import { wrapAnsi } from "../wrap.js";
|
|
19
|
-
import {
|
|
18
|
+
import { wrapAnsi, visibleWidth } from "../wrap.js";
|
|
19
|
+
import { BAD, USER_BG, USER_FG } from "../theme.js";
|
|
20
20
|
import { compactionLines } from "../compaction.js";
|
|
21
21
|
import { ToolLine } from "./ToolLine.js";
|
|
22
22
|
import { ToolGroup } from "./ToolGroup.js";
|
|
@@ -34,11 +34,32 @@ import { SubagentView } from "./SubagentView.js";
|
|
|
34
34
|
function WrappedText({ text, width, color }) {
|
|
35
35
|
return (_jsx(Box, { width: width, flexDirection: "column", children: wrapAnsi(text, width).map((line, i) => (_jsx(Text, { color: color, wrap: "truncate-end", children: line === "" ? " " : line }, i))) }));
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Your own message: a grey band the full width of the conversation, white text inside it.
|
|
39
|
+
*
|
|
40
|
+
* It used to be coloured text (cyan), which was the loudest thing on screen and still read
|
|
41
|
+
* as just another kind of output. A band marks the turn without colouring the words, the
|
|
42
|
+
* way the app draws your message on its own surface. Every row is padded to the full width
|
|
43
|
+
* so the band is one even block rather than ragged ends, with a column of padding on each
|
|
44
|
+
* side so the text does not touch its right edge. The ">" sits in the first column, exactly where the
|
|
45
|
+
* agent's dot does, and the words start in the same column as the agent's words, so the two
|
|
46
|
+
* kinds of message line up down the screen.
|
|
47
|
+
*/
|
|
48
|
+
function UserBand({ text, columns }) {
|
|
49
|
+
const width = Math.max(10, columns);
|
|
50
|
+
const inner = Math.max(4, width - 3); // the "> " gutter, then one space at the right edge
|
|
51
|
+
const rows = wrapAnsi(text, inner);
|
|
52
|
+
return (_jsx(Box, { marginTop: 1, flexDirection: "column", width: width, children: rows.map((line, i) => {
|
|
53
|
+
const body = line === "" ? "" : line;
|
|
54
|
+
const pad = Math.max(0, inner - visibleWidth(body));
|
|
55
|
+
return (_jsx(Text, { backgroundColor: USER_BG, color: USER_FG, wrap: "truncate-end", children: `${i === 0 ? ">" : " "} ${body}${" ".repeat(pad)} ` }, i));
|
|
56
|
+
}) }));
|
|
57
|
+
}
|
|
37
58
|
function BlockViewInner({ block, columns, tightTop }) {
|
|
38
59
|
const textWidth = Math.max(8, columns - 4);
|
|
39
60
|
switch (block.kind) {
|
|
40
61
|
case "user":
|
|
41
|
-
return
|
|
62
|
+
return _jsx(UserBand, { text: block.text, columns: columns });
|
|
42
63
|
case "assistant": {
|
|
43
64
|
if (!block.text)
|
|
44
65
|
return null;
|
|
@@ -60,9 +81,9 @@ function BlockViewInner({ block, columns, tightTop }) {
|
|
|
60
81
|
case "subagent":
|
|
61
82
|
return (_jsx(SubagentView, { agents: block.agents, done: block.done, columns: columns, tightTop: tightTop }));
|
|
62
83
|
case "error":
|
|
63
|
-
return (_jsxs(Box, { marginTop: 1, flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color:
|
|
84
|
+
return (_jsxs(Box, { marginTop: 1, flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: BAD, children: "●" }) }), _jsx(WrappedText, { text: block.text, width: textWidth, color: BAD })] }));
|
|
64
85
|
case "completion":
|
|
65
|
-
return (_jsxs(Box, { marginTop: 1, flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { dimColor: true, children: "
|
|
86
|
+
return (_jsxs(Box, { marginTop: 1, flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { dimColor: true, children: "●" }) }), _jsx(Text, { dimColor: true, children: block.text })] }));
|
|
66
87
|
case "note": {
|
|
67
88
|
const noteLines = wrapAnsi(block.text, Math.max(4, columns - 2));
|
|
68
89
|
return (_jsx(Box, { width: columns, flexDirection: "column", children: noteLines.map((line, i) => (_jsxs(Text, { dimColor: true, children: [i === 0 ? "· " : " ", line] }, i))) }));
|
|
@@ -73,7 +94,7 @@ function BlockViewInner({ block, columns, tightTop }) {
|
|
|
73
94
|
// rendered verbatim — no markdown — because they are literal commands and paths
|
|
74
95
|
// where a stray backtick or underscore must not be reinterpreted.
|
|
75
96
|
const railWidth = Math.max(8, columns - 4);
|
|
76
|
-
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, {
|
|
97
|
+
return (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { children: "●" }) }), _jsx(Text, { bold: true, children: block.title })] }), block.body.split("\n").flatMap((line, i) => wrapAnsi(line, railWidth).map((row, j) => (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { dimColor: true, children: " │ " }), _jsx(Box, { width: railWidth, children: _jsx(Text, { wrap: "truncate-end", children: row }) })] }, `${i}-${j}`))))] }));
|
|
77
98
|
}
|
|
78
99
|
case "compaction": {
|
|
79
100
|
// The bars are pre-composed as plain rows (compaction.ts) so the layout is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
* the middle of a screen the user has to interact with.
|
|
18
18
|
*/
|
|
19
19
|
import { Box, Text } from "ink";
|
|
20
|
+
import { ACCENT } from "../theme.js";
|
|
20
21
|
/** Below this many rows, centring costs more than it gives. */
|
|
21
22
|
const MIN_ROWS_TO_CENTRE = 24;
|
|
22
23
|
export function FirstRunFrame({ rows, version, subtitle, tips, children }) {
|
|
23
24
|
const centred = rows >= MIN_ROWS_TO_CENTRE;
|
|
24
25
|
const justify = centred ? "center" : "flex-start";
|
|
25
|
-
return (_jsxs(Box, { flexDirection: "column", height: rows, justifyContent: justify, paddingX: 2, children: [_jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { bold: true, color:
|
|
26
|
+
return (_jsxs(Box, { flexDirection: "column", height: rows, justifyContent: justify, paddingX: 2, children: [_jsxs(Box, { flexShrink: 0, children: [_jsx(Text, { bold: true, color: ACCENT, children: "Mindweave 1" }), _jsx(Text, { dimColor: true, children: version })] }), subtitle ? (_jsx(Box, { flexShrink: 0, marginTop: 1, children: _jsx(Text, { children: subtitle }) })) : null, _jsx(Box, { flexShrink: 0, marginTop: 1, flexDirection: "column", children: children }), tips && tips.length > 0 ? (_jsx(Box, { flexShrink: 0, marginTop: 1, flexDirection: "column", children: tips.map((t) => (_jsx(Text, { dimColor: true, wrap: "truncate-end", children: ` ${t}` }, t))) })) : null] }));
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
29
|
* What a brand-new user is told while they are pasting a key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstRunFrame.js","sourceRoot":"","sources":["../../../src/cli/components/FirstRunFrame.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAiB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"FirstRunFrame.js","sourceRoot":"","sources":["../../../src/cli/components/FirstRunFrame.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAiB,MAAM,KAAK,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,+DAA+D;AAC/D,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAc9B,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAsB;IAC3F,MAAM,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAAC;IAC3C,MAAM,OAAO,GAA+B,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,aAC5E,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,aAChB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,MAAM,4BAAoB,EAC5C,KAAC,IAAI,IAAC,QAAQ,kBAAE,OAAO,GAAQ,IAC3B,EACL,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,YAC9B,KAAC,IAAI,cAAE,QAAQ,GAAQ,GACnB,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACrD,QAAQ,GACL,EACL,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACrD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,KAAC,IAAI,IAAS,QAAQ,QAAC,IAAI,EAAC,cAAc,YAAE,KAAK,CAAC,EAAE,IAAzC,CAAC,CAAgD,CAC7D,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mEAAmE;IACnE,uEAAuE;IACvE,+DAA+D;IAC/D,+CAA+C;CAChD,CAAC"}
|