@memberjunction/server 0.9.168 → 0.9.170

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/build.log.json CHANGED
@@ -205,5 +205,11 @@
205
205
  },
206
206
  {
207
207
  "buildTime": "2024-02-14T09:26:08.0761801-06:00"
208
+ },
209
+ {
210
+ "buildTime": "2024-02-14T10:28:56.6955688-06:00"
211
+ },
212
+ {
213
+ "buildTime": "2024-02-15T21:33:04.7705496-06:00"
208
214
  }
209
215
  ]
@@ -21,6 +21,8 @@ const type_graphql_1 = require("type-graphql");
21
21
  const core_1 = require("@memberjunction/core");
22
22
  const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
23
23
  const data_context_1 = require("@memberjunction/data-context");
24
+ const data_context_server_1 = require("@memberjunction/data-context-server");
25
+ (0, data_context_server_1.LoadDataContextItemsServer)();
24
26
  const axios_1 = __importDefault(require("axios"));
25
27
  const zlib_1 = __importDefault(require("zlib"));
26
28
  const util_1 = require("util");
@@ -28,6 +30,7 @@ const gzip = (0, util_1.promisify)(zlib_1.default.gzip);
28
30
  const PushStatusResolver_1 = require("../generic/PushStatusResolver");
29
31
  const config_1 = require("../config");
30
32
  const type_graphql_2 = require("type-graphql");
33
+ const global_1 = require("@memberjunction/global");
31
34
  var SkipResponsePhase;
32
35
  (function (SkipResponsePhase) {
33
36
  SkipResponsePhase["ClarifyingQuestion"] = "clarifying_question";
@@ -86,7 +89,8 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
86
89
  conversationID: ConversationId.toString(),
87
90
  dataContext: dataContext,
88
91
  organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
89
- requestPhase: 'initial_request'
92
+ requestPhase: 'initial_request',
93
+ entityInfo: this.BuildSkipEntityInfo()
90
94
  };
91
95
  pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
92
96
  message: JSON.stringify({
@@ -98,6 +102,66 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
98
102
  });
99
103
  return this.HandleSkipRequest(input, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity, dataContext, dataContextEntity);
100
104
  }
105
+ BuildSkipEntityInfo() {
106
+ const md = new core_1.Metadata();
107
+ return md.Entities.map((e) => {
108
+ const ret = {
109
+ id: e.ID,
110
+ name: e.Name,
111
+ schemaName: e.SchemaName,
112
+ baseView: e.BaseView,
113
+ description: e.Description,
114
+ fields: e.Fields.map((f) => {
115
+ return {
116
+ id: f.ID,
117
+ entityID: f.EntityID,
118
+ sequence: f.Sequence,
119
+ name: f.Name,
120
+ displayName: f.DisplayName,
121
+ category: f.Category,
122
+ type: f.Type,
123
+ description: f.Description,
124
+ isPrimaryKey: f.IsPrimaryKey,
125
+ allowsNull: f.AllowsNull,
126
+ isUnique: f.IsUnique,
127
+ length: f.Length,
128
+ precision: f.Precision,
129
+ scale: f.Scale,
130
+ defaultValue: f.DefaultValue,
131
+ autoIncrement: f.AutoIncrement,
132
+ valueListType: f.ValueListType,
133
+ extendedType: f.ExtendedType,
134
+ defaultInView: f.DefaultInView,
135
+ defaultColumnWidth: f.DefaultColumnWidth,
136
+ isVirtual: f.IsVirtual,
137
+ isNameField: f.IsNameField,
138
+ relatedEntityID: f.RelatedEntityID,
139
+ relatedEntityFieldName: f.RelatedEntityFieldName,
140
+ relatedEntity: f.RelatedEntity,
141
+ relatedEntitySchemaName: f.RelatedEntitySchemaName,
142
+ relatedEntityBaseView: f.RelatedEntityBaseView,
143
+ };
144
+ }),
145
+ relatedEntities: e.RelatedEntities.map((r) => {
146
+ return {
147
+ entityID: r.EntityID,
148
+ relatedEntityID: r.RelatedEntityID,
149
+ type: r.Type,
150
+ entityKeyField: r.EntityKeyField,
151
+ relatedEntityJoinField: r.RelatedEntityJoinField,
152
+ joinView: r.JoinView,
153
+ joinEntityJoinField: r.JoinEntityJoinField,
154
+ joinEntityInverseJoinField: r.JoinEntityInverseJoinField,
155
+ entity: r.Entity,
156
+ entityBaseView: r.EntityBaseView,
157
+ relatedEntity: r.RelatedEntity,
158
+ relatedEntityBaseView: r.RelatedEntityBaseView,
159
+ };
160
+ })
161
+ };
162
+ return ret;
163
+ });
164
+ }
101
165
  async HandleSkipInitialObjectLoading(dataSource, ConversationId, UserQuestion, user, userPayload, md, DataContextId) {
102
166
  const convoEntity = await md.GetEntityObject('Conversations', user);
103
167
  let dataContextEntity;
@@ -135,8 +199,14 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
135
199
  else {
136
200
  await convoEntity.Load(ConversationId);
137
201
  dataContextEntity = await md.GetEntityObject('Data Contexts', user);
138
- if (DataContextId && DataContextId > 0 && DataContextId !== convoEntity.DataContextID)
139
- console.log(`AskSkipResolver: DataContextId ${DataContextId} was passed in but it was ignored because it was different than the DataContextID in the conversation ${convoEntity.DataContextID}`);
202
+ if (DataContextId && DataContextId > 0 && DataContextId !== convoEntity.DataContextID) {
203
+ if (convoEntity.DataContextID === null) {
204
+ convoEntity.DataContextID = DataContextId;
205
+ await convoEntity.Save();
206
+ }
207
+ else
208
+ console.warn(`AskSkipResolver: DataContextId ${DataContextId} was passed in but it was ignored because it was different than the DataContextID in the conversation ${convoEntity.DataContextID}`);
209
+ }
140
210
  await dataContextEntity.Load(convoEntity.DataContextID);
141
211
  }
142
212
  const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
@@ -146,59 +216,8 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
146
216
  convoDetailEntity.Role = 'User';
147
217
  convoDetailEntity.Set('Sequence', 1);
148
218
  await convoDetailEntity.Save();
149
- const dataContext = new data_context_1.DataContext();
150
- const dciEntityInfo = md.Entities.find((e) => e.Name === 'Data Context Items');
151
- if (!dciEntityInfo)
152
- throw new Error(`Data Context Items entity not found`);
153
- const sql = `SELECT * FROM ${dciEntityInfo.SchemaName}.${dciEntityInfo.BaseView} WHERE DataContextID = ${dataContextEntity.ID}`;
154
- const result = await dataSource.query(sql);
155
- if (!result)
156
- throw new Error(`Error running SQL: ${sql}`);
157
- else {
158
- for (const r of result) {
159
- const item = new data_context_1.DataContextItem();
160
- item.Type = r.Type;
161
- switch (item.Type) {
162
- case 'full_entity':
163
- item.EntityID = r.EntityID;
164
- break;
165
- case 'single_record':
166
- item.RecordID = r.RecordID;
167
- item.EntityID = r.EntityID;
168
- break;
169
- case 'query':
170
- item.QueryID = r.QueryID;
171
- break;
172
- case 'sql':
173
- item.SQL = r.SQL;
174
- break;
175
- case 'view':
176
- item.ViewID = r.ViewID;
177
- item.EntityID = r.EntityID;
178
- break;
179
- }
180
- if (item.EntityID) {
181
- item.Entity = md.Entities.find((e) => e.ID === item.EntityID);
182
- item.EntityName = item.Entity.Name;
183
- if (item.Type === 'full_entity')
184
- item.RecordName = item.EntityName;
185
- }
186
- if (item.Type === 'query' && item.QueryID) {
187
- const q = md.Queries.find((q) => q.ID === item.QueryID);
188
- item.RecordName = q?.Name;
189
- }
190
- if (item.Type === 'view' && item.ViewID) {
191
- const v = await md.GetEntityObject('User Views', user);
192
- await v.Load(item.ViewID);
193
- item.RecordName = v.Name;
194
- item.ViewEntity = v;
195
- }
196
- item.Data = r.Data && r.Data.length > 0 ? JSON.parse(r.Data) : item.Data;
197
- item.AdditionalDescription = r.AdditionalDescription;
198
- item.DataContextItemID = r.ID;
199
- dataContext.Items.push(item);
200
- }
201
- }
219
+ const dataContext = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(data_context_1.DataContext);
220
+ await dataContext.Load(dataContextEntity.ID, dataSource, false, user);
202
221
  return { dataContext, convoEntity, dataContextEntity, convoDetailEntity };
203
222
  }
204
223
  async LoadConversationDetailsIntoSkipMessages(dataSource, ConversationId, maxHistoricalMessages) {
@@ -224,8 +243,32 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
224
243
  });
225
244
  return returnData.map((r) => {
226
245
  const skipRole = this.MapDBRoleToSkipRole(r.Role);
246
+ let outputMessage;
247
+ if (skipRole === 'system') {
248
+ const detail = JSON.parse(r.Message);
249
+ if (detail.responsePhase === SkipResponsePhase.AnalysisComplete) {
250
+ const analysisDetail = detail;
251
+ outputMessage = JSON.stringify({
252
+ responsePhase: SkipResponsePhase.AnalysisComplete,
253
+ techExplanation: analysisDetail.techExplanation,
254
+ userExplanation: analysisDetail.userExplanation,
255
+ scriptText: analysisDetail.scriptText,
256
+ tableDataColumns: analysisDetail.tableDataColumns
257
+ });
258
+ }
259
+ else if (detail.responsePhase === SkipResponsePhase.ClarifyingQuestion) {
260
+ const clarifyingQuestionDetail = detail;
261
+ outputMessage = JSON.stringify({
262
+ responsePhase: SkipResponsePhase.ClarifyingQuestion,
263
+ clarifyingQuestion: clarifyingQuestionDetail.clarifyingQuestion
264
+ });
265
+ }
266
+ else {
267
+ (0, core_1.LogError)(`Unknown response phase: ${detail.responsePhase}`);
268
+ }
269
+ }
227
270
  const m = {
228
- content: skipRole === 'system' ? (r.Message.length > 5000 ? "PARTIAL CONTENT: " + r.Message.substring(0, 5000) : r.Message) : r.Message,
271
+ content: skipRole === 'system' ? outputMessage : r.Message,
229
272
  role: skipRole,
230
273
  };
231
274
  return m;
@@ -240,6 +283,8 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
240
283
  MapDBRoleToSkipRole(role) {
241
284
  switch (role.trim().toLowerCase()) {
242
285
  case 'ai':
286
+ case 'system':
287
+ case 'assistant':
243
288
  return 'system';
244
289
  default:
245
290
  return 'user';
@@ -331,7 +376,7 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
331
376
  const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
332
377
  convoDetailEntityAI.NewRecord();
333
378
  convoDetailEntityAI.ConversationID = ConversationId;
334
- convoDetailEntityAI.Message = apiResponse.clarifyingQuestion;
379
+ convoDetailEntityAI.Message = JSON.stringify(apiResponse);
335
380
  convoDetailEntityAI.Role = 'AI';
336
381
  if (await convoDetailEntityAI.Save()) {
337
382
  return {
@@ -369,36 +414,23 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
369
414
  });
370
415
  for (const dr of apiResponse.dataRequest) {
371
416
  try {
417
+ const item = dataContext.AddDataContextItem();
372
418
  switch (dr.type) {
373
419
  case "sql":
374
- const sql = dr.text;
375
- const result = await dataSource.query(sql);
376
- if (!result)
377
- throw new Error(`Error running SQL: ${sql}`);
378
- const item = new data_context_1.DataContextItem();
379
420
  item.Type = 'sql';
380
- item.Data = result;
381
421
  item.SQL = dr.text;
382
422
  item.AdditionalDescription = dr.description;
383
- dataContext.Items.push(item);
423
+ await item.LoadData(dataSource, false, user);
384
424
  break;
385
425
  case "stored_query":
386
426
  const queryName = dr.text;
387
427
  const query = md.Queries.find((q) => q.Name === queryName);
388
428
  if (query) {
389
- const rq = new core_1.RunQuery();
390
- const result = await rq.RunQuery({ QueryID: query.ID }, user);
391
- if (result && result.Success) {
392
- const item = new data_context_1.DataContextItem();
393
- item.Type = 'query';
394
- item.Data = result.Results;
395
- item.QueryID = query.ID;
396
- item.RecordName = query.Name;
397
- item.AdditionalDescription = dr.description;
398
- dataContext.Items.push(item);
399
- }
400
- else
401
- throw new Error(`Error running query ${queryName}`);
429
+ item.Type = 'query';
430
+ item.QueryID = query.ID;
431
+ item.RecordName = query.Name;
432
+ item.AdditionalDescription = dr.description;
433
+ await item.LoadData(dataSource, false, user);
402
434
  }
403
435
  else
404
436
  throw new Error(`Query ${queryName} not found.`);
@@ -470,35 +502,7 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
470
502
  conversationId: convoEntity.ID,
471
503
  });
472
504
  await userNotification.Save();
473
- for (const item of dataContext.Items) {
474
- const dciEntity = await md.GetEntityObject('Data Context Items', user);
475
- if (item.DataContextItemID > 0)
476
- await dciEntity.Load(item.DataContextItemID);
477
- else
478
- dciEntity.NewRecord();
479
- dciEntity.DataContextID = dataContextEntity.ID;
480
- dciEntity.Type = item.Type;
481
- switch (item.Type) {
482
- case 'full_entity':
483
- case 'single_record':
484
- const e = item.Entity || md.Entities.find((e) => e.Name === item.EntityName);
485
- dciEntity.EntityID = e.ID;
486
- if (item.Type === 'single_record')
487
- dciEntity.RecordID = item.RecordID;
488
- break;
489
- case 'view':
490
- dciEntity.ViewID = item.ViewID;
491
- break;
492
- case 'query':
493
- dciEntity.QueryID = item.QueryID;
494
- break;
495
- case 'sql':
496
- dciEntity.SQL = item.SQL;
497
- break;
498
- }
499
- dciEntity.DataJSON = JSON.stringify(item.Data);
500
- await dciEntity.Save();
501
- }
505
+ dataContext.SaveItems(user, false);
502
506
  pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
503
507
  message: JSON.stringify({
504
508
  type: 'UserNotifications',
@@ -525,7 +529,7 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
525
529
  };
526
530
  exports.AskSkipResolver = AskSkipResolver;
527
531
  AskSkipResolver._defaultNewChatName = 'New Chat';
528
- AskSkipResolver._maxHistoricalMessages = 8;
532
+ AskSkipResolver._maxHistoricalMessages = 20;
529
533
  __decorate([
530
534
  (0, type_graphql_1.Query)(() => AskSkipResultType),
531
535
  __param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
@@ -1 +1 @@
1
- {"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "0.9.168",
3
+ "version": "0.9.170",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -25,11 +25,12 @@
25
25
  "@memberjunction/aiengine": "^0.9.23",
26
26
  "@memberjunction/core": "^0.9.142",
27
27
  "@memberjunction/core-entities": "^0.9.125",
28
- "@memberjunction/data-context": "^0.9.3",
28
+ "@memberjunction/data-context": "^0.9.5",
29
+ "@memberjunction/data-context-server": "^0.9.3",
29
30
  "@memberjunction/global": "^0.9.132",
30
31
  "@memberjunction/queue": "^0.9.143",
31
32
  "@memberjunction/sqlserver-dataprovider": "^0.9.154",
32
- "@memberjunction/skip-types": "^0.9.19",
33
+ "@memberjunction/skip-types": "^0.9.21",
33
34
  "@types/cors": "^2.8.13",
34
35
  "@types/jsonwebtoken": "^8.5.9",
35
36
  "@types/node": "^18.11.14",
@@ -1,9 +1,12 @@
1
1
  import { Arg, Ctx, Field, Int, ObjectType, PubSub, PubSubEngine, Query, Resolver } from 'type-graphql';
2
- import { LogError, LogStatus, Metadata, RunQuery, RunQueryParams, RunView, UserInfo } from '@memberjunction/core';
2
+ import { LogError, LogStatus, Metadata, RunView, UserInfo } from '@memberjunction/core';
3
3
  import { AppContext, UserPayload } from '../types';
4
4
  import { UserCache } from '@memberjunction/sqlserver-dataprovider';
5
- import { DataContext, DataContextItem } from '@memberjunction/data-context'
6
- import { SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse } from '@memberjunction/skip-types';
5
+ import { DataContext } from '@memberjunction/data-context'
6
+ import { LoadDataContextItemsServer } from '@memberjunction/data-context-server';
7
+ LoadDataContextItemsServer(); // prevent tree shaking since the DataContextItemServer class is not directly referenced in this file or otherwise statically instantiated, so it could be removed by the build process
8
+
9
+ import { SkipAPIRequest, SkipAPIResponse, SkipMessage, SkipAPIAnalysisCompleteResponse, SkipAPIDataRequestResponse, SkipAPIClarifyingQuestionResponse, SkipEntityInfo } from '@memberjunction/skip-types';
7
10
  import axios from 'axios';
8
11
  import zlib from 'zlib';
9
12
  import { promisify } from 'util';
@@ -11,12 +14,13 @@ import { promisify } from 'util';
11
14
  const gzip = promisify(zlib.gzip);
12
15
 
13
16
  import { PUSH_STATUS_UPDATES_TOPIC } from '../generic/PushStatusResolver';
14
- import { ConversationDetailEntity, ConversationEntity, DataContextEntity, DataContextItemEntity, UserNotificationEntity, UserViewEntity, UserViewEntityExtended } from '@memberjunction/core-entities';
17
+ import { ConversationDetailEntity, ConversationEntity, DataContextEntity, DataContextItemEntity, UserNotificationEntity } from '@memberjunction/core-entities';
15
18
  import { DataSource } from 'typeorm';
16
19
  import { ___skipAPIOrgId, ___skipAPIurl } from '../config';
17
20
 
18
21
 
19
22
  import { registerEnumType } from "type-graphql";
23
+ import { MJGlobal } from '@memberjunction/global';
20
24
 
21
25
 
22
26
  enum SkipResponsePhase {
@@ -59,7 +63,7 @@ export class AskSkipResultType {
59
63
  @Resolver(AskSkipResultType)
60
64
  export class AskSkipResolver {
61
65
  private static _defaultNewChatName = 'New Chat';
62
- private static _maxHistoricalMessages = 8;
66
+ private static _maxHistoricalMessages = 20;
63
67
 
64
68
 
65
69
  @Query(() => AskSkipResultType)
@@ -86,7 +90,8 @@ export class AskSkipResolver {
86
90
  conversationID: ConversationId.toString(),
87
91
  dataContext: dataContext,
88
92
  organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
89
- requestPhase: 'initial_request'
93
+ requestPhase: 'initial_request',
94
+ entityInfo: this.BuildSkipEntityInfo()
90
95
  };
91
96
 
92
97
  pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, {
@@ -101,6 +106,69 @@ export class AskSkipResolver {
101
106
  return this.HandleSkipRequest(input, UserQuestion, user, dataSource, ConversationId, userPayload, pubSub, md, convoEntity, convoDetailEntity, dataContext, dataContextEntity);
102
107
  }
103
108
 
109
+ protected BuildSkipEntityInfo(): SkipEntityInfo[] {
110
+ // build the entity info for skip in its format which is
111
+ // narrower in scope than our native MJ metadata
112
+ const md = new Metadata();
113
+ return md.Entities.map((e) => {
114
+ const ret: SkipEntityInfo = {
115
+ id: e.ID,
116
+ name: e.Name,
117
+ schemaName: e.SchemaName,
118
+ baseView: e.BaseView,
119
+ description: e.Description,
120
+ fields: e.Fields.map((f) => {
121
+ return {
122
+ id: f.ID,
123
+ entityID: f.EntityID,
124
+ sequence: f.Sequence,
125
+ name: f.Name,
126
+ displayName: f.DisplayName,
127
+ category: f.Category,
128
+ type: f.Type,
129
+ description: f.Description,
130
+ isPrimaryKey: f.IsPrimaryKey,
131
+ allowsNull: f.AllowsNull,
132
+ isUnique: f.IsUnique,
133
+ length: f.Length,
134
+ precision: f.Precision,
135
+ scale: f.Scale,
136
+ defaultValue: f.DefaultValue,
137
+ autoIncrement: f.AutoIncrement,
138
+ valueListType: f.ValueListType,
139
+ extendedType: f.ExtendedType,
140
+ defaultInView: f.DefaultInView,
141
+ defaultColumnWidth: f.DefaultColumnWidth,
142
+ isVirtual: f.IsVirtual,
143
+ isNameField: f.IsNameField,
144
+ relatedEntityID: f.RelatedEntityID,
145
+ relatedEntityFieldName: f.RelatedEntityFieldName,
146
+ relatedEntity: f.RelatedEntity,
147
+ relatedEntitySchemaName: f.RelatedEntitySchemaName,
148
+ relatedEntityBaseView: f.RelatedEntityBaseView,
149
+ };
150
+ }
151
+ ),
152
+ relatedEntities: e.RelatedEntities.map((r) => {
153
+ return {
154
+ entityID: r.EntityID,
155
+ relatedEntityID: r.RelatedEntityID,
156
+ type: r.Type,
157
+ entityKeyField: r.EntityKeyField,
158
+ relatedEntityJoinField: r.RelatedEntityJoinField,
159
+ joinView: r.JoinView,
160
+ joinEntityJoinField: r.JoinEntityJoinField,
161
+ joinEntityInverseJoinField: r.JoinEntityInverseJoinField,
162
+ entity: r.Entity,
163
+ entityBaseView: r.EntityBaseView,
164
+ relatedEntity: r.RelatedEntity,
165
+ relatedEntityBaseView: r.RelatedEntityBaseView,
166
+ }
167
+ })
168
+ };
169
+ return ret;
170
+ });
171
+ }
104
172
 
105
173
  protected async HandleSkipInitialObjectLoading(dataSource: DataSource,
106
174
  ConversationId: number,
@@ -153,8 +221,14 @@ export class AskSkipResolver {
153
221
  dataContextEntity = await md.GetEntityObject<DataContextEntity>('Data Contexts', user);
154
222
 
155
223
  // note - we ignore the parameter DataContextId if it is passed in, we will use the data context from the conversation that is saved. If a user wants to change the data context for a convo, they can do that elsewhere
156
- if (DataContextId && DataContextId > 0 && DataContextId !== convoEntity.DataContextID)
157
- console.log(`AskSkipResolver: DataContextId ${DataContextId} was passed in but it was ignored because it was different than the DataContextID in the conversation ${convoEntity.DataContextID}`);
224
+ if (DataContextId && DataContextId > 0 && DataContextId !== convoEntity.DataContextID) {
225
+ if (convoEntity.DataContextID === null) {
226
+ convoEntity.DataContextID = DataContextId;
227
+ await convoEntity.Save();
228
+ }
229
+ else
230
+ console.warn(`AskSkipResolver: DataContextId ${DataContextId} was passed in but it was ignored because it was different than the DataContextID in the conversation ${convoEntity.DataContextID}`);
231
+ }
158
232
 
159
233
  await dataContextEntity.Load(convoEntity.DataContextID);
160
234
  }
@@ -169,64 +243,8 @@ export class AskSkipResolver {
169
243
  convoDetailEntity.Set('Sequence', 1); // using weakly typed here because we're going to get rid of this field soon
170
244
  await convoDetailEntity.Save();
171
245
 
172
- const dataContext: DataContext = new DataContext();
173
- const dciEntityInfo = md.Entities.find((e) => e.Name === 'Data Context Items');
174
- if (!dciEntityInfo)
175
- throw new Error(`Data Context Items entity not found`);
176
-
177
- const sql = `SELECT * FROM ${dciEntityInfo.SchemaName}.${dciEntityInfo.BaseView} WHERE DataContextID = ${dataContextEntity.ID}`;
178
- const result = await dataSource.query(sql);
179
- if (!result)
180
- throw new Error(`Error running SQL: ${sql}`);
181
- else {
182
- for (const r of result) {
183
- const item = new DataContextItem();
184
- item.Type = r.Type;
185
- switch (item.Type) {
186
- case 'full_entity':
187
- item.EntityID = r.EntityID;
188
- break;
189
- case 'single_record':
190
- item.RecordID = r.RecordID;
191
- item.EntityID = r.EntityID;
192
- break;
193
- case 'query':
194
- item.QueryID = r.QueryID; // map the QueryID in our database to the RecordID field in the object model for runtime use
195
- break;
196
- case 'sql':
197
- item.SQL = r.SQL;
198
- break;
199
- case 'view':
200
- item.ViewID = r.ViewID;
201
- item.EntityID = r.EntityID;
202
- break;
203
- }
204
- if (item.EntityID) {
205
- item.Entity = md.Entities.find((e) => e.ID === item.EntityID);
206
- item.EntityName = item.Entity.Name;
207
- if (item.Type === 'full_entity')
208
- item.RecordName = item.EntityName;
209
- }
210
- if (item.Type === 'query' && item.QueryID) {
211
- const q = md.Queries.find((q) => q.ID === item.QueryID);
212
- item.RecordName = q?.Name;
213
- }
214
- if (item.Type === 'view' && item.ViewID) {
215
- const v = await md.GetEntityObject<UserViewEntityExtended>('User Views', user);
216
- await v.Load(item.ViewID);
217
- item.RecordName = v.Name;
218
- item.ViewEntity = v;
219
- }
220
- item.Data = r.Data && r.Data.length > 0 ? JSON.parse(r.Data) : item.Data; // parse the stored data if it was saved, otherwise leave it to whatever the object's default is
221
- item.AdditionalDescription = r.AdditionalDescription;
222
- item.DataContextItemID = r.ID;
223
- dataContext.Items.push(item);
224
- }
225
- }
226
-
227
-
228
- /// TODO next up we need to modify MJExplorer to handle the data context stuff and then we can finish this method
229
-
246
+ const dataContext = MJGlobal.Instance.ClassFactory.CreateInstance<DataContext>(DataContext); // await this.LoadDataContext(md, dataSource, dataContextEntity, user, false);
247
+ await dataContext.Load(dataContextEntity.ID, dataSource, false, user);
230
248
  return {dataContext, convoEntity, dataContextEntity, convoDetailEntity};
231
249
  }
232
250
 
@@ -261,8 +279,34 @@ export class AskSkipResolver {
261
279
  // we want to limit the # of characters in the message to 5000, rough approximation for 1000 words/tokens
262
280
  // but we only do that for system messages
263
281
  const skipRole = this.MapDBRoleToSkipRole(r.Role);
282
+ let outputMessage; // will be populated below for system messages
283
+ if (skipRole === 'system') {
284
+ const detail = <SkipAPIResponse>JSON.parse(r.Message);
285
+ if (detail.responsePhase === SkipResponsePhase.AnalysisComplete) {
286
+ const analysisDetail = <SkipAPIAnalysisCompleteResponse>detail;
287
+ outputMessage = JSON.stringify({
288
+ responsePhase: SkipResponsePhase.AnalysisComplete,
289
+ techExplanation: analysisDetail.techExplanation,
290
+ userExplanation: analysisDetail.userExplanation,
291
+ scriptText: analysisDetail.scriptText,
292
+ tableDataColumns: analysisDetail.tableDataColumns
293
+ });
294
+ }
295
+ else if (detail.responsePhase === SkipResponsePhase.ClarifyingQuestion) {
296
+ const clarifyingQuestionDetail = <SkipAPIClarifyingQuestionResponse>detail;
297
+ outputMessage = JSON.stringify({
298
+ responsePhase: SkipResponsePhase.ClarifyingQuestion,
299
+ clarifyingQuestion: clarifyingQuestionDetail.clarifyingQuestion
300
+ });
301
+ }
302
+ else {
303
+ // we should never get here, AI responses only fit the above
304
+ // don't throw an exception, but log an error
305
+ LogError(`Unknown response phase: ${detail.responsePhase}`);
306
+ }
307
+ }
264
308
  const m: SkipMessage = {
265
- content: skipRole === 'system' ? (r.Message.length > 5000 ? "PARTIAL CONTENT: " + r.Message.substring(0, 5000) : r.Message) : r.Message,
309
+ content: skipRole === 'system' ? outputMessage : r.Message,
266
310
  role: skipRole,
267
311
  };
268
312
  return m;
@@ -278,6 +322,8 @@ export class AskSkipResolver {
278
322
  protected MapDBRoleToSkipRole(role: string): "user" | "system" {
279
323
  switch (role.trim().toLowerCase()) {
280
324
  case 'ai':
325
+ case 'system':
326
+ case 'assistant':
281
327
  return 'system';
282
328
  default:
283
329
  return 'user';
@@ -395,7 +441,7 @@ export class AskSkipResolver {
395
441
  const convoDetailEntityAI = <ConversationDetailEntity>await md.GetEntityObject('Conversation Details', user);
396
442
  convoDetailEntityAI.NewRecord();
397
443
  convoDetailEntityAI.ConversationID = ConversationId;
398
- convoDetailEntityAI.Message = apiResponse.clarifyingQuestion;
444
+ convoDetailEntityAI.Message = JSON.stringify(apiResponse);//.clarifyingQuestion;
399
445
  convoDetailEntityAI.Role = 'AI';
400
446
  if (await convoDetailEntityAI.Save()) {
401
447
  return {
@@ -440,37 +486,23 @@ export class AskSkipResolver {
440
486
 
441
487
  for (const dr of apiResponse.dataRequest) {
442
488
  try {
489
+ const item = dataContext.AddDataContextItem();
443
490
  switch (dr.type) {
444
491
  case "sql":
445
- const sql = dr.text;
446
- const result = await dataSource.query(sql);
447
- if (!result)
448
- throw new Error(`Error running SQL: ${sql}`);
449
-
450
- const item = new DataContextItem();
451
492
  item.Type = 'sql';
452
- item.Data = result;
453
493
  item.SQL = dr.text;
454
494
  item.AdditionalDescription = dr.description;
455
- dataContext.Items.push(item);
495
+ await item.LoadData(dataSource, false, user);
456
496
  break;
457
497
  case "stored_query":
458
498
  const queryName = dr.text;
459
499
  const query = md.Queries.find((q) => q.Name === queryName);
460
500
  if (query) {
461
- const rq = new RunQuery();
462
- const result = await rq.RunQuery({QueryID: query.ID}, user)
463
- if (result && result.Success) {
464
- const item = new DataContextItem();
465
- item.Type = 'query';
466
- item.Data = result.Results;
467
- item.QueryID = query.ID;
468
- item.RecordName = query.Name;
469
- item.AdditionalDescription = dr.description;
470
- dataContext.Items.push(item);
471
- }
472
- else
473
- throw new Error(`Error running query ${queryName}`);
501
+ item.Type = 'query';
502
+ item.QueryID = query.ID;
503
+ item.RecordName = query.Name;
504
+ item.AdditionalDescription = dr.description;
505
+ await item.LoadData(dataSource, false, user);
474
506
  }
475
507
  else
476
508
  throw new Error(`Query ${queryName} not found.`);
@@ -563,36 +595,10 @@ export class AskSkipResolver {
563
595
  });
564
596
  await userNotification.Save();
565
597
 
566
- // now, persist the data context items, first let's get
567
- for (const item of dataContext.Items) {
568
- const dciEntity = <DataContextItemEntity>await md.GetEntityObject('Data Context Items', user);
569
- if (item.DataContextItemID > 0)
570
- await dciEntity.Load(item.DataContextItemID);
571
- else
572
- dciEntity.NewRecord();
573
- dciEntity.DataContextID = dataContextEntity.ID;
574
- dciEntity.Type = item.Type;
575
- switch (item.Type) {
576
- case 'full_entity':
577
- case 'single_record':
578
- const e = item.Entity || md.Entities.find((e) => e.Name === item.EntityName);
579
- dciEntity.EntityID = e.ID;
580
- if (item.Type === 'single_record')
581
- dciEntity.RecordID = item.RecordID;
582
- break;
583
- case 'view':
584
- dciEntity.ViewID = item.ViewID;
585
- break;
586
- case 'query':
587
- dciEntity.QueryID = item.QueryID;
588
- break;
589
- case 'sql':
590
- dciEntity.SQL = item.SQL;
591
- break;
592
- }
593
- dciEntity.DataJSON = JSON.stringify(item.Data);
594
- await dciEntity.Save();
595
- }
598
+ // Save the data context items...
599
+ // FOR NOW, we don't want to store the data in the database, we will just load it from the data context when we need it
600
+ // we need a better strategy to persist because the cost of storage and retrieval/parsing is higher than just running the query again in many/most cases
601
+ dataContext.SaveItems(user, false);
596
602
 
597
603
  // send a UI update trhough pub-sub
598
604
  pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, {