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,247 @@
1
+ import { createInMemorySemanticRefIndex } from "./semanticRefIndex.js";
2
+ import { createLLMProviderFromEnv } from './llmProvider.js';
3
+ import { createSearchQueryTranslator } from "./searchQueryTranslator.js";
4
+ import { createInMemoryStorageProvider } from "./storageProvider.js";
5
+ import { createAnswerTranslator } from "./answerTranslator.js";
6
+ import { compileContext, generateAnswer } from "./search.js";
7
+ import { createKnowledgeExtractor } from "./knowledge.js";
8
+ import { populateSemanticRef } from "./semanticRef.js";
9
+ import { readFileSync } from "node:fs";
10
+ import { createTimestampIndexExtended } from "./timestampIndex.js";
11
+ ;
12
+ export function createMessage(content, tags, timestamp, deletionInfo, metadata) {
13
+ // create semantic ref here? doesn't make sense since need it to be seperate
14
+ // going back to thinking knowledge creation should happen outside of message and then
15
+ // be passed in but then why the getKnowledge()
16
+ let knowledge;
17
+ function getKnowledge() {
18
+ return knowledge;
19
+ }
20
+ function setKnowledge(knowledgeResponse) {
21
+ knowledge = knowledgeResponse;
22
+ }
23
+ return {
24
+ textChunks: [content],
25
+ timestamp,
26
+ tags,
27
+ deletionInfo,
28
+ metadata,
29
+ getKnowledge,
30
+ setKnowledge
31
+ };
32
+ }
33
+ export function createConversation(messages, name, storageProvider) {
34
+ const nameTag = name;
35
+ const tags = [];
36
+ const llmProvider = createLLMProviderFromEnv();
37
+ const languageModel = llmProvider.getLanguageModel();
38
+ const queryTranslator = createSearchQueryTranslator(languageModel);
39
+ const answerTranslator = createAnswerTranslator(languageModel);
40
+ const knowledgeExtractor = createKnowledgeExtractor(languageModel);
41
+ const semanticRefs = storageProvider.createSemanticRefCollection();
42
+ async function query(question) {
43
+ const translatedQuery = await queryTranslator.translate(question);
44
+ if (!translatedQuery.success) {
45
+ console.log(translatedQuery);
46
+ return "Error: Failed to translate query.";
47
+ }
48
+ const searchQuery = translatedQuery.data;
49
+ console.log(searchQuery);
50
+ const compiledContex = compileContext(searchQuery, semanticRefIndex, semanticRefs, messages, secondaryIndexes, question);
51
+ const answerResponse = await generateAnswer(question, compiledContex, answerTranslator);
52
+ if (!answerResponse.success) {
53
+ console.log(answerResponse);
54
+ return "ERROR: Failed to generate an answer.";
55
+ }
56
+ const rawResponse = answerResponse.data;
57
+ if (rawResponse.whyNoAnswer) {
58
+ console.log(answerResponse);
59
+ return rawResponse.whyNoAnswer;
60
+ }
61
+ if (!rawResponse.answer) {
62
+ console.log(rawResponse);
63
+ return "ERROR: Failed to generate an answer.";
64
+ }
65
+ return rawResponse.answer;
66
+ }
67
+ async function queryTerms(terms) {
68
+ const searchQuery = {
69
+ searchExpressions: [
70
+ {
71
+ rewrittenQuery: terms.join(" "),
72
+ filters: [
73
+ {
74
+ searchTerms: terms
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ };
80
+ const compiledContex = compileContext(searchQuery, semanticRefIndex, semanticRefs, messages, secondaryIndexes, terms.join(' '));
81
+ const answerResponse = await generateAnswer(terms.join(" "), compiledContex, answerTranslator);
82
+ if (!answerResponse.success) {
83
+ console.log(answerResponse);
84
+ return "ERROR: Failed to generate an answer.";
85
+ }
86
+ const rawResponse = answerResponse.data;
87
+ if (rawResponse.whyNoAnswer) {
88
+ console.log(answerResponse);
89
+ return rawResponse.whyNoAnswer;
90
+ }
91
+ if (!rawResponse.answer) {
92
+ console.log(rawResponse);
93
+ return "ERROR: Failed to generate an answer.";
94
+ }
95
+ return rawResponse.answer;
96
+ }
97
+ console.log("Building Index...");
98
+ const semanticRefIndex = createInMemorySemanticRefIndex();
99
+ semanticRefIndex.buildIndex(semanticRefs);
100
+ const terms = semanticRefIndex.getTerms();
101
+ console.log("Index Complete, Terms: ", terms.length);
102
+ // Create timestamp index (implements ITimestampToTextRangeIndex)
103
+ const timestampIndex = createTimestampIndexExtended();
104
+ function buildTimestampIndex() {
105
+ // Populate timestamp index from messages
106
+ for (let i = 0; i < messages.length; i++) {
107
+ const message = messages.get(i);
108
+ if (message?.timestamp) {
109
+ timestampIndex.addTimestamp(i, message.timestamp);
110
+ }
111
+ }
112
+ console.log(`Timestamp index: ${timestampIndex.size()} entries`);
113
+ }
114
+ // Build timestamp index initially
115
+ buildTimestampIndex();
116
+ // Secondary indexes
117
+ const secondaryIndexes = {
118
+ timestampIndex
119
+ };
120
+ function getAllTopics() {
121
+ return semanticRefs.getAll().filter((ref) => ref.knowledgeType === "topic");
122
+ }
123
+ function loadFromFile(filePath, rebuild = true) {
124
+ storageProvider.loadFromFile(filePath, semanticRefs, messages);
125
+ if (rebuild) {
126
+ console.log("Rebuilding index...");
127
+ semanticRefIndex.buildIndex(semanticRefs);
128
+ buildTimestampIndex();
129
+ }
130
+ }
131
+ async function extractAndSaveRefsFromMessage(message) {
132
+ const knowledgeResponse = await knowledgeExtractor.extract(message.textChunks[0]);
133
+ if (!knowledgeResponse) {
134
+ return;
135
+ }
136
+ message.setKnowledge(knowledgeResponse);
137
+ // Update the semanticRefs collection with the new knowledgeResponse
138
+ populateSemanticRef(semanticRefs, knowledgeResponse, semanticRefs.length, messages.length - 1 // we have already added the new message
139
+ );
140
+ }
141
+ async function addMessageAsync(message, rebuild = true) {
142
+ messages.append(message);
143
+ if (rebuild) {
144
+ await extractAndSaveRefsFromMessage(message);
145
+ semanticRefIndex.buildIndex(semanticRefs);
146
+ buildTimestampIndex();
147
+ }
148
+ return true;
149
+ }
150
+ function lemmatize() {
151
+ return semanticRefIndex.lemmatizeIndex();
152
+ }
153
+ async function expandRelatedTerms(options) {
154
+ return semanticRefIndex.expandWithRelatedTerms(languageModel, options);
155
+ }
156
+ async function expandWithWordNet(options) {
157
+ return semanticRefIndex.expandWithWordNet(options);
158
+ }
159
+ return {
160
+ nameTag,
161
+ tags,
162
+ messages,
163
+ semanticRefs,
164
+ semanticRefIndex,
165
+ secondaryIndexes,
166
+ query,
167
+ queryTerms,
168
+ getAllTopics,
169
+ addMessageAsync,
170
+ loadFromFile,
171
+ lemmatize,
172
+ expandRelatedTerms,
173
+ expandWithWordNet
174
+ };
175
+ }
176
+ /**
177
+ * Returns the time range for a conversation: the timestamps of the first and last messages
178
+ * If messages have no timestamps (which are optional), returns undefined
179
+ * @param conversation
180
+ * @returns {DateRange}
181
+ */
182
+ export function getTimeRangeForConversation(conversation) {
183
+ const messages = conversation.messages;
184
+ if (messages.length > 0) {
185
+ const start = messages.get(0).timestamp;
186
+ const end = messages.get(messages.length - 1).timestamp;
187
+ if (start !== undefined) {
188
+ return {
189
+ start: new Date(start),
190
+ end: end ? new Date(end) : undefined,
191
+ };
192
+ }
193
+ }
194
+ return undefined;
195
+ }
196
+ export function getTimeRangePromptSectionForConversation(conversation) {
197
+ const timeRange = getTimeRangeForConversation(conversation);
198
+ if (timeRange) {
199
+ return [
200
+ {
201
+ role: "system",
202
+ content: `ONLY IF user request explicitly asks for time ranges, THEN use the CONVERSATION TIME RANGE: "${timeRange.start} to ${timeRange.end}"`,
203
+ },
204
+ ];
205
+ }
206
+ return [];
207
+ }
208
+ /**
209
+ * Load a conversation from an exported index JSON file.
210
+ * This allows querying a pre-built index without re-extracting knowledge.
211
+ */
212
+ export function loadConversationFromExport(exportPath, name) {
213
+ const content = readFileSync(exportPath, 'utf-8');
214
+ const exported = JSON.parse(content);
215
+ return loadConversationFromExportData(exported, name || exportPath);
216
+ }
217
+ /**
218
+ * Load a conversation from exported index data.
219
+ */
220
+ export function loadConversationFromExportData(exported, name = "imported") {
221
+ const storageProvider = createInMemoryStorageProvider();
222
+ const messages = storageProvider.createMessageCollection();
223
+ const semanticRefs = storageProvider.createSemanticRefCollection();
224
+ // Load messages
225
+ for (const msg of exported.messages) {
226
+ const message = createMessage(msg.content, [], msg.timestamp);
227
+ messages.append(message);
228
+ }
229
+ // Load semantic refs
230
+ for (const ref of exported.semanticRefs) {
231
+ semanticRefs.append(ref);
232
+ }
233
+ // Create conversation
234
+ const conversation = createConversation(messages, name, storageProvider);
235
+ // Load index from exported data (preserves related terms and weights)
236
+ if (conversation.semanticRefIndex) {
237
+ const index = conversation.semanticRefIndex;
238
+ index.loadFromExport(exported.indexData.items);
239
+ }
240
+ // Copy refs to conversation's semanticRefs collection
241
+ for (const ref of semanticRefs.getAll()) {
242
+ conversation.semanticRefs?.append(ref);
243
+ }
244
+ console.log(`Loaded: ${exported.messages.length} messages, ${exported.semanticRefs.length} refs, ${exported.indexData.items.length} terms`);
245
+ return conversation;
246
+ }
247
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/knowpro/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type DateVal = {
2
+ day: number;
3
+ month: number;
4
+ year: number;
5
+ };
6
+ export type TimeVal = {
7
+ hour: number;
8
+ minute: number;
9
+ seconds: number;
10
+ };
11
+ export type DateTime = {
12
+ date: DateVal;
13
+ time?: TimeVal | undefined;
14
+ };
15
+ export type DateTimeRange = {
16
+ startDate: DateTime;
17
+ stopDate?: DateTime | undefined;
18
+ };
19
+ //# sourceMappingURL=dateTimeSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateTimeSchema.d.ts","sourceRoot":"","sources":["../../src/knowpro/dateTimeSchema.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAElB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACnC,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export {};
4
+ //# sourceMappingURL=dateTimeSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateTimeSchema.js","sourceRoot":"","sources":["../../src/knowpro/dateTimeSchema.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC"}
@@ -0,0 +1,9 @@
1
+ import type { SemanticRef, Topic } from "./interfaces.js";
2
+ import type { Action, ConcreteEntity, Facet } from "./knowledgeSchema.js";
3
+ export declare function facetMatch(x: Facet, y: Facet): boolean;
4
+ export declare function mergeEntityFacet(entity: ConcreteEntity, facet: Facet): void;
5
+ export declare function printEntity(entity: ConcreteEntity): void;
6
+ export declare function printAction(action: Action): void;
7
+ export declare function printTopic(topic: Topic): void;
8
+ export declare function printRef(ref: SemanticRef): void;
9
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/knowpro/entities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE1E,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAgBtD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,QASpE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,QAQjD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,QAUzC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,QAEtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,QAkBxC"}
@@ -0,0 +1,63 @@
1
+ import { stringEquals } from "../utils/string.js";
2
+ export function facetMatch(x, y) {
3
+ if (!stringEquals(x.name, y.name, false)) {
4
+ return false;
5
+ }
6
+ if (typeof x.value === "object") {
7
+ if (typeof y.value === "object") {
8
+ return (x.value.amount === y.value.amount &&
9
+ x.value.units === y.value.units);
10
+ }
11
+ else {
12
+ return false;
13
+ }
14
+ }
15
+ else {
16
+ return x.value === y.value;
17
+ }
18
+ }
19
+ export function mergeEntityFacet(entity, facet) {
20
+ entity.facets ??= [];
21
+ // Look for an equal facet
22
+ for (const f of entity.facets) {
23
+ if (facetMatch(f, facet)) {
24
+ break;
25
+ }
26
+ }
27
+ entity.facets.push(facet);
28
+ }
29
+ export function printEntity(entity) {
30
+ console.log("ENTITY: ", entity.name, entity.type);
31
+ if (entity.facets) {
32
+ console.log("Facets: ");
33
+ entity.facets.forEach((facet) => {
34
+ console.log(" - ", facet.name, facet.value);
35
+ });
36
+ }
37
+ }
38
+ export function printAction(action) {
39
+ console.log("ACTION: ", action.objectEntityName, action.verbs, action.subjectEntityName, action.indirectObjectEntityName, action.subjectEntityFacet, action.params);
40
+ }
41
+ export function printTopic(topic) {
42
+ console.log("TOPIC: ", topic.text);
43
+ }
44
+ export function printRef(ref) {
45
+ switch (ref.knowledgeType) {
46
+ case "action": {
47
+ printAction(ref.knowledge);
48
+ break;
49
+ }
50
+ case "entity": {
51
+ printEntity(ref.knowledge);
52
+ break;
53
+ }
54
+ case "topic": {
55
+ printTopic(ref.knowledge);
56
+ break;
57
+ }
58
+ default: {
59
+ break;
60
+ }
61
+ }
62
+ }
63
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/knowpro/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,UAAU,UAAU,CAAC,CAAQ,EAAE,CAAQ;IACzC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CACH,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM;gBACjC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAClC,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAE,KAAY;IACjE,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;IACrB,0BAA0B;IAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM;QACV,CAAC;IACL,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAsB;IAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,IAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACtC,OAAO,CAAC,GAAG,CACP,UAAU,EACV,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,wBAAwB,EAC/B,MAAM,CAAC,kBAAkB,EACzB,MAAM,CAAC,MAAM,CAChB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY;IACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAgB;IACrC,QAAO,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,WAAW,CAAC,GAAG,CAAC,SAAmB,CAAC,CAAC;YACrC,MAAM;QACV,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,WAAW,CAAC,GAAG,CAAC,SAA2B,CAAC,CAAC;YAC7C,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,UAAU,CAAC,GAAG,CAAC,SAAkB,CAAC,CAAC;YACnC,MAAM;QACV,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,MAAM;QACV,CAAC;IACL,CAAC;AACL,CAAC"}