loz 0.1.9 → 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/dist/cli.js CHANGED
@@ -12,6 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const yargs = require("yargs");
14
14
  const index_1 = require("./index");
15
+ const LOZ_DEBUG = process.env.DEBUG === "true" ? true : false;
15
16
  const args = yargs
16
17
  .wrap(null)
17
18
  .command("$0 [prompt]", "Loz: a simple ChatGTP CLI tool", (yargs) => {
@@ -44,16 +45,33 @@ const args = yargs
44
45
  .parseSync();
45
46
  (() => __awaiter(void 0, void 0, void 0, function* () {
46
47
  let loz = new index_1.Loz();
48
+ yield loz.init();
47
49
  if (args.prompt !== undefined) {
48
50
  if (args.prompt === "commit") {
49
51
  yield loz.runGitCommit();
50
52
  loz.saveChatHistory();
51
53
  }
52
- else
53
- yield loz.handlePipeInput(args.prompt);
54
+ else {
55
+ if (!process.stdin.isTTY) {
56
+ // $ echo "prompt" | loz "convert the input to uppercase"
57
+ yield loz.handlePipeInput(args.prompt);
58
+ }
59
+ else {
60
+ // $ loz "prompt"
61
+ const completion = yield loz.completeUserPrompt(args.prompt);
62
+ console.log(completion.content);
63
+ }
64
+ }
54
65
  }
55
66
  else if (args.git !== undefined) {
56
- yield loz.writeGitCommitMessage();
67
+ // git diff | loz --git
68
+ if (!process.stdin.isTTY) {
69
+ yield loz.writeGitCommitMessage();
70
+ }
71
+ else {
72
+ // we should run like this:
73
+ console.log("Run loz like this: git diff | loz --git");
74
+ }
57
75
  }
58
76
  else {
59
77
  // Hanlde the pipe input
@@ -62,7 +80,12 @@ const args = yargs
62
80
  process.exit(0);
63
81
  }
64
82
  console.log("Loz: a simple ChatGTP CLI tool");
65
- yield loz.runPromptIntractiveMode();
83
+ try {
84
+ yield loz.runPromptIntractiveMode();
85
+ }
86
+ catch (error) {
87
+ console.log(error);
88
+ }
66
89
  console.log("Good bye!");
67
90
  loz.saveChatHistory();
68
91
  loz.saveConfig();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+BAA+B;AAC/B,mCAA8B;AAE9B,MAAM,IAAI,GAAG,KAAK;KACf,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,aAAa,EAAE,gCAAgC,EAAE,CAAC,KAAK,EAAE,EAAE;IAClE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;QACzB,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;KACD,OAAO,CAAC;IACP,WAAW,EAAE;QACX,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,kBAAkB;KAC7B;IACD,GAAG,EAAE;QACH,KAAK,EAAE,GAAG;QACV,QAAQ,EACN,4EAA4E;KAC/E;IACD,MAAM,EAAE;QACN,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,6DAA6D;KACxE;IACD,GAAG,EAAE;QACH,KAAK,EAAE,GAAG;QACV,QAAQ;QACN,uBAAuB;QACvB,4EAA4E;KAC/E;CACF,CAAC;KACD,IAAI,EAAE;KACN,SAAS,EAAE,CAAC;AAEf,CAAC,GAAS,EAAE;IACV,IAAI,GAAG,GAAG,IAAI,WAAG,EAAE,CAAC;IACpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;YACzB,GAAG,CAAC,eAAe,EAAE,CAAC;SACvB;;YAAM,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;KACzD;SAAM,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;QACjC,MAAM,GAAG,CAAC,qBAAqB,EAAE,CAAC;KACnC;SAAM;QACL,wBAAwB;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,GAAG,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+BAA+B;AAC/B,mCAA8B;AAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAE9D,MAAM,IAAI,GAAG,KAAK;KACf,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,aAAa,EAAE,gCAAgC,EAAE,CAAC,KAAK,EAAE,EAAE;IAClE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;QACzB,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;KACD,OAAO,CAAC;IACP,WAAW,EAAE;QACX,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,kBAAkB;KAC7B;IACD,GAAG,EAAE;QACH,KAAK,EAAE,GAAG;QACV,QAAQ,EACN,4EAA4E;KAC/E;IACD,MAAM,EAAE;QACN,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,6DAA6D;KACxE;IACD,GAAG,EAAE;QACH,KAAK,EAAE,GAAG;QACV,QAAQ;QACN,uBAAuB;QACvB,4EAA4E;KAC/E;CACF,CAAC;KACD,IAAI,EAAE;KACN,SAAS,EAAE,CAAC;AAEf,CAAC,GAAS,EAAE;IACV,IAAI,GAAG,GAAG,IAAI,WAAG,EAAE,CAAC;IACpB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC5B,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;YACzB,GAAG,CAAC,eAAe,EAAE,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;gBACxB,yDAAyD;gBACzD,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;aAClD;iBAAM;gBACL,iBAAiB;gBACjB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACjC;SACF;KACF;SAAM,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;QACjC,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACxB,MAAM,GAAG,CAAC,qBAAqB,EAAE,CAAC;SACnC;aAAM;YACL,2BAA2B;YAC3B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;SACxD;KACF;SAAM;QACL,wBAAwB;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,IAAI;YACF,MAAM,GAAG,CAAC,uBAAuB,EAAE,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,GAAG,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1,8 +1,18 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.Config = exports.ConfigItem = void 0;
4
13
  const fs = require("fs");
5
14
  const path = require("path");
15
+ const readline = require("readline");
6
16
  class ConfigItem {
7
17
  constructor(name, value) {
8
18
  this.name = name;
@@ -42,14 +52,40 @@ class Config {
42
52
  });
43
53
  }
44
54
  loadConfig(configPath) {
45
- const configFilePath = path.join(configPath, "config.json");
46
- if (!fs.existsSync(configFilePath))
47
- return;
48
- let rawData = fs.readFileSync(configFilePath);
49
- let config = JSON.parse(rawData);
50
- for (let item of config.items) {
51
- this.set(item.name, item.value);
52
- }
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const configFilePath = path.join(configPath, "config.json");
57
+ if (!fs.existsSync(configFilePath)) {
58
+ const rl = readline.createInterface({
59
+ input: process.stdin,
60
+ output: process.stdout,
61
+ });
62
+ const question = (query) => {
63
+ return new Promise((resolve) => {
64
+ rl.question(query, (answer) => {
65
+ resolve(answer);
66
+ });
67
+ });
68
+ };
69
+ const name = yield question("Which LLM servide do you want to use? (ollama, openai) ");
70
+ if (name === "ollama") {
71
+ console.log(`\nYou should install ${name} with llama2 and codellama models: see https://ollama.ai/download \n`);
72
+ }
73
+ else if (name === "openai") {
74
+ console.log("set OPENAI_API_KEY in your environment variables");
75
+ }
76
+ this.set("mode", "default");
77
+ this.set("api", name);
78
+ rl.close();
79
+ fs.writeFileSync(configFilePath, this.toString());
80
+ return false;
81
+ }
82
+ let rawData = fs.readFileSync(configFilePath);
83
+ let config = JSON.parse(rawData);
84
+ for (let item of config.items) {
85
+ this.set(item.name, item.value);
86
+ }
87
+ return true;
88
+ });
53
89
  }
54
90
  }
55
91
  exports.Config = Config;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAW7B,MAAa,UAAU;IAIrB,YAAY,IAAY,EAAE,KAAa;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AARD,gCAQC;AAED,MAAa,MAAM;IAGjB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,IAAyB;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,UAAkB;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO;QAC3C,IAAI,OAAO,GAAQ,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;IACH,CAAC;CACF;AAhDD,wBAgDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
package/dist/git/index.js CHANGED
@@ -38,7 +38,6 @@ class Git {
38
38
  // Add a backslash before each backtick
39
39
  message = message.replace(/`/g, "\\`");
40
40
  message = message.replace(/"/g, "");
41
- message += "\n\nGenerated by gpt-3.5-turbo";
42
41
  return yield new Promise((resolve, reject) => {
43
42
  (0, child_process_1.exec)(`git commit -m "${message}"`, (error, stdout, stderr) => {
44
43
  if (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqC;AAErC,sCAAsC;AACtC,yBAAyB;AACzB,uBAAuB;AACvB,MAAa,GAAG;IACd,kCAAkC;IAClC,yBAAyB;IACzB,uBAAuB;IACV,iBAAiB;;YAC5B,kCAAkC;YAClC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,mBAAmB,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBACjE,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,MAAM,CAAC,OAAe;;YACjC,uCAAuC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,IAAI,gCAAgC,CAAC;YAC5C,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EACF,kBAAkB,OAAO,GAAG,EAC5B,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBACvC,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,oBAAoB,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBAClE,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,QAAQ;;YACnB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,eAAe,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBAC7D,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBACD,IAAI,MAAM,EAAE;wBACV,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;wBAC3B,OAAO;qBACR;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AArED,kBAqEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqC;AAErC,sCAAsC;AACtC,yBAAyB;AACzB,uBAAuB;AACvB,MAAa,GAAG;IACd,kCAAkC;IAClC,yBAAyB;IACzB,uBAAuB;IACV,iBAAiB;;YAC5B,kCAAkC;YAClC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,mBAAmB,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBACjE,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,MAAM,CAAC,OAAe;;YACjC,uCAAuC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EACF,kBAAkB,OAAO,GAAG,EAC5B,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBACvC,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,oBAAoB,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBAClE,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,QAAQ;;YACnB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,IAAA,oBAAI,EAAC,eAAe,EAAE,CAAC,KAAU,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;oBAC7D,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtB,OAAO;qBACR;oBACD,IAAI,MAAM,EAAE;wBACV,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;wBAC3B,OAAO;qBACR;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AApED,kBAoEC"}
package/dist/index.js CHANGED
@@ -19,17 +19,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.Loz = void 0;
20
20
  const fs = require("fs");
21
21
  const path = require("path");
22
- const openai_1 = require("openai");
22
+ const child_process_1 = require("child_process");
23
+ const llm_1 = require("./llm");
23
24
  const config_1 = require("./config");
24
25
  const git_1 = require("./git");
25
26
  const readline = require("readline");
26
27
  require("dotenv").config();
27
- const DEBUG = process.env.DEBUG === "true" ? true : false;
28
+ const DEBUG = process.env.LOZ_DEBUG === "true" ? true : false;
28
29
  // Get the path to the home directory
29
30
  const HOME_PATH = process.env.HOME || "";
30
31
  const LOG_DEV_PATH = "logs";
32
+ function runShellCommand(command) {
33
+ return new Promise((resolve, reject) => {
34
+ (0, child_process_1.exec)(command, (error, stdout, stderr) => {
35
+ if (error) {
36
+ reject(`error: ${error.message}`);
37
+ return;
38
+ }
39
+ if (stderr) {
40
+ reject(`stderr: ${stderr}`);
41
+ return;
42
+ }
43
+ resolve(stdout);
44
+ });
45
+ });
46
+ }
31
47
  class Loz {
32
- constructor() {
48
+ constructor(llmAPI) {
33
49
  this.chatHistory = { date: "", dialogue: [] };
34
50
  this.config = new config_1.Config();
35
51
  this.git = new git_1.Git();
@@ -44,29 +60,56 @@ class Loz {
44
60
  frequency_penalty: 0.0,
45
61
  presence_penalty: 0.0,
46
62
  };
47
- this.openai = new openai_1.default();
48
- // Create a config for the application
49
- this.configfPath = path.join(HOME_PATH, ".loz");
50
- if (!fs.existsSync(this.configfPath)) {
51
- fs.mkdirSync(this.configfPath);
52
- }
53
- if (this.checkGitRepo() === true) {
54
- if (!fs.existsSync(LOG_DEV_PATH)) {
55
- fs.mkdirSync(LOG_DEV_PATH);
63
+ this.configfPath = "";
64
+ }
65
+ init() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ // Create a config for the application
68
+ this.configfPath = path.join(HOME_PATH, ".loz");
69
+ if (!fs.existsSync(this.configfPath)) {
70
+ fs.mkdirSync(this.configfPath);
56
71
  }
57
- }
58
- this.loadingConfigFromJSONFile();
72
+ if (this.checkGitRepo() === true) {
73
+ if (!fs.existsSync(LOG_DEV_PATH)) {
74
+ fs.mkdirSync(LOG_DEV_PATH);
75
+ }
76
+ }
77
+ yield this.loadingConfigFromJSONFile();
78
+ let api = this.checkAPI();
79
+ if (this.llmAPI !== undefined) {
80
+ api = this.llmAPI;
81
+ }
82
+ if (api === "openai") {
83
+ this.checkEnv();
84
+ this.llmAPI = new llm_1.OpenAiAPI();
85
+ }
86
+ else if (this.checkAPI() === "ollama") {
87
+ const result = yield runShellCommand("ollama --version");
88
+ if (DEBUG)
89
+ console.log(result);
90
+ if (result.indexOf("ollama") === -1) {
91
+ console.log("Please install ollama with llama2 and codellama first: see https://ollama.ai/download \n");
92
+ process.exit(1);
93
+ }
94
+ this.llmAPI = new llm_1.OllamaAPI();
95
+ }
96
+ else {
97
+ console.error("Invalid API");
98
+ process.exit(1);
99
+ }
100
+ });
59
101
  }
60
102
  // load config from JSON file
61
103
  loadingConfigFromJSONFile() {
62
104
  return __awaiter(this, void 0, void 0, function* () {
63
- // Check if the config file exists
64
- if (this.checkGitRepo() === true) {
65
- this.config.loadConfig(this.configfPath);
66
- }
67
- //this.config.add(new ConfigItem("mode", "learning_english"));
105
+ yield this.config.loadConfig(this.configfPath);
68
106
  });
69
107
  }
108
+ checkAPI() {
109
+ var _a;
110
+ //console.log("API: " + this.config.get("api")?.value);
111
+ return (_a = this.config.get("api")) === null || _a === void 0 ? void 0 : _a.value;
112
+ }
70
113
  checkEnv() {
71
114
  if (process.env.OPENAI_API_KEY === undefined) {
72
115
  console.error("Please set OPENAI_API_KEY in your environment variables");
@@ -102,81 +145,53 @@ class Loz {
102
145
  });
103
146
  }
104
147
  saveConfig() {
105
- if (this.checkGitRepo() === true) {
106
- const json = JSON.stringify(this.config, null, 2);
107
- fs.writeFileSync(this.configfPath + "/config.json", json);
108
- }
109
- }
110
- openaiChatCompletionCreate(params) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- const completion = yield this.openai.chat.completions.create(params);
113
- return completion;
114
- });
148
+ const json = JSON.stringify(this.config, null, 2);
149
+ fs.writeFileSync(this.configfPath + "/config.json", json);
115
150
  }
116
151
  // Handle the input from the pipe
117
152
  handlePipeInput(prompt) {
118
153
  return __awaiter(this, void 0, void 0, function* () {
119
154
  process.stdin.setEncoding("utf8");
120
155
  process.stdin.on("data", (data) => __awaiter(this, void 0, void 0, function* () {
121
- var _a, _b;
122
- this.defaultSettings.prompt = prompt + "\n" + data;
123
- this.defaultSettings.stream = false;
124
- this.defaultSettings.max_tokens = 500;
125
- const params = {
126
- model: "gpt-3.5-turbo",
127
- messages: [{ role: "user", content: this.defaultSettings.prompt }],
128
- max_tokens: this.defaultSettings.max_tokens,
129
- };
130
- let completion;
131
- try {
132
- completion = yield this.openaiChatCompletionCreate(params);
133
- }
134
- catch (error) {
135
- if (error.response) {
136
- console.log(error.response.status);
137
- console.log(error.response.data);
138
- }
139
- else {
140
- console.log(error.message);
141
- return;
142
- }
143
- }
144
- process.stdout.write((_b = (_a = completion.choices[0]) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.content);
156
+ let params;
157
+ params = this.defaultSettings;
158
+ params.max_tokens = 500;
159
+ params.model = "llama2";
160
+ params.prompt = prompt + "\n" + data;
161
+ const completion = yield this.llmAPI.completion(params);
162
+ process.stdout.write(completion.content);
145
163
  process.stdout.write("\n");
146
164
  }));
147
165
  });
148
166
  }
167
+ completeUserPrompt(prompt) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ let params;
170
+ params = this.defaultSettings;
171
+ params.max_tokens = 500;
172
+ params.prompt = prompt;
173
+ params.model = "llama2";
174
+ return yield this.llmAPI.completion(params);
175
+ });
176
+ }
149
177
  runGitCommit() {
150
- var _a, _b;
151
178
  return __awaiter(this, void 0, void 0, function* () {
152
179
  let diff = yield this.git.getDiffFromStaged();
153
180
  // Remove the first line of the diff
154
181
  diff = diff.replace(/.*\n/, "");
155
182
  const prompt = "Generate a commit message for the following code changes:\n" + diff;
156
- const params = {
157
- model: "gpt-3.5-turbo",
158
- messages: [{ role: "user", content: prompt }],
159
- stream: false,
160
- max_tokens: 500,
161
- temperature: 0,
162
- };
163
- let completion;
164
- try {
165
- completion = yield this.openaiChatCompletionCreate(params);
166
- }
167
- catch (error) {
168
- if (error.response) {
169
- console.log(error.response.status);
170
- console.log(error.response.data);
171
- }
172
- else {
173
- console.log(error.message);
174
- return;
175
- }
183
+ let params;
184
+ params = this.defaultSettings;
185
+ params.max_tokens = 500;
186
+ params.model = "codellama";
187
+ params.prompt = prompt;
188
+ const complete = yield this.llmAPI.completion(params);
189
+ if (complete.content === "") {
190
+ console.log("Failed to generate a commit message");
191
+ return;
176
192
  }
177
- const gitCommitMessage = (_b = (_a = completion.choices[0]) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.content;
178
193
  try {
179
- yield this.git.commit(gitCommitMessage);
194
+ yield this.git.commit(complete.content + "\n\nGenerated by " + complete.model);
180
195
  const res = yield this.git.showHEAD();
181
196
  console.log("Generated commit message:");
182
197
  console.log(res);
@@ -188,18 +203,19 @@ class Loz {
188
203
  const promptAndCompleteText = {
189
204
  mode: "loz commit mode",
190
205
  prompt: prompt,
191
- answer: gitCommitMessage,
206
+ answer: complete.content,
192
207
  };
193
208
  this.chatHistory.dialogue.push(promptAndCompleteText);
194
- return gitCommitMessage;
209
+ return complete.content;
195
210
  });
196
211
  }
197
212
  writeGitCommitMessage() {
198
213
  return __awaiter(this, void 0, void 0, function* () {
214
+ if (DEBUG)
215
+ console.log("writeGitCommitMessage");
199
216
  const prompt = "Generate a commit message for the following code changes:\n";
200
217
  process.stdin.setEncoding("utf8");
201
218
  process.stdin.on("data", (data) => __awaiter(this, void 0, void 0, function* () {
202
- var _a, _b;
203
219
  // Remove the first line from data
204
220
  // because it is not needed for GPT-3.
205
221
  data = data.replace(/.*\n/, "");
@@ -209,29 +225,17 @@ class Loz {
209
225
  .toString()
210
226
  .replace(/Author: .*\n/, "")
211
227
  .replace(/Date: .*\n/, "");
212
- const params = {
213
- model: "gpt-3.5-turbo",
214
- messages: [{ role: "user", content: prompt + commitMessage }],
215
- stream: false,
216
- max_tokens: 500,
217
- temperature: 0,
218
- };
219
- let completion;
220
- try {
221
- completion = yield this.openaiChatCompletionCreate(params);
222
- }
223
- catch (error) {
224
- if (error.response) {
225
- console.log(error.response.status);
226
- console.log(error.response.data);
227
- }
228
- else {
229
- console.log(error.message);
230
- }
228
+ let params;
229
+ params = this.defaultSettings;
230
+ params.max_tokens = 500;
231
+ params.prompt = prompt + commitMessage;
232
+ params.model = "codellama";
233
+ const complete = yield this.llmAPI.completion(params);
234
+ if (complete.content === "") {
235
+ console.log("Failed to generate a commit message");
231
236
  return;
232
237
  }
233
- process.stdout.write(((_b = (_a = completion.choices[0]) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.content) +
234
- "\n\nGenerated by gpt-3.5-turbo");
238
+ process.stdout.write(complete.content + "\n\nGenerated by " + complete.model + "\n");
235
239
  }));
236
240
  process.stdin.on("end", () => {
237
241
  //process.exit();
@@ -239,68 +243,76 @@ class Loz {
239
243
  });
240
244
  }
241
245
  // Interactive mode
242
- runCompletion(settings, rl) {
246
+ runCompletion(params, rl) {
243
247
  var _a, e_1, _b, _c;
244
248
  var _d, _e;
245
249
  return __awaiter(this, void 0, void 0, function* () {
246
- let stream;
247
- const streaming_params = {
248
- model: "gpt-3.5-turbo",
249
- messages: [{ role: "user", content: settings.prompt }],
250
- stream: true,
251
- max_tokens: this.defaultSettings.max_tokens,
252
- temperature: this.defaultSettings.temperature,
253
- top_p: this.defaultSettings.top_p,
254
- frequency_penalty: this.defaultSettings.frequency_penalty,
255
- presence_penalty: this.defaultSettings.presence_penalty,
256
- };
257
- try {
258
- stream = yield this.openaiChatCompletionCreate(streaming_params);
259
- }
260
- catch (error) {
261
- console.log(error.message + ":");
262
- if (error.response) {
263
- // console.log(error.response.data);
264
- if (error.response.status === 401) {
265
- console.log("Invalid API key");
266
- }
267
- else if (error.response.status === 429) {
268
- console.log("API request limit reached");
269
- }
270
- }
271
- process.exit();
272
- }
273
- if (DEBUG === true)
274
- console.log(stream.data);
275
250
  let curCompleteText = "";
276
- try {
251
+ if (this.checkAPI() === "openai") {
252
+ let stream;
253
+ const streaming_params = {
254
+ model: "gpt-3.5-turbo",
255
+ messages: [{ role: "user", content: params.prompt }],
256
+ stream: true,
257
+ max_tokens: params.max_tokens,
258
+ temperature: params.temperature,
259
+ top_p: params.top_p,
260
+ frequency_penalty: params.frequency_penalty,
261
+ presence_penalty: params.presence_penalty,
262
+ };
277
263
  try {
278
- for (var _f = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield stream_1.next(), _a = stream_1_1.done, !_a; _f = true) {
279
- _c = stream_1_1.value;
280
- _f = false;
281
- const data = _c;
282
- if (data === null)
283
- return;
284
- const streamData = ((_e = (_d = data.choices[0]) === null || _d === void 0 ? void 0 : _d.delta) === null || _e === void 0 ? void 0 : _e.content) || "";
285
- curCompleteText += streamData;
286
- process.stdout.write(streamData);
264
+ stream = yield this.openai.chat.completions(streaming_params);
265
+ }
266
+ catch (error) {
267
+ console.log(error.message + ":");
268
+ if (error.response) {
269
+ // console.log(error.response.data);
270
+ if (error.response.status === 401) {
271
+ console.log("Invalid API key");
272
+ }
273
+ else if (error.response.status === 429) {
274
+ console.log("API request limit reached");
275
+ }
287
276
  }
277
+ process.exit();
288
278
  }
289
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
290
- finally {
279
+ if (DEBUG === true)
280
+ console.log(stream.data);
281
+ try {
291
282
  try {
292
- if (!_f && !_a && (_b = stream_1.return)) yield _b.call(stream_1);
283
+ for (var _f = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield stream_1.next(), _a = stream_1_1.done, !_a; _f = true) {
284
+ _c = stream_1_1.value;
285
+ _f = false;
286
+ const data = _c;
287
+ if (data === null)
288
+ return;
289
+ const streamData = ((_e = (_d = data.choices[0]) === null || _d === void 0 ? void 0 : _d.delta) === null || _e === void 0 ? void 0 : _e.content) || "";
290
+ curCompleteText += streamData;
291
+ process.stdout.write(streamData);
292
+ }
293
+ }
294
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
295
+ finally {
296
+ try {
297
+ if (!_f && !_a && (_b = stream_1.return)) yield _b.call(stream_1);
298
+ }
299
+ finally { if (e_1) throw e_1.error; }
293
300
  }
294
- finally { if (e_1) throw e_1.error; }
301
+ process.stdout.write("\n");
302
+ }
303
+ catch (error) {
304
+ console.error("An error occurred during OpenAI request: ", error);
295
305
  }
296
- process.stdout.write("\n");
297
306
  }
298
- catch (error) {
299
- console.error("An error occurred during OpenAI request: ", error);
307
+ else {
308
+ const complete = yield this.llmAPI.completion(params);
309
+ curCompleteText = complete.content;
310
+ process.stdout.write(curCompleteText);
311
+ process.stdout.write("\n");
300
312
  }
301
313
  const promptAndCompleteText = {
302
314
  mode: "interactive",
303
- prompt: settings.prompt,
315
+ prompt: params.prompt,
304
316
  answer: curCompleteText,
305
317
  };
306
318
  this.chatHistory.dialogue.push(promptAndCompleteText);
@@ -351,13 +363,12 @@ class Loz {
351
363
  else if (tokens.length === 1) {
352
364
  this.config.print();
353
365
  }
354
- else
366
+ else {
355
367
  console.log("Invalid command");
368
+ }
356
369
  rl.prompt();
357
- reject("rejected");
358
- return;
359
370
  }
360
- if (input.length !== 0) {
371
+ else if (input.length !== 0) {
361
372
  let mode = (_b = this.config.get("mode")) === null || _b === void 0 ? void 0 : _b.value;
362
373
  // ESL: English as a Second Language
363
374
  if (((_c = this.config.get("mode")) === null || _c === void 0 ? void 0 : _c.value) === "esl") {
@@ -368,11 +379,12 @@ class Loz {
368
379
  this.defaultSettings.prompt =
369
380
  "Can you proofread the following setnence? Show me the difference between the given sentence and your correction.\n";
370
381
  }
371
- this.defaultSettings.prompt += input;
372
- this.defaultSettings.max_tokens = 4000;
373
- this.runCompletion(this.defaultSettings, rl);
374
- //if (mode === undefined) mode = "default";
375
- // this.curPromptAndAnswer = new PromptAndAnswer(mode, input, "");
382
+ let params;
383
+ params = this.defaultSettings;
384
+ params.model = "llama2";
385
+ params.prompt = input;
386
+ params.max_tokens = 4000;
387
+ this.runCompletion(params, rl);
376
388
  }
377
389
  });
378
390
  // Handle CTRL+C to exit the program
@@ -386,6 +398,8 @@ class Loz {
386
398
  // check if the program is running in it's git repository.
387
399
  checkGitRepo() {
388
400
  const gitRepoPath = path.join(__dirname, "../.git");
401
+ if (DEBUG)
402
+ console.log(gitRepoPath);
389
403
  if (fs.existsSync(gitRepoPath)) {
390
404
  return true;
391
405
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,mCAA4B;AAG5B,qCAA8C;AAC9C,+BAA4B;AAE5B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAErC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,qCAAqC;AACrC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AACzC,MAAM,YAAY,GAAG,MAAM,CAAC;AAc5B,MAAa,GAAG;IAQd;QALA,gBAAW,GAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAEtD,WAAM,GAAW,IAAI,eAAM,EAAE,CAAC;QAC9B,QAAG,GAAQ,IAAI,SAAG,EAAE,CAAC;QAGnB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,GAAG;YACrB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,GAAG;YACtB,gBAAgB,EAAE,GAAG;SACtB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAC;QAE3B,sCAAsC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAChC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;aAC5B;SACF;QAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAED,6BAA6B;IACvB,yBAAyB;;YAC7B,kCAAkC;YAClC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;gBAChC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1C;YACD,8DAA8D;QAChE,CAAC;KAAA;IAED,QAAQ;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,aAAa;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IAC9B,eAAe;;YACnB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAExB,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW,EAAE;gBAClB,GAAG;gBACH,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACrB,GAAG;gBACH,IAAI,CAAC,OAAO,EAAE;gBACd,GAAG;gBACH,IAAI,CAAC,QAAQ,EAAE;gBACf,GAAG;gBACH,IAAI,CAAC,UAAU,EAAE;gBACjB,GAAG;gBACH,IAAI,CAAC,UAAU,EAAE;gBACjB,OAAO,CAAC;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;gBAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;IAED,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC;SAC3D;IACH,CAAC;IAEK,0BAA0B,CAC9B,MAA8C;;YAE9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAErE,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAED,iCAAiC;IAC3B,eAAe,CAAC,MAAc;;YAClC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAElC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAO,IAAY,EAAE,EAAE;;gBAC9C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;gBACnD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,GAAG,CAAC;gBAEtC,MAAM,MAAM,GAA2C;oBACrD,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;oBAClE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU;iBAC5C,CAAC;gBAEF,IAAI,UAAe,CAAC;gBACpB,IAAI;oBACF,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;iBAC5D;gBAAC,OAAO,KAAU,EAAE;oBACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAClC;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC3B,OAAO;qBACR;iBACF;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAA,MAAA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO,CAAC,CAAC;gBAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,YAAY;;;YAChB,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAE9C,oCAAoC;YACpC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAEhC,MAAM,MAAM,GACV,6DAA6D,GAAG,IAAI,CAAC;YAEvE,MAAM,MAAM,GAA2C;gBACrD,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC7C,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,CAAC;aACf,CAAC;YAEF,IAAI,UAAe,CAAC;YACpB,IAAI;gBACF,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;aAC5D;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAClC;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3B,OAAO;iBACR;aACF;YAED,MAAM,gBAAgB,GAAG,MAAA,MAAA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO,CAAC;YACjE,IAAI;gBACF,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClB;YAAC,OAAO,KAAU,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnB,OAAO;aACR;YAED,MAAM,qBAAqB,GAAG;gBAC5B,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,gBAAgB;aACzB,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEtD,OAAO,gBAAgB,CAAC;;KACzB;IAEK,qBAAqB;;YACzB,MAAM,MAAM,GACV,6DAA6D,CAAC;YAEhE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAElC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAO,IAAY,EAAE,EAAE;;gBAC9C,kCAAkC;gBAClC,sCAAsC;gBACtC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAChC,6CAA6C;gBAC7C,sCAAsC;gBACtC,MAAM,aAAa,GAAG,IAAI;qBACvB,QAAQ,EAAE;qBACV,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;qBAC3B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAE7B,MAAM,MAAM,GAA2C;oBACrD,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;oBAC7D,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,CAAC;iBACf,CAAC;gBAEF,IAAI,UAAe,CAAC;gBACpB,IAAI;oBACF,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;iBAC5D;gBAAC,OAAO,KAAU,EAAE;oBACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAClC;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBAC5B;oBACD,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,CAAA,MAAA,MAAA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO;oBACrC,gCAAgC,CACnC,CAAC;YACJ,CAAC,CAAA,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC3B,iBAAiB;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,mBAAmB;IACb,aAAa,CAAC,QAAa,EAAE,EAAO;;;;YACxC,IAAI,MAAW,CAAC;YAChB,MAAM,gBAAgB,GAA2C;gBAC/D,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtD,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU;gBAC3C,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW;gBAC7C,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;gBACjC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB;gBACzD,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB;aACxD,CAAC;YACF,IAAI;gBACF,MAAM,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;aAClE;YAAC,OAAO,KAAU,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,oCAAoC;oBACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;wBACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;qBAChC;yBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;wBACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;qBAC1C;iBACF;gBACD,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;YACD,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI;;oBACF,KAAyB,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE;wBAAR,sBAAM;wBAAN,WAAM;wBAApB,MAAM,IAAI,KAAA,CAAA;wBACnB,IAAI,IAAI,KAAK,IAAI;4BAAE,OAAO;wBAC1B,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,0CAAE,OAAO,KAAI,EAAE,CAAC;wBACzD,eAAe,IAAI,UAAU,CAAC;wBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;qBAClC;;;;;;;;;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;aACnE;YAED,MAAM,qBAAqB,GAAG;gBAC5B,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,eAAe;aACxB,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEtD,EAAE,CAAC,MAAM,EAAE,CAAC;;KACb;IAEK,uBAAuB;;YAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;oBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBAEH,2BAA2B;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAEpB,8CAA8C;gBAC9C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAEnB,gDAAgD;gBAChD,EAAE,CAAC,MAAM,EAAE,CAAC;gBAEZ,gEAAgE;gBAChE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAE/B,4BAA4B;gBAC5B,WAAW,CAAC,GAAG,EAAE;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAClC,UAAU,CAAC,GAAG,EAAE;wBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACpC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,wBAAwB;gBACxB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;;oBAC9B,iDAAiD;oBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE;wBACxC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAChB,OAAO;qBACR;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;4BACvB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gCAC5C,OAAO,CAAC,GAAG,CACT,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,0CAAE,KAAK,yBAClC,MAAM,CAAC,CAAC,CACV,EAAE,CACH,CAAC;6BACH;4BACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;yBACvC;6BAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACzC;6BAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;yBACrB;;4BAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;wBACtC,EAAE,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,CAAC,UAAU,CAAC,CAAC;wBACnB,OAAO;qBACR;oBAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;wBACtB,IAAI,IAAI,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAC;wBAC1C,oCAAoC;wBACpC,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,MAAK,KAAK,EAAE;4BAC5C,IAAI,CAAC,eAAe,CAAC,MAAM;gCACzB,2FAA2F,CAAC;yBAC/F;6BAAM,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,MAAK,WAAW,EAAE;4BACzD,IAAI,CAAC,eAAe,CAAC,MAAM;gCACzB,oHAAoH,CAAC;yBACxH;wBACD,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,KAAK,CAAC;wBACrC,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;wBAC7C,2CAA2C;wBAC3C,kEAAkE;qBACnE;gBACH,CAAC,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACnB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,0DAA0D;IAC1D,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlXD,kBAkXC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OllamaAPI = exports.OpenAiAPI = void 0;
13
+ const openai_1 = require("openai");
14
+ const ollama_node_1 = require("ollama-node");
15
+ const DEBUG = process.env.LOZ_DEBUG === "true" ? true : false;
16
+ class LLMService {
17
+ completion(params) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ return { content: "", model: "" };
20
+ });
21
+ }
22
+ }
23
+ class OpenAiAPI extends LLMService {
24
+ constructor() {
25
+ super();
26
+ this.api = new openai_1.default();
27
+ }
28
+ completion(params) {
29
+ var _a, _b;
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const gptParams = {
32
+ model: "gpt-3.5-turbo",
33
+ messages: [{ role: "user", content: params.prompt }],
34
+ stream: false,
35
+ max_tokens: params.max_tokens,
36
+ temperature: params.temperature,
37
+ };
38
+ let completion;
39
+ try {
40
+ completion = yield this.api.chat.completions.create(gptParams);
41
+ }
42
+ catch (error) {
43
+ if (error.response) {
44
+ if (error.response.status === 401) {
45
+ console.log("Invalid API key");
46
+ }
47
+ else if (error.response.status === 429) {
48
+ console.log("API request limit reached");
49
+ }
50
+ else {
51
+ console.log(error.response.status);
52
+ console.log(error.response.data);
53
+ }
54
+ }
55
+ else {
56
+ console.log(error.message);
57
+ }
58
+ return { content: "", model: "" };
59
+ }
60
+ return {
61
+ content: (_b = (_a = completion.choices[0]) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.content,
62
+ model: gptParams.model,
63
+ };
64
+ });
65
+ }
66
+ }
67
+ exports.OpenAiAPI = OpenAiAPI;
68
+ class OllamaAPI extends LLMService {
69
+ constructor() {
70
+ super();
71
+ this.api = new ollama_node_1.Ollama();
72
+ }
73
+ completion(params) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ if (DEBUG) {
76
+ console.log("Ollama completion");
77
+ console.log("Prompt: " + params.prompt);
78
+ console.log("Model: " + params.model);
79
+ }
80
+ yield this.api.setModel(params.model);
81
+ const result = yield this.api.generate(params.prompt);
82
+ return { content: result.output, model: params.model };
83
+ });
84
+ }
85
+ }
86
+ exports.OllamaAPI = OllamaAPI;
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loz",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "CLI for various knowledge services",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,6 +34,7 @@
34
34
  "dependencies": {
35
35
  "dotenv": "^16.0.3",
36
36
  "express": "^4.17.3",
37
+ "ollama-node": "^0.1.27",
37
38
  "openai": "^4.20.1",
38
39
  "yargs": "^17.7.2"
39
40
  },