fawn-memory 0.0.3
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 +118 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183 -0
- package/dist/index.js.map +1 -0
- package/dist/knowpro/answerContextSchema.d.ts +20 -0
- package/dist/knowpro/answerContextSchema.d.ts.map +1 -0
- package/dist/knowpro/answerContextSchema.js +4 -0
- package/dist/knowpro/answerContextSchema.js.map +1 -0
- package/dist/knowpro/answerResponseSchema.d.ts +7 -0
- package/dist/knowpro/answerResponseSchema.d.ts.map +1 -0
- package/dist/knowpro/answerResponseSchema.js +4 -0
- package/dist/knowpro/answerResponseSchema.js.map +1 -0
- package/dist/knowpro/answerTranslator.d.ts +5 -0
- package/dist/knowpro/answerTranslator.d.ts.map +1 -0
- package/dist/knowpro/answerTranslator.js +10 -0
- package/dist/knowpro/answerTranslator.js.map +1 -0
- package/dist/knowpro/collections.d.ts +14 -0
- package/dist/knowpro/collections.d.ts.map +1 -0
- package/dist/knowpro/collections.js +52 -0
- package/dist/knowpro/collections.js.map +1 -0
- package/dist/knowpro/conversation.d.ts +63 -0
- package/dist/knowpro/conversation.d.ts.map +1 -0
- package/dist/knowpro/conversation.js +247 -0
- package/dist/knowpro/conversation.js.map +1 -0
- package/dist/knowpro/dateTimeSchema.d.ts +19 -0
- package/dist/knowpro/dateTimeSchema.d.ts.map +1 -0
- package/dist/knowpro/dateTimeSchema.js +4 -0
- package/dist/knowpro/dateTimeSchema.js.map +1 -0
- package/dist/knowpro/entities.d.ts +9 -0
- package/dist/knowpro/entities.d.ts.map +1 -0
- package/dist/knowpro/entities.js +63 -0
- package/dist/knowpro/entities.js.map +1 -0
- package/dist/knowpro/interfaces.d.ts +637 -0
- package/dist/knowpro/interfaces.d.ts.map +1 -0
- package/dist/knowpro/interfaces.js +4 -0
- package/dist/knowpro/interfaces.js.map +1 -0
- package/dist/knowpro/knowledge.d.ts +19 -0
- package/dist/knowpro/knowledge.d.ts.map +1 -0
- package/dist/knowpro/knowledge.js +97 -0
- package/dist/knowpro/knowledge.js.map +1 -0
- package/dist/knowpro/knowledgeSchema.d.ts +39 -0
- package/dist/knowpro/knowledgeSchema.d.ts.map +1 -0
- package/dist/knowpro/knowledgeSchema.js +2 -0
- package/dist/knowpro/knowledgeSchema.js.map +1 -0
- package/dist/knowpro/llmProvider.d.ts +17 -0
- package/dist/knowpro/llmProvider.d.ts.map +1 -0
- package/dist/knowpro/llmProvider.js +105 -0
- package/dist/knowpro/llmProvider.js.map +1 -0
- package/dist/knowpro/relatedTermsSchema.d.ts +24 -0
- package/dist/knowpro/relatedTermsSchema.d.ts.map +1 -0
- package/dist/knowpro/relatedTermsSchema.js +6 -0
- package/dist/knowpro/relatedTermsSchema.js.map +1 -0
- package/dist/knowpro/schema.d.ts +24 -0
- package/dist/knowpro/schema.d.ts.map +1 -0
- package/dist/knowpro/schema.js +55 -0
- package/dist/knowpro/schema.js.map +1 -0
- package/dist/knowpro/search.d.ts +8 -0
- package/dist/knowpro/search.d.ts.map +1 -0
- package/dist/knowpro/search.js +448 -0
- package/dist/knowpro/search.js.map +1 -0
- package/dist/knowpro/searchQuerySchema.d.ts +40 -0
- package/dist/knowpro/searchQuerySchema.d.ts.map +1 -0
- package/dist/knowpro/searchQuerySchema.js +4 -0
- package/dist/knowpro/searchQuerySchema.js.map +1 -0
- package/dist/knowpro/searchQueryTranslator.d.ts +33 -0
- package/dist/knowpro/searchQueryTranslator.d.ts.map +1 -0
- package/dist/knowpro/searchQueryTranslator.js +47 -0
- package/dist/knowpro/searchQueryTranslator.js.map +1 -0
- package/dist/knowpro/semanticRef.d.ts +4 -0
- package/dist/knowpro/semanticRef.d.ts.map +1 -0
- package/dist/knowpro/semanticRef.js +62 -0
- package/dist/knowpro/semanticRef.js.map +1 -0
- package/dist/knowpro/semanticRefIndex.d.ts +48 -0
- package/dist/knowpro/semanticRefIndex.d.ts.map +1 -0
- package/dist/knowpro/semanticRefIndex.js +388 -0
- package/dist/knowpro/semanticRefIndex.js.map +1 -0
- package/dist/knowpro/storageProvider.d.ts +7 -0
- package/dist/knowpro/storageProvider.d.ts.map +1 -0
- package/dist/knowpro/storageProvider.js +61 -0
- package/dist/knowpro/storageProvider.js.map +1 -0
- package/dist/knowpro/timestampIndex.d.ts +43 -0
- package/dist/knowpro/timestampIndex.d.ts.map +1 -0
- package/dist/knowpro/timestampIndex.js +324 -0
- package/dist/knowpro/timestampIndex.js.map +1 -0
- package/dist/rag/chunking.d.ts +6 -0
- package/dist/rag/chunking.d.ts.map +1 -0
- package/dist/rag/chunking.js +83 -0
- package/dist/rag/chunking.js.map +1 -0
- package/dist/rag/embeddingProvider.d.ts +34 -0
- package/dist/rag/embeddingProvider.d.ts.map +1 -0
- package/dist/rag/embeddingProvider.js +95 -0
- package/dist/rag/embeddingProvider.js.map +1 -0
- package/dist/rag/index.d.ts +8 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +7 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/knowproAdapter.d.ts +44 -0
- package/dist/rag/knowproAdapter.d.ts.map +1 -0
- package/dist/rag/knowproAdapter.js +66 -0
- package/dist/rag/knowproAdapter.js.map +1 -0
- package/dist/rag/ragIndex.d.ts +101 -0
- package/dist/rag/ragIndex.d.ts.map +1 -0
- package/dist/rag/ragIndex.js +305 -0
- package/dist/rag/ragIndex.js.map +1 -0
- package/dist/rag/similarity.d.ts +15 -0
- package/dist/rag/similarity.d.ts.map +1 -0
- package/dist/rag/similarity.js +47 -0
- package/dist/rag/similarity.js.map +1 -0
- package/dist/rag/types.d.ts +61 -0
- package/dist/rag/types.d.ts.map +1 -0
- package/dist/rag/types.js +2 -0
- package/dist/rag/types.js.map +1 -0
- package/dist/rag/vectorIndex.d.ts +102 -0
- package/dist/rag/vectorIndex.d.ts.map +1 -0
- package/dist/rag/vectorIndex.js +236 -0
- package/dist/rag/vectorIndex.js.map +1 -0
- package/dist/utils/async.d.ts +25 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +55 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/string.d.ts +3 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +15 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createJsonTranslator } from "typechat";
|
|
2
|
+
import { loadSchema } from "./schema.js";
|
|
3
|
+
import { createTypeScriptJsonValidator } from "typechat/ts";
|
|
4
|
+
import { mergeEntityFacet } from "./entities.js";
|
|
5
|
+
import { getResultWithRetry } from "../utils/async.js";
|
|
6
|
+
export function createKnowledgeTranslator(model) {
|
|
7
|
+
const schema = loadSchema(["knowledgeSchema.ts"], import.meta.url);
|
|
8
|
+
const typeName = "KnowledgeResponse";
|
|
9
|
+
const validator = createTypeScriptJsonValidator(schema, typeName);
|
|
10
|
+
const translator = createJsonTranslator(model, validator);
|
|
11
|
+
translator.createRequestPrompt = createRequestPrompt;
|
|
12
|
+
return translator;
|
|
13
|
+
function createRequestPrompt(request) {
|
|
14
|
+
return (`You are a service that translates user messages in a conversation into JSON objects of type "${typeName}" according to the following TypeScript definitions:\n` +
|
|
15
|
+
`\`\`\`\n${schema}\`\`\`\n` +
|
|
16
|
+
`The following are messages in a conversation:\n` +
|
|
17
|
+
`"""\n${request}\n"""\n` +
|
|
18
|
+
`The following is the user request translated into a JSON object with 2 spaces of indentation and no properties with the value undefined:\n`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Return default settings
|
|
23
|
+
* @param maxCharsPerChunk (optional)
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export function createKnowledgeExtractorSettings(maxCharsPerChunk = 2048) {
|
|
27
|
+
return {
|
|
28
|
+
maxContextLength: maxCharsPerChunk,
|
|
29
|
+
mergeActionKnowledge: true,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a new knowledge extractor
|
|
34
|
+
* @param model
|
|
35
|
+
* @param extractorSettings
|
|
36
|
+
* @param knowledgeTranslator (optional) knowledge translator to use
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export function createKnowledgeExtractor(model, extractorSettings, knowledgeTranslator) {
|
|
40
|
+
const settings = extractorSettings ?? createKnowledgeExtractorSettings();
|
|
41
|
+
const translator = knowledgeTranslator ?? createKnowledgeTranslator(model);
|
|
42
|
+
const extractor = {
|
|
43
|
+
settings,
|
|
44
|
+
extract,
|
|
45
|
+
extractWithRetry,
|
|
46
|
+
translator,
|
|
47
|
+
};
|
|
48
|
+
return extractor;
|
|
49
|
+
async function extract(message) {
|
|
50
|
+
const result = await extractKnowledge(message);
|
|
51
|
+
if (!result.success) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return result.data;
|
|
55
|
+
}
|
|
56
|
+
function extractWithRetry(message, maxRetries) {
|
|
57
|
+
return getResultWithRetry(() => extractKnowledge(message), maxRetries);
|
|
58
|
+
}
|
|
59
|
+
async function extractKnowledge(message) {
|
|
60
|
+
const result = await (extractor.translator ?? translator).translate(message);
|
|
61
|
+
if (result.success) {
|
|
62
|
+
if (settings.mergeActionKnowledge || settings.mergeEntityFacets) {
|
|
63
|
+
mergeActionKnowledge(result.data);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
//
|
|
69
|
+
// Some knowledge found via actions is actually meant for entities...
|
|
70
|
+
//
|
|
71
|
+
function mergeActionKnowledge(knowledge) {
|
|
72
|
+
if (knowledge.actions === undefined) {
|
|
73
|
+
knowledge.actions = [];
|
|
74
|
+
}
|
|
75
|
+
if (settings.mergeActionKnowledge) {
|
|
76
|
+
// Merge all inverse actions into regular actions.
|
|
77
|
+
if (knowledge.inverseActions &&
|
|
78
|
+
knowledge.inverseActions.length > 0) {
|
|
79
|
+
knowledge.actions.push(...knowledge.inverseActions);
|
|
80
|
+
knowledge.inverseActions = [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (settings.mergeActionKnowledge || settings.mergeEntityFacets) {
|
|
84
|
+
// Also merge in any facets into
|
|
85
|
+
for (const action of knowledge.actions) {
|
|
86
|
+
if (action.subjectEntityFacet) {
|
|
87
|
+
const entity = knowledge.entities.find((c) => c.name === action.subjectEntityName);
|
|
88
|
+
if (entity) {
|
|
89
|
+
mergeEntityFacet(entity, action.subjectEntityFacet);
|
|
90
|
+
}
|
|
91
|
+
action.subjectEntityFacet = undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/knowpro/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type Quantity = {
|
|
2
|
+
amount: number;
|
|
3
|
+
units: string;
|
|
4
|
+
};
|
|
5
|
+
export type Quantifier = {
|
|
6
|
+
amount: string;
|
|
7
|
+
units: string;
|
|
8
|
+
};
|
|
9
|
+
export type Value = string | number | boolean | Quantity | Quantifier;
|
|
10
|
+
export type Facet = {
|
|
11
|
+
name: string;
|
|
12
|
+
value: Value;
|
|
13
|
+
};
|
|
14
|
+
export type ConcreteEntity = {
|
|
15
|
+
name: string;
|
|
16
|
+
type: string[];
|
|
17
|
+
facets?: Facet[];
|
|
18
|
+
};
|
|
19
|
+
export type ActionParam = {
|
|
20
|
+
name: string;
|
|
21
|
+
value: Value;
|
|
22
|
+
};
|
|
23
|
+
export type VerbTense = "past" | "present" | "future";
|
|
24
|
+
export type Action = {
|
|
25
|
+
verbs: string[];
|
|
26
|
+
verbTense: VerbTense;
|
|
27
|
+
subjectEntityName: string | "none";
|
|
28
|
+
objectEntityName: string | "none";
|
|
29
|
+
indirectObjectEntityName: string | "none";
|
|
30
|
+
params?: (string | ActionParam)[];
|
|
31
|
+
subjectEntityFacet?: Facet | undefined;
|
|
32
|
+
};
|
|
33
|
+
export type KnowledgeResponse = {
|
|
34
|
+
entities: ConcreteEntity[];
|
|
35
|
+
actions: Action[];
|
|
36
|
+
inverseActions: Action[];
|
|
37
|
+
topics: string[];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=knowledgeSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeSchema.d.ts","sourceRoot":"","sources":["../../src/knowpro/knowledgeSchema.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtE,MAAM,MAAM,KAAK,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG;IAEzB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,EAAE,CAAC;IAIf,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD,MAAM,MAAM,MAAM,GAAG;IAEjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IAElC,kBAAkB,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1C,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeSchema.js","sourceRoot":"","sources":["../../src/knowpro/knowledgeSchema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TypeChatLanguageModel } from 'typechat';
|
|
2
|
+
export type LLMProviderType = 'openai' | 'claude';
|
|
3
|
+
export interface LLMProviderConfig {
|
|
4
|
+
provider: LLMProviderType;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface LLMProvider {
|
|
9
|
+
readonly name: LLMProviderType;
|
|
10
|
+
readonly model: string;
|
|
11
|
+
getLanguageModel(): TypeChatLanguageModel;
|
|
12
|
+
}
|
|
13
|
+
export declare function createOpenAIProvider(apiKey: string, model?: string): LLMProvider;
|
|
14
|
+
export declare function createClaudeProvider(apiKey: string, model?: string): LLMProvider;
|
|
15
|
+
export declare function createLLMProvider(config: LLMProviderConfig): LLMProvider;
|
|
16
|
+
export declare function createLLMProviderFromEnv(): LLMProvider;
|
|
17
|
+
//# sourceMappingURL=llmProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmProvider.d.ts","sourceRoot":"","sources":["../../src/knowpro/llmProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAyB,MAAM,UAAU,CAAC;AAG7E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gBAAgB,IAAI,qBAAqB,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAiB,GACvB,WAAW,CAOb;AAiBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAmC,GACzC,WAAW,CA0Db;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CASxE;AAED,wBAAgB,wBAAwB,IAAI,WAAW,CAiBtD"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
+
import { createOpenAILanguageModel, success, error } from 'typechat';
|
|
3
|
+
export function createOpenAIProvider(apiKey, model = 'gpt-4o') {
|
|
4
|
+
const languageModel = createOpenAILanguageModel(apiKey, model);
|
|
5
|
+
return {
|
|
6
|
+
name: 'openai',
|
|
7
|
+
model,
|
|
8
|
+
getLanguageModel: () => languageModel
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function getContentAsString(content) {
|
|
12
|
+
if (typeof content === 'string') {
|
|
13
|
+
return content;
|
|
14
|
+
}
|
|
15
|
+
return content.map(c => {
|
|
16
|
+
if (typeof c === 'string') {
|
|
17
|
+
return c;
|
|
18
|
+
}
|
|
19
|
+
if (c.type === 'text') {
|
|
20
|
+
return c.text;
|
|
21
|
+
}
|
|
22
|
+
return '';
|
|
23
|
+
}).join('');
|
|
24
|
+
}
|
|
25
|
+
export function createClaudeProvider(apiKey, model = 'claude-sonnet-4-20250514') {
|
|
26
|
+
const client = new Anthropic({ apiKey });
|
|
27
|
+
const languageModel = {
|
|
28
|
+
retryMaxAttempts: 3,
|
|
29
|
+
retryPauseMs: 1000,
|
|
30
|
+
async complete(prompt) {
|
|
31
|
+
try {
|
|
32
|
+
let systemMessage;
|
|
33
|
+
let userMessages = [];
|
|
34
|
+
if (typeof prompt === 'string') {
|
|
35
|
+
userMessages = [{ role: 'user', content: prompt }];
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
for (const section of prompt) {
|
|
39
|
+
const contentStr = getContentAsString(section.content);
|
|
40
|
+
if (section.role === 'system') {
|
|
41
|
+
systemMessage = systemMessage
|
|
42
|
+
? `${systemMessage}\n\n${contentStr}`
|
|
43
|
+
: contentStr;
|
|
44
|
+
}
|
|
45
|
+
else if (section.role === 'user' || section.role === 'assistant') {
|
|
46
|
+
userMessages.push({
|
|
47
|
+
role: section.role,
|
|
48
|
+
content: contentStr
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (userMessages.length === 0) {
|
|
54
|
+
userMessages = [{ role: 'user', content: '' }];
|
|
55
|
+
}
|
|
56
|
+
const response = await client.messages.create({
|
|
57
|
+
model,
|
|
58
|
+
max_tokens: 4096,
|
|
59
|
+
system: systemMessage,
|
|
60
|
+
messages: userMessages
|
|
61
|
+
});
|
|
62
|
+
const textContent = response.content.find(block => block.type === 'text');
|
|
63
|
+
if (!textContent || textContent.type !== 'text') {
|
|
64
|
+
return error('No text response from Claude');
|
|
65
|
+
}
|
|
66
|
+
return success(textContent.text);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
70
|
+
return error(`Claude API error: ${message}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return {
|
|
75
|
+
name: 'claude',
|
|
76
|
+
model,
|
|
77
|
+
getLanguageModel: () => languageModel
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function createLLMProvider(config) {
|
|
81
|
+
switch (config.provider) {
|
|
82
|
+
case 'openai':
|
|
83
|
+
return createOpenAIProvider(config.apiKey, config.model);
|
|
84
|
+
case 'claude':
|
|
85
|
+
return createClaudeProvider(config.apiKey, config.model);
|
|
86
|
+
default:
|
|
87
|
+
throw new Error(`Unknown provider: ${config.provider}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function createLLMProviderFromEnv() {
|
|
91
|
+
const provider = (process.env.LLM_PROVIDER || 'openai');
|
|
92
|
+
let apiKey;
|
|
93
|
+
if (provider === 'claude') {
|
|
94
|
+
apiKey = process.env.ANTHROPIC_API_KEY;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
apiKey = process.env.OPENAI_API_KEY || process.env.OPENAI_SDK_KEY;
|
|
98
|
+
}
|
|
99
|
+
const model = process.env.LLM_MODEL;
|
|
100
|
+
if (!apiKey) {
|
|
101
|
+
throw new Error(`Missing API key for provider: ${provider}`);
|
|
102
|
+
}
|
|
103
|
+
return createLLMProvider({ provider, apiKey, model });
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=llmProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmProvider.js","sourceRoot":"","sources":["../../src/knowpro/llmProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for LLM-based related terms expansion.
|
|
3
|
+
* Given a list of terms, the LLM returns semantically related words.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* A term and its semantically related words.
|
|
7
|
+
*/
|
|
8
|
+
export interface TermWithRelated {
|
|
9
|
+
/** The original term */
|
|
10
|
+
term: string;
|
|
11
|
+
/** Semantically related words (synonyms, near-synonyms, conceptually related).
|
|
12
|
+
* Do NOT include morphological variants (plurals, verb tenses) - only semantically different words.
|
|
13
|
+
* Examples: book -> [novel, publication, text], buy -> [purchase, acquire], happy -> [joyful, pleased]
|
|
14
|
+
*/
|
|
15
|
+
relatedTerms: string[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Response containing related terms for a batch of input terms.
|
|
19
|
+
*/
|
|
20
|
+
export interface RelatedTermsResponse {
|
|
21
|
+
/** Array of terms with their related words */
|
|
22
|
+
terms: TermWithRelated[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=relatedTermsSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relatedTermsSchema.d.ts","sourceRoot":"","sources":["../../src/knowpro/relatedTermsSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,8CAA8C;IAC9C,KAAK,EAAE,eAAe,EAAE,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relatedTermsSchema.js","sourceRoot":"","sources":["../../src/knowpro/relatedTermsSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for a type
|
|
3
|
+
*/
|
|
4
|
+
export type TypeSchema = {
|
|
5
|
+
/**
|
|
6
|
+
* Name of the type for which this is a schema
|
|
7
|
+
*/
|
|
8
|
+
typeName: string;
|
|
9
|
+
/**
|
|
10
|
+
* Schema text for the type
|
|
11
|
+
*/
|
|
12
|
+
schemaText: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Loads schema files and combines them into one
|
|
16
|
+
* Also removes all import statements from the combined file, to prevent
|
|
17
|
+
* module install/dependency issues when TypeChat validates messages
|
|
18
|
+
* @param filePaths file paths to import from
|
|
19
|
+
* @param basePath base path if file paths are relative
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadSchema(filePaths: string[], basePath?: string): string;
|
|
23
|
+
export declare function loadSchemaFiles(filePaths: string[], basePath?: string): string[];
|
|
24
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/knowpro/schema.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAOzE;AAED,wBAAgB,eAAe,CAC3B,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,EAAE,CAaV"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
// Module with Schema related functions
|
|
4
|
+
import fs from "fs";
|
|
5
|
+
import ts from "typescript";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import path from "path";
|
|
8
|
+
/**
|
|
9
|
+
* Loads schema files and combines them into one
|
|
10
|
+
* Also removes all import statements from the combined file, to prevent
|
|
11
|
+
* module install/dependency issues when TypeChat validates messages
|
|
12
|
+
* @param filePaths file paths to import from
|
|
13
|
+
* @param basePath base path if file paths are relative
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export function loadSchema(filePaths, basePath) {
|
|
17
|
+
let schemaText = "";
|
|
18
|
+
for (const fileText of loadSchemaFiles(filePaths, basePath)) {
|
|
19
|
+
schemaText += fileText;
|
|
20
|
+
schemaText += "\n";
|
|
21
|
+
}
|
|
22
|
+
return schemaText;
|
|
23
|
+
}
|
|
24
|
+
export function loadSchemaFiles(filePaths, basePath) {
|
|
25
|
+
const schemaText = [];
|
|
26
|
+
for (const file of filePaths) {
|
|
27
|
+
let filePath = file;
|
|
28
|
+
if (!path.isAbsolute(file) && basePath) {
|
|
29
|
+
filePath = fileURLToPath(new URL(file, basePath));
|
|
30
|
+
}
|
|
31
|
+
const rawText = fs.readFileSync(filePath, "utf-8");
|
|
32
|
+
let fileText = stripImports(filePath, rawText);
|
|
33
|
+
fileText = stripCopyright(fileText);
|
|
34
|
+
schemaText.push(fileText);
|
|
35
|
+
}
|
|
36
|
+
return schemaText;
|
|
37
|
+
}
|
|
38
|
+
function stripImports(filePath, schemaText) {
|
|
39
|
+
const sourceFile = ts.createSourceFile(filePath, schemaText, ts.ScriptTarget.Latest);
|
|
40
|
+
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
|
41
|
+
const nodes = sourceFile?.statements.filter((node) => {
|
|
42
|
+
return !ts.isImportDeclaration(node);
|
|
43
|
+
});
|
|
44
|
+
let text = "";
|
|
45
|
+
nodes.forEach((n) => (text +=
|
|
46
|
+
printer.printNode(ts.EmitHint.Unspecified, n, sourceFile) +
|
|
47
|
+
"\n"));
|
|
48
|
+
return text;
|
|
49
|
+
}
|
|
50
|
+
function stripCopyright(schemaText) {
|
|
51
|
+
schemaText = schemaText.replace("// Copyright (c) Microsoft Corporation.", "");
|
|
52
|
+
schemaText = schemaText.replace("// Licensed under the MIT License.", "");
|
|
53
|
+
return schemaText;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/knowpro/schema.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,uCAAuC;AACvC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,SAAmB,EAAE,QAAiB;IAC7D,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1D,UAAU,IAAI,QAAQ,CAAC;QACvB,UAAU,IAAI,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,SAAmB,EACnB,QAAiB;IAEjB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrC,QAAQ,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,OAAO,GAAW,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,UAAkB;IACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAClC,QAAQ,EACR,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,CACzB,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACjD,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAM,CAAC,OAAO,CACV,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,IAAI;QACD,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,UAAW,CAAC;YAC1D,IAAI,CAAC,CAChB,CAAC;IACF,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACtC,UAAU,GAAG,UAAU,CAAC,OAAO,CAC3B,yCAAyC,EACzC,EAAE,CACL,CAAC;IACF,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as contextSchema from "./answerContextSchema.js";
|
|
2
|
+
import type { AnswerTranslator } from "./answerTranslator.js";
|
|
3
|
+
import type { Message } from "./conversation.js";
|
|
4
|
+
import type { IConversationSecondaryIndexes, IMessageCollection, ISemanticRefCollection, ITermToSemanticRefIndex } from "./interfaces.js";
|
|
5
|
+
import type { SearchQuery } from "./searchQuerySchema.js";
|
|
6
|
+
export declare function generateAnswer(rawQuery: string, compiledQuery: contextSchema.AnswerContext, answerTranslator: AnswerTranslator): Promise<import("typechat").Result<import("./answerResponseSchema.js").AnswerResponse>>;
|
|
7
|
+
export declare function compileContext(query: SearchQuery, semanticRefIndex: ITermToSemanticRefIndex, semanticRefs: ISemanticRefCollection, messages: IMessageCollection<Message>, secondaryIndexes?: IConversationSecondaryIndexes, originalQuery?: string): contextSchema.AnswerContext;
|
|
8
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/knowpro/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,iBAAiB,CAAC;AAG9J,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAyC1D,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,CAAC,aAAa,EAC1C,gBAAgB,EAAE,gBAAgB,0FAsBrC;AAqHD,wBAAgB,cAAc,CAC1B,KAAK,EAAE,WAAW,EAClB,gBAAgB,EAAE,uBAAuB,EACzC,YAAY,EAAE,sBAAsB,EACpC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACrC,gBAAgB,CAAC,EAAE,6BAA6B,EAChD,aAAa,CAAC,EAAE,MAAM,GACvB,aAAa,CAAC,aAAa,CAwU7B"}
|