@hasna/brains 0.0.17 → 0.0.19
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/index.js +32 -5
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +42 -3
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -14976,7 +14976,7 @@ function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelect
|
|
|
14976
14976
|
}
|
|
14977
14977
|
|
|
14978
14978
|
// src/cli/index.ts
|
|
14979
|
-
import { readFileSync as
|
|
14979
|
+
import { readFileSync as readFileSync8 } from "fs";
|
|
14980
14980
|
import { join as join14 } from "path";
|
|
14981
14981
|
|
|
14982
14982
|
// node_modules/drizzle-orm/bun-sqlite/driver.js
|
|
@@ -23788,8 +23788,8 @@ async function listCollections(json = false) {
|
|
|
23788
23788
|
}
|
|
23789
23789
|
function registerCollectionsCommands(program2) {
|
|
23790
23790
|
const collectionsCmd = program2.command("collections").description("Manage model collections");
|
|
23791
|
-
collectionsCmd.
|
|
23792
|
-
await listCollections(
|
|
23791
|
+
collectionsCmd.action(async () => {
|
|
23792
|
+
await listCollections(false);
|
|
23793
23793
|
});
|
|
23794
23794
|
collectionsCmd.command("list").description("List all collections with model counts").option("--json", "Output as JSON").action(async (opts) => {
|
|
23795
23795
|
await listCollections(opts.json);
|
|
@@ -23991,9 +23991,36 @@ function registerCloudCommands2(program2) {
|
|
|
23991
23991
|
});
|
|
23992
23992
|
}
|
|
23993
23993
|
|
|
23994
|
+
// src/lib/package-metadata.ts
|
|
23995
|
+
import { existsSync as existsSync12, readFileSync as readFileSync7 } from "fs";
|
|
23996
|
+
import { dirname as dirname3, resolve as resolve2 } from "path";
|
|
23997
|
+
import { fileURLToPath } from "url";
|
|
23998
|
+
var DEFAULT_VERSION = "0.0.0";
|
|
23999
|
+
var cachedVersion;
|
|
24000
|
+
function getPackageJsonPath() {
|
|
24001
|
+
return resolve2(dirname3(fileURLToPath(import.meta.url)), "../../package.json");
|
|
24002
|
+
}
|
|
24003
|
+
function getPackageVersion() {
|
|
24004
|
+
if (cachedVersion) {
|
|
24005
|
+
return cachedVersion;
|
|
24006
|
+
}
|
|
24007
|
+
const packageJsonPath = getPackageJsonPath();
|
|
24008
|
+
if (!existsSync12(packageJsonPath)) {
|
|
24009
|
+
cachedVersion = DEFAULT_VERSION;
|
|
24010
|
+
return cachedVersion;
|
|
24011
|
+
}
|
|
24012
|
+
try {
|
|
24013
|
+
const packageJson = JSON.parse(readFileSync7(packageJsonPath, "utf-8"));
|
|
24014
|
+
cachedVersion = typeof packageJson.version === "string" ? packageJson.version : DEFAULT_VERSION;
|
|
24015
|
+
} catch {
|
|
24016
|
+
cachedVersion = DEFAULT_VERSION;
|
|
24017
|
+
}
|
|
24018
|
+
return cachedVersion;
|
|
24019
|
+
}
|
|
24020
|
+
|
|
23994
24021
|
// src/cli/index.ts
|
|
23995
24022
|
var program2 = new Command;
|
|
23996
|
-
program2.name("brains").description("Fine-tuned model tracker and trainer").version(
|
|
24023
|
+
program2.name("brains").description("Fine-tuned model tracker and trainer").version(getPackageVersion());
|
|
23997
24024
|
registerModelsCommands(program2);
|
|
23998
24025
|
registerFinetuneCommands(program2);
|
|
23999
24026
|
registerDataCommands(program2);
|
|
@@ -24072,7 +24099,7 @@ var feedbackCmd = program2.command("feedback").description("Feedback commands");
|
|
|
24072
24099
|
feedbackCmd.command("send <message>").description("Send feedback about brains").option("--email <email>", "Contact email").action(async (message, opts) => {
|
|
24073
24100
|
const { sendFeedback: sendFeedback2 } = await Promise.resolve().then(() => (init_dist(), exports_dist));
|
|
24074
24101
|
const rawDb = getRawDb();
|
|
24075
|
-
const pkg = JSON.parse(
|
|
24102
|
+
const pkg = JSON.parse(readFileSync8(join14(import.meta.dir, "../../package.json"), "utf8"));
|
|
24076
24103
|
const result = await sendFeedback2({ service: "brains", message, email: opts.email, version: pkg.version }, rawDb);
|
|
24077
24104
|
rawDb.close();
|
|
24078
24105
|
if (result.sent) {
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
export declare function createServerFetchHandler(): (req: Request) => Response | Promise<Response>;
|
|
3
|
+
export declare function resolveServerPort(argv: string[], envPort: string | undefined): {
|
|
4
|
+
port?: number;
|
|
5
|
+
showHelp: boolean;
|
|
6
|
+
error?: string;
|
|
7
|
+
};
|
|
3
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAwBA,wBAAgB,wBAAwB,KAChB,KAAK,OAAO,KAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8ClE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAwBA,wBAAgB,wBAAwB,KAChB,KAAK,OAAO,KAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8ClE;AAyHD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBnI"}
|
package/dist/server/index.js
CHANGED
|
@@ -14187,11 +14187,50 @@ async function handleGather(req) {
|
|
|
14187
14187
|
}
|
|
14188
14188
|
return json({ datasets: saved, total_examples: saved.reduce((s, d) => s + d.count, 0) });
|
|
14189
14189
|
}
|
|
14190
|
-
var
|
|
14190
|
+
var USAGE = `Usage: brains-serve [options]
|
|
14191
|
+
|
|
14192
|
+
Options:
|
|
14193
|
+
-p, --port <number> Port to bind (default: PORT env or 7020)
|
|
14194
|
+
-h, --help Show this help message`;
|
|
14195
|
+
function resolveServerPort(argv, envPort) {
|
|
14196
|
+
let port = Number(envPort ?? 7020);
|
|
14197
|
+
for (let i = 0;i < argv.length; i += 1) {
|
|
14198
|
+
const arg = argv[i];
|
|
14199
|
+
if (!arg)
|
|
14200
|
+
continue;
|
|
14201
|
+
if (arg === "-h" || arg === "--help") {
|
|
14202
|
+
return { showHelp: true };
|
|
14203
|
+
}
|
|
14204
|
+
if (arg === "-p" || arg === "--port") {
|
|
14205
|
+
const value = argv[i + 1];
|
|
14206
|
+
if (!value) {
|
|
14207
|
+
return { showHelp: false, error: "Missing value for --port" };
|
|
14208
|
+
}
|
|
14209
|
+
port = Number(value);
|
|
14210
|
+
i += 1;
|
|
14211
|
+
continue;
|
|
14212
|
+
}
|
|
14213
|
+
}
|
|
14214
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
14215
|
+
return { showHelp: false, error: `Invalid port: ${String(port)}` };
|
|
14216
|
+
}
|
|
14217
|
+
return { showHelp: false, port };
|
|
14218
|
+
}
|
|
14191
14219
|
if (import.meta.main) {
|
|
14192
|
-
|
|
14193
|
-
|
|
14220
|
+
const resolved = resolveServerPort(process.argv.slice(2), process.env["PORT"]);
|
|
14221
|
+
if (resolved.showHelp) {
|
|
14222
|
+
console.log(USAGE);
|
|
14223
|
+
process.exit(0);
|
|
14224
|
+
}
|
|
14225
|
+
if (resolved.error || !resolved.port) {
|
|
14226
|
+
console.error(resolved.error ?? "Failed to resolve server port");
|
|
14227
|
+
console.error(USAGE);
|
|
14228
|
+
process.exit(1);
|
|
14229
|
+
}
|
|
14230
|
+
console.log(`brains server starting on port ${resolved.port}`);
|
|
14231
|
+
Bun.serve({ port: resolved.port, fetch: createServerFetchHandler() });
|
|
14194
14232
|
}
|
|
14195
14233
|
export {
|
|
14234
|
+
resolveServerPort,
|
|
14196
14235
|
createServerFetchHandler
|
|
14197
14236
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/brains",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Fine-tuned model tracker and trainer — wraps OpenAI + Thinker Labs, gathers training data from todos/mementos/conversations/sessions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|