mindweave 3.4.0 → 3.4.2

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 (132) hide show
  1. package/README.md +26 -3
  2. package/dist/alternator/chassis/lsp.js +1 -1
  3. package/dist/alternator/chassis/lsp.js.map +1 -1
  4. package/dist/alternator/chassis/provision.js +2 -2
  5. package/dist/alternator/chassis/provision.js.map +1 -1
  6. package/dist/cli/App.js +152 -42
  7. package/dist/cli/App.js.map +1 -1
  8. package/dist/cli/attachments.js +2 -1
  9. package/dist/cli/attachments.js.map +1 -1
  10. package/dist/cli/blockHeights.js +14 -0
  11. package/dist/cli/blockHeights.js.map +1 -1
  12. package/dist/cli/commands.js +1 -0
  13. package/dist/cli/commands.js.map +1 -1
  14. package/dist/cli/components/BlockView.js +9 -1
  15. package/dist/cli/components/BlockView.js.map +1 -1
  16. package/dist/cli/components/EditGroup.js +50 -0
  17. package/dist/cli/components/EditGroup.js.map +1 -0
  18. package/dist/cli/components/PromptInput.js +4 -3
  19. package/dist/cli/components/PromptInput.js.map +1 -1
  20. package/dist/cli/components/ToolLine.js +5 -3
  21. package/dist/cli/components/ToolLine.js.map +1 -1
  22. package/dist/cli/components/WorkGroup.js +85 -56
  23. package/dist/cli/components/WorkGroup.js.map +1 -1
  24. package/dist/cli/editGroup.js +122 -0
  25. package/dist/cli/editGroup.js.map +1 -0
  26. package/dist/cli/inkSpeedLoader.js +9 -5
  27. package/dist/cli/inkSpeedLoader.js.map +1 -1
  28. package/dist/cli/inkThrottlePatch.js +43 -0
  29. package/dist/cli/inkThrottlePatch.js.map +1 -0
  30. package/dist/cli/screenMode.js +8 -1
  31. package/dist/cli/screenMode.js.map +1 -1
  32. package/dist/cli/sessionCarry.js.map +1 -1
  33. package/dist/cli/startupArgs.js +24 -4
  34. package/dist/cli/startupArgs.js.map +1 -1
  35. package/dist/cli/toolDisplay.js +2 -2
  36. package/dist/cli/toolDisplay.js.map +1 -1
  37. package/dist/cli/transcript.js +81 -14
  38. package/dist/cli/transcript.js.map +1 -1
  39. package/dist/cli/workLines.js +67 -4
  40. package/dist/cli/workLines.js.map +1 -1
  41. package/dist/core/turnRunner.js +133 -30
  42. package/dist/core/turnRunner.js.map +1 -1
  43. package/dist/dynamo/cacheBreak.js +8 -5
  44. package/dist/dynamo/cacheBreak.js.map +1 -1
  45. package/dist/dynamo/contextWindow.js +28 -36
  46. package/dist/dynamo/contextWindow.js.map +1 -1
  47. package/dist/dynamo/engine.js +119 -57
  48. package/dist/dynamo/engine.js.map +1 -1
  49. package/dist/dynamo/guard.js +1 -1
  50. package/dist/dynamo/guard.js.map +1 -1
  51. package/dist/dynamo/prompt.js +9 -3
  52. package/dist/dynamo/prompt.js.map +1 -1
  53. package/dist/dynamo/toolAliases.js +73 -0
  54. package/dist/dynamo/toolAliases.js.map +1 -0
  55. package/dist/dynamo/toolArgs.js +82 -0
  56. package/dist/dynamo/toolArgs.js.map +1 -0
  57. package/dist/dynamo/verify.js +16 -2
  58. package/dist/dynamo/verify.js.map +1 -1
  59. package/dist/headless/args.js +82 -0
  60. package/dist/headless/args.js.map +1 -0
  61. package/dist/headless/main.js +87 -0
  62. package/dist/headless/main.js.map +1 -0
  63. package/dist/headless/output.js +150 -0
  64. package/dist/headless/output.js.map +1 -0
  65. package/dist/headless/run.js +188 -0
  66. package/dist/headless/run.js.map +1 -0
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/main.js +5 -0
  70. package/dist/main.js.map +1 -1
  71. package/dist/memory/clearedArchive.js +2 -20
  72. package/dist/memory/clearedArchive.js.map +1 -1
  73. package/dist/memory/compaction.js +94 -2
  74. package/dist/memory/compaction.js.map +1 -1
  75. package/dist/memory/presence.js +44 -0
  76. package/dist/memory/presence.js.map +1 -1
  77. package/dist/memory/rewind.js +10 -6
  78. package/dist/memory/rewind.js.map +1 -1
  79. package/dist/memory/session.js +2 -2
  80. package/dist/memory/session.js.map +1 -1
  81. package/dist/memory/sessionMemory.js +270 -69
  82. package/dist/memory/sessionMemory.js.map +1 -1
  83. package/dist/memory/store.js +27 -4
  84. package/dist/memory/store.js.map +1 -1
  85. package/dist/memory/types.js.map +1 -1
  86. package/dist/memory/userNotes.js +17 -0
  87. package/dist/memory/userNotes.js.map +1 -0
  88. package/dist/project/context.js +34 -6
  89. package/dist/project/context.js.map +1 -1
  90. package/dist/tools/backgroundShells.js +7 -4
  91. package/dist/tools/backgroundShells.js.map +1 -1
  92. package/dist/tools/coauthor.js +154 -0
  93. package/dist/tools/coauthor.js.map +1 -0
  94. package/dist/tools/codeIntel.js +38 -10
  95. package/dist/tools/codeIntel.js.map +1 -1
  96. package/dist/tools/docOutline.js +250 -0
  97. package/dist/tools/docOutline.js.map +1 -0
  98. package/dist/tools/edit.js +18 -3
  99. package/dist/tools/edit.js.map +1 -1
  100. package/dist/tools/editCore.js +107 -1
  101. package/dist/tools/editCore.js.map +1 -1
  102. package/dist/tools/editRipple.js +29 -2
  103. package/dist/tools/editRipple.js.map +1 -1
  104. package/dist/tools/emptyResult.js +24 -0
  105. package/dist/tools/emptyResult.js.map +1 -0
  106. package/dist/tools/glob.js +11 -2
  107. package/dist/tools/glob.js.map +1 -1
  108. package/dist/tools/grep.js +4 -3
  109. package/dist/tools/grep.js.map +1 -1
  110. package/dist/tools/missingPath.js +90 -0
  111. package/dist/tools/missingPath.js.map +1 -0
  112. package/dist/tools/readFile.js +19 -2
  113. package/dist/tools/readFile.js.map +1 -1
  114. package/dist/tools/rebuildDetail.js +101 -6
  115. package/dist/tools/rebuildDetail.js.map +1 -1
  116. package/dist/tools/runCommand.js +6 -2
  117. package/dist/tools/runCommand.js.map +1 -1
  118. package/dist/tools/screenshot.js +42 -3
  119. package/dist/tools/screenshot.js.map +1 -1
  120. package/dist/tools/screenshotWin.js +221 -216
  121. package/dist/tools/screenshotWin.js.map +1 -1
  122. package/dist/tools/search.js +4 -1
  123. package/dist/tools/search.js.map +1 -1
  124. package/dist/tools/shellTools.js +7 -2
  125. package/dist/tools/shellTools.js.map +1 -1
  126. package/dist/tools/ui.js +26 -9
  127. package/dist/tools/ui.js.map +1 -1
  128. package/dist/tools/uiWin.js +4 -1
  129. package/dist/tools/uiWin.js.map +1 -1
  130. package/dist/tools/webSearch.js +3 -1
  131. package/dist/tools/webSearch.js.map +1 -1
  132. package/package.json +78 -78
@@ -0,0 +1,188 @@
1
+ /**
2
+ * run.ts — one task, no screen (`mindweave -p "task"`).
3
+ *
4
+ * A thin client of the same front door the desktop app uses (core/turnRunner.ts): open a session,
5
+ * run one turn, read what happened. The engine, the tools, the user's hooks, key failover, usage
6
+ * limits, compaction and the saved session are all the ones an interactive run has, so nothing
7
+ * here needs to be kept in step with them. What this file adds is only what a script needs:
8
+ * where the prompt comes from, which stream gets what, and an exit code that means something.
9
+ *
10
+ * Everything that touches the process (stdin, signals, exiting) is injected, so the whole flow
11
+ * runs inside a test against a scripted provider. `main.ts` is the one place that wires the real ones.
12
+ *
13
+ * Nobody is there to answer a question. No approval channel is attached, which is the same state a
14
+ * sub-agent runs in: Sentinel's gate says there is nobody to ask, `ask_user` tells the model to use
15
+ * its best judgment, and writes outside the workspace are refused. That is what makes the mode safe to
16
+ * leave unattended, and it needs no mode of its own.
17
+ */
18
+ import { applySessionMode, disposeSession, prepareMessage, runTurn, sessionMode } from "../core/turnRunner.js";
19
+ import { defaultModeFor } from "../core/permissions.js";
20
+ import { createSession, resumeSession } from "../memory/session.js";
21
+ import { hasApiKey } from "../cli/bootstrap.js";
22
+ import { DEFAULT_MODE } from "../cli/modes.js";
23
+ import { rootBreadth } from "../cli/trust.js";
24
+ import { allProviders, manifestForModel, modelsOf } from "../drivers/registry.js";
25
+ import { usableFallback, withModel } from "../dynamo/model.js";
26
+ import { EXIT_FAILED, EXIT_NO_KEY, EXIT_USAGE, exitCodeOf, finalStdout, initRecord, linesFor, pauseWords, subtypeOf, } from "./output.js";
27
+ /** Piped context larger than this is refused, not silently cut: a half-read diff gives a confident wrong review. */
28
+ export const MAX_STDIN_BYTES = 2 * 1024 * 1024;
29
+ /** What an unattended run adds to the system prompt. The contract only: nobody answers, so finish, and report in full. */
30
+ export const UNATTENDED_NOTE = "This run is unattended: no one is watching and no one can answer. Never end with a question or an offer such as " +
31
+ '"want me to...?". Where something is ambiguous, choose the most reasonable option, say which you chose, and finish ' +
32
+ "the work. Stop early only for a decision that only the user can make, and then say exactly what you need. Your " +
33
+ "final reply is read later by a script or a person, so make it a complete report of what you did and found.";
34
+ export async function runHeadless(options, io, ctx) {
35
+ const started = Date.now();
36
+ const say = (text) => void io.stderr.write(text.endsWith("\n") ? text : `${text}\n`);
37
+ const usage = (text) => {
38
+ say(`mindweave: ${text}`);
39
+ return EXIT_USAGE;
40
+ };
41
+ // A script gets a folder it named, never a whole machine by accident. The interactive app asks about
42
+ // this once per folder; here there is nobody to ask, so the broad cases are refused.
43
+ const breadth = rootBreadth(ctx.cwd);
44
+ if (breadth !== "ordinary") {
45
+ return usage(`refusing to work in ${breadth === "home" ? "your home folder" : "a drive root"}. Run it from inside a project folder.`);
46
+ }
47
+ if (io.stdinTooBig) {
48
+ return usage(`the piped input is larger than ${MAX_STDIN_BYTES / (1024 * 1024)} MB. Write it to a file in the project and name the file in the task.`);
49
+ }
50
+ const argText = options.prompt?.trim() ?? "";
51
+ const piped = io.stdin && io.stdin.trim() ? io.stdin : "";
52
+ if (!argText && !piped) {
53
+ return usage('nothing to do. Give a task: mindweave -p "what to do", or pipe it in.');
54
+ }
55
+ let session = null;
56
+ try {
57
+ const resumed = options.resumeId !== undefined || options.continueLast;
58
+ session = resumed ? await resumeSession(ctx.cwd, options.resumeId) : await createSession(ctx.cwd);
59
+ if (!session) {
60
+ return usage(options.resumeId ? `no saved session '${options.resumeId}' in this folder.` : "no earlier session in this folder to continue.");
61
+ }
62
+ // The model: what this project already uses, exactly as the interactive app starts. --model changes it
63
+ // for this run only (setSessionModel would save it). Its key being missing is then an error, not a quiet swap.
64
+ if (options.model) {
65
+ if (!isKnownModel(options.model))
66
+ return usage(`unknown model '${options.model}'. /model in a session lists them.`);
67
+ session.modelConfig = withModel(session.modelConfig, options.model);
68
+ }
69
+ const manifest = manifestForModel(session.modelConfig.model);
70
+ if (!manifest.local && !hasApiKey(manifest.apiKeyEnv)) {
71
+ const other = options.model ? null : usableFallback(session.modelConfig.model, hasApiKey);
72
+ if (!other) {
73
+ say(`mindweave: no API key for ${manifest.label}. Set ${manifest.apiKeyEnv} in ~/.mindweave/.env or the environment (keys: ${manifest.keysUrl}).`);
74
+ return EXIT_NO_KEY;
75
+ }
76
+ session.modelConfig = withModel(session.modelConfig, other);
77
+ say(`no ${manifest.label} key, using ${manifestForModel(other).label} instead.`);
78
+ }
79
+ // Lightning by default: the work is done directly, as it is interactively. A project can set its own default.
80
+ const mode = options.mode ?? (await defaultModeFor(ctx.cwd)) ?? DEFAULT_MODE;
81
+ applySessionMode(session, mode);
82
+ // Tells the model what the code already enforces, so it finishes instead of ending on "want me to...?", which
83
+ // in a script is a dead end. Carried at the end of the system prompt: cached, and absent from an interactive run.
84
+ session.toolContext.agentPrompt = UNATTENDED_NOTE;
85
+ const facts = {
86
+ sessionId: session.id,
87
+ model: session.modelConfig.model,
88
+ mode: sessionMode(session),
89
+ durationMs: 0,
90
+ resultText: "",
91
+ toolCalls: 0,
92
+ errors: [],
93
+ denials: [],
94
+ paused: null,
95
+ signal: null,
96
+ usage: { billed_tokens: 0, input_cached: 0, input_fresh: 0, output: 0 },
97
+ costUsd: 0,
98
+ costEstimated: false,
99
+ };
100
+ const format = options.format;
101
+ const calls = new Map();
102
+ const write = (e) => {
103
+ const aborted = ctx.signal?.aborted === true;
104
+ if (e.type === "toolStart") {
105
+ facts.toolCalls++;
106
+ calls.set(e.id, { name: e.tool ?? e.name, ...(e.arg ? { arg: e.arg } : {}) });
107
+ }
108
+ else if (e.type === "toolEnd" && !e.ok && /^declined /.test(e.summary)) {
109
+ const c = calls.get(e.id);
110
+ const denial = { tool: c?.name ?? "unknown", ...(c?.arg ? { arg: c.arg } : {}) };
111
+ facts.denials.push(denial);
112
+ }
113
+ else if (!aborted && (e.type === "error" || e.type === "notice")) {
114
+ // reportFailure speaks in a notice for a refusal or an outage and an error for the rest; both end the run.
115
+ facts.errors.push(e.type === "error" ? e.text : `${e.title}: ${e.body}`);
116
+ }
117
+ const lines = aborted && (e.type === "error" || e.type === "notice") ? null : linesFor(e, format, options.quiet);
118
+ if (lines?.stdout)
119
+ io.stdout.write(lines.stdout);
120
+ if (lines?.stderr)
121
+ io.stderr.write(lines.stderr);
122
+ };
123
+ if (format === "stream-json") {
124
+ io.stdout.write(JSON.stringify(initRecord({ sessionId: session.id, model: facts.model, mode: facts.mode, cwd: session.cwd, resumed })) + "\n");
125
+ }
126
+ // What the model is given. Typed words go through the same attachment rules as the interactive prompt (a path
127
+ // in quotes attaches the file). Piped text never does: it is data, and a path inside it is not the user's request.
128
+ let content;
129
+ let images = [];
130
+ if (argText) {
131
+ const prepared = await prepareMessage(session, { text: argText, ...(piped ? { pastes: [piped] } : {}) }, write);
132
+ content = prepared.content;
133
+ images = prepared.images;
134
+ }
135
+ else {
136
+ content = piped;
137
+ }
138
+ const before = { ...(session.spend ?? { billed: 0, cacheHit: 0, cacheMiss: 0, output: 0, costUsd: 0 }) };
139
+ const startLen = session.transcript.length;
140
+ await runTurn(session, { content, images }, {
141
+ onEvent: write,
142
+ ...(ctx.signal ? { signal: ctx.signal } : {}),
143
+ onPause: (reason) => {
144
+ facts.paused = reason;
145
+ },
146
+ });
147
+ facts.signal = ctx.signal?.aborted ? (ctx.firedSignal?.() ?? "SIGINT") : null;
148
+ facts.durationMs = Date.now() - started;
149
+ facts.resultText = lastAnswer(session, startLen);
150
+ const after = session.spend;
151
+ if (after) {
152
+ facts.usage = {
153
+ billed_tokens: after.billed - before.billed,
154
+ input_cached: after.cacheHit - before.cacheHit,
155
+ input_fresh: after.cacheMiss - before.cacheMiss,
156
+ output: after.output - before.output,
157
+ };
158
+ facts.costUsd = after.costUsd - before.costUsd;
159
+ facts.costEstimated = after.estimated;
160
+ }
161
+ if (subtypeOf(facts) === "paused" && format !== "stream-json") {
162
+ say(`! stopped before it was done: ${pauseWords(facts.paused)}. Carry on with --continue.`);
163
+ }
164
+ io.stdout.write(finalStdout(format, facts));
165
+ return exitCodeOf(facts);
166
+ }
167
+ catch (error) {
168
+ say(`mindweave: ${error instanceof Error ? error.message : String(error)}`);
169
+ return EXIT_FAILED;
170
+ }
171
+ finally {
172
+ if (session)
173
+ await disposeSession(session).catch(() => { });
174
+ }
175
+ }
176
+ /** The assistant's last words this run, which is the answer. */
177
+ function lastAnswer(session, from) {
178
+ for (let i = session.transcript.length - 1; i >= from; i--) {
179
+ const entry = session.transcript[i];
180
+ if (entry.role === "assistant" && typeof entry.content === "string" && entry.content.trim())
181
+ return entry.content.trim();
182
+ }
183
+ return "";
184
+ }
185
+ function isKnownModel(model) {
186
+ return allProviders().some((p) => modelsOf(p).some((m) => m.id === model) || p.ownsModel?.(model) === true);
187
+ }
188
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/headless/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AAC/H,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,UAAU,EACV,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,oHAAoH;AACpH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,0HAA0H;AAC1H,MAAM,CAAC,MAAM,eAAe,GAC1B,kHAAkH;IAClH,qHAAqH;IACrH,iHAAiH;IACjH,4GAA4G,CAAC;AAwB/G,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE,EAAc,EAAE,GAAoB;IAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC7B,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAC1B,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,qGAAqG;IACrG,qFAAqF;IACrF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,uBAAuB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,wCAAwC,CAAC,CAAC;IACxI,CAAC;IACD,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,kCAAkC,eAAe,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,uEAAuE,CAAC,CAAC;IACzJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;QACvE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,OAAO,CAAC,QAAQ,mBAAmB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC/I,CAAC;QAED,uGAAuG;QACvG,+GAA+G;QAC/G,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,kBAAkB,OAAO,CAAC,KAAK,oCAAoC,CAAC,CAAC;YACpH,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1F,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,GAAG,CAAC,6BAA6B,QAAQ,CAAC,KAAK,SAAS,QAAQ,CAAC,SAAS,mDAAmD,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;gBACnJ,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5D,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,eAAe,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QACnF,CAAC;QAED,8GAA8G;QAC9G,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;QAC7E,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,8GAA8G;QAC9G,kHAAkH;QAClH,OAAO,CAAC,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;QAElD,MAAM,KAAK,GAAa;YACtB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;YAChC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;YAC1B,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACvE,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,KAAK;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;QAChE,MAAM,KAAK,GAAG,CAAC,CAAY,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;YAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1B,MAAM,MAAM,GAAW,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACnE,2GAA2G;gBAC3G,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACjH,IAAI,KAAK,EAAE,MAAM;gBAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,MAAM;gBAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjJ,CAAC;QAED,8GAA8G;QAC9G,mHAAmH;QACnH,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,GAAyD,EAAE,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAChH,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC3B,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACzG,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAE3C,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,CAAC,MAAmB,EAAE,EAAE;gBAC/B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QACxC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,GAAG;gBACZ,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;gBAC3C,YAAY,EAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;gBAC9C,WAAW,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;gBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;aACrC,CAAC;YACF,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/C,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC9D,GAAG,CAAC,iCAAiC,UAAU,CAAC,KAAK,CAAC,MAAO,CAAC,6BAA6B,CAAC,CAAC;QAC/F,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,cAAc,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,WAAW,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,UAAU,CAAC,OAAgB,EAAE,IAAY;IAChD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3H,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AAC9G,CAAC"}
package/dist/index.js CHANGED
@@ -19,6 +19,14 @@
19
19
  */
20
20
  import { loadWithProductionEnv } from "./cli/prodEnv.js";
21
21
  import { registerInkSpeedups } from "./cli/inkSpeed.js";
22
+ import { parseStartupArgs } from "./cli/startupArgs.js";
23
+ // `-p` is one task with no screen. It is decided here, before the UI libraries are loaded or their
24
+ // loader hook is installed, so a script never pays for React and Ink and never needs a terminal.
25
+ const startup = parseStartupArgs(process.argv.slice(2));
26
+ if (startup.kind === "headless") {
27
+ const { runHeadlessMain } = await import("./headless/main.js");
28
+ process.exit(await runHeadlessMain(startup.argv));
29
+ }
22
30
  registerInkSpeedups();
23
31
  await loadWithProductionEnv();
24
32
  await import("./main.js");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,mBAAmB,EAAE,CAAC;AACtB,MAAM,qBAAqB,EAAE,CAAC;AAC9B,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,mGAAmG;AACnG,iGAAiG;AACjG,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;IAChC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,mBAAmB,EAAE,CAAC;AACtB,MAAM,qBAAqB,EAAE,CAAC;AAC9B,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC"}
package/dist/main.js CHANGED
@@ -38,6 +38,11 @@ if (startup.kind === "print") {
38
38
  process.stdout.write(startup.text + "\n");
39
39
  process.exit(0);
40
40
  }
41
+ // `-p` is routed by index.ts before this file is loaded; this only narrows the type for what follows.
42
+ if (startup.kind === "headless") {
43
+ process.stderr.write("mindweave: -p must be started through the mindweave command.\n");
44
+ process.exit(2);
45
+ }
41
46
  // Nothing below this point can run without a terminal to read from, and the failure
42
47
  // without one is a stack trace through React internals on a process that exits 0.
43
48
  // --help, --version and --reset-terminal are answered above, so they still work
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;AACjF,wCAAwC;AACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,sGAAsG;AACtG,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,kFAAkF;AAClF,gFAAgF;AAChF,iCAAiC;AACjC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;IAC7B,qFAAqF;IACrF,uFAAuF;IACvF,qFAAqF;IACrF,sFAAsF;IACtF,oCAAoC;IACpC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,2FAA2F;AAC3F,UAAU,EAAE,CAAC;AAEb,iFAAiF;AACjF,uDAAuD;AACvD,UAAU,EAAE,CAAC;AAEb,sFAAsF;AACtF,sFAAsF;AACtF,uFAAuF;AACvF,uFAAuF;AACvF,wFAAwF;AACxF,qBAAqB,EAAE,CAAC;AAExB,2EAA2E;AAC3E,mFAAmF;AACnF,qBAAqB;AACrB,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE9B,qFAAqF;AACrF,sFAAsF;AACtF,oFAAoF;AACpF,2EAA2E;AAC3E,yFAAyF;AACzF,+EAA+E;AAC/E,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvG,wFAAwF;AACxF,wFAAwF;AACxF,sCAAsC;AACtC,WAAW,EAAE,CAAC;AACd,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,KAAK,YAAY,EAAE,CAAC,CAAC;AAC1D,qBAAqB,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AAErD,qFAAqF;AACrF,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,EAAE;AACF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AACnF,oFAAoF;AACpF,qFAAqF;AACrF,4CAA4C;AAC5C,kFAAkF;AAClF,6DAA6D;AAC7D,yEAAyE;AACzE,MAAM,cAAc,GAAG,cAAc,EAAE,CAAC;AACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE;IACrH,MAAM,EAAE,OAAO;IACf,4FAA4F;IAC5F,6FAA6F;IAC7F,8FAA8F;IAC9F,0DAA0D;IAC1D,WAAW,EAAE,IAAI;IACjB,4CAA4C;IAC5C,EAAE;IACF,kFAAkF;IAClF,qFAAqF;IACrF,wFAAwF;IACxF,uFAAuF;IACvF,wFAAwF;IACxF,oFAAoF;IACpF,WAAW,EAAE,KAAK;IAClB,iFAAiF;IACjF,EAAE;IACF,mFAAmF;IACnF,sFAAsF;IACtF,uFAAuF;IACvF,sFAAsF;IACtF,gCAAgC;IAChC,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAkC;CAC/J,CAAC,CAAC;AAEH,yFAAyF;AACzF,0FAA0F;AAC1F,yFAAyF;AACzF,+CAA+C;AAC/C,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC/B,cAAc,EAAE,CAAC;AACjB,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;AACrC,IAAI,OAAO,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,CACV,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE;QAC9F,kFAAkF;QAClF,oFAAoF;QACpF,kFAAkF;QAClF,mFAAmF;QACnF,4CAA4C;QAC5C,QAAQ,EAAE,GAAG,EAAE;YACb,aAAa,EAAE,CAAC;YAChB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QACJ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;KACpD,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -14,14 +14,12 @@
14
14
  * moment of the clear, when the cached prefix is being rewritten anyway.
15
15
  *
16
16
  * read_file may open these files (tools/guard.ts allows the `cleared` folder inside
17
- * Mindweave's state folder). Only the most recent sessions' archives are kept.
17
+ * Mindweave's state folder). They are never deleted: what a click on an old row opens is read back from here, so it must not go the way of the model's copy.
18
18
  */
19
- import { mkdirSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
19
+ import { mkdirSync, writeFileSync } from "node:fs";
20
20
  import { join } from "node:path";
21
21
  import { projectDir } from "./store.js";
22
22
  import { CLEARED_STUB, estimateTokens } from "./compaction.js";
23
- /** How many sessions per project keep their cleared results on disk. */
24
- const KEEP_SESSIONS = 10;
25
23
  /** Where one session's cleared results are kept. */
26
24
  export function clearedDir(cwd, sessionId) {
27
25
  return join(projectDir(cwd), "cleared", sessionId.replace(/[^A-Za-z0-9_-]/g, "_"));
@@ -64,7 +62,6 @@ function archive(before, after, cwd, sessionId, changedSince) {
64
62
  try {
65
63
  if (!made) {
66
64
  mkdirSync(dir, { recursive: true });
67
- pruneOldSessions(join(dir, ".."), dir);
68
65
  made = true;
69
66
  }
70
67
  const file = join(dir, `${e.toolCallId.replace(/[^A-Za-z0-9_-]/g, "_")}.txt`);
@@ -102,19 +99,4 @@ function singlePath(args) {
102
99
  }
103
100
  return null;
104
101
  }
105
- /** Keep the newest KEEP_SESSIONS session folders under `root`, always including `current`. */
106
- function pruneOldSessions(root, current) {
107
- try {
108
- const dirs = readdirSync(root)
109
- .map((name) => join(root, name))
110
- .filter((p) => p !== current)
111
- .map((p) => ({ p, at: statSync(p).mtimeMs }))
112
- .sort((a, b) => b.at - a.at);
113
- for (const { p } of dirs.slice(KEEP_SESSIONS - 1))
114
- rmSync(p, { recursive: true, force: true });
115
- }
116
- catch {
117
- /* nothing to prune */
118
- }
119
- }
120
102
  //# sourceMappingURL=clearedArchive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clearedArchive.js","sourceRoot":"","sources":["../../src/memory/clearedArchive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clearedArchive.js","sourceRoot":"","sources":["../../src/memory/clearedArchive.ts"],"names":[],"mappings":"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"}
@@ -49,10 +49,44 @@ export function withoutClearedNote(content) {
49
49
  * genuine recaps (long enough) are touched — short acknowledgements stay. */
50
50
  export const RECAP_STUB = "[earlier status update condensed — this work is done; focus on the current task]";
51
51
  const RECAP_MIN_CHARS = 220;
52
+ /** Whether a reply the model has just written is the stub itself. A history with several stubs in it can make a
53
+ * model write one back as its answer, and that is a placeholder, not a reply. */
54
+ export function isRecapStub(text) {
55
+ return text.trim().startsWith(RECAP_STUB.slice(0, RECAP_STUB.indexOf(" —")));
56
+ }
57
+ /** Said to the model in place of a reply that was the placeholder. */
58
+ export const RECAP_STUB_NUDGE = "That reply was the placeholder that stands in for an older message, not an answer. Answer the person's last message now, in your own words.";
52
59
  /** Left behind when an attached image's payload is evicted. Keeps the full PATH, which is
53
60
  * the restoration key: with only a file name the one way back was asking the user, and a
54
61
  * model given a name it cannot open will guess a path instead. */
55
62
  export const IMAGE_CLEARED_STUB = "was attached here but is no longer in context — open it again with view_image if you need to look at it, or ask me to re-attach it if that path is gone";
63
+ /** Compaction appends "[<paths> was attached here but is no longer in context …]" to a
64
+ * user message whose image it evicted (see IMAGE_CLEARED_STUB; older sessions carry an
65
+ * earlier wording). That note is for the MODEL. Replay shows the person their own words,
66
+ * plus which attachments have expired. */
67
+ export const EXPIRED_IMAGE_NOTE = /\s*\[([^[\]]+?) was attached here but is no longer in context[^\]]*\]/g;
68
+ export function splitExpiredImages(content) {
69
+ const expired = [];
70
+ const paths = [];
71
+ const text = content.replace(EXPIRED_IMAGE_NOTE, (_m, names) => {
72
+ for (const n of names.split(", ")) {
73
+ paths.push(n);
74
+ expired.push(n.split(/[\\/]/).pop() ?? n);
75
+ }
76
+ return "";
77
+ });
78
+ return expired.length ? { text: text.trimEnd(), expiredImages: expired, expiredPaths: paths } : { text: content };
79
+ }
80
+ /**
81
+ * A user message as the person sent it: its words and images from before anything was trimmed for the model, or as they
82
+ * are now for a message nothing was trimmed from. The one place the chat, a resumed session and a rewind read from.
83
+ */
84
+ export function userAsSent(e) {
85
+ const o = e.original;
86
+ if (o)
87
+ return { content: o.content, ...(o.images?.length ? { images: o.images } : {}) };
88
+ return { content: e.content, ...(e.images?.length ? { images: e.images } : {}) };
89
+ }
56
90
  /** Edit/write tools whose call INPUT carries bulky content (a whole file, a diff, a
57
91
  * symbol body). The input is what the model WROTE, and it is the only record in the
58
92
  * conversation of what it meant to put there: the result of an edit is a stub, and the
@@ -417,13 +451,16 @@ releasePinned = false) {
417
451
  const att = clearAttachmentBodies(e.content);
418
452
  attachmentsCleared += att.count;
419
453
  const text = att.count > 0 ? att.content : e.content;
454
+ // What the person sent is kept on the entry the first time anything of it is trimmed, so the saved message is
455
+ // never only the shortened copy the model reads (see `original` on the user entry).
456
+ const original = e.original ?? { content: e.content, ...(e.images && e.images.length > 0 ? { images: e.images } : {}) };
420
457
  if (e.images && e.images.length > 0) {
421
458
  imagesCleared += e.images.length;
422
459
  const names = e.images.map((img) => img.path).join(", ");
423
460
  const { images: _dropped, ...rest } = e;
424
- return { ...rest, content: `${text}\n\n[${names} ${IMAGE_CLEARED_STUB}]` };
461
+ return { ...rest, content: `${text}\n\n[${names} ${IMAGE_CLEARED_STUB}]`, original };
425
462
  }
426
- return att.count > 0 ? { ...e, content: text } : e;
463
+ return att.count > 0 ? { ...e, content: text, original } : e;
427
464
  }
428
465
  return e;
429
466
  });
@@ -593,6 +630,17 @@ export function spliceSummary(entries, summary, keepLastN = KEEP_LAST_N, at = Da
593
630
  const HISTORY_PREFIX = "[Summary of the earlier part of this conversation. It records what already " +
594
631
  "happened; it is not a task list. The user has written since it was made, so " +
595
632
  "answer the user's newest message.]\n\n";
633
+ /**
634
+ * What stands in for the rewrite while the rewrite cannot be afforded (see `settleSummaries`).
635
+ *
636
+ * The summary is the first message, so changing it makes the provider read the whole conversation
637
+ * again at full price, and the moment the user speaks is the worst time: the cache was filled a few
638
+ * seconds ago. Until the cache is gone anyway the summary is sent exactly as it was, and this line
639
+ * rides in the volatile tail, outside the cached prefix, saying what the rewrite would have said.
640
+ */
641
+ export const SUMMARY_HISTORY_NOTE = "The first message in this conversation is a summary of its earlier part. The user has written since " +
642
+ "it was made: its \"Next Step\" and any instruction in it to continue are out of date. Treat it as a " +
643
+ "record of what already happened, and answer the user's newest message.";
596
644
  /**
597
645
  * Has the user spoken since this summary was made (pure)?
598
646
  *
@@ -643,6 +691,50 @@ export function summaryForWire(content, isHistory) {
643
691
  const body = content.replace(RESUME_PREFIX_RE, "").replace(NEXT_STEP_RE, "").trimEnd();
644
692
  return HISTORY_PREFIX + body.replace(/\s+(?=<\/summary>$)/, "\n");
645
693
  }
694
+ /**
695
+ * Whether a summary should be sent in its background form now, as opposed to in the note that
696
+ * stands in for it (pure). Only once it has been settled: see `settleSummaries`.
697
+ */
698
+ export function summaryWireIsHistory(summary, after) {
699
+ return summary.role === "summary" && summary.settled === true && summaryIsHistory(summary, after);
700
+ }
701
+ /** Whether any summary is history for the user but still carries its hand-off (pure). */
702
+ export function hasUnsettledHistory(entries) {
703
+ return entries.some((e, i) => e.role === "summary" && e.settled !== true && summaryIsHistory(e, entries.slice(i + 1)));
704
+ }
705
+ /**
706
+ * The transcript with every summary that is history rewritten into its background form for good
707
+ * (pure; the same array back when there is none).
708
+ *
709
+ * Called only where the provider's cached copy of the conversation is being discarded anyway: the
710
+ * cache has expired, or a clear that was judged worth its price is already rewriting the prefix. A
711
+ * summary is the FIRST message, so settling it on a warm cache would make the provider read the whole
712
+ * conversation again at full price; the note in the volatile tail does its job until then.
713
+ */
714
+ export function settleSummaries(entries) {
715
+ if (!hasUnsettledHistory(entries))
716
+ return entries;
717
+ return entries.map((e, i) => e.role === "summary" && e.settled !== true && summaryIsHistory(e, entries.slice(i + 1)) ? { ...e, settled: true } : e);
718
+ }
719
+ /**
720
+ * Index of the first entry that differs between two versions of a transcript, or the shorter
721
+ * length when one is a prefix of the other (pure). Entries a clear did not touch come back as the
722
+ * same object, so identity settles almost all of them; the rest are compared by what they say.
723
+ */
724
+ export function firstChangedEntry(before, after) {
725
+ const n = Math.min(before.length, after.length);
726
+ for (let i = 0; i < n; i++) {
727
+ const a = before[i];
728
+ const b = after[i];
729
+ if (a === b)
730
+ continue;
731
+ if (a.role !== b.role || a.content !== b.content)
732
+ return i;
733
+ if (JSON.stringify(a) !== JSON.stringify(b))
734
+ return i;
735
+ }
736
+ return n;
737
+ }
646
738
  /**
647
739
  * Split the transcript at API-ROUND boundaries: one group per model round-trip.
648
740
  *
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/memory/compaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/memory/compaction.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,50 @@ export function fullReadPaths(entries, resolve) {
56
56
  }
57
57
  return present;
58
58
  }
59
+ /**
60
+ * The line ranges of a file whose text is still present in the transcript, from `read_file`
61
+ * calls that took a range (pure). The companion to `fullReadPaths` for a read with
62
+ * `offset`/`limit`: which lines are meant comes from the result's own summary
63
+ * (`read a.ts lines 200-499`), the thing that says what was actually sent, and a result that
64
+ * has since been cleared to a stub, failed, or was itself an "unchanged" answer is left out.
65
+ */
66
+ export function visibleReadRanges(entries, resolve) {
67
+ const callById = new Map();
68
+ for (const e of entries) {
69
+ if (e.role === "assistant" && e.toolCalls) {
70
+ for (const tc of e.toolCalls)
71
+ callById.set(tc.id, { name: tc.name, arguments: tc.arguments });
72
+ }
73
+ }
74
+ const out = new Map();
75
+ for (const e of entries) {
76
+ if (e.role !== "tool" || e.isError || e.content.includes(CLEARED_STUB) || e.content.startsWith("Error:"))
77
+ continue;
78
+ const call = callById.get(e.toolCallId ?? "");
79
+ if (!call || call.name !== "read_file")
80
+ continue;
81
+ const said = /\blines (\d+)-(\d+)/.exec(e.summary ?? "");
82
+ if (!said || /\(unchanged\)/.test(e.summary ?? ""))
83
+ continue;
84
+ let args;
85
+ try {
86
+ args = JSON.parse(call.arguments);
87
+ }
88
+ catch {
89
+ continue;
90
+ }
91
+ // A range applies to a single file; a call naming several read them whole.
92
+ if (typeof args.path !== "string" || Array.isArray(args.paths))
93
+ continue;
94
+ const abs = resolve(args.path);
95
+ if (!abs)
96
+ continue;
97
+ const list = out.get(abs) ?? [];
98
+ list.push({ start: Number(said[1]), end: Number(said[2]) });
99
+ out.set(abs, list);
100
+ }
101
+ return out;
102
+ }
59
103
  /**
60
104
  * Absolute paths the model has WRITTEN or EDITED, from tool calls that succeeded.
61
105
  *