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.
Files changed (126) hide show
  1. package/README.md +118 -0
  2. package/dist/index.d.ts +14 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +183 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/knowpro/answerContextSchema.d.ts +20 -0
  7. package/dist/knowpro/answerContextSchema.d.ts.map +1 -0
  8. package/dist/knowpro/answerContextSchema.js +4 -0
  9. package/dist/knowpro/answerContextSchema.js.map +1 -0
  10. package/dist/knowpro/answerResponseSchema.d.ts +7 -0
  11. package/dist/knowpro/answerResponseSchema.d.ts.map +1 -0
  12. package/dist/knowpro/answerResponseSchema.js +4 -0
  13. package/dist/knowpro/answerResponseSchema.js.map +1 -0
  14. package/dist/knowpro/answerTranslator.d.ts +5 -0
  15. package/dist/knowpro/answerTranslator.d.ts.map +1 -0
  16. package/dist/knowpro/answerTranslator.js +10 -0
  17. package/dist/knowpro/answerTranslator.js.map +1 -0
  18. package/dist/knowpro/collections.d.ts +14 -0
  19. package/dist/knowpro/collections.d.ts.map +1 -0
  20. package/dist/knowpro/collections.js +52 -0
  21. package/dist/knowpro/collections.js.map +1 -0
  22. package/dist/knowpro/conversation.d.ts +63 -0
  23. package/dist/knowpro/conversation.d.ts.map +1 -0
  24. package/dist/knowpro/conversation.js +247 -0
  25. package/dist/knowpro/conversation.js.map +1 -0
  26. package/dist/knowpro/dateTimeSchema.d.ts +19 -0
  27. package/dist/knowpro/dateTimeSchema.d.ts.map +1 -0
  28. package/dist/knowpro/dateTimeSchema.js +4 -0
  29. package/dist/knowpro/dateTimeSchema.js.map +1 -0
  30. package/dist/knowpro/entities.d.ts +9 -0
  31. package/dist/knowpro/entities.d.ts.map +1 -0
  32. package/dist/knowpro/entities.js +63 -0
  33. package/dist/knowpro/entities.js.map +1 -0
  34. package/dist/knowpro/interfaces.d.ts +637 -0
  35. package/dist/knowpro/interfaces.d.ts.map +1 -0
  36. package/dist/knowpro/interfaces.js +4 -0
  37. package/dist/knowpro/interfaces.js.map +1 -0
  38. package/dist/knowpro/knowledge.d.ts +19 -0
  39. package/dist/knowpro/knowledge.d.ts.map +1 -0
  40. package/dist/knowpro/knowledge.js +97 -0
  41. package/dist/knowpro/knowledge.js.map +1 -0
  42. package/dist/knowpro/knowledgeSchema.d.ts +39 -0
  43. package/dist/knowpro/knowledgeSchema.d.ts.map +1 -0
  44. package/dist/knowpro/knowledgeSchema.js +2 -0
  45. package/dist/knowpro/knowledgeSchema.js.map +1 -0
  46. package/dist/knowpro/llmProvider.d.ts +17 -0
  47. package/dist/knowpro/llmProvider.d.ts.map +1 -0
  48. package/dist/knowpro/llmProvider.js +105 -0
  49. package/dist/knowpro/llmProvider.js.map +1 -0
  50. package/dist/knowpro/relatedTermsSchema.d.ts +24 -0
  51. package/dist/knowpro/relatedTermsSchema.d.ts.map +1 -0
  52. package/dist/knowpro/relatedTermsSchema.js +6 -0
  53. package/dist/knowpro/relatedTermsSchema.js.map +1 -0
  54. package/dist/knowpro/schema.d.ts +24 -0
  55. package/dist/knowpro/schema.d.ts.map +1 -0
  56. package/dist/knowpro/schema.js +55 -0
  57. package/dist/knowpro/schema.js.map +1 -0
  58. package/dist/knowpro/search.d.ts +8 -0
  59. package/dist/knowpro/search.d.ts.map +1 -0
  60. package/dist/knowpro/search.js +448 -0
  61. package/dist/knowpro/search.js.map +1 -0
  62. package/dist/knowpro/searchQuerySchema.d.ts +40 -0
  63. package/dist/knowpro/searchQuerySchema.d.ts.map +1 -0
  64. package/dist/knowpro/searchQuerySchema.js +4 -0
  65. package/dist/knowpro/searchQuerySchema.js.map +1 -0
  66. package/dist/knowpro/searchQueryTranslator.d.ts +33 -0
  67. package/dist/knowpro/searchQueryTranslator.d.ts.map +1 -0
  68. package/dist/knowpro/searchQueryTranslator.js +47 -0
  69. package/dist/knowpro/searchQueryTranslator.js.map +1 -0
  70. package/dist/knowpro/semanticRef.d.ts +4 -0
  71. package/dist/knowpro/semanticRef.d.ts.map +1 -0
  72. package/dist/knowpro/semanticRef.js +62 -0
  73. package/dist/knowpro/semanticRef.js.map +1 -0
  74. package/dist/knowpro/semanticRefIndex.d.ts +48 -0
  75. package/dist/knowpro/semanticRefIndex.d.ts.map +1 -0
  76. package/dist/knowpro/semanticRefIndex.js +388 -0
  77. package/dist/knowpro/semanticRefIndex.js.map +1 -0
  78. package/dist/knowpro/storageProvider.d.ts +7 -0
  79. package/dist/knowpro/storageProvider.d.ts.map +1 -0
  80. package/dist/knowpro/storageProvider.js +61 -0
  81. package/dist/knowpro/storageProvider.js.map +1 -0
  82. package/dist/knowpro/timestampIndex.d.ts +43 -0
  83. package/dist/knowpro/timestampIndex.d.ts.map +1 -0
  84. package/dist/knowpro/timestampIndex.js +324 -0
  85. package/dist/knowpro/timestampIndex.js.map +1 -0
  86. package/dist/rag/chunking.d.ts +6 -0
  87. package/dist/rag/chunking.d.ts.map +1 -0
  88. package/dist/rag/chunking.js +83 -0
  89. package/dist/rag/chunking.js.map +1 -0
  90. package/dist/rag/embeddingProvider.d.ts +34 -0
  91. package/dist/rag/embeddingProvider.d.ts.map +1 -0
  92. package/dist/rag/embeddingProvider.js +95 -0
  93. package/dist/rag/embeddingProvider.js.map +1 -0
  94. package/dist/rag/index.d.ts +8 -0
  95. package/dist/rag/index.d.ts.map +1 -0
  96. package/dist/rag/index.js +7 -0
  97. package/dist/rag/index.js.map +1 -0
  98. package/dist/rag/knowproAdapter.d.ts +44 -0
  99. package/dist/rag/knowproAdapter.d.ts.map +1 -0
  100. package/dist/rag/knowproAdapter.js +66 -0
  101. package/dist/rag/knowproAdapter.js.map +1 -0
  102. package/dist/rag/ragIndex.d.ts +101 -0
  103. package/dist/rag/ragIndex.d.ts.map +1 -0
  104. package/dist/rag/ragIndex.js +305 -0
  105. package/dist/rag/ragIndex.js.map +1 -0
  106. package/dist/rag/similarity.d.ts +15 -0
  107. package/dist/rag/similarity.d.ts.map +1 -0
  108. package/dist/rag/similarity.js +47 -0
  109. package/dist/rag/similarity.js.map +1 -0
  110. package/dist/rag/types.d.ts +61 -0
  111. package/dist/rag/types.d.ts.map +1 -0
  112. package/dist/rag/types.js +2 -0
  113. package/dist/rag/types.js.map +1 -0
  114. package/dist/rag/vectorIndex.d.ts +102 -0
  115. package/dist/rag/vectorIndex.d.ts.map +1 -0
  116. package/dist/rag/vectorIndex.js +236 -0
  117. package/dist/rag/vectorIndex.js.map +1 -0
  118. package/dist/utils/async.d.ts +25 -0
  119. package/dist/utils/async.d.ts.map +1 -0
  120. package/dist/utils/async.js +55 -0
  121. package/dist/utils/async.js.map +1 -0
  122. package/dist/utils/string.d.ts +3 -0
  123. package/dist/utils/string.d.ts.map +1 -0
  124. package/dist/utils/string.js +15 -0
  125. package/dist/utils/string.js.map +1 -0
  126. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=knowledgeSchema.js.map
@@ -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,6 @@
1
+ /**
2
+ * Schema for LLM-based related terms expansion.
3
+ * Given a list of terms, the LLM returns semantically related words.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=relatedTermsSchema.js.map
@@ -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"}