knitbrain 0.1.2 → 0.2.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 +66 -23
- package/dist/engine/agents.d.ts +4 -0
- package/dist/engine/agents.js +3 -2
- package/dist/engine/agents.js.map +1 -1
- package/dist/engine/feedback.js +1 -1
- package/dist/engine/feedback.js.map +1 -1
- package/dist/evals.d.ts +53 -0
- package/dist/evals.js +189 -0
- package/dist/evals.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/learn.d.ts +39 -0
- package/dist/learn.js +289 -0
- package/dist/learn.js.map +1 -0
- package/dist/lib.d.ts +37 -0
- package/dist/lib.js +17 -0
- package/dist/lib.js.map +1 -0
- package/dist/mcp/instructions.d.ts +7 -0
- package/dist/mcp/instructions.js +29 -0
- package/dist/mcp/instructions.js.map +1 -0
- package/dist/mcp/tools.js +47 -12
- package/dist/mcp/tools.js.map +1 -1
- package/dist/optimizer/ast.d.ts +11 -0
- package/dist/optimizer/ast.js +99 -29
- package/dist/optimizer/ast.js.map +1 -1
- package/dist/optimizer/code.js +1 -1
- package/dist/optimizer/code.js.map +1 -1
- package/dist/optimizer/router.d.ts +3 -1
- package/dist/optimizer/router.js +32 -7
- package/dist/optimizer/router.js.map +1 -1
- package/dist/optimizer/structured.d.ts +43 -0
- package/dist/optimizer/structured.js +196 -0
- package/dist/optimizer/structured.js.map +1 -0
- package/dist/optimizer/text.js +38 -7
- package/dist/optimizer/text.js.map +1 -1
- package/dist/optimizer/types.d.ts +4 -2
- package/dist/platforms.d.ts +11 -1
- package/dist/platforms.js +34 -1
- package/dist/platforms.js.map +1 -1
- package/dist/proxy/cache-aligner.d.ts +25 -4
- package/dist/proxy/cache-aligner.js +45 -4
- package/dist/proxy/cache-aligner.js.map +1 -1
- package/dist/proxy/optimize-request.d.ts +10 -0
- package/dist/proxy/optimize-request.js +96 -6
- package/dist/proxy/optimize-request.js.map +1 -1
- package/dist/proxy/server.js +2 -2
- package/dist/proxy/server.js.map +1 -1
- package/dist/server.js +5 -1
- package/dist/server.js.map +1 -1
- package/dist/setup.d.ts +1 -1
- package/dist/setup.js +30 -1
- package/dist/setup.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -2
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { sha256 } from "../ccr/store.js";
|
|
2
2
|
import { compress } from "../optimizer/router.js";
|
|
3
3
|
import { countTokens } from "../tokenizer.js";
|
|
4
|
-
import {
|
|
5
|
-
const DEFAULTS = {
|
|
4
|
+
import { alignDynamicContent, prefixHash } from "./cache-aligner.js";
|
|
5
|
+
const DEFAULTS = {
|
|
6
|
+
keepLastTurns: 2,
|
|
7
|
+
minBlockChars: 200,
|
|
8
|
+
allowProse: true,
|
|
9
|
+
cacheAlign: true,
|
|
10
|
+
};
|
|
11
|
+
/** Does the request already carry client-set cache_control anywhere? */
|
|
12
|
+
function hasClientCacheControl(body) {
|
|
13
|
+
const blockHas = (b) => b["cache_control"] !== undefined;
|
|
14
|
+
if (Array.isArray(body.system) && body.system.some(blockHas))
|
|
15
|
+
return true;
|
|
16
|
+
for (const m of body.messages) {
|
|
17
|
+
if (Array.isArray(m.content) && m.content.some(blockHas))
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
6
22
|
/** Concatenate all human-readable text in a request, for honest token accounting. */
|
|
7
23
|
function collectText(body) {
|
|
8
24
|
const parts = [];
|
|
@@ -97,15 +113,89 @@ export function optimizeRequest(body, ccr, options = {}) {
|
|
|
97
113
|
const messages = msgs.map((m, i) => i >= protectFrom
|
|
98
114
|
? { ...m, content: applyToContent(m.content, splitCompress) }
|
|
99
115
|
: { ...m, content: applyToContent(m.content, compressString) });
|
|
100
|
-
//
|
|
116
|
+
// CACHE ALIGNER: stabilize the system prefix. Whitespace-normalize AND move
|
|
117
|
+
// volatile lines ("Today's date is …") to a marked tail section — content
|
|
118
|
+
// preserved verbatim, but the leading bytes stop churning between sessions.
|
|
119
|
+
let dynamicMoved = 0;
|
|
101
120
|
let system = body.system;
|
|
102
|
-
if (
|
|
103
|
-
system
|
|
121
|
+
if (opts.cacheAlign) {
|
|
122
|
+
if (typeof system === "string") {
|
|
123
|
+
const a = alignDynamicContent(system);
|
|
124
|
+
system = a.text;
|
|
125
|
+
dynamicMoved += a.moved;
|
|
126
|
+
}
|
|
127
|
+
else if (Array.isArray(system)) {
|
|
128
|
+
system = system.map((b) => {
|
|
129
|
+
if (typeof b.text !== "string")
|
|
130
|
+
return b;
|
|
131
|
+
const a = alignDynamicContent(b.text);
|
|
132
|
+
dynamicMoved += a.moved;
|
|
133
|
+
return { ...b, text: a.text };
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// OpenAI protocol: the system prompt is the leading system/developer message.
|
|
137
|
+
if (options.provider === "openai") {
|
|
138
|
+
for (let i = 0; i < messages.length && (messages[i].role === "system" || messages[i].role === "developer"); i += 1) {
|
|
139
|
+
const m = messages[i];
|
|
140
|
+
if (typeof m.content === "string") {
|
|
141
|
+
const a = alignDynamicContent(m.content);
|
|
142
|
+
dynamicMoved += a.moved;
|
|
143
|
+
messages[i] = { ...m, content: a.text };
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
104
148
|
const optimized = { ...body, messages };
|
|
105
149
|
if (system !== undefined)
|
|
106
150
|
optimized.system = system;
|
|
151
|
+
// PROVIDER CACHE STRATEGY (Anthropic): explicit cache_control breakpoints —
|
|
152
|
+
// system prompt + the stable history boundary (the last fully-compressed
|
|
153
|
+
// turn). Inserted ONLY when the client set none of its own: hosts like
|
|
154
|
+
// Claude Code manage their own breakpoints and we never fight them.
|
|
155
|
+
let cacheBreakpoints = 0;
|
|
156
|
+
if (opts.cacheAlign && options.provider === "anthropic" && !hasClientCacheControl(optimized)) {
|
|
157
|
+
const ephemeral = { type: "ephemeral" };
|
|
158
|
+
if (typeof optimized.system === "string") {
|
|
159
|
+
optimized.system = [{ type: "text", text: optimized.system, cache_control: ephemeral }];
|
|
160
|
+
cacheBreakpoints += 1;
|
|
161
|
+
}
|
|
162
|
+
else if (Array.isArray(optimized.system) && optimized.system.length > 0) {
|
|
163
|
+
const last = optimized.system[optimized.system.length - 1];
|
|
164
|
+
optimized.system[optimized.system.length - 1] = { ...last, cache_control: ephemeral };
|
|
165
|
+
cacheBreakpoints += 1;
|
|
166
|
+
}
|
|
167
|
+
const boundary = protectFrom - 1;
|
|
168
|
+
if (boundary >= 0) {
|
|
169
|
+
const m = messages[boundary];
|
|
170
|
+
const blocks = typeof m.content === "string" ? [{ type: "text", text: m.content }] : [...m.content];
|
|
171
|
+
if (blocks.length > 0) {
|
|
172
|
+
blocks[blocks.length - 1] = { ...blocks[blocks.length - 1], cache_control: ephemeral };
|
|
173
|
+
messages[boundary] = { ...m, content: blocks };
|
|
174
|
+
cacheBreakpoints += 1;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const sysText = typeof optimized.system === "string"
|
|
179
|
+
? optimized.system
|
|
180
|
+
: Array.isArray(optimized.system)
|
|
181
|
+
? optimized.system.map((b) => b.text ?? "").join("\n")
|
|
182
|
+
: "";
|
|
107
183
|
const after = countTokens(collectText(optimized));
|
|
108
184
|
const savedPct = before === 0 ? 0 : Math.round((1 - after / before) * 1000) / 10;
|
|
109
|
-
return {
|
|
185
|
+
return {
|
|
186
|
+
body: optimized,
|
|
187
|
+
stats: {
|
|
188
|
+
originalTokens: before,
|
|
189
|
+
optimizedTokens: after,
|
|
190
|
+
savedPct,
|
|
191
|
+
blocksCompressed,
|
|
192
|
+
blocksDeduped,
|
|
193
|
+
handles,
|
|
194
|
+
kinds,
|
|
195
|
+
dynamicMoved,
|
|
196
|
+
cacheBreakpoints,
|
|
197
|
+
prefixHash: prefixHash(sysText),
|
|
198
|
+
},
|
|
199
|
+
};
|
|
110
200
|
}
|
|
111
201
|
//# sourceMappingURL=optimize-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-request.js","sourceRoot":"","sources":["../../src/proxy/optimize-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"optimize-request.js","sourceRoot":"","sources":["../../src/proxy/optimize-request.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/server.js
CHANGED
|
@@ -69,7 +69,8 @@ async function handle(req, res, cfg) {
|
|
|
69
69
|
res.end(JSON.stringify({ error: "invalid JSON body" }));
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
|
-
const
|
|
72
|
+
const provider = detectProvider(req.url);
|
|
73
|
+
const options = { provider, ...cfg.options };
|
|
73
74
|
if (cfg.feedback && options.allowProse === undefined) {
|
|
74
75
|
options.allowProse = !cfg.feedback.shouldSkip("prose");
|
|
75
76
|
}
|
|
@@ -79,7 +80,6 @@ async function handle(req, res, cfg) {
|
|
|
79
80
|
cfg.feedback.onCompress(kind, handle);
|
|
80
81
|
}
|
|
81
82
|
cfg.onStats?.(stats);
|
|
82
|
-
const provider = detectProvider(req.url);
|
|
83
83
|
const url = resolveUpstream(cfg, provider).replace(/\/+$/, "") + req.url;
|
|
84
84
|
const upstream = await fetch(url, {
|
|
85
85
|
method: "POST",
|
package/dist/proxy/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createSkillsStore } from "./engine/skills.js";
|
|
|
10
10
|
import { createCalibration } from "./engine/calibration.js";
|
|
11
11
|
import { calibrationRoot, ccrRoot, feedbackRoot, knowledgeRoot, memoryRoot, meterRoot, skillsRoot, teamRoot } from "./paths.js";
|
|
12
12
|
import { TOOLS, dispatch } from "./mcp/tools.js";
|
|
13
|
+
import { INSTRUCTIONS } from "./mcp/instructions.js";
|
|
13
14
|
import { SERVER_NAME, VERSION } from "./version.js";
|
|
14
15
|
export { VERSION, SERVER_NAME } from "./version.js";
|
|
15
16
|
/**
|
|
@@ -21,7 +22,10 @@ export { VERSION, SERVER_NAME } from "./version.js";
|
|
|
21
22
|
* local-first store under ~/.knitbrain/ccr).
|
|
22
23
|
*/
|
|
23
24
|
export function buildServer(ccr = createFileCCRStore(ccrRoot()), memory = createMemory(memoryRoot()), knowledge = createKnowledge(process.cwd(), knowledgeRoot()), feedback = createFeedback(feedbackRoot()), team = createTeamBoard(teamRoot(), ccr), meter = createMeter(meterRoot()), skills = createSkillsStore(skillsRoot()), calibration = createCalibration(calibrationRoot())) {
|
|
24
|
-
const server = new Server({ name: SERVER_NAME, version: VERSION },
|
|
25
|
+
const server = new Server({ name: SERVER_NAME, version: VERSION },
|
|
26
|
+
// instructions ride the MCP handshake: every connected agent gets the
|
|
27
|
+
// operating protocol with ZERO per-project file setup.
|
|
28
|
+
{ capabilities: { tools: {} }, instructions: INSTRUCTIONS });
|
|
25
29
|
const ctx = { ccr, memory, knowledge, feedback, team, meter, skills, calibration };
|
|
26
30
|
server.setRequestHandler(ListToolsRequestSchema, () => ({
|
|
27
31
|
tools: TOOLS.map((t) => ({
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChI,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,MAAgB,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAC7C,SAAiB,YAAY,CAAC,UAAU,EAAE,CAAC,EAC3C,YAAuB,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,EACtE,WAAqB,cAAc,CAAC,YAAY,EAAE,CAAC,EACnD,OAAkB,eAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,EAClD,QAAe,WAAW,CAAC,SAAS,EAAE,CAAC,EACvC,SAAsB,iBAAiB,CAAC,UAAU,EAAE,CAAC,EACrD,cAA2B,iBAAiB,CAAC,eAAe,EAAE,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type Platform = "claude-code" | "cursor" | "codex" | "vscode" | "unknown";
|
|
1
|
+
export type Platform = "claude-code" | "cursor" | "codex" | "vscode" | "windsurf" | "zed" | "copilot-cli" | "unknown";
|
|
2
2
|
export interface DetectInputs {
|
|
3
3
|
env: NodeJS.ProcessEnv;
|
|
4
4
|
exists: (path: string) => boolean;
|
package/dist/setup.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
-
import { applyArtifacts, claudeArtifacts, codexSnippet, cursorArtifacts, vscodeArtifacts } from "./platforms.js";
|
|
4
|
+
import { applyArtifacts, claudeArtifacts, codexSnippet, cursorArtifacts, vscodeArtifacts, windsurfArtifacts, windsurfSnippet, zedSnippet, copilotSnippet, } from "./platforms.js";
|
|
5
5
|
/** Detect which coding platform(s) are present (pure — inputs injected). */
|
|
6
6
|
export function detectPlatforms(inp) {
|
|
7
7
|
const found = [];
|
|
@@ -18,6 +18,12 @@ export function detectPlatforms(inp) {
|
|
|
18
18
|
if (inp.exists(join(inp.home, ".vscode")) || inp.env["TERM_PROGRAM"] === "vscode") {
|
|
19
19
|
found.push("vscode");
|
|
20
20
|
}
|
|
21
|
+
if (inp.exists(join(inp.home, ".codeium", "windsurf")))
|
|
22
|
+
found.push("windsurf");
|
|
23
|
+
if (inp.exists(join(inp.home, ".config", "zed")))
|
|
24
|
+
found.push("zed");
|
|
25
|
+
if (inp.exists(join(inp.home, ".copilot")))
|
|
26
|
+
found.push("copilot-cli");
|
|
21
27
|
return found.length > 0 ? found : ["unknown"];
|
|
22
28
|
}
|
|
23
29
|
/** The config knitbrain wires up: an MCP server entry + the proxy base URLs. */
|
|
@@ -65,6 +71,8 @@ export function runSetup(cwd = process.cwd()) {
|
|
|
65
71
|
artifacts.push(...cursorArtifacts());
|
|
66
72
|
if (platforms.includes("vscode"))
|
|
67
73
|
artifacts.push(...vscodeArtifacts());
|
|
74
|
+
if (platforms.includes("windsurf"))
|
|
75
|
+
artifacts.push(...windsurfArtifacts());
|
|
68
76
|
for (const path of applyArtifacts(cwd, artifacts, cfg))
|
|
69
77
|
console.log(` ✓ wrote ${path}`);
|
|
70
78
|
if (platforms.includes("codex")) {
|
|
@@ -72,6 +80,27 @@ export function runSetup(cwd = process.cwd()) {
|
|
|
72
80
|
for (const line of codexSnippet(cfg).split("\n"))
|
|
73
81
|
console.log(` ${line}`);
|
|
74
82
|
}
|
|
83
|
+
if (platforms.includes("windsurf")) {
|
|
84
|
+
console.log(" Windsurf detected — rules written; MCP config is global, add this yourself:");
|
|
85
|
+
for (const line of windsurfSnippet().split("\n"))
|
|
86
|
+
console.log(` ${line}`);
|
|
87
|
+
}
|
|
88
|
+
if (platforms.includes("zed")) {
|
|
89
|
+
console.log(" Zed detected — MCP config is global, add this yourself:");
|
|
90
|
+
for (const line of zedSnippet().split("\n"))
|
|
91
|
+
console.log(` ${line}`);
|
|
92
|
+
}
|
|
93
|
+
if (platforms.includes("copilot-cli")) {
|
|
94
|
+
// VS Code Copilot is covered by the vscode artifacts (.vscode/mcp.json +
|
|
95
|
+
// .github/instructions); the standalone CLI keeps its config global.
|
|
96
|
+
console.log(" Copilot CLI detected — its MCP config is global, add this yourself:");
|
|
97
|
+
for (const line of copilotSnippet().split("\n"))
|
|
98
|
+
console.log(` ${line}`);
|
|
99
|
+
}
|
|
100
|
+
console.log("");
|
|
101
|
+
console.log(" The operating protocol itself needs NO setup: it rides the MCP handshake");
|
|
102
|
+
console.log(" (any MCP client gets it). For platforms without MCP-instructions support,");
|
|
103
|
+
console.log(" paste the output of: knitbrain prompt");
|
|
75
104
|
// Billing-mode detection: an API key in the environment means API /
|
|
76
105
|
// pay-as-you-go traffic that CAN be proxied; no key usually means a
|
|
77
106
|
// subscription (Pro/Max) OAuth session that cannot — MCP-side optimization
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "knitbrain",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The local-first brain for coding agents: per-project memory, task-tier workflow routing, and lossless context compression \u2014 measured
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "The local-first brain for coding agents: per-project memory, task-tier workflow routing, and lossless context compression \u2014 measured 48.7% of all tool-result tokens on real sessions, answer-preservation gated, reproducible with one command.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "dist/lib.js",
|
|
7
|
+
"types": "dist/lib.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/lib.d.ts",
|
|
11
|
+
"default": "./dist/lib.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
6
14
|
"bin": {
|
|
7
15
|
"knitbrain": "dist/index.js",
|
|
8
16
|
"knitbrain-proxy": "dist/proxy/index.js",
|
|
@@ -40,6 +48,7 @@
|
|
|
40
48
|
"test": "vitest run",
|
|
41
49
|
"bench": "tsx scripts/bench.ts",
|
|
42
50
|
"e2e": "npm run build && node scripts/e2e.mjs",
|
|
51
|
+
"e2e:tools": "npm run build && node scripts/e2e-tools.mjs",
|
|
43
52
|
"audit:prod": "node scripts/production-audit.mjs",
|
|
44
53
|
"prepack": "npm run build",
|
|
45
54
|
"prepublishOnly": "npm run verify",
|