@infrarix/locopilot 1.1.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/LICENSE +21 -0
- package/README.md +239 -0
- package/dist/api/index.js +79 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/middleware/rateLimiter.js +27 -0
- package/dist/api/middleware/rateLimiter.js.map +1 -0
- package/dist/api/routes/chat.js +75 -0
- package/dist/api/routes/chat.js.map +1 -0
- package/dist/api/routes/completions.js +72 -0
- package/dist/api/routes/completions.js.map +1 -0
- package/dist/api/routes/health.js +52 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/models.js +50 -0
- package/dist/api/routes/models.js.map +1 -0
- package/dist/api/routes/training.js +10 -0
- package/dist/api/routes/training.js.map +1 -0
- package/dist/api/services/localRouter.js +201 -0
- package/dist/api/services/localRouter.js.map +1 -0
- package/dist/api/services/localStubs.js +28 -0
- package/dist/api/services/localStubs.js.map +1 -0
- package/dist/api/services/ollama.js +22 -0
- package/dist/api/services/ollama.js.map +1 -0
- package/dist/api/types.js +3 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utils/sse.js +78 -0
- package/dist/api/utils/sse.js.map +1 -0
- package/dist/cli/commands/doctor.js +230 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/expose.js +98 -0
- package/dist/cli/commands/expose.js.map +1 -0
- package/dist/cli/commands/init.js +340 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.js +116 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.js +38 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/logs.js +95 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/models.js +106 -0
- package/dist/cli/commands/models.js.map +1 -0
- package/dist/cli/commands/start.js +132 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/train.js +211 -0
- package/dist/cli/commands/train.js.map +1 -0
- package/dist/cli/commands/usage.js +43 -0
- package/dist/cli/commands/usage.js.map +1 -0
- package/dist/cli/commands/whoami.js +54 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/index.js +49 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/banner.js +177 -0
- package/dist/cli/utils/banner.js.map +1 -0
- package/dist/cli/utils/paths.js +37 -0
- package/dist/cli/utils/paths.js.map +1 -0
- package/dist/cloud/client.js +157 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/shared/constants.js +39 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/crypto.js +26 -0
- package/dist/shared/crypto.js.map +1 -0
- package/dist/shared/db/pool.js +83 -0
- package/dist/shared/db/pool.js.map +1 -0
- package/dist/shared/errors.js +59 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/index.js +24 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/ndjson.js +39 -0
- package/dist/shared/ndjson.js.map +1 -0
- package/dist/shared/runtime/ollama/index.js +55 -0
- package/dist/shared/runtime/ollama/index.js.map +1 -0
- package/dist/shared/types.js +3 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/training/adapters/axolotl.js +83 -0
- package/dist/training/adapters/axolotl.js.map +1 -0
- package/dist/training/adapters/axolotl_runner.py +38 -0
- package/dist/training/adapters/mlx.js +57 -0
- package/dist/training/adapters/mlx.js.map +1 -0
- package/dist/training/adapters/mlx_runner.py +175 -0
- package/dist/training/adapters/unsloth.js +57 -0
- package/dist/training/adapters/unsloth.js.map +1 -0
- package/dist/training/adapters/unsloth_runner.py +116 -0
- package/dist/training/index.js +47 -0
- package/dist/training/index.js.map +1 -0
- package/dist/training/types.js +18 -0
- package/dist/training/types.js.map +1 -0
- package/dist/training/validator.js +67 -0
- package/dist/training/validator.js.map +1 -0
- package/dist/worker/executor.js +98 -0
- package/dist/worker/executor.js.map +1 -0
- package/dist/worker/handlers.js +197 -0
- package/dist/worker/handlers.js.map +1 -0
- package/dist/worker/index.js +45 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/logStore.js +24 -0
- package/dist/worker/logStore.js.map +1 -0
- package/dist/worker/types.js +3 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/worker.js +12 -0
- package/dist/worker/worker.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.removeLogEmitter = exports.getLogEmitter = exports.createLogEmitter = exports.trainingHandlers = exports.executeJob = exports.BasicWorker = void 0;
|
|
37
|
+
var worker_1 = require("./worker");
|
|
38
|
+
Object.defineProperty(exports, "BasicWorker", { enumerable: true, get: function () { return worker_1.BasicWorker; } });
|
|
39
|
+
Object.defineProperty(exports, "executeJob", { enumerable: true, get: function () { return worker_1.executeJob; } });
|
|
40
|
+
exports.trainingHandlers = __importStar(require("./handlers"));
|
|
41
|
+
var logStore_1 = require("./logStore");
|
|
42
|
+
Object.defineProperty(exports, "createLogEmitter", { enumerable: true, get: function () { return logStore_1.createLogEmitter; } });
|
|
43
|
+
Object.defineProperty(exports, "getLogEmitter", { enumerable: true, get: function () { return logStore_1.getLogEmitter; } });
|
|
44
|
+
Object.defineProperty(exports, "removeLogEmitter", { enumerable: true, get: function () { return logStore_1.removeLogEmitter; } });
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,mCAAmD;AAA1C,qGAAA,WAAW,OAAA;AAAE,oGAAA,UAAU,OAAA;AAChC,+DAA+C;AAC/C,uCAA+E;AAAtE,4GAAA,gBAAgB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,4GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLogEmitter = createLogEmitter;
|
|
4
|
+
exports.getLogEmitter = getLogEmitter;
|
|
5
|
+
exports.removeLogEmitter = removeLogEmitter;
|
|
6
|
+
const events_1 = require("events");
|
|
7
|
+
const store = new Map();
|
|
8
|
+
function createLogEmitter(jobId) {
|
|
9
|
+
const emitter = new events_1.EventEmitter();
|
|
10
|
+
emitter.setMaxListeners(20);
|
|
11
|
+
store.set(jobId, emitter);
|
|
12
|
+
return emitter;
|
|
13
|
+
}
|
|
14
|
+
function getLogEmitter(jobId) {
|
|
15
|
+
return store.get(jobId);
|
|
16
|
+
}
|
|
17
|
+
function removeLogEmitter(jobId) {
|
|
18
|
+
const emitter = store.get(jobId);
|
|
19
|
+
if (emitter) {
|
|
20
|
+
emitter.removeAllListeners();
|
|
21
|
+
store.delete(jobId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=logStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logStore.js","sourceRoot":"","sources":["../../src/worker/logStore.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAMb,4CAKC;AAED,sCAEC;AAED,4CAMC;AArBD,mCAAsC;AAEtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE9C,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeJob = exports.BasicWorker = void 0;
|
|
4
|
+
const executor_1 = require("./executor");
|
|
5
|
+
Object.defineProperty(exports, "executeJob", { enumerable: true, get: function () { return executor_1.executeJob; } });
|
|
6
|
+
class BasicWorker {
|
|
7
|
+
async executeJob(jobId, config) {
|
|
8
|
+
return (0, executor_1.executeJob)(jobId, config);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.BasicWorker = BasicWorker;
|
|
12
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker/worker.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,yCAAwC;AAS/B,2FATA,qBAAU,OASA;AANnB,MAAa,WAAW;IACtB,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAA6B;QAC3D,OAAO,IAAA,qBAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;AAJD,kCAIC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@infrarix/locopilot",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Local-first OpenAI-compatible AI platform",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"private": false,
|
|
7
|
+
"homepage": "https://locopilot.infrarix.com",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/infrarix/locopilot.git"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"locopilot": "./dist/cli/index.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc && node -e \"const fs=require('fs');['mlx_runner.py','unsloth_runner.py','axolotl_runner.py'].forEach(f=>{const src='src/training/adapters/'+f;const dst='dist/training/adapters/'+f;if(fs.existsSync(src)){fs.mkdirSync('dist/training/adapters',{recursive:true});fs.copyFileSync(src,dst);}})\"",
|
|
28
|
+
"dev": "ts-node src/api/index.ts",
|
|
29
|
+
"start": "node dist/api/index.js",
|
|
30
|
+
"lint": "eslint 'src/**/*.{ts,js}'",
|
|
31
|
+
"format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
|
|
32
|
+
"format:check": "prettier --check \"src/**/*.{ts,js,json,md}\"",
|
|
33
|
+
"typecheck": "tsc --noEmit",
|
|
34
|
+
"changeset": "changeset",
|
|
35
|
+
"changeset:status": "changeset status",
|
|
36
|
+
"changeset:autogenerate": "node .github/changeset-autogenerate.mjs",
|
|
37
|
+
"changeset:version": "node .github/changeset-version.js",
|
|
38
|
+
"changeset:publish": "npm run build && changeset publish",
|
|
39
|
+
"prepare": "husky"
|
|
40
|
+
},
|
|
41
|
+
"lint-staged": {
|
|
42
|
+
"src/**/*.{ts,js}": [
|
|
43
|
+
"prettier --write",
|
|
44
|
+
"eslint --fix"
|
|
45
|
+
],
|
|
46
|
+
"src/**/*.{json,md}": [
|
|
47
|
+
"prettier --write"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@fastify/cors": "^10.0.0",
|
|
52
|
+
"chalk": "^4.1.2",
|
|
53
|
+
"commander": "^12.0.0",
|
|
54
|
+
"dotenv": "^16.4.0",
|
|
55
|
+
"enquirer": "^2.4.1",
|
|
56
|
+
"fastify": "^5.8.5",
|
|
57
|
+
"js-yaml": "^4.1.0",
|
|
58
|
+
"node-fetch": "^2.7.0",
|
|
59
|
+
"ora": "^5.4.1",
|
|
60
|
+
"sqlite3": "^6.0.1"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@changesets/changelog-github": "^0.5.0",
|
|
64
|
+
"@changesets/cli": "^2.27.9",
|
|
65
|
+
"@commitlint/cli": "^19.6.0",
|
|
66
|
+
"@commitlint/config-conventional": "^19.6.0",
|
|
67
|
+
"@types/js-yaml": "^4.0.9",
|
|
68
|
+
"@types/node": "^20.14.0",
|
|
69
|
+
"@types/sqlite3": "^3.1.11",
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
71
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
72
|
+
"@vercel/ncc": "^0.38.4",
|
|
73
|
+
"eslint": "^8.57.0",
|
|
74
|
+
"eslint-config-prettier": "^9.1.0",
|
|
75
|
+
"husky": "^9.1.7",
|
|
76
|
+
"lint-staged": "^15.2.10",
|
|
77
|
+
"prettier": "^3.3.3",
|
|
78
|
+
"ts-node": "^10.9.2",
|
|
79
|
+
"typescript": "^5.4.5"
|
|
80
|
+
}
|
|
81
|
+
}
|