mindweave 2.4.4 → 2.4.6
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/dist/cli/App.js +158 -99
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/attachments.js +14 -1
- package/dist/cli/attachments.js.map +1 -1
- package/dist/cli/components/KeyManager.js +3 -42
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/McpMinitabs.js +689 -0
- package/dist/cli/components/McpMinitabs.js.map +1 -0
- package/dist/cli/components/minitabs.js +71 -0
- package/dist/cli/components/minitabs.js.map +1 -0
- package/dist/dynamo/engine.js +29 -7
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/prompt.js +2 -0
- package/dist/dynamo/prompt.js.map +1 -1
- package/dist/mcp/config.js +57 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/configWrite.js +40 -2
- package/dist/mcp/configWrite.js.map +1 -1
- package/dist/mcp/connection.js +51 -1
- package/dist/mcp/connection.js.map +1 -1
- package/dist/mcp/manager.js +65 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/oauth/callback.js +171 -0
- package/dist/mcp/oauth/callback.js.map +1 -0
- package/dist/mcp/oauth/flow.js +415 -0
- package/dist/mcp/oauth/flow.js.map +1 -0
- package/dist/mcp/oauth/index.js +243 -0
- package/dist/mcp/oauth/index.js.map +1 -0
- package/dist/mcp/oauth/metadata.js +192 -0
- package/dist/mcp/oauth/metadata.js.map +1 -0
- package/dist/mcp/oauth/pkce.js +56 -0
- package/dist/mcp/oauth/pkce.js.map +1 -0
- package/dist/mcp/oauth/tokenStore.js +103 -0
- package/dist/mcp/oauth/tokenStore.js.map +1 -0
- package/dist/mcp/transport/http.js +33 -5
- package/dist/mcp/transport/http.js.map +1 -1
- package/dist/memory/session.js +4 -0
- package/dist/memory/session.js.map +1 -1
- package/dist/tools/backgroundShells.js +42 -4
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/mcpAdd.js +7 -0
- package/dist/tools/mcpAdd.js.map +1 -1
- package/dist/tools/subagent.js +41 -3
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/todo.js +35 -0
- package/dist/tools/todo.js.map +1 -1
- package/dist/tools/verifyReport.js +144 -0
- package/dist/tools/verifyReport.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* verifyReport.ts — the contract a verification worker answers under.
|
|
3
|
+
*
|
|
4
|
+
* A normal worker reports on ITSELF: `STATUS: complete` means "I did what you asked".
|
|
5
|
+
* A verifier has to report on something else — the code — and those two are genuinely
|
|
6
|
+
* different claims. A verifier can do its job perfectly and still have to say the work is
|
|
7
|
+
* broken, which under the worker contract would be a "complete" report carrying a failure,
|
|
8
|
+
* or worse, a "failed" report implying the verifier malfunctioned. So verification gets
|
|
9
|
+
* its own word, `VERDICT`, and its own parser.
|
|
10
|
+
*
|
|
11
|
+
* THE PROBLEM THIS WHOLE FILE EXISTS FOR: a model asked to verify will, under load,
|
|
12
|
+
* read the code, narrate the checks it would run, and write PASS. That is not a rare
|
|
13
|
+
* failure — it is the default one, and no amount of asking nicely fixes it. So the
|
|
14
|
+
* contract is mechanical instead: a PASS must carry command output, `evidenceCount`
|
|
15
|
+
* counts it, and `parseVerdict` DOWNGRADES a PASS that carries none. The model cannot
|
|
16
|
+
* talk its way past a function that counts.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* The verifier's own instructions, appended to its system prompt.
|
|
20
|
+
*
|
|
21
|
+
* Deliberately about the MODEL's failure modes rather than about testing technique. The
|
|
22
|
+
* strategy half of this ("start the server, hit the endpoint") is engineering judgment the
|
|
23
|
+
* model already has and the thin-prompt boundary says we do not teach. What it does NOT
|
|
24
|
+
* reliably have is resistance to its own urge to skip the check — so that is what this
|
|
25
|
+
* spends its words on, named specifically enough to be recognised in the moment.
|
|
26
|
+
*/
|
|
27
|
+
export const VERIFIER_PROMPT = `You are verifying someone else's work. Your job is not to confirm it works — it is to try to break it.
|
|
28
|
+
|
|
29
|
+
You have two failure modes, and naming them is the point:
|
|
30
|
+
|
|
31
|
+
1. VERIFICATION AVOIDANCE. Faced with a check, you find reasons not to run it: you read the code, describe what you would test, write "PASS", and move on. Reading is not verification. If you catch yourself writing an explanation where a command should be, stop and run the command.
|
|
32
|
+
2. THE FIRST 80%. A screen that renders and a green test suite feel like success. They are the easy part. The value is entirely in the last 20% — the button that does nothing, the state that vanishes on reload, the input that crashes it. Go looking for that.
|
|
33
|
+
|
|
34
|
+
These are the exact sentences you will reach for. Each one is wrong:
|
|
35
|
+
- "The code looks correct based on my reading" — run it.
|
|
36
|
+
- "The existing tests already pass" — those were written by the same kind of model that wrote the code. Check independently.
|
|
37
|
+
- "This is probably fine" — probably is not verified.
|
|
38
|
+
- "I don't have the tools for this" — check what you actually have before deciding that.
|
|
39
|
+
|
|
40
|
+
YOU CANNOT MODIFY ANYTHING. Your edit and write tools are removed, not discouraged — this is enforced, so do not plan around it. Read, search, and run commands. A scratch file under the system temp directory is fine; the project is not.
|
|
41
|
+
|
|
42
|
+
WHAT TO DO. Run the build. Run the tests, including the full suite when the change is broad enough to warrant it. Run the typechecker and any linter. Then — and this is the part that matters — exercise the change itself: call the function, hit the endpoint, run the command, drive the UI. Finally, try to break it: boundary values, empty and malformed input, the same operation twice, an id that does not exist.
|
|
43
|
+
|
|
44
|
+
Test results are context, not evidence. Note them and move on to checking the thing itself.
|
|
45
|
+
|
|
46
|
+
EVERY CHECK IS REPORTED LIKE THIS:
|
|
47
|
+
|
|
48
|
+
### Check: <what you are verifying>
|
|
49
|
+
$ <the exact command you ran>
|
|
50
|
+
<the real output, pasted — trimmed if long, but never paraphrased>
|
|
51
|
+
=> PASS (or FAIL, with what you expected and what you got)
|
|
52
|
+
|
|
53
|
+
A check with no command and no output is not a PASS, it is a skip, and it is counted as one. At least one of your checks must be an attempt to BREAK the code, and you must report what happened even if it held up correctly.
|
|
54
|
+
|
|
55
|
+
BEFORE YOU REPORT FAIL, rule out three things: something upstream already handles it; a comment or the project's own notes say it is deliberate; or it is a real limit that cannot be fixed without breaking something external. Any of those makes it an observation, not a failure. Do not use them to wave away a real bug either.
|
|
56
|
+
|
|
57
|
+
END WITH EXACTLY ONE LINE, nothing after it:
|
|
58
|
+
VERDICT: pass
|
|
59
|
+
VERDICT: fail
|
|
60
|
+
VERDICT: partial
|
|
61
|
+
|
|
62
|
+
\`partial\` is ONLY for something that stopped you — a tool you do not have, a server that will not start, no test framework. It is not for "I am unsure whether this is a bug". If you were able to run the check, decide.`;
|
|
63
|
+
/** The line the verifier must end on, restated at the end of the task where it is closest
|
|
64
|
+
* to the work. The system prompt says it once; a long run buries a single mention. */
|
|
65
|
+
export const VERDICT_INSTRUCTION = "End your reply with a final line of exactly `VERDICT: pass`, `VERDICT: fail`, or `VERDICT: partial` — " +
|
|
66
|
+
"pass only if you RAN checks that prove it works, fail if something is broken, partial only if " +
|
|
67
|
+
"something prevented you from checking at all. Every check you claim must show the command you ran " +
|
|
68
|
+
"and the output you got back.";
|
|
69
|
+
/**
|
|
70
|
+
* Same leniency as the worker status line, for the same reason: asked for a bare line,
|
|
71
|
+
* models reliably produce `**VERDICT: pass**` or `> VERDICT: PASS.` and a verdict that
|
|
72
|
+
* fails to parse reads as "never reached a conclusion", which would flag every
|
|
73
|
+
* well-behaved verifier and train the caller to ignore the flag.
|
|
74
|
+
*/
|
|
75
|
+
const VERDICT_LINE = /^[ \t>*_#-]*VERDICT[:\s]+\s*(pass|fail|partial)[ \t*_.!]*$/im;
|
|
76
|
+
/**
|
|
77
|
+
* Count the checks that actually show their working (pure).
|
|
78
|
+
*
|
|
79
|
+
* Two shapes are accepted because the prompt asks for one and models drift to the other:
|
|
80
|
+
* a `$ command` line, and a fenced block introduced by "Command run". Both require the
|
|
81
|
+
* OUTPUT to follow, which is the half that cannot be produced without running anything.
|
|
82
|
+
*/
|
|
83
|
+
export function evidenceCount(text) {
|
|
84
|
+
let count = 0;
|
|
85
|
+
const lines = text.split(/\r?\n/);
|
|
86
|
+
for (let i = 0; i < lines.length; i++) {
|
|
87
|
+
const line = lines[i];
|
|
88
|
+
const isCommand = /^\s*\$\s+\S/.test(line) || /^\s*\*{0,2}Command run/i.test(line);
|
|
89
|
+
if (!isCommand)
|
|
90
|
+
continue;
|
|
91
|
+
// A command with nothing after it is a command someone typed into a report, not one
|
|
92
|
+
// they ran. Something non-empty has to follow before the next check heading.
|
|
93
|
+
const next = lines.slice(i + 1, i + 6).find((l) => l.trim() && !/^\s*\$\s+\S/.test(l));
|
|
94
|
+
if (next && !/^#{1,6}\s/.test(next))
|
|
95
|
+
count += 1;
|
|
96
|
+
}
|
|
97
|
+
return count;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Read the verifier's conclusion, and refuse to take an unevidenced PASS at face value.
|
|
101
|
+
*
|
|
102
|
+
* The downgrade is the whole mechanism. A model that skipped the work and wrote `pass`
|
|
103
|
+
* produces a report with no command output in it, and that is a property of the text that
|
|
104
|
+
* a function can check — unlike sincerity, which is not. `fail` and `partial` are NOT
|
|
105
|
+
* downgraded: claiming something is broken, or that you were blocked, is not a claim that
|
|
106
|
+
* benefits the claimer, so there is no incentive to fake it and no reason to second-guess.
|
|
107
|
+
*/
|
|
108
|
+
export function parseVerdict(reply) {
|
|
109
|
+
const text = (reply ?? "").trim();
|
|
110
|
+
const match = VERDICT_LINE.exec(text);
|
|
111
|
+
const stated = (match?.[1]?.toLowerCase() ?? "unstated");
|
|
112
|
+
const body = match ? text.replace(VERDICT_LINE, "").trim() : text;
|
|
113
|
+
const evidence = evidenceCount(body);
|
|
114
|
+
const concerns = [];
|
|
115
|
+
let verdict = stated;
|
|
116
|
+
let downgraded = false;
|
|
117
|
+
if (stated === "pass" && evidence === 0) {
|
|
118
|
+
verdict = "partial";
|
|
119
|
+
downgraded = true;
|
|
120
|
+
concerns.push("claimed pass without showing a single command and its output — treat as unverified, not as working");
|
|
121
|
+
}
|
|
122
|
+
if (stated === "unstated") {
|
|
123
|
+
concerns.push("never stated a verdict");
|
|
124
|
+
}
|
|
125
|
+
if (stated === "pass" && evidence === 1) {
|
|
126
|
+
// Not downgraded — one real check is a real check — but a single one is rarely the
|
|
127
|
+
// adversarial probe the contract asks for as well as the happy path.
|
|
128
|
+
concerns.push("only one check carried evidence; nothing here looks like an attempt to break it");
|
|
129
|
+
}
|
|
130
|
+
return { verdict, body, evidence, downgraded, concerns };
|
|
131
|
+
}
|
|
132
|
+
/** One line for the transcript. The caller gets the body; the user gets this. */
|
|
133
|
+
export function renderVerdict(report) {
|
|
134
|
+
const label = report.verdict === "pass"
|
|
135
|
+
? "verified"
|
|
136
|
+
: report.verdict === "fail"
|
|
137
|
+
? "FAILED verification"
|
|
138
|
+
: report.verdict === "partial"
|
|
139
|
+
? "could not fully verify"
|
|
140
|
+
: "no verdict";
|
|
141
|
+
const checks = report.evidence === 1 ? "1 check" : `${report.evidence} checks`;
|
|
142
|
+
return `${label} · ${checks}`;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=verifyReport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyReport.js","sourceRoot":"","sources":["../../src/tools/verifyReport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mindweave",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.6",
|
|
4
4
|
"description": "Mindweave — a fast, model-adaptive terminal coding agent.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"install-global": "npm run build && npm link",
|
|
37
37
|
"typecheck": "tsc --noEmit",
|
|
38
38
|
"test": "npm run test:main && npm run test:lang",
|
|
39
|
-
"test:main": "node --max-old-space-size=4096 --import tsx --import ./scripts/testState.mjs --test --test-concurrency=4 --test-timeout=120000 src/drivers/clientId.test.ts src/drivers/contextOverflow.test.ts src/drivers/retryPolicy.test.ts src/drivers/partialTurn.test.ts src/drivers/retryTransport.test.ts src/tools/tools.test.ts src/tools/quietFailures.test.ts src/tools/readBatch.test.ts src/tools/readBudget.test.ts src/tools/search.test.ts src/tools/searchPrecision.test.ts src/tools/ripgrepBundle.test.ts src/tools/shellLint.test.ts src/tools/askUser.test.ts src/tools/newtools.test.ts src/tools/webSearch.test.ts src/tools/webFetch.test.ts src/tools/screenshot.test.ts src/tools/viewImage.test.ts src/tools/openDefault.test.ts src/tools/commandOutput.test.ts src/tools/commandProgress.test.ts src/tools/runCommandExit.test.ts src/tools/exitPlan.test.ts src/dynamo/planLifecycle.test.ts src/dynamo/steering.test.ts src/cli/approvalText.probe.test.tsx src/tools/webSecurity.test.ts src/tools/codeIntel.test.ts src/memory/resumeFidelity.test.ts src/memory/memory.test.ts src/memory/durability.test.ts src/memory/memoryIndex.test.ts src/memory/callLog.test.ts src/memory/auditFixes.test.ts src/memory/compactionHygiene.test.ts src/memory/rounds.test.ts src/memory/subagentCost.test.ts src/memory/sessionMemory.test.ts src/memory/sessionMemoryCompact.test.ts src/memory/restore.test.ts src/memory/resumeReads.test.ts src/memory/autoMemory.test.ts src/memory/projectMemory.test.ts src/memory/projectNotes.test.ts src/memory/workingSet.test.ts src/memory/presence.test.ts src/memory/pastedText.test.ts src/memory/images.test.ts src/dynamo/contextWindow.test.ts src/dynamo/compactPaths.test.ts src/dynamo/cacheBreak.test.ts src/dynamo/coldCache.test.ts src/drivers/anthropic/cachePoints.test.ts src/dynamo/planArtifact.test.ts src/tools/focus.test.ts src/tools/workingSetTools.test.ts src/project/context.test.ts src/cli/version.test.ts src/cli/updateCheck.test.ts src/cli/quietConsole.test.ts src/cli/appIdentity.test.ts src/cli/memoryTuning.test.ts src/cli/keyField.test.ts src/cli/keyStore.test.ts src/cli/keyManager.probe.test.tsx src/cli/trust.probe.test.tsx src/cli/firstRunFrame.probe.test.tsx src/cli/keySetup.probe.test.tsx src/cli/firstRun.test.ts src/cli/startupFill.test.ts src/cli/liveSize.test.ts src/cli/frameBottom.probe.test.tsx src/cli/screenMode.test.ts src/cli/screenPicker.probe.test.tsx src/cli/screenShell.test.ts src/cli/screenStore.test.ts src/cli/inlineShell.probe.test.tsx src/cli/inlineCaret.probe.test.tsx src/cli/startupArgs.test.ts src/cli/markdown.test.ts src/cli/help.test.ts src/cli/providerSwitch.test.ts src/cli/attachments.test.ts src/cli/pasteAssembler.test.ts src/cli/approvalQueue.test.ts src/cli/transcript.test.ts src/cli/viewWait.probe.test.tsx src/cli/compaction.test.ts src/cli/commandLabel.test.ts src/cli/restart.test.ts src/cli/selfUpdate.test.ts src/cli/blockHeights.test.ts src/cli/resizePolicy.probe.test.tsx src/cli/blockSpacing.test.ts src/cli/inputView.test.ts src/cli/wordEdit.test.ts src/cli/wordEdit.probe.test.tsx src/cli/dropHandles.test.ts src/cli/dropHandles.probe.test.tsx src/cli/tipLine.probe.test.tsx src/cli/selection.test.ts src/cli/mouseLayer.probe.test.tsx src/cli/caret.probe.test.tsx src/cli/caretPark.test.ts src/cli/shuttle.probe.test.tsx src/cli/toolReveal.test.tsx src/cli/blockPerf.probe.test.tsx src/cli/blockSpacing.probe.test.tsx src/cli/workingVerb.test.ts src/cli/typingPerf.probe.test.tsx src/cli/scrollPerf.probe.test.tsx src/cli/virtualWindow.test.ts src/cli/virtualRender.probe.test.tsx src/cli/incrementalResize.probe.test.tsx src/cli/framebuffer/paint.test.ts src/cli/framebuffer/terminalAgreement.test.ts src/cli/framebuffer/writer.test.tsx src/cli/framebuffer/stoodDown.test.tsx src/cli/framebuffer/resizeCorruption.probe.test.tsx src/cli/toolItems.test.ts src/cli/toolDisplay.test.ts src/cli/toolColour.probe.test.tsx src/cli/mouse.test.ts src/cli/wheelCoalesce.test.ts src/cli/terminalRestore.test.ts src/cli/exitCursor.test.ts src/cli/ctrlC.test.ts src/cli/wrap.test.ts src/cli/chatAnchor.test.ts src/cli/chatAnchor.probe.test.tsx src/cli/scrollPill.test.ts src/cli/scrollPill.probe.test.tsx src/cli/pillClick.probe.test.tsx src/cli/inlineReading.probe.test.tsx src/cli/readingClose.probe.test.tsx src/cli/footerRemount.probe.test.tsx src/cli/scrollFlicker.probe.test.tsx src/cli/headerScroll.probe.test.tsx src/cli/reflowAnchor.test.ts src/cli/groupReveal.test.ts src/cli/revealPace.test.ts src/cli/messageQueue.test.ts src/cli/resumeParity.test.ts src/cli/commands.test.ts src/cli/commandRoute.test.ts src/cli/commandArgs.test.ts src/cli/pickerOrder.test.ts src/cli/clearSession.test.ts src/cli/queuePop.probe.test.tsx src/cli/menuContinuity.probe.test.tsx src/dynamo/model.test.ts src/dynamo/engine.test.ts src/drivers/docsCurrent.test.ts src/drivers/registry.test.ts src/drivers/providerSwitch.test.ts src/drivers/dynamicManifest.test.ts src/drivers/newProviders.test.ts src/drivers/providerError.test.ts src/cli/refusalNotice.probe.test.tsx src/drivers/deepseek/client.test.ts src/drivers/deepseek/vision.test.ts src/drivers/deepseek/live.test.ts src/drivers/anthropic/client.test.ts src/drivers/openai/client.test.ts src/drivers/qwen/client.test.ts src/drivers/kimi/client.test.ts src/drivers/glm/client.test.ts src/drivers/tencent/client.test.ts src/drivers/gemini/client.test.ts src/drivers/gemini/thoughtSignature.test.ts src/drivers/meta/client.test.ts src/drivers/minimax/client.test.ts src/dynamo/pricing.test.ts src/dynamo/spend.test.ts src/dynamo/liveMeter.test.ts src/drivers/deepseek/inlineTools.test.ts src/dynamo/verify.test.ts src/dynamo/promptAssembly.test.ts src/dynamo/prefixStability.test.ts src/dynamo/providerNeutrality.test.ts src/dynamo/guard.test.ts src/cli/modes.test.ts src/tools/sessionTools.test.ts src/tools/registry.test.ts src/tools/toolSurface.test.ts src/tools/runCommandShell.test.ts src/tools/runCommandCross.test.ts src/tools/posixShell.test.ts src/tools/processOwnership.test.ts src/tools/editRipple.test.ts src/tools/editCore.test.ts src/tools/workspaceBoundary.test.ts src/tools/atomicWrite.test.ts src/tools/edit.test.ts src/tools/checkpoints.test.ts src/tools/shellCheckpoint.test.ts src/tools/spanCore.test.ts src/tools/symbolTools.test.ts src/tools/subagent.test.ts src/tools/subagentReport.test.ts src/tools/testSummary.test.ts src/tools/outputShape.test.ts src/tools/detail.test.ts src/tools/approval.test.ts src/tools/agentData.test.ts src/tools/multiroot.test.ts src/tools/gitignore.test.ts src/tools/chassisMux.test.ts src/tools/workspaceDiscover.test.ts src/tools/backgroundShells.test.ts src/tools/killTree.test.ts src/governor/scope.test.ts src/governor/freshness.test.ts src/governor/governor.test.ts src/tools/governorTools.test.ts src/alternator/chassis/chassis.test.ts src/alternator/chassis/domRefs.test.ts src/alternator/chassis/servers.test.ts src/alternator/chassis/provision.test.ts src/alternator/chassis/lsp.test.ts src/mcp/protocol.test.ts src/mcp/mrtr.test.ts src/mcp/discover.test.ts src/mcp/catalog.test.ts src/mcp/paramHeaders.test.ts src/mcp/paramHeadersLive.test.ts src/mcp/transport/stdio.test.ts src/mcp/config.test.ts src/mcp/transport/http.test.ts src/mcp/manager.test.ts src/mcp/subscriptions.test.ts src/mcp/deferred.test.ts src/tools/mcpSearch.test.ts src/mcp/trust.test.ts src/mcp/governance.test.ts src/mcp/configWrite.test.ts src/tools/mcpAdd.test.ts src/mcp/resultStore.test.ts src/mcp/resources.test.ts src/mcp/prompts.test.ts src/tools/editMatching.test.ts src/tools/editScope.test.ts src/tools/editFreshness.test.ts src/dynamo/batchEdit.test.ts",
|
|
39
|
+
"test:main": "node --max-old-space-size=4096 --import tsx --import ./scripts/testState.mjs --test --test-concurrency=4 --test-timeout=120000 src/drivers/clientId.test.ts src/drivers/contextOverflow.test.ts src/drivers/retryPolicy.test.ts src/drivers/partialTurn.test.ts src/drivers/retryTransport.test.ts src/tools/tools.test.ts src/tools/quietFailures.test.ts src/tools/readBatch.test.ts src/tools/readBudget.test.ts src/tools/search.test.ts src/tools/searchPrecision.test.ts src/tools/ripgrepBundle.test.ts src/tools/shellLint.test.ts src/tools/askUser.test.ts src/tools/newtools.test.ts src/tools/webSearch.test.ts src/tools/webFetch.test.ts src/tools/screenshot.test.ts src/tools/viewImage.test.ts src/tools/openDefault.test.ts src/tools/commandOutput.test.ts src/tools/commandProgress.test.ts src/tools/runCommandExit.test.ts src/tools/exitPlan.test.ts src/dynamo/planLifecycle.test.ts src/dynamo/steering.test.ts src/dynamo/backgroundNotes.test.ts src/cli/approvalText.probe.test.tsx src/tools/webSecurity.test.ts src/tools/codeIntel.test.ts src/memory/resumeFidelity.test.ts src/memory/memory.test.ts src/memory/durability.test.ts src/memory/memoryIndex.test.ts src/memory/callLog.test.ts src/memory/auditFixes.test.ts src/memory/compactionHygiene.test.ts src/memory/rounds.test.ts src/memory/subagentCost.test.ts src/memory/sessionMemory.test.ts src/memory/sessionMemoryCompact.test.ts src/memory/restore.test.ts src/memory/resumeReads.test.ts src/memory/autoMemory.test.ts src/memory/projectMemory.test.ts src/memory/projectNotes.test.ts src/memory/workingSet.test.ts src/memory/presence.test.ts src/memory/pastedText.test.ts src/memory/images.test.ts src/dynamo/contextWindow.test.ts src/dynamo/compactPaths.test.ts src/dynamo/cacheBreak.test.ts src/dynamo/coldCache.test.ts src/drivers/anthropic/cachePoints.test.ts src/dynamo/planArtifact.test.ts src/tools/focus.test.ts src/tools/workingSetTools.test.ts src/project/context.test.ts src/cli/version.test.ts src/cli/updateCheck.test.ts src/cli/quietConsole.test.ts src/cli/appIdentity.test.ts src/cli/memoryTuning.test.ts src/cli/keyField.test.ts src/cli/keyStore.test.ts src/cli/keyManager.probe.test.tsx src/cli/mcpMinitabs.probe.test.tsx src/cli/components/minitabs.probe.test.tsx src/cli/trust.probe.test.tsx src/cli/firstRunFrame.probe.test.tsx src/cli/keySetup.probe.test.tsx src/cli/firstRun.test.ts src/cli/startupFill.test.ts src/cli/liveSize.test.ts src/cli/frameBottom.probe.test.tsx src/cli/screenMode.test.ts src/cli/screenPicker.probe.test.tsx src/cli/screenShell.test.ts src/cli/screenStore.test.ts src/cli/inlineShell.probe.test.tsx src/cli/inlineCaret.probe.test.tsx src/cli/startupArgs.test.ts src/cli/markdown.test.ts src/cli/help.test.ts src/cli/providerSwitch.test.ts src/cli/attachments.test.ts src/cli/pasteAssembler.test.ts src/cli/approvalQueue.test.ts src/cli/transcript.test.ts src/cli/viewWait.probe.test.tsx src/cli/compaction.test.ts src/cli/commandLabel.test.ts src/cli/restart.test.ts src/cli/selfUpdate.test.ts src/cli/blockHeights.test.ts src/cli/resizePolicy.probe.test.tsx src/cli/blockSpacing.test.ts src/cli/inputView.test.ts src/cli/wordEdit.test.ts src/cli/wordEdit.probe.test.tsx src/cli/dropHandles.test.ts src/cli/dropHandles.probe.test.tsx src/cli/tipLine.probe.test.tsx src/cli/selection.test.ts src/cli/mouseLayer.probe.test.tsx src/cli/caret.probe.test.tsx src/cli/caretPark.test.ts src/cli/shuttle.probe.test.tsx src/cli/toolReveal.test.tsx src/cli/blockPerf.probe.test.tsx src/cli/blockSpacing.probe.test.tsx src/cli/workingVerb.test.ts src/cli/typingPerf.probe.test.tsx src/cli/scrollPerf.probe.test.tsx src/cli/virtualWindow.test.ts src/cli/virtualRender.probe.test.tsx src/cli/incrementalResize.probe.test.tsx src/cli/framebuffer/paint.test.ts src/cli/framebuffer/terminalAgreement.test.ts src/cli/framebuffer/writer.test.tsx src/cli/framebuffer/stoodDown.test.tsx src/cli/framebuffer/resizeCorruption.probe.test.tsx src/cli/toolItems.test.ts src/cli/toolDisplay.test.ts src/cli/toolColour.probe.test.tsx src/cli/mouse.test.ts src/cli/wheelCoalesce.test.ts src/cli/terminalRestore.test.ts src/cli/exitCursor.test.ts src/cli/ctrlC.test.ts src/cli/wrap.test.ts src/cli/chatAnchor.test.ts src/cli/chatAnchor.probe.test.tsx src/cli/scrollPill.test.ts src/cli/scrollPill.probe.test.tsx src/cli/pillClick.probe.test.tsx src/cli/inlineReading.probe.test.tsx src/cli/readingClose.probe.test.tsx src/cli/footerRemount.probe.test.tsx src/cli/scrollFlicker.probe.test.tsx src/cli/headerScroll.probe.test.tsx src/cli/reflowAnchor.test.ts src/cli/groupReveal.test.ts src/cli/revealPace.test.ts src/cli/messageQueue.test.ts src/cli/resumeParity.test.ts src/cli/commands.test.ts src/cli/commandRoute.test.ts src/cli/commandArgs.test.ts src/cli/pickerOrder.test.ts src/cli/clearSession.test.ts src/cli/queuePop.probe.test.tsx src/cli/menuContinuity.probe.test.tsx src/dynamo/model.test.ts src/dynamo/engine.test.ts src/drivers/docsCurrent.test.ts src/drivers/registry.test.ts src/drivers/providerSwitch.test.ts src/drivers/dynamicManifest.test.ts src/drivers/newProviders.test.ts src/drivers/providerError.test.ts src/cli/refusalNotice.probe.test.tsx src/drivers/deepseek/client.test.ts src/drivers/deepseek/vision.test.ts src/drivers/deepseek/live.test.ts src/drivers/anthropic/client.test.ts src/drivers/openai/client.test.ts src/drivers/qwen/client.test.ts src/drivers/kimi/client.test.ts src/drivers/glm/client.test.ts src/drivers/tencent/client.test.ts src/drivers/gemini/client.test.ts src/drivers/gemini/thoughtSignature.test.ts src/drivers/meta/client.test.ts src/drivers/minimax/client.test.ts src/dynamo/pricing.test.ts src/dynamo/spend.test.ts src/dynamo/liveMeter.test.ts src/drivers/deepseek/inlineTools.test.ts src/dynamo/verify.test.ts src/dynamo/promptAssembly.test.ts src/dynamo/prefixStability.test.ts src/dynamo/providerNeutrality.test.ts src/dynamo/guard.test.ts src/cli/modes.test.ts src/tools/sessionTools.test.ts src/tools/registry.test.ts src/tools/toolSurface.test.ts src/tools/runCommandShell.test.ts src/tools/runCommandCross.test.ts src/tools/posixShell.test.ts src/tools/processOwnership.test.ts src/tools/editRipple.test.ts src/tools/editCore.test.ts src/tools/workspaceBoundary.test.ts src/tools/atomicWrite.test.ts src/tools/edit.test.ts src/tools/checkpoints.test.ts src/tools/shellCheckpoint.test.ts src/tools/spanCore.test.ts src/tools/symbolTools.test.ts src/tools/subagent.test.ts src/tools/subagentReport.test.ts src/tools/verifyReport.test.ts src/tools/testSummary.test.ts src/tools/outputShape.test.ts src/tools/detail.test.ts src/tools/approval.test.ts src/tools/agentData.test.ts src/tools/multiroot.test.ts src/tools/gitignore.test.ts src/tools/chassisMux.test.ts src/tools/workspaceDiscover.test.ts src/tools/backgroundShells.test.ts src/tools/killTree.test.ts src/governor/scope.test.ts src/governor/freshness.test.ts src/governor/governor.test.ts src/tools/governorTools.test.ts src/alternator/chassis/chassis.test.ts src/alternator/chassis/domRefs.test.ts src/alternator/chassis/servers.test.ts src/alternator/chassis/provision.test.ts src/alternator/chassis/lsp.test.ts src/mcp/protocol.test.ts src/mcp/mrtr.test.ts src/mcp/discover.test.ts src/mcp/catalog.test.ts src/mcp/paramHeaders.test.ts src/mcp/paramHeadersLive.test.ts src/mcp/transport/stdio.test.ts src/mcp/config.test.ts src/mcp/transport/http.test.ts src/mcp/manager.test.ts src/mcp/subscriptions.test.ts src/mcp/deferred.test.ts src/tools/mcpSearch.test.ts src/mcp/trust.test.ts src/mcp/governance.test.ts src/mcp/configWrite.test.ts src/tools/mcpAdd.test.ts src/mcp/resultStore.test.ts src/mcp/resources.test.ts src/mcp/prompts.test.ts src/mcp/oauth/metadata.test.ts src/mcp/oauth/flow.test.ts src/mcp/oauth/callback.test.ts src/mcp/oauth/tokenStore.test.ts src/mcp/oauth/index.test.ts src/mcp/oauth/endToEnd.test.ts src/tools/editMatching.test.ts src/tools/editScope.test.ts src/tools/editFreshness.test.ts src/dynamo/batchEdit.test.ts",
|
|
40
40
|
"test:lang": "node --max-old-space-size=4096 --import tsx --import ./scripts/testState.mjs --test --test-concurrency=1 src/alternator/chassis/treesitter.test.ts src/alternator/chassis/treesitterIsolation.test.ts src/alternator/chassis/markup.test.ts src/alternator/chassis/treesitterLangs.test.ts src/alternator/chassis/treesitterLangs2.test.ts src/alternator/chassis/treesitterLangs3.test.ts src/alternator/chassis/treesitterLangs4.test.ts src/alternator/chassis/langBudget.test.ts"
|
|
41
41
|
},
|
|
42
42
|
"engines": {
|