@brainst0rm/cli 0.13.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 +32 -0
- package/dist/App-DPXJYXKH.js +2794 -0
- package/dist/App-DPXJYXKH.js.map +1 -0
- package/dist/App-SSKWB7CT.js +2795 -0
- package/dist/App-SSKWB7CT.js.map +1 -0
- package/dist/brainstorm.js +4636 -0
- package/dist/brainstorm.js.map +1 -0
- package/dist/chunk-2CHZHDIM.js +391 -0
- package/dist/chunk-2CHZHDIM.js.map +1 -0
- package/dist/chunk-55ITCWZZ.js +1307 -0
- package/dist/chunk-55ITCWZZ.js.map +1 -0
- package/dist/chunk-5NA3GH6X.js +1308 -0
- package/dist/chunk-5NA3GH6X.js.map +1 -0
- package/dist/chunk-7D4SUZUM.js +38 -0
- package/dist/chunk-7D4SUZUM.js.map +1 -0
- package/dist/chunk-D474E47D.js +148 -0
- package/dist/chunk-D474E47D.js.map +1 -0
- package/dist/chunk-GJXEX2A3.js +146 -0
- package/dist/chunk-GJXEX2A3.js.map +1 -0
- package/dist/chunk-OVGL3NJQ.js +307 -0
- package/dist/chunk-OVGL3NJQ.js.map +1 -0
- package/dist/chunk-VY6MPJXL.js +389 -0
- package/dist/chunk-VY6MPJXL.js.map +1 -0
- package/dist/chunk-YWXOPUDW.js +305 -0
- package/dist/chunk-YWXOPUDW.js.map +1 -0
- package/dist/chunk-ZWE3DS7E.js +39 -0
- package/dist/chunk-ZWE3DS7E.js.map +1 -0
- package/dist/dist-DUDO3RDM.js +9573 -0
- package/dist/dist-DUDO3RDM.js.map +1 -0
- package/dist/dist-GNHTH2DH.js +292 -0
- package/dist/dist-GNHTH2DH.js.map +1 -0
- package/dist/dist-JUDVPE7G.js +293 -0
- package/dist/dist-JUDVPE7G.js.map +1 -0
- package/dist/dist-V5DTSTKJ.js +9572 -0
- package/dist/dist-V5DTSTKJ.js.map +1 -0
- package/dist/dist-WLTQTLFO.js +14 -0
- package/dist/dist-WLTQTLFO.js.map +1 -0
- package/dist/dist-YIGU37Q2.js +15 -0
- package/dist/dist-YIGU37Q2.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4635 -0
- package/dist/index.js.map +1 -0
- package/dist/recorder-D6ILEOZP.js +67 -0
- package/dist/recorder-D6ILEOZP.js.map +1 -0
- package/dist/recorder-SPYYF4DL.js +66 -0
- package/dist/recorder-SPYYF4DL.js.map +1 -0
- package/dist/roles-2DGF4PZU.js +16 -0
- package/dist/roles-2DGF4PZU.js.map +1 -0
- package/dist/roles-UIPX7GBC.js +17 -0
- package/dist/roles-UIPX7GBC.js.map +1 -0
- package/dist/slash-PDWKCZOQ.js +13 -0
- package/dist/slash-PDWKCZOQ.js.map +1 -0
- package/dist/slash-ZDC4DKL4.js +14 -0
- package/dist/slash-ZDC4DKL4.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "./chunk-ZWE3DS7E.js";
|
|
3
|
+
|
|
4
|
+
// src/voice/recorder.ts
|
|
5
|
+
import { spawn, execFileSync } from "child_process";
|
|
6
|
+
import { tmpdir } from "os";
|
|
7
|
+
import { join } from "path";
|
|
8
|
+
import { randomUUID } from "crypto";
|
|
9
|
+
import { existsSync } from "fs";
|
|
10
|
+
var AudioRecorder = class {
|
|
11
|
+
process = null;
|
|
12
|
+
outputPath = "";
|
|
13
|
+
/** Check if sox is available. */
|
|
14
|
+
static isAvailable() {
|
|
15
|
+
try {
|
|
16
|
+
execFileSync("sox", ["--version"], {
|
|
17
|
+
encoding: "utf-8",
|
|
18
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
19
|
+
});
|
|
20
|
+
return true;
|
|
21
|
+
} catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Start recording audio. Returns the path where audio will be saved. */
|
|
26
|
+
start() {
|
|
27
|
+
if (this.process) {
|
|
28
|
+
throw new Error("Already recording. Call stop() first.");
|
|
29
|
+
}
|
|
30
|
+
this.outputPath = join(
|
|
31
|
+
tmpdir(),
|
|
32
|
+
`brainstorm-voice-${randomUUID().slice(0, 8)}.wav`
|
|
33
|
+
);
|
|
34
|
+
this.process = spawn(
|
|
35
|
+
"sox",
|
|
36
|
+
["-d", "-r", "16000", "-c", "1", "-b", "16", this.outputPath],
|
|
37
|
+
{
|
|
38
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
this.process.on("error", (err) => {
|
|
42
|
+
console.error(`Recording error: ${err.message}`);
|
|
43
|
+
this.process = null;
|
|
44
|
+
});
|
|
45
|
+
return this.outputPath;
|
|
46
|
+
}
|
|
47
|
+
/** Stop recording and return the audio file path. */
|
|
48
|
+
stop() {
|
|
49
|
+
if (!this.process) {
|
|
50
|
+
throw new Error("Not recording. Call start() first.");
|
|
51
|
+
}
|
|
52
|
+
this.process.kill("SIGTERM");
|
|
53
|
+
this.process = null;
|
|
54
|
+
if (!existsSync(this.outputPath)) {
|
|
55
|
+
throw new Error("Recording failed \u2014 no audio file produced.");
|
|
56
|
+
}
|
|
57
|
+
return this.outputPath;
|
|
58
|
+
}
|
|
59
|
+
/** Check if currently recording. */
|
|
60
|
+
isRecording() {
|
|
61
|
+
return this.process !== null && !this.process.killed;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
export {
|
|
65
|
+
AudioRecorder
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=recorder-D6ILEOZP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/voice/recorder.ts"],"sourcesContent":["import { spawn, execFileSync, type ChildProcess } from \"node:child_process\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\n\n/**\n * Audio recorder using sox (cross-platform).\n *\n * Records audio from the default microphone to a temp WAV file.\n * Requires `sox` to be installed (brew install sox / apt install sox).\n */\nexport class AudioRecorder {\n private process: ChildProcess | null = null;\n private outputPath: string = \"\";\n\n /** Check if sox is available. */\n static isAvailable(): boolean {\n try {\n execFileSync(\"sox\", [\"--version\"], {\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n return true;\n } catch {\n return false;\n }\n }\n\n /** Start recording audio. Returns the path where audio will be saved. */\n start(): string {\n if (this.process) {\n throw new Error(\"Already recording. Call stop() first.\");\n }\n\n this.outputPath = join(\n tmpdir(),\n `brainstorm-voice-${randomUUID().slice(0, 8)}.wav`,\n );\n\n // sox -d = default audio device, -r 16000 = 16kHz (Whisper optimal), -c 1 = mono\n this.process = spawn(\n \"sox\",\n [\"-d\", \"-r\", \"16000\", \"-c\", \"1\", \"-b\", \"16\", this.outputPath],\n {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n },\n );\n\n this.process.on(\"error\", (err) => {\n console.error(`Recording error: ${err.message}`);\n this.process = null;\n });\n\n return this.outputPath;\n }\n\n /** Stop recording and return the audio file path. */\n stop(): string {\n if (!this.process) {\n throw new Error(\"Not recording. Call start() first.\");\n }\n\n this.process.kill(\"SIGTERM\");\n this.process = null;\n\n if (!existsSync(this.outputPath)) {\n throw new Error(\"Recording failed — no audio file produced.\");\n }\n\n return this.outputPath;\n }\n\n /** Check if currently recording. */\n isRecording(): boolean {\n return this.process !== null && !this.process.killed;\n }\n}\n"],"mappings":";;;;AAAA,SAAS,OAAO,oBAAuC;AACvD,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAQpB,IAAM,gBAAN,MAAoB;AAAA,EACjB,UAA+B;AAAA,EAC/B,aAAqB;AAAA;AAAA,EAG7B,OAAO,cAAuB;AAC5B,QAAI;AACF,mBAAa,OAAO,CAAC,WAAW,GAAG;AAAA,QACjC,UAAU;AAAA,QACV,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,MAClC,CAAC;AACD,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA,QAAgB;AACd,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACzD;AAEA,SAAK,aAAa;AAAA,MAChB,OAAO;AAAA,MACP,oBAAoB,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC;AAAA,IAC9C;AAGA,SAAK,UAAU;AAAA,MACb;AAAA,MACA,CAAC,MAAM,MAAM,SAAS,MAAM,KAAK,MAAM,MAAM,KAAK,UAAU;AAAA,MAC5D;AAAA,QACE,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,MAClC;AAAA,IACF;AAEA,SAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ;AAChC,cAAQ,MAAM,oBAAoB,IAAI,OAAO,EAAE;AAC/C,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,OAAe;AACb,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AAEA,SAAK,QAAQ,KAAK,SAAS;AAC3B,SAAK,UAAU;AAEf,QAAI,CAAC,WAAW,KAAK,UAAU,GAAG;AAChC,YAAM,IAAI,MAAM,iDAA4C;AAAA,IAC9D;AAEA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,cAAuB;AACrB,WAAO,KAAK,YAAY,QAAQ,CAAC,KAAK,QAAQ;AAAA,EAChD;AACF;","names":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import "./chunk-7D4SUZUM.js";
|
|
2
|
+
|
|
3
|
+
// src/voice/recorder.ts
|
|
4
|
+
import { spawn, execFileSync } from "child_process";
|
|
5
|
+
import { tmpdir } from "os";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
import { randomUUID } from "crypto";
|
|
8
|
+
import { existsSync } from "fs";
|
|
9
|
+
var AudioRecorder = class {
|
|
10
|
+
process = null;
|
|
11
|
+
outputPath = "";
|
|
12
|
+
/** Check if sox is available. */
|
|
13
|
+
static isAvailable() {
|
|
14
|
+
try {
|
|
15
|
+
execFileSync("sox", ["--version"], {
|
|
16
|
+
encoding: "utf-8",
|
|
17
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
18
|
+
});
|
|
19
|
+
return true;
|
|
20
|
+
} catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Start recording audio. Returns the path where audio will be saved. */
|
|
25
|
+
start() {
|
|
26
|
+
if (this.process) {
|
|
27
|
+
throw new Error("Already recording. Call stop() first.");
|
|
28
|
+
}
|
|
29
|
+
this.outputPath = join(
|
|
30
|
+
tmpdir(),
|
|
31
|
+
`brainstorm-voice-${randomUUID().slice(0, 8)}.wav`
|
|
32
|
+
);
|
|
33
|
+
this.process = spawn(
|
|
34
|
+
"sox",
|
|
35
|
+
["-d", "-r", "16000", "-c", "1", "-b", "16", this.outputPath],
|
|
36
|
+
{
|
|
37
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
this.process.on("error", (err) => {
|
|
41
|
+
console.error(`Recording error: ${err.message}`);
|
|
42
|
+
this.process = null;
|
|
43
|
+
});
|
|
44
|
+
return this.outputPath;
|
|
45
|
+
}
|
|
46
|
+
/** Stop recording and return the audio file path. */
|
|
47
|
+
stop() {
|
|
48
|
+
if (!this.process) {
|
|
49
|
+
throw new Error("Not recording. Call start() first.");
|
|
50
|
+
}
|
|
51
|
+
this.process.kill("SIGTERM");
|
|
52
|
+
this.process = null;
|
|
53
|
+
if (!existsSync(this.outputPath)) {
|
|
54
|
+
throw new Error("Recording failed \u2014 no audio file produced.");
|
|
55
|
+
}
|
|
56
|
+
return this.outputPath;
|
|
57
|
+
}
|
|
58
|
+
/** Check if currently recording. */
|
|
59
|
+
isRecording() {
|
|
60
|
+
return this.process !== null && !this.process.killed;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
AudioRecorder
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=recorder-SPYYF4DL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/voice/recorder.ts"],"sourcesContent":["import { spawn, execFileSync, type ChildProcess } from \"node:child_process\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\n\n/**\n * Audio recorder using sox (cross-platform).\n *\n * Records audio from the default microphone to a temp WAV file.\n * Requires `sox` to be installed (brew install sox / apt install sox).\n */\nexport class AudioRecorder {\n private process: ChildProcess | null = null;\n private outputPath: string = \"\";\n\n /** Check if sox is available. */\n static isAvailable(): boolean {\n try {\n execFileSync(\"sox\", [\"--version\"], {\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n return true;\n } catch {\n return false;\n }\n }\n\n /** Start recording audio. Returns the path where audio will be saved. */\n start(): string {\n if (this.process) {\n throw new Error(\"Already recording. Call stop() first.\");\n }\n\n this.outputPath = join(\n tmpdir(),\n `brainstorm-voice-${randomUUID().slice(0, 8)}.wav`,\n );\n\n // sox -d = default audio device, -r 16000 = 16kHz (Whisper optimal), -c 1 = mono\n this.process = spawn(\n \"sox\",\n [\"-d\", \"-r\", \"16000\", \"-c\", \"1\", \"-b\", \"16\", this.outputPath],\n {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n },\n );\n\n this.process.on(\"error\", (err) => {\n console.error(`Recording error: ${err.message}`);\n this.process = null;\n });\n\n return this.outputPath;\n }\n\n /** Stop recording and return the audio file path. */\n stop(): string {\n if (!this.process) {\n throw new Error(\"Not recording. Call start() first.\");\n }\n\n this.process.kill(\"SIGTERM\");\n this.process = null;\n\n if (!existsSync(this.outputPath)) {\n throw new Error(\"Recording failed — no audio file produced.\");\n }\n\n return this.outputPath;\n }\n\n /** Check if currently recording. */\n isRecording(): boolean {\n return this.process !== null && !this.process.killed;\n }\n}\n"],"mappings":";;;AAAA,SAAS,OAAO,oBAAuC;AACvD,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAQpB,IAAM,gBAAN,MAAoB;AAAA,EACjB,UAA+B;AAAA,EAC/B,aAAqB;AAAA;AAAA,EAG7B,OAAO,cAAuB;AAC5B,QAAI;AACF,mBAAa,OAAO,CAAC,WAAW,GAAG;AAAA,QACjC,UAAU;AAAA,QACV,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,MAClC,CAAC;AACD,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA,QAAgB;AACd,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACzD;AAEA,SAAK,aAAa;AAAA,MAChB,OAAO;AAAA,MACP,oBAAoB,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC;AAAA,IAC9C;AAGA,SAAK,UAAU;AAAA,MACb;AAAA,MACA,CAAC,MAAM,MAAM,SAAS,MAAM,KAAK,MAAM,MAAM,KAAK,UAAU;AAAA,MAC5D;AAAA,QACE,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,MAClC;AAAA,IACF;AAEA,SAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ;AAChC,cAAQ,MAAM,oBAAoB,IAAI,OAAO,EAAE;AAC/C,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,OAAe;AACb,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AAEA,SAAK,QAAQ,KAAK,SAAS;AAC3B,SAAK,UAAU;AAEf,QAAI,CAAC,WAAW,KAAK,UAAU,GAAG;AAChC,YAAM,IAAI,MAAM,iDAA4C;AAAA,IAC9D;AAEA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,cAAuB;AACrB,WAAO,KAAK,YAAY,QAAQ,CAAC,KAAK,QAAQ;AAAA,EAChD;AACF;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ROLES,
|
|
3
|
+
formatModelMenu,
|
|
4
|
+
formatRoleConfirmation,
|
|
5
|
+
getModelForRole,
|
|
6
|
+
getRolePrompt
|
|
7
|
+
} from "./chunk-YWXOPUDW.js";
|
|
8
|
+
import "./chunk-7D4SUZUM.js";
|
|
9
|
+
export {
|
|
10
|
+
ROLES,
|
|
11
|
+
formatModelMenu,
|
|
12
|
+
formatRoleConfirmation,
|
|
13
|
+
getModelForRole,
|
|
14
|
+
getRolePrompt
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=roles-2DGF4PZU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
ROLES,
|
|
4
|
+
formatModelMenu,
|
|
5
|
+
formatRoleConfirmation,
|
|
6
|
+
getModelForRole,
|
|
7
|
+
getRolePrompt
|
|
8
|
+
} from "./chunk-OVGL3NJQ.js";
|
|
9
|
+
import "./chunk-ZWE3DS7E.js";
|
|
10
|
+
export {
|
|
11
|
+
ROLES,
|
|
12
|
+
formatModelMenu,
|
|
13
|
+
formatRoleConfirmation,
|
|
14
|
+
getModelForRole,
|
|
15
|
+
getRolePrompt
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=roles-UIPX7GBC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
executeSlashCommand,
|
|
3
|
+
getSlashCommands,
|
|
4
|
+
isSlashCommand
|
|
5
|
+
} from "./chunk-55ITCWZZ.js";
|
|
6
|
+
import "./chunk-YWXOPUDW.js";
|
|
7
|
+
import "./chunk-7D4SUZUM.js";
|
|
8
|
+
export {
|
|
9
|
+
executeSlashCommand,
|
|
10
|
+
getSlashCommands,
|
|
11
|
+
isSlashCommand
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=slash-PDWKCZOQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
executeSlashCommand,
|
|
4
|
+
getSlashCommands,
|
|
5
|
+
isSlashCommand
|
|
6
|
+
} from "./chunk-5NA3GH6X.js";
|
|
7
|
+
import "./chunk-OVGL3NJQ.js";
|
|
8
|
+
import "./chunk-ZWE3DS7E.js";
|
|
9
|
+
export {
|
|
10
|
+
executeSlashCommand,
|
|
11
|
+
getSlashCommands,
|
|
12
|
+
isSlashCommand
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=slash-ZDC4DKL4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@brainst0rm/cli",
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "Open-source AI coding assistant with intelligent multi-model routing",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/justinjilg/brainstorm.git",
|
|
10
|
+
"directory": "packages/cli"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://brainstorm.co",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"ai",
|
|
15
|
+
"coding-assistant",
|
|
16
|
+
"llm",
|
|
17
|
+
"multi-model",
|
|
18
|
+
"routing",
|
|
19
|
+
"agent",
|
|
20
|
+
"developer-tools",
|
|
21
|
+
"brainstorm"
|
|
22
|
+
],
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
26
|
+
"bin": {
|
|
27
|
+
"brainstorm": "./dist/brainstorm.js",
|
|
28
|
+
"storm": "./dist/brainstorm.js"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsup",
|
|
32
|
+
"dev": "tsup --watch",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"test": "vitest run"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@brainst0rm/agents": "0.13.0",
|
|
38
|
+
"@brainst0rm/config": "0.13.0",
|
|
39
|
+
"@brainst0rm/core": "0.13.0",
|
|
40
|
+
"@brainst0rm/db": "0.13.0",
|
|
41
|
+
"@brainst0rm/docgen": "0.13.0",
|
|
42
|
+
"@brainst0rm/ingest": "0.13.0",
|
|
43
|
+
"@brainst0rm/eval": "0.13.0",
|
|
44
|
+
"@brainst0rm/gateway": "0.13.0",
|
|
45
|
+
"@brainst0rm/mcp": "0.13.0",
|
|
46
|
+
"@brainst0rm/providers": "0.13.0",
|
|
47
|
+
"@brainst0rm/router": "0.13.0",
|
|
48
|
+
"@brainst0rm/shared": "0.13.0",
|
|
49
|
+
"@brainst0rm/tools": "0.13.0",
|
|
50
|
+
"@brainst0rm/vault": "0.13.0",
|
|
51
|
+
"@brainst0rm/workflow": "0.13.0",
|
|
52
|
+
"chalk": "^5",
|
|
53
|
+
"cli-highlight": "^2.1.11",
|
|
54
|
+
"commander": "^13",
|
|
55
|
+
"ink": "^5",
|
|
56
|
+
"ink-spinner": "^5",
|
|
57
|
+
"ink-text-input": "^6",
|
|
58
|
+
"marked": "^17.0.5",
|
|
59
|
+
"marked-terminal": "^7.3.0",
|
|
60
|
+
"react": "^18",
|
|
61
|
+
"streamdown": "^2.5.0"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/react": "^18",
|
|
65
|
+
"@xterm/headless": "^5.5.0",
|
|
66
|
+
"ink-testing-library": "^4.0.0",
|
|
67
|
+
"node-pty": "^1.1.0",
|
|
68
|
+
"strip-ansi": "^7.2.0",
|
|
69
|
+
"tsup": "^8",
|
|
70
|
+
"typescript": "^5.7",
|
|
71
|
+
"yaml": "^2.8.3"
|
|
72
|
+
},
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"access": "public"
|
|
75
|
+
}
|
|
76
|
+
}
|