@rxap/plugin-llm 20.0.0-dev.1
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/CHANGELOG.md +8 -0
- package/GETSTARTED.md +0 -0
- package/GUIDES.md +0 -0
- package/LICENSE.md +621 -0
- package/README.md +11 -0
- package/generators.json +36 -0
- package/package.json +49 -0
- package/src/generators/documentation/generator.d.ts +4 -0
- package/src/generators/documentation/generator.js +187 -0
- package/src/generators/documentation/generator.js.map +1 -0
- package/src/generators/documentation/index.d.ts +2 -0
- package/src/generators/documentation/index.js +7 -0
- package/src/generators/documentation/index.js.map +1 -0
- package/src/generators/documentation/schema.d.ts +13 -0
- package/src/generators/documentation/schema.json +34 -0
- package/src/generators/documentation/system-prompts/context.xsd +35 -0
- package/src/generators/documentation/system-prompts/exmaple.txt +134 -0
- package/src/generators/documentation/system-prompts/generic.txt +242 -0
- package/src/generators/init/generator.d.ts +4 -0
- package/src/generators/init/generator.js +105 -0
- package/src/generators/init/generator.js.map +1 -0
- package/src/generators/init/index.d.ts +2 -0
- package/src/generators/init/index.js +7 -0
- package/src/generators/init/index.js.map +1 -0
- package/src/generators/init/schema.d.ts +3 -0
- package/src/generators/init/schema.json +8 -0
- package/src/generators/package-description/generator.d.ts +4 -0
- package/src/generators/package-description/generator.js +53 -0
- package/src/generators/package-description/generator.js.map +1 -0
- package/src/generators/package-description/index.d.ts +2 -0
- package/src/generators/package-description/index.js +7 -0
- package/src/generators/package-description/index.js.map +1 -0
- package/src/generators/package-description/schema.d.ts +15 -0
- package/src/generators/package-description/schema.json +37 -0
- package/src/generators/package-description/system-prompts/generic.txt +44 -0
- package/src/index.d.ts +0 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -0
- package/src/lib/__snapshots__/cleanup-js-doc.spec.ts.snap +32 -0
- package/src/lib/add-js-doc.d.ts +2 -0
- package/src/lib/add-js-doc.js +7 -0
- package/src/lib/add-js-doc.js.map +1 -0
- package/src/lib/assert-token-limit.d.ts +2 -0
- package/src/lib/assert-token-limit.js +13 -0
- package/src/lib/assert-token-limit.js.map +1 -0
- package/src/lib/cleanup-js-doc.d.ts +1 -0
- package/src/lib/cleanup-js-doc.js +26 -0
- package/src/lib/cleanup-js-doc.js.map +1 -0
- package/src/lib/clear-all-js-docs.d.ts +2 -0
- package/src/lib/clear-all-js-docs.js +23 -0
- package/src/lib/clear-all-js-docs.js.map +1 -0
- package/src/lib/clear-js-doc.d.ts +2 -0
- package/src/lib/clear-js-doc.js +7 -0
- package/src/lib/clear-js-doc.js.map +1 -0
- package/src/lib/completion.d.ts +11 -0
- package/src/lib/completion.js +49 -0
- package/src/lib/completion.js.map +1 -0
- package/src/lib/compose-context.d.ts +9 -0
- package/src/lib/compose-context.js +35 -0
- package/src/lib/compose-context.js.map +1 -0
- package/src/lib/count-tokens.d.ts +2 -0
- package/src/lib/count-tokens.js +18 -0
- package/src/lib/count-tokens.js.map +1 -0
- package/src/lib/has-js-doc.d.ts +2 -0
- package/src/lib/has-js-doc.js +7 -0
- package/src/lib/has-js-doc.js.map +1 -0
- package/src/lib/model.d.ts +16 -0
- package/src/lib/model.js +19 -0
- package/src/lib/model.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-token-limit.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/assert-token-limit.ts"],"names":[],"mappings":";;AAMA,4CAUC;AAhBD,iDAA6C;AAC7C,mCAGiB;AAEjB,SAAgB,gBAAgB,CAAC,KAAY,EAAE,GAAG,MAAgB;IAEhE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,IAAA,0BAAW,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E,IAAI,GAAG,GAAG,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,yCAAyC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,OAAO,GAAG,CAAC;AAEb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanupJsDoc(jsDoc: string): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanupJsDoc = cleanupJsDoc;
|
|
4
|
+
function cleanupJsDoc(jsDoc) {
|
|
5
|
+
if (!(jsDoc.includes('/**') || jsDoc.includes('*/'))) {
|
|
6
|
+
return jsDoc;
|
|
7
|
+
}
|
|
8
|
+
const cleanJsDocArray = jsDoc
|
|
9
|
+
.split('\n')
|
|
10
|
+
.map(line => line
|
|
11
|
+
.trim()
|
|
12
|
+
.replace(/^\/\*\*/, '')
|
|
13
|
+
.replace(/^\*\//, '')
|
|
14
|
+
.replace(/^\*\s/, '')
|
|
15
|
+
.replace(/^\*$/, ''));
|
|
16
|
+
// cleanJsDocArray.pop();
|
|
17
|
+
// cleanJsDocArray.shift();
|
|
18
|
+
if (cleanJsDocArray[0].trim() === '') {
|
|
19
|
+
cleanJsDocArray.shift();
|
|
20
|
+
}
|
|
21
|
+
if (cleanJsDocArray[cleanJsDocArray.length - 1].trim() === '') {
|
|
22
|
+
cleanJsDocArray.pop();
|
|
23
|
+
}
|
|
24
|
+
return cleanJsDocArray.join('\n');
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=cleanup-js-doc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-js-doc.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/cleanup-js-doc.ts"],"names":[],"mappings":";;AAAA,oCA+BC;AA/BD,SAAgB,YAAY,CAAC,KAAa;IAExC,IAAI,CAAC,CACH,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9C,EAAE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;SACd,IAAI,EAAE;SACN,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,CAAC;IAEJ,yBAAyB;IACzB,2BAA2B;IAE3B,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,eAAe,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clearAllJsDocs = clearAllJsDocs;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
const clear_js_doc_1 = require("./clear-js-doc");
|
|
6
|
+
function clearAllJsDocs(sourceFile, inplace = false) {
|
|
7
|
+
const p = new ts_morph_1.Project({ useInMemoryFileSystem: true });
|
|
8
|
+
const clone = inplace ? sourceFile : p.createSourceFile('clean.ts', sourceFile.getFullText());
|
|
9
|
+
clone.getClasses().forEach(classD => {
|
|
10
|
+
(0, clear_js_doc_1.clearJsDoc)(classD);
|
|
11
|
+
classD.getProperties().filter(property => !property.getScope() || property.getScope() === ts_morph_1.Scope.Public).forEach(prop => (0, clear_js_doc_1.clearJsDoc)(prop));
|
|
12
|
+
classD.getMethods().filter(method => !method.getScope() || method.getScope() === ts_morph_1.Scope.Public).forEach(method => (0, clear_js_doc_1.clearJsDoc)(method));
|
|
13
|
+
});
|
|
14
|
+
clone.getInterfaces().forEach(interfaceD => {
|
|
15
|
+
(0, clear_js_doc_1.clearJsDoc)(interfaceD);
|
|
16
|
+
interfaceD.getProperties().forEach(prop => (0, clear_js_doc_1.clearJsDoc)(prop));
|
|
17
|
+
interfaceD.getMethods().forEach(method => (0, clear_js_doc_1.clearJsDoc)(method));
|
|
18
|
+
});
|
|
19
|
+
clone.getTypeAliases().forEach(alias => (0, clear_js_doc_1.clearJsDoc)(alias));
|
|
20
|
+
clone.getFunctions().forEach(funcD => (0, clear_js_doc_1.clearJsDoc)(funcD));
|
|
21
|
+
return clone;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=clear-all-js-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-all-js-docs.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/clear-all-js-docs.ts"],"names":[],"mappings":";;AAGA,wCAkBC;AArBD,uCAAsD;AACtD,iDAA4C;AAE5C,SAAgB,cAAc,CAAC,UAAsB,EAAE,OAAO,GAAG,KAAK;IACpE,MAAM,CAAC,GAAG,IAAI,kBAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9F,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,IAAA,yBAAU,EAAC,MAAM,CAAC,CAAC;QACnB,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,gBAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAC7G,IAAI,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,gBAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CACpG,MAAM,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,MAAM,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACzC,IAAA,yBAAU,EAAC,UAAU,CAAC,CAAC;QACvB,UAAU,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAA,yBAAU,EAAC,KAAK,CAAC,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear-js-doc.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/clear-js-doc.ts"],"names":[],"mappings":";;AAEA,gCAEC;AAFD,SAAgB,UAAU,CAAC,IAAmB;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Model } from './model';
|
|
2
|
+
import 'colors';
|
|
3
|
+
export interface CompletionOptions {
|
|
4
|
+
model?: Model;
|
|
5
|
+
maxTokens?: number;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
apiKey?: string;
|
|
8
|
+
orgId?: string;
|
|
9
|
+
projectId?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function completion(systemPrompt: string, prompt: string, options?: CompletionOptions): Promise<string>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.completion = completion;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const openai_1 = require("openai");
|
|
6
|
+
const assert_token_limit_1 = require("./assert-token-limit");
|
|
7
|
+
const model_1 = require("./model");
|
|
8
|
+
require("colors");
|
|
9
|
+
function completion(systemPrompt_1, prompt_1) {
|
|
10
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* (systemPrompt, prompt, options = {}) {
|
|
11
|
+
var _a;
|
|
12
|
+
const { model = 'openai/gpt-4o-mini', maxTokens = model_1.tokenLimits[model][1] } = options;
|
|
13
|
+
const count = (0, assert_token_limit_1.assertTokenLimit)(model, systemPrompt, prompt);
|
|
14
|
+
const input = {
|
|
15
|
+
model,
|
|
16
|
+
messages: [
|
|
17
|
+
{
|
|
18
|
+
'role': 'system',
|
|
19
|
+
'content': systemPrompt,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
'role': 'user',
|
|
23
|
+
'content': prompt,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
temperature: 0,
|
|
27
|
+
};
|
|
28
|
+
if (model.startsWith('o')) {
|
|
29
|
+
input.max_completion_tokens = maxTokens;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
input.max_tokens = maxTokens;
|
|
33
|
+
}
|
|
34
|
+
console.log('TOKENS'.grey + ' ' + count);
|
|
35
|
+
const response = yield new openai_1.default({
|
|
36
|
+
apiKey: options.apiKey,
|
|
37
|
+
project: options.projectId,
|
|
38
|
+
organization: options.orgId,
|
|
39
|
+
baseURL: options.baseUrl,
|
|
40
|
+
}).chat.completions.create(input);
|
|
41
|
+
const content = (_a = response.choices[0].message) === null || _a === void 0 ? void 0 : _a.content;
|
|
42
|
+
if (!content) {
|
|
43
|
+
console.log('No content in response'.red);
|
|
44
|
+
throw new Error(`No content in response`);
|
|
45
|
+
}
|
|
46
|
+
return content;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/completion.ts"],"names":[],"mappings":";;AAmBA,gCAgDC;;AAlED,mCAA4B;AAE5B,6DAAwD;AACxD,mCAGiB;AACjB,kBAAgB;AAWhB,SAAsB,UAAU;iEAC9B,YAAoB,EACpB,MAAc,EACd,UAA6B,EAAE;;QAG/B,MAAM,EAAE,KAAK,GAAG,oBAAoB,EAAE,SAAS,GAAG,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC;QAEpF,MAAM,KAAK,GAAG,IAAA,qCAAgB,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAE5D,MAAM,KAAK,GAA2C;YACpD,KAAK;YACL,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE,QAAQ;oBAChB,SAAS,EAAE,YAAY;iBACxB;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,MAAM;iBAClB;aACF;YACD,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,gBAAM,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,SAAS;YAC1B,YAAY,EAAE,OAAO,CAAC,KAAK;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,0CAAE,OAAO,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IAEjB,CAAC;CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SourceFile } from 'ts-morph';
|
|
2
|
+
export interface ContextSourceFile {
|
|
3
|
+
$: {
|
|
4
|
+
path: string;
|
|
5
|
+
};
|
|
6
|
+
_: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function sourceFileToContextSourceFile(sourceFile: SourceFile): ContextSourceFile;
|
|
9
|
+
export declare function composeContext(sourceFile: SourceFile): string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sourceFileToContextSourceFile = sourceFileToContextSourceFile;
|
|
4
|
+
exports.composeContext = composeContext;
|
|
5
|
+
const xml2js_1 = require("xml2js");
|
|
6
|
+
const clear_all_js_docs_1 = require("./clear-all-js-docs");
|
|
7
|
+
function sourceFileToContextSourceFile(sourceFile) {
|
|
8
|
+
return {
|
|
9
|
+
$: {
|
|
10
|
+
path: sourceFile.getFilePath(),
|
|
11
|
+
},
|
|
12
|
+
_: '\n' + (0, clear_all_js_docs_1.clearAllJsDocs)(sourceFile).getFullText()
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function getReferenced(sourceFile) {
|
|
16
|
+
return [
|
|
17
|
+
...sourceFile.getReferencedSourceFiles(),
|
|
18
|
+
...sourceFile.getReferencedSourceFiles().map(sf => getReferenced(sf)).flat()
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
function composeContext(sourceFile) {
|
|
22
|
+
const builder = new xml2js_1.Builder();
|
|
23
|
+
const context = {
|
|
24
|
+
referenced: { sourceFile: [] },
|
|
25
|
+
used: { sourceFile: [] },
|
|
26
|
+
};
|
|
27
|
+
sourceFile.getReferencingSourceFiles().forEach(sf => {
|
|
28
|
+
context.used.sourceFile.push(sourceFileToContextSourceFile(sf));
|
|
29
|
+
});
|
|
30
|
+
getReferenced(sourceFile).forEach(sf => {
|
|
31
|
+
context.referenced.sourceFile.push(sourceFileToContextSourceFile(sf));
|
|
32
|
+
});
|
|
33
|
+
return builder.buildObject(context).replace(/root>/g, 'context>') + '\n';
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=compose-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-context.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/compose-context.ts"],"names":[],"mappings":";;AAoBA,sEAOC;AASD,wCAmBC;AAtDD,mCAAiC;AACjC,2DAAqD;AAkBrD,SAAgB,6BAA6B,CAAC,UAAsB;IAClE,OAAO;QACL,CAAC,EAAE;YACD,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;SAC/B;QACD,CAAC,EAAE,IAAI,GAAG,IAAA,kCAAc,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,UAAsB;IAC3C,OAAO;QACL,GAAG,UAAU,CAAC,wBAAwB,EAAE;QACxC,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;KAC7E,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,UAAsB;IAEnD,MAAM,OAAO,GAAG,IAAI,gBAAO,EAAE,CAAC;IAE9B,MAAM,OAAO,GAAY;QACvB,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9B,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;KACzB,CAAC;IAEF,UAAU,CAAC,yBAAyB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAClD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACrC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;AAE3E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.countTokens = countTokens;
|
|
4
|
+
const tiktoken_1 = require("tiktoken");
|
|
5
|
+
function countTokens(model, prompt) {
|
|
6
|
+
let normalizedModel;
|
|
7
|
+
if (model.startsWith('openai/')) {
|
|
8
|
+
normalizedModel = model.replace(/openai\//, '');
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
normalizedModel = 'gpt-4o';
|
|
12
|
+
}
|
|
13
|
+
const enc = (0, tiktoken_1.encoding_for_model)(normalizedModel);
|
|
14
|
+
const count = enc.encode(prompt).length;
|
|
15
|
+
enc.free();
|
|
16
|
+
return count;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=count-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-tokens.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/count-tokens.ts"],"names":[],"mappings":";;AAMA,kCAcC;AApBD,uCAGkB;AAGlB,SAAgB,WAAW,CAAC,KAAY,EAAE,MAAc;IAEtD,IAAI,eAA8B,CAAC;IACnC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAkB,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,QAAQ,CAAC;IAC7B,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,6BAAkB,EAAC,eAAe,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,CAAC,IAAI,EAAE,CAAC;IAEX,OAAO,KAAK,CAAC;AAEf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-js-doc.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/has-js-doc.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAFD,SAAgB,QAAQ,CAAC,IAAmB;IAC1C,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Context size https://platform.openai.com/docs/models
|
|
3
|
+
*/
|
|
4
|
+
export declare const tokenLimits: {
|
|
5
|
+
'anthropic/claude-3-5-sonnet': number[];
|
|
6
|
+
'anthropic/claude-3-5-haiku': number[];
|
|
7
|
+
'gemini/2.0-flash': number[];
|
|
8
|
+
'gemini/1.5-flash': number[];
|
|
9
|
+
'gemini/1.5-pro': number[];
|
|
10
|
+
'openai/gpt-4o': number[];
|
|
11
|
+
'openai/gpt-4o-mini': number[];
|
|
12
|
+
'openai/o1': number[];
|
|
13
|
+
'openai/o1-mini': number[];
|
|
14
|
+
'openai/o3-mini': number[];
|
|
15
|
+
};
|
|
16
|
+
export type Model = keyof typeof tokenLimits;
|
package/src/lib/model.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tokenLimits = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Model Context size https://platform.openai.com/docs/models
|
|
6
|
+
*/
|
|
7
|
+
exports.tokenLimits = {
|
|
8
|
+
'anthropic/claude-3-5-sonnet': [200000, 8192],
|
|
9
|
+
'anthropic/claude-3-5-haiku': [200000, 8192],
|
|
10
|
+
'gemini/2.0-flash': [1000000, 1000000], // $0.10 $0.40
|
|
11
|
+
'gemini/1.5-flash': [128000, 128000], // $0.075 $0.30
|
|
12
|
+
'gemini/1.5-pro': [128000, 128000], // $1.25 $5.00
|
|
13
|
+
'openai/gpt-4o': [128000], // $2.50 $10.00
|
|
14
|
+
'openai/gpt-4o-mini': [128000], // $0.15 $0.60
|
|
15
|
+
'openai/o1': [200000], // $15.00 $60.00
|
|
16
|
+
'openai/o1-mini': [128000], // $1.10 $4.40
|
|
17
|
+
'openai/o3-mini': [200000], // $1.10 $4.40
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../../packages/plugin/llm/src/lib/model.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,WAAW,GAAG;IAEzB,6BAA6B,EAAE,CAAC,MAAO,EAAE,IAAI,CAAC;IAC9C,4BAA4B,EAAE,CAAC,MAAO,EAAE,IAAI,CAAC;IAE7C,kBAAkB,EAAE,CAAC,OAAS,EAAE,OAAS,CAAC,EAAE,cAAc;IAC1D,kBAAkB,EAAE,CAAC,MAAO,EAAC,MAAO,CAAC,EAAE,eAAe;IACtD,gBAAgB,EAAE,CAAC,MAAO,EAAC,MAAO,CAAC,EAAE,cAAc;IAEnD,eAAe,EAAE,CAAC,MAAO,CAAC,EAAE,eAAe;IAC3C,oBAAoB,EAAE,CAAC,MAAO,CAAC,EAAE,cAAc;IAC/C,WAAW,EAAE,CAAC,MAAO,CAAC,EAAE,gBAAgB;IACxC,gBAAgB,EAAE,CAAC,MAAO,CAAC,EAAE,cAAc;IAC3C,gBAAgB,EAAE,CAAC,MAAO,CAAC,EAAE,cAAc;CAE5C,CAAC"}
|