@xuda.io/ai_module 1.1.4976 → 1.1.4978
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/index.mjs +127 -126
- package/package.json +1 -1
package/index.mjs
CHANGED
|
@@ -148,7 +148,7 @@ const get_studio_table_info_tool = tool({
|
|
|
148
148
|
try {
|
|
149
149
|
const project_db = await get_project_db(app_id);
|
|
150
150
|
// let tables = await project_db.view('xuda', 'studio_docs_by_type', { key: 'table' });
|
|
151
|
-
let tables = await
|
|
151
|
+
let tables = await db_module.get_app_couch_view(app_id, 'studio_docs_by_type', { key: 'table' });
|
|
152
152
|
let response = '';
|
|
153
153
|
|
|
154
154
|
for (const doc of tables.rows) {
|
|
@@ -1084,19 +1084,19 @@ export const get_chat_conversation = async function (req) {
|
|
|
1084
1084
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
1085
1085
|
|
|
1086
1086
|
if (_id) {
|
|
1087
|
-
let data = await
|
|
1087
|
+
let data = await db_module.get_app_couch_doc(account_profile_info.app_id, _id);
|
|
1088
1088
|
return data;
|
|
1089
1089
|
}
|
|
1090
1090
|
|
|
1091
1091
|
try {
|
|
1092
|
-
let conversation_doc = await
|
|
1092
|
+
let conversation_doc = await db_module.get_app_couch_doc(account_profile_info.app_id, conversation_id);
|
|
1093
1093
|
let reference_doc;
|
|
1094
1094
|
if (conversation_doc.shared_from_uid) {
|
|
1095
1095
|
reference_doc = _.cloneDeep(conversation_doc);
|
|
1096
|
-
conversation_doc = await
|
|
1096
|
+
conversation_doc = await db_module.get_app_couch_doc_native(reference_doc.shared_from_app_id, reference_doc.share_item_id);
|
|
1097
1097
|
conversation_doc.reference_doc = reference_doc;
|
|
1098
1098
|
}
|
|
1099
|
-
let conversation_items = await
|
|
1099
|
+
let conversation_items = await db_module.find_app_couch_query(account_profile_info.app_id, {
|
|
1100
1100
|
selector: {
|
|
1101
1101
|
docType: 'chat_conversation_item',
|
|
1102
1102
|
conversation_id,
|
|
@@ -1112,7 +1112,7 @@ export const get_chat_conversation = async function (req) {
|
|
|
1112
1112
|
conversation_item_doc.read = {};
|
|
1113
1113
|
}
|
|
1114
1114
|
conversation_item_doc.read[uid] = Date.now();
|
|
1115
|
-
await
|
|
1115
|
+
await db_module.save_app_couch_doc(account_profile_info.app_id, conversation_item_doc);
|
|
1116
1116
|
}
|
|
1117
1117
|
|
|
1118
1118
|
return { code: 15, data: { conversation: conversation_items, ...conversation_doc } };
|
|
@@ -1161,7 +1161,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1161
1161
|
|
|
1162
1162
|
try {
|
|
1163
1163
|
if (_id) {
|
|
1164
|
-
let data = await
|
|
1164
|
+
let data = await db_module.get_app_couch_doc(account_profile_info.app_id, _id);
|
|
1165
1165
|
return data;
|
|
1166
1166
|
}
|
|
1167
1167
|
|
|
@@ -1239,7 +1239,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1239
1239
|
}
|
|
1240
1240
|
|
|
1241
1241
|
const chat_conversation_count = async function (contact_id, conversation_id) {
|
|
1242
|
-
const counts_ret = await
|
|
1242
|
+
const counts_ret = await db_module.get_app_couch_view(account_profile_info.app_id, 'chat_conversation_item_counts', {
|
|
1243
1243
|
reduce: true,
|
|
1244
1244
|
group_level: 1,
|
|
1245
1245
|
|
|
@@ -1252,7 +1252,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1252
1252
|
return counts_ret?.rows?.[0]?.value || 0;
|
|
1253
1253
|
};
|
|
1254
1254
|
const chat_conversation_read = async function (contact_id, conversation_id) {
|
|
1255
|
-
const counts_ret = await
|
|
1255
|
+
const counts_ret = await db_module.get_app_couch_view(account_profile_info.app_id, 'chat_conversation_item_read', {
|
|
1256
1256
|
reduce: true,
|
|
1257
1257
|
group_level: 2,
|
|
1258
1258
|
key: [uid, contact_id, conversation_id],
|
|
@@ -1270,7 +1270,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1270
1270
|
if (!reference_id) {
|
|
1271
1271
|
if (filter_type === 'pending') {
|
|
1272
1272
|
const from_opt = { selector: { docType: 'team_request', access_type: 'chat', team_req_stat: 2, team_req_to_uid: uid }, fields: ['_id', 'team_req_date', 'sender_account_info.email', 'team_req_from_uid', 'share_item_id'] };
|
|
1273
|
-
const requests_from_res = await
|
|
1273
|
+
const requests_from_res = await db_module.find_couch_query('xuda_team', from_opt);
|
|
1274
1274
|
|
|
1275
1275
|
for await (let e of requests_from_res.docs) {
|
|
1276
1276
|
let doc = { date_created: e.team_req_date, pending: true, uid: e.team_req_from_uid, team_req_id: e._id };
|
|
@@ -1281,7 +1281,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1281
1281
|
|
|
1282
1282
|
//share_item_id
|
|
1283
1283
|
const app_id = await get_account_default_project_id(e.team_req_from_uid);
|
|
1284
|
-
const chat_ret = await
|
|
1284
|
+
const chat_ret = await db_module.get_app_couch_doc_native(app_id, e.share_item_id);
|
|
1285
1285
|
doc.title = chat_ret.title;
|
|
1286
1286
|
doc.chat_image = chat_ret.chat_image;
|
|
1287
1287
|
|
|
@@ -1294,7 +1294,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1294
1294
|
let ai_chats = { docs: [], total_docs: 0 };
|
|
1295
1295
|
|
|
1296
1296
|
if (filter_type !== 'pending') {
|
|
1297
|
-
ai_chats = await
|
|
1297
|
+
ai_chats = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
1298
1298
|
if (!limit || conversation_id) {
|
|
1299
1299
|
ai_chats.total_docs = ai_chats.docs.length;
|
|
1300
1300
|
} else {
|
|
@@ -1303,7 +1303,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1303
1303
|
opt.limit = 9999;
|
|
1304
1304
|
opt.fields = ['_id'];
|
|
1305
1305
|
|
|
1306
|
-
const counter = await
|
|
1306
|
+
const counter = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
1307
1307
|
ai_chats.total_docs = counter.docs.length;
|
|
1308
1308
|
}
|
|
1309
1309
|
}
|
|
@@ -1315,7 +1315,7 @@ export const get_ai_chats = async function (req, job_id, headers) {
|
|
|
1315
1315
|
|
|
1316
1316
|
if (doc.shared_from_uid) {
|
|
1317
1317
|
reference_doc = _.cloneDeep(doc);
|
|
1318
|
-
doc = await
|
|
1318
|
+
doc = await db_module.get_app_couch_doc_native(reference_doc.shared_from_app_id, reference_doc.share_item_id);
|
|
1319
1319
|
doc.reference_doc = reference_doc;
|
|
1320
1320
|
}
|
|
1321
1321
|
|
|
@@ -1361,7 +1361,7 @@ export const delete_ai_chat = async function (req) {
|
|
|
1361
1361
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
1362
1362
|
|
|
1363
1363
|
const app_id = await get_account_default_project_id(uid);
|
|
1364
|
-
let conversation_doc = await
|
|
1364
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
1365
1365
|
|
|
1366
1366
|
let save_ret;
|
|
1367
1367
|
try {
|
|
@@ -1376,7 +1376,7 @@ export const delete_ai_chat = async function (req) {
|
|
|
1376
1376
|
} else {
|
|
1377
1377
|
conversation_doc.stat = 4;
|
|
1378
1378
|
conversation_doc.ts = Date.now();
|
|
1379
|
-
save_ret = await
|
|
1379
|
+
save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, conversation_doc);
|
|
1380
1380
|
|
|
1381
1381
|
client.conversations.delete(conversation_id);
|
|
1382
1382
|
|
|
@@ -1406,7 +1406,7 @@ export const archive_ai_chat = async function (req) {
|
|
|
1406
1406
|
try {
|
|
1407
1407
|
await team_ms.validate_share_exist(uid, 'chat', conversation_id);
|
|
1408
1408
|
|
|
1409
|
-
let conversation_doc = await
|
|
1409
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
1410
1410
|
|
|
1411
1411
|
if (conversation_doc.uid !== uid && conversation_doc?.account_profile_info?.uid !== uid) {
|
|
1412
1412
|
throw new Error('Operation not allowed');
|
|
@@ -1414,7 +1414,7 @@ export const archive_ai_chat = async function (req) {
|
|
|
1414
1414
|
|
|
1415
1415
|
conversation_doc.stat = 5;
|
|
1416
1416
|
conversation_doc.ts = Date.now();
|
|
1417
|
-
const save_ret = await
|
|
1417
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, conversation_doc);
|
|
1418
1418
|
|
|
1419
1419
|
return save_ret;
|
|
1420
1420
|
} catch (err) {
|
|
@@ -1427,7 +1427,7 @@ export const unarchive_ai_chat = async function (req) {
|
|
|
1427
1427
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
1428
1428
|
|
|
1429
1429
|
try {
|
|
1430
|
-
let conversation_doc = await
|
|
1430
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
1431
1431
|
|
|
1432
1432
|
if (conversation_doc.stat !== 5) {
|
|
1433
1433
|
throw new Error('chat is not archived');
|
|
@@ -1435,7 +1435,7 @@ export const unarchive_ai_chat = async function (req) {
|
|
|
1435
1435
|
|
|
1436
1436
|
conversation_doc.stat = 3;
|
|
1437
1437
|
conversation_doc.ts = Date.now();
|
|
1438
|
-
const save_ret = await
|
|
1438
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, conversation_doc);
|
|
1439
1439
|
|
|
1440
1440
|
return save_ret;
|
|
1441
1441
|
} catch (err) {
|
|
@@ -1525,7 +1525,7 @@ const get_studio_doc = async function (req) {
|
|
|
1525
1525
|
|
|
1526
1526
|
const app_id = await get_account_default_project_id(uid);
|
|
1527
1527
|
try {
|
|
1528
|
-
let data = await
|
|
1528
|
+
let data = await db_module.get_app_couch_doc_native(account_profile_info.app_id, _id);
|
|
1529
1529
|
|
|
1530
1530
|
if (data?.studio_meta?.createdByUid !== uid) delete data.agentConfig; //throw new Error('doctype not supported');
|
|
1531
1531
|
return { code: 7, data };
|
|
@@ -1796,7 +1796,7 @@ export const get_ai_agent_info = async function (uid, job_id, headers, doc, from
|
|
|
1796
1796
|
};
|
|
1797
1797
|
|
|
1798
1798
|
const agent_conversation_count = async function (agent_id) {
|
|
1799
|
-
const counts_ret = await
|
|
1799
|
+
const counts_ret = await db_module.get_app_couch_view(account_profile_info.app_id, 'chat_conversation_item_counts', {
|
|
1800
1800
|
reduce: true,
|
|
1801
1801
|
group_level: 1,
|
|
1802
1802
|
|
|
@@ -1850,7 +1850,7 @@ const get_user_ai_agents = async function (uid) {
|
|
|
1850
1850
|
'properties.menuType': 'ai_agent',
|
|
1851
1851
|
},
|
|
1852
1852
|
};
|
|
1853
|
-
return await
|
|
1853
|
+
return await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
1854
1854
|
};
|
|
1855
1855
|
|
|
1856
1856
|
export const get_ai_agents = async function (req, job_id, headers) {
|
|
@@ -1941,7 +1941,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
1941
1941
|
|
|
1942
1942
|
let user_agents = { docs: [], total_docs: 0 };
|
|
1943
1943
|
if (filter_type !== 'pending') {
|
|
1944
|
-
user_agents = await
|
|
1944
|
+
user_agents = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
1945
1945
|
if (!limit || agent_id) {
|
|
1946
1946
|
user_agents.total_docs = user_agents.docs.length;
|
|
1947
1947
|
} else {
|
|
@@ -1950,7 +1950,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
1950
1950
|
opt.limit = 9999;
|
|
1951
1951
|
opt.fields = ['_id'];
|
|
1952
1952
|
|
|
1953
|
-
const counter = await
|
|
1953
|
+
const counter = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
1954
1954
|
user_agents.total_docs = counter.docs.length;
|
|
1955
1955
|
}
|
|
1956
1956
|
}
|
|
@@ -1959,7 +1959,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
1959
1959
|
let requests_from = { docs: [], total_docs: 0 };
|
|
1960
1960
|
if (filter_type === 'pending') {
|
|
1961
1961
|
const from_opt = { selector: { docType: 'team_request', access_type: 'ai_agent', team_req_stat: 2, team_req_to_uid: uid }, fields: ['_id', 'team_req_date', 'sender_account_info.email', 'team_req_from_uid', 'share_item_id'] };
|
|
1962
|
-
const requests_from_res = await
|
|
1962
|
+
const requests_from_res = await db_module.find_couch_query('xuda_team', from_opt);
|
|
1963
1963
|
|
|
1964
1964
|
for await (let e of requests_from_res.docs) {
|
|
1965
1965
|
let doc = { ts: e.team_req_date, pending: true, properties: {}, studio_meta: { createdByUid: e.team_req_from_uid }, team_req_id: e._id };
|
|
@@ -1971,7 +1971,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
1971
1971
|
|
|
1972
1972
|
//share_item_id
|
|
1973
1973
|
const app_id = await get_account_default_project_id(e.team_req_from_uid);
|
|
1974
|
-
const ai_agent_doc = await
|
|
1974
|
+
const ai_agent_doc = await db_module.get_app_couch_doc_native(app_id, e.share_item_id);
|
|
1975
1975
|
doc.properties.menuName = ai_agent_doc.properties.menuName;
|
|
1976
1976
|
doc.studio_meta.agent_image = ai_agent_doc.studio_meta.agent_image;
|
|
1977
1977
|
|
|
@@ -1989,7 +1989,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
1989
1989
|
if (doc.studio_meta.shared_from_uid && doc.studio_meta.shared_from_app_id) {
|
|
1990
1990
|
reference_doc = _.cloneDeep(doc);
|
|
1991
1991
|
try {
|
|
1992
|
-
doc = await
|
|
1992
|
+
doc = await db_module.get_app_couch_doc_native(reference_doc.studio_meta.shared_from_app_id, reference_doc.studio_meta.share_item_id);
|
|
1993
1993
|
} catch (error) {
|
|
1994
1994
|
continue;
|
|
1995
1995
|
}
|
|
@@ -2000,7 +2000,7 @@ export const get_ai_agents = async function (req, job_id, headers) {
|
|
|
2000
2000
|
// purchased
|
|
2001
2001
|
if (doc.studio_meta.installed_from_uid && doc.studio_meta.installed_from_app_id) {
|
|
2002
2002
|
reference_doc = _.cloneDeep(doc);
|
|
2003
|
-
doc = await
|
|
2003
|
+
doc = await db_module.get_app_couch_doc_native(reference_doc.studio_meta.installed_from_app_id, doc._id);
|
|
2004
2004
|
doc.reference_doc = reference_doc;
|
|
2005
2005
|
doc.stat = reference_doc.stat;
|
|
2006
2006
|
}
|
|
@@ -2025,7 +2025,7 @@ export const delete_ai_agent = async function (req) {
|
|
|
2025
2025
|
// const project_db = await get_account_project_db(uid);
|
|
2026
2026
|
|
|
2027
2027
|
try {
|
|
2028
|
-
let prog_doc = await
|
|
2028
|
+
let prog_doc = await db_module.get_app_couch_doc_native(app_id, agent_id);
|
|
2029
2029
|
|
|
2030
2030
|
if (prog_doc.stat !== 5) {
|
|
2031
2031
|
throw new Error('A document can only be deleted after it has been archived');
|
|
@@ -2037,10 +2037,10 @@ export const delete_ai_agent = async function (req) {
|
|
|
2037
2037
|
|
|
2038
2038
|
save_ret = await team_ms.remove_team_member({ team_req_id: prog_doc.studio_meta.team_req_id });
|
|
2039
2039
|
} else {
|
|
2040
|
-
let agent_doc = await
|
|
2040
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2041
2041
|
agent_doc.stat = 4;
|
|
2042
2042
|
agent_doc.ts = Date.now();
|
|
2043
|
-
const save_ret = await
|
|
2043
|
+
const save_ret = await db_module.save_app_couch_doc_native(account_profile_info.app_id, agent_doc);
|
|
2044
2044
|
|
|
2045
2045
|
for (const [key, val] of Object.entries(agent_doc?.agentConfig?.agent_tools || [])) {
|
|
2046
2046
|
const file_id = val?.youtube?.file_id || val?.file?.file_id;
|
|
@@ -2065,7 +2065,7 @@ export const uninstall_ai_agent = async function (req) {
|
|
|
2065
2065
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2066
2066
|
|
|
2067
2067
|
try {
|
|
2068
|
-
let agent_doc = await
|
|
2068
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2069
2069
|
|
|
2070
2070
|
if (!agent_doc.studio_meta.installed_from_app_id) {
|
|
2071
2071
|
throw new Error('agent not installed');
|
|
@@ -2074,7 +2074,7 @@ export const uninstall_ai_agent = async function (req) {
|
|
|
2074
2074
|
agent_doc.stat = 4;
|
|
2075
2075
|
agent_doc.ts = Date.now();
|
|
2076
2076
|
|
|
2077
|
-
const save_ret = await
|
|
2077
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, agent_doc);
|
|
2078
2078
|
|
|
2079
2079
|
return save_ret;
|
|
2080
2080
|
} catch (err) {
|
|
@@ -2087,7 +2087,7 @@ export const unarchive_ai_agent = async function (req) {
|
|
|
2087
2087
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2088
2088
|
|
|
2089
2089
|
try {
|
|
2090
|
-
let agent_doc = await
|
|
2090
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2091
2091
|
|
|
2092
2092
|
if (agent_doc.stat !== 5) {
|
|
2093
2093
|
throw new Error('agent is not archived');
|
|
@@ -2096,7 +2096,7 @@ export const unarchive_ai_agent = async function (req) {
|
|
|
2096
2096
|
agent_doc.stat = 3;
|
|
2097
2097
|
agent_doc.ts = Date.now();
|
|
2098
2098
|
|
|
2099
|
-
const save_ret = await
|
|
2099
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, agent_doc);
|
|
2100
2100
|
|
|
2101
2101
|
return save_ret;
|
|
2102
2102
|
} catch (err) {
|
|
@@ -2110,7 +2110,7 @@ export const archive_ai_agent = async function (req) {
|
|
|
2110
2110
|
try {
|
|
2111
2111
|
await team_ms.validate_share_exist(uid, 'ai_agent', agent_id);
|
|
2112
2112
|
|
|
2113
|
-
let agent_doc = await
|
|
2113
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2114
2114
|
|
|
2115
2115
|
if (agent_doc.studio_meta.createdByUid !== uid && agent_doc?.studio_meta?.account_profile_info?.uid !== uid) {
|
|
2116
2116
|
throw new Error('Operation not allowed');
|
|
@@ -2118,7 +2118,7 @@ export const archive_ai_agent = async function (req) {
|
|
|
2118
2118
|
|
|
2119
2119
|
agent_doc.stat = 5;
|
|
2120
2120
|
agent_doc.ts = Date.now();
|
|
2121
|
-
const save_ret = await
|
|
2121
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, agent_doc);
|
|
2122
2122
|
|
|
2123
2123
|
return save_ret;
|
|
2124
2124
|
} catch (err) {
|
|
@@ -2134,7 +2134,7 @@ export const archive_mini_app = async function (req) {
|
|
|
2134
2134
|
try {
|
|
2135
2135
|
await team_ms.validate_share_exist(uid, 'miniapp', prog_id);
|
|
2136
2136
|
|
|
2137
|
-
let prog_doc = await
|
|
2137
|
+
let prog_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, prog_id);
|
|
2138
2138
|
|
|
2139
2139
|
if (agent_doc.studio_meta.createdByUid !== uid && agent_doc?.studio_meta?.account_profile_info?.uid !== uid) {
|
|
2140
2140
|
throw new Error('Operation not allowed');
|
|
@@ -2142,7 +2142,7 @@ export const archive_mini_app = async function (req) {
|
|
|
2142
2142
|
|
|
2143
2143
|
prog_doc.stat = 5;
|
|
2144
2144
|
prog_doc.ts = Date.now();
|
|
2145
|
-
const save_ret = await
|
|
2145
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, prog_doc);
|
|
2146
2146
|
|
|
2147
2147
|
return save_ret;
|
|
2148
2148
|
} catch (err) {
|
|
@@ -2156,7 +2156,7 @@ export const unarchive_mini_app = async function (req) {
|
|
|
2156
2156
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2157
2157
|
|
|
2158
2158
|
try {
|
|
2159
|
-
let prog_doc = await
|
|
2159
|
+
let prog_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, prog_id);
|
|
2160
2160
|
|
|
2161
2161
|
if (prog_doc.stat !== 5) {
|
|
2162
2162
|
throw new Error('mini app is not archived');
|
|
@@ -2164,7 +2164,7 @@ export const unarchive_mini_app = async function (req) {
|
|
|
2164
2164
|
|
|
2165
2165
|
prog_doc.stat = 3;
|
|
2166
2166
|
prog_doc.ts = Date.now();
|
|
2167
|
-
const save_ret = await
|
|
2167
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, prog_doc);
|
|
2168
2168
|
|
|
2169
2169
|
return save_ret;
|
|
2170
2170
|
} catch (err) {
|
|
@@ -2178,7 +2178,7 @@ export const delete_mini_app = async function (req) {
|
|
|
2178
2178
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2179
2179
|
|
|
2180
2180
|
try {
|
|
2181
|
-
let prog_doc = await
|
|
2181
|
+
let prog_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, prog_id);
|
|
2182
2182
|
|
|
2183
2183
|
if (prog_doc.stat !== 5) {
|
|
2184
2184
|
throw new Error('A document can only be deleted after it has been archived');
|
|
@@ -2192,7 +2192,7 @@ export const delete_mini_app = async function (req) {
|
|
|
2192
2192
|
} else {
|
|
2193
2193
|
prog_doc.stat = 4;
|
|
2194
2194
|
prog_doc.ts = Date.now();
|
|
2195
|
-
save_ret = await
|
|
2195
|
+
save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, prog_doc);
|
|
2196
2196
|
delete_depended_chats(uid, prog_id);
|
|
2197
2197
|
}
|
|
2198
2198
|
return save_ret;
|
|
@@ -2207,7 +2207,7 @@ export const update_ai_agent = async function (req, job_id, headers) {
|
|
|
2207
2207
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2208
2208
|
|
|
2209
2209
|
try {
|
|
2210
|
-
let agent_doc = await await
|
|
2210
|
+
let agent_doc = await await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2211
2211
|
|
|
2212
2212
|
agent_doc.ts = Date.now();
|
|
2213
2213
|
agent_doc.agentConfig = agentConfig;
|
|
@@ -2227,7 +2227,7 @@ export const update_ai_agent = async function (req, job_id, headers) {
|
|
|
2227
2227
|
agent_doc.studio_meta.agent_tags = agentConfig.agent_tags;
|
|
2228
2228
|
agent_doc.studio_meta.agent_user_guide = agentConfig.agent_user_guide;
|
|
2229
2229
|
|
|
2230
|
-
const data = await
|
|
2230
|
+
const data = await db_module.save_app_couch_doc_native(account_profile_info.app_id, agent_doc);
|
|
2231
2231
|
|
|
2232
2232
|
setTimeout(async () => {
|
|
2233
2233
|
await update_ai_agent_properties(agent_doc, account_profile_info.app_id, uid, { name_changed, agent_user_guide_changed, agent_category_changed, agent_subcategory_changed, agent_instructions_changed });
|
|
@@ -2315,7 +2315,7 @@ export const get_apps = async function (req, job_id, headers) {
|
|
|
2315
2315
|
|
|
2316
2316
|
let user_apps = { docs: [], total_docs: 0 };
|
|
2317
2317
|
if (filter_type !== 'pending') {
|
|
2318
|
-
user_apps = await
|
|
2318
|
+
user_apps = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
2319
2319
|
if (!limit || mini_app_id) {
|
|
2320
2320
|
user_apps.total_docs = user_apps.docs.length;
|
|
2321
2321
|
} else {
|
|
@@ -2324,7 +2324,7 @@ export const get_apps = async function (req, job_id, headers) {
|
|
|
2324
2324
|
opt.limit = 9999;
|
|
2325
2325
|
opt.fields = ['_id'];
|
|
2326
2326
|
|
|
2327
|
-
const counter = await
|
|
2327
|
+
const counter = await db_module.find_app_couch_query(account_profile_info.app_id, opt);
|
|
2328
2328
|
user_apps.total_docs = counter.docs.length;
|
|
2329
2329
|
}
|
|
2330
2330
|
}
|
|
@@ -2336,7 +2336,7 @@ export const get_apps = async function (req, job_id, headers) {
|
|
|
2336
2336
|
if (!mini_app_id) {
|
|
2337
2337
|
if (filter_type === 'pending') {
|
|
2338
2338
|
const from_opt = { selector: { docType: 'team_request', access_type: 'miniapp', team_req_stat: 2, team_req_to_uid: uid }, fields: ['_id', 'team_req_date', 'sender_account_info.email', 'team_req_from_uid', 'share_item_id'] };
|
|
2339
|
-
const requests_from_res = await
|
|
2339
|
+
const requests_from_res = await db_module.find_couch_query('xuda_team', from_opt);
|
|
2340
2340
|
|
|
2341
2341
|
for await (let e of requests_from_res.docs) {
|
|
2342
2342
|
//account_info
|
|
@@ -2348,7 +2348,7 @@ export const get_apps = async function (req, job_id, headers) {
|
|
|
2348
2348
|
|
|
2349
2349
|
//share_item_id
|
|
2350
2350
|
const app_id = await get_account_default_project_id(e.team_req_from_uid);
|
|
2351
|
-
const miniapp_ret = await
|
|
2351
|
+
const miniapp_ret = await db_module.get_app_couch_doc_native(app_id, e.share_item_id);
|
|
2352
2352
|
doc.properties.menuName = miniapp_ret.properties.menuName;
|
|
2353
2353
|
doc.studio_meta.agent_image = miniapp_ret.studio_meta.agent_image;
|
|
2354
2354
|
|
|
@@ -2364,7 +2364,7 @@ export const get_apps = async function (req, job_id, headers) {
|
|
|
2364
2364
|
let reference_doc;
|
|
2365
2365
|
if (doc.studio_meta.shared_from_uid) {
|
|
2366
2366
|
reference_doc = _.cloneDeep(doc);
|
|
2367
|
-
doc = await
|
|
2367
|
+
doc = await db_module.get_app_couch_doc_native(reference_doc.studio_meta.shared_from_app_id, reference_doc.studio_meta.share_item_id);
|
|
2368
2368
|
doc.reference_doc = reference_doc;
|
|
2369
2369
|
}
|
|
2370
2370
|
|
|
@@ -2574,11 +2574,11 @@ const save_agent_status = async function (uid, agent_id, stat, agentConfig) {
|
|
|
2574
2574
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2575
2575
|
|
|
2576
2576
|
try {
|
|
2577
|
-
let agent_doc = await
|
|
2577
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
2578
2578
|
agent_doc.ts = Date.now();
|
|
2579
2579
|
agent_doc.stat = stat;
|
|
2580
2580
|
agent_doc.agentConfig = agentConfig;
|
|
2581
|
-
const data = await
|
|
2581
|
+
const data = await db_module.save_app_couch_doc_native(account_profile_info.app_id, agent_doc);
|
|
2582
2582
|
|
|
2583
2583
|
return { code: 12, data };
|
|
2584
2584
|
} catch (err) {
|
|
@@ -2608,7 +2608,7 @@ export const create_ai_agent = async function (req, job_id, headers) {
|
|
|
2608
2608
|
|
|
2609
2609
|
// const data = await db.insert(agent_doc);
|
|
2610
2610
|
|
|
2611
|
-
const data = await
|
|
2611
|
+
const data = await db_module.save_app_couch_doc_native(account_profile_info.app_id, agent_doc);
|
|
2612
2612
|
setTimeout(async () => {
|
|
2613
2613
|
await update_ai_agent_properties(agent_doc, account_profile_info.app_id, uid);
|
|
2614
2614
|
await update_thumbnail('ai_agent', agent_doc, account_profile_info.app_id, uid, job_id, headers, null, null, account_profile_info);
|
|
@@ -2623,7 +2623,7 @@ export const create_ai_agent = async function (req, job_id, headers) {
|
|
|
2623
2623
|
|
|
2624
2624
|
export const update_ai_agent_properties = async function (doc, app_id, uid, fields_changed = {}) {
|
|
2625
2625
|
debugger;
|
|
2626
|
-
const db_doc = await
|
|
2626
|
+
const db_doc = await db_module.get_app_couch_doc_native(app_id, doc._id);
|
|
2627
2627
|
// const { account_profile_info } = doc.studio_meta;
|
|
2628
2628
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
2629
2629
|
|
|
@@ -2835,7 +2835,7 @@ export const update_ai_agent_properties = async function (doc, app_id, uid, fiel
|
|
|
2835
2835
|
db_doc.studio_meta.agent_user_guide_steps = db_doc.agentConfig.agent_user_guide_steps;
|
|
2836
2836
|
}
|
|
2837
2837
|
|
|
2838
|
-
const save_ret = await
|
|
2838
|
+
const save_ret = await db_module.save_app_couch_doc_native(app_id, db_doc);
|
|
2839
2839
|
return save_ret;
|
|
2840
2840
|
};
|
|
2841
2841
|
|
|
@@ -2846,9 +2846,9 @@ export const update_thumbnail = async function (type, doc, app_id, uid, job_id,
|
|
|
2846
2846
|
try {
|
|
2847
2847
|
const get_db_doc = async function () {
|
|
2848
2848
|
if (xuda_db) {
|
|
2849
|
-
return await
|
|
2849
|
+
return await db_module.get_couch_doc_native(xuda_db, doc._id);
|
|
2850
2850
|
} else {
|
|
2851
|
-
return await
|
|
2851
|
+
return await db_module.get_app_couch_doc_native(account_profile_info.app_id, doc._id);
|
|
2852
2852
|
}
|
|
2853
2853
|
};
|
|
2854
2854
|
|
|
@@ -2951,9 +2951,9 @@ export const update_thumbnail = async function (type, doc, app_id, uid, job_id,
|
|
|
2951
2951
|
let save_ret;
|
|
2952
2952
|
|
|
2953
2953
|
if (xuda_db) {
|
|
2954
|
-
save_ret = await
|
|
2954
|
+
save_ret = await db_module.save_couch_doc_native(xuda_db, db_doc);
|
|
2955
2955
|
} else {
|
|
2956
|
-
save_ret = await
|
|
2956
|
+
save_ret = await db_module.save_app_couch_doc_native(account_profile_info.app_id, db_doc);
|
|
2957
2957
|
}
|
|
2958
2958
|
return save_ret;
|
|
2959
2959
|
} catch (error) {
|
|
@@ -3370,6 +3370,7 @@ export const create_conversation = async function (req, job_id, headers) {
|
|
|
3370
3370
|
const { account_profile_obj } = account_profile_info;
|
|
3371
3371
|
try {
|
|
3372
3372
|
if (conversation_type === 'email') {
|
|
3373
|
+
debugger;
|
|
3373
3374
|
///&& email_direction === 'out'
|
|
3374
3375
|
if (!account_profile_obj?.email_account_id) {
|
|
3375
3376
|
throw new Error('The user profile must include a defined email_account_id');
|
|
@@ -3416,7 +3417,7 @@ export const create_conversation = async function (req, job_id, headers) {
|
|
|
3416
3417
|
from_mailbox,
|
|
3417
3418
|
email_recipient_type,
|
|
3418
3419
|
};
|
|
3419
|
-
const save_ret = await
|
|
3420
|
+
const save_ret = await db_module.save_app_couch_doc(account_profile_info.app_id, conversation_doc);
|
|
3420
3421
|
|
|
3421
3422
|
let contact_id, contact_doc, recipient_uid, recipient_contact_id;
|
|
3422
3423
|
|
|
@@ -3437,7 +3438,7 @@ export const create_conversation = async function (req, job_id, headers) {
|
|
|
3437
3438
|
recipient_uid = contact_doc.connection_uid;
|
|
3438
3439
|
|
|
3439
3440
|
const app_id = await get_account_default_project_id(recipient_uid);
|
|
3440
|
-
const save_ret = await
|
|
3441
|
+
const save_ret = await db_module.save_app_couch_doc(app_id, { ...conversation_doc, ...{ uid: recipient_uid, reference_id: recipient_contact_id } });
|
|
3441
3442
|
}
|
|
3442
3443
|
|
|
3443
3444
|
setTimeout(async () => {
|
|
@@ -3452,15 +3453,15 @@ export const create_conversation = async function (req, job_id, headers) {
|
|
|
3452
3453
|
// write conversation to host after thumbnail update
|
|
3453
3454
|
// get sender conversation
|
|
3454
3455
|
|
|
3455
|
-
const conversation_doc = await
|
|
3456
|
+
const conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_doc._id);
|
|
3456
3457
|
|
|
3457
3458
|
const recipient_account_profile_info = await get_active_account_profile_info(recipient_uid);
|
|
3458
|
-
let recipient_conversation_doc = await
|
|
3459
|
+
let recipient_conversation_doc = await db_module.get_app_couch_doc_native(recipient_account_profile_info.app_id, conversation_doc._id);
|
|
3459
3460
|
recipient_conversation_doc.title = conversation_doc.title;
|
|
3460
3461
|
|
|
3461
3462
|
recipient_conversation_doc.thumbnail_request_ts = conversation_doc.thumbnail_request_ts;
|
|
3462
3463
|
recipient_conversation_doc.chat_image = conversation_doc.chat_image;
|
|
3463
|
-
await
|
|
3464
|
+
await db_module.save_app_couch_doc_native(recipient_account_profile_info.app_id, recipient_conversation_doc);
|
|
3464
3465
|
|
|
3465
3466
|
await update_conversation_mood_level(
|
|
3466
3467
|
uid,
|
|
@@ -3493,7 +3494,7 @@ export const create_conversation = async function (req, job_id, headers) {
|
|
|
3493
3494
|
};
|
|
3494
3495
|
|
|
3495
3496
|
const process_conversation = async function (uid, conversation_id, account_profile_info, job_id, headers) {
|
|
3496
|
-
let conversation_doc = await
|
|
3497
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
3497
3498
|
const { conversation_type, prompt, reference_id } = conversation_doc;
|
|
3498
3499
|
|
|
3499
3500
|
// Ask GPT for title
|
|
@@ -3501,10 +3502,10 @@ const process_conversation = async function (uid, conversation_id, account_profi
|
|
|
3501
3502
|
if (prompt.split(' ').length > 10) {
|
|
3502
3503
|
const title = await submit_chat_gpt_prompt({ uid, prompt: `create title for the prompt return 5 words result maximum text only without options : ${prompt}`, model: _conf.default_ai_model, metadata: { conversation_id: conversation_doc._id, func: 'create_conversation' }, account_profile_info });
|
|
3503
3504
|
|
|
3504
|
-
conversation_doc = await
|
|
3505
|
+
conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_doc._id);
|
|
3505
3506
|
conversation_doc.title = title.data;
|
|
3506
3507
|
|
|
3507
|
-
await
|
|
3508
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_doc);
|
|
3508
3509
|
}
|
|
3509
3510
|
}
|
|
3510
3511
|
/// categorize prompt
|
|
@@ -3537,10 +3538,10 @@ const process_conversation = async function (uid, conversation_id, account_profi
|
|
|
3537
3538
|
}
|
|
3538
3539
|
}
|
|
3539
3540
|
|
|
3540
|
-
conversation_doc = await
|
|
3541
|
+
conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_doc._id);
|
|
3541
3542
|
conversation_doc.category_info = category_info;
|
|
3542
3543
|
conversation_doc.process_stat = 'full';
|
|
3543
|
-
await
|
|
3544
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_doc);
|
|
3544
3545
|
|
|
3545
3546
|
if (category_info.category) {
|
|
3546
3547
|
await update_thumbnail('conversation_category', conversation_doc, account_profile_info.app_id, uid, job_id, headers, null, null, account_profile_info);
|
|
@@ -3581,7 +3582,7 @@ export const submit_chat_conversation = async function (req, job_id, headers) {
|
|
|
3581
3582
|
if (!conversation_id) throw new Error('missing conversation_id');
|
|
3582
3583
|
const account_profile_info = await get_active_account_profile_info(uid, profile_id);
|
|
3583
3584
|
|
|
3584
|
-
let conversation_doc = await
|
|
3585
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
3585
3586
|
req.conversation_doc = conversation_doc;
|
|
3586
3587
|
let ret;
|
|
3587
3588
|
if (conversation_doc.reference_type === 'contacts') {
|
|
@@ -3646,9 +3647,9 @@ const update_conversation_mood_level = async function (uid, target_contacts = []
|
|
|
3646
3647
|
|
|
3647
3648
|
for await (const target of target_contacts) {
|
|
3648
3649
|
const account_profile_info = await get_active_account_profile_info(target.uid);
|
|
3649
|
-
let conversation_doc = await
|
|
3650
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
3650
3651
|
conversation_doc.mood_level = mood_level_obj.mood_level;
|
|
3651
|
-
await
|
|
3652
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_doc);
|
|
3652
3653
|
|
|
3653
3654
|
if (update_contact) {
|
|
3654
3655
|
const account_profile_info = await get_active_account_profile_info(target.uid);
|
|
@@ -3672,11 +3673,11 @@ const contact_chat_conversation = async function (req, job_id, headers) {
|
|
|
3672
3673
|
|
|
3673
3674
|
const receiver_contact_doc = await get_contact_info(uid, null, conversation_doc.reference_id);
|
|
3674
3675
|
const receiver_app_id = await get_account_default_project_id(receiver_contact_doc.contact_uid);
|
|
3675
|
-
let receiver_conversation_doc = await
|
|
3676
|
+
let receiver_conversation_doc = await db_module.get_app_couch_doc_native(receiver_app_id, conversation_id);
|
|
3676
3677
|
|
|
3677
3678
|
const sender_contact_doc = await get_contact_info(uid, null, conversation_doc.reference_id);
|
|
3678
3679
|
const sender_app_id = account_profile_info.app_id;
|
|
3679
|
-
let sender_conversation_doc = await
|
|
3680
|
+
let sender_conversation_doc = await db_module.get_app_couch_doc_native(sender_app_id, conversation_id);
|
|
3680
3681
|
|
|
3681
3682
|
let item;
|
|
3682
3683
|
try {
|
|
@@ -3698,10 +3699,10 @@ const contact_chat_conversation = async function (req, job_id, headers) {
|
|
|
3698
3699
|
// const obj = { id: item.data[0].id, ts: Date.now(), uid, read: true, conversation_type: 'chat' };
|
|
3699
3700
|
// receiver_conversation_doc.messages.push(obj);
|
|
3700
3701
|
|
|
3701
|
-
await
|
|
3702
|
+
await db_module.save_app_couch_doc_native(receiver_app_id, receiver_conversation_doc);
|
|
3702
3703
|
// sender_conversation_doc.messages.push({ ...obj, ...{ read: false } });
|
|
3703
3704
|
|
|
3704
|
-
await
|
|
3705
|
+
await db_module.save_app_couch_doc_native(sender_app_id, sender_conversation_doc);
|
|
3705
3706
|
|
|
3706
3707
|
let out_conversation_item_obj = {
|
|
3707
3708
|
_id: await _common.xuda_get_uuid('chat_conversation_item'),
|
|
@@ -3720,7 +3721,7 @@ const contact_chat_conversation = async function (req, job_id, headers) {
|
|
|
3720
3721
|
role: 'user',
|
|
3721
3722
|
};
|
|
3722
3723
|
|
|
3723
|
-
const save_ret = await
|
|
3724
|
+
const save_ret = await db_module.save_app_couch_doc(sender_app_id, out_conversation_item_obj);
|
|
3724
3725
|
|
|
3725
3726
|
update_conversation_mood_level(uid, conversation_id, prompt, uid, receiver_contact_doc.contact_uid, conversation_doc.reference_type === 'contacts', account_profile_info);
|
|
3726
3727
|
|
|
@@ -3735,7 +3736,7 @@ const chat_note = async function (req, job_id, headers) {
|
|
|
3735
3736
|
const conversation_id = conversation_doc._id;
|
|
3736
3737
|
|
|
3737
3738
|
const sender_app_id = account_profile_info.app_id; //await get_account_default_project_id(uid);
|
|
3738
|
-
let sender_conversation_doc = await
|
|
3739
|
+
let sender_conversation_doc = await db_module.get_app_couch_doc_native(sender_app_id, conversation_id);
|
|
3739
3740
|
|
|
3740
3741
|
await attachment_handler(uid, sender_app_id, conversation_id, attachments, account_profile_info);
|
|
3741
3742
|
let item;
|
|
@@ -3758,7 +3759,7 @@ const chat_note = async function (req, job_id, headers) {
|
|
|
3758
3759
|
// let obj = { id: item.data[0].id, ts: Date.now(), uid, read: true, conversation_type: 'note' };
|
|
3759
3760
|
|
|
3760
3761
|
// sender_conversation_doc.messages.push(obj);
|
|
3761
|
-
// await
|
|
3762
|
+
// await db_module.save_app_couch_doc_native(sender_app_id, sender_conversation_doc);
|
|
3762
3763
|
|
|
3763
3764
|
let out_conversation_item_obj = {
|
|
3764
3765
|
_id: await _common.xuda_get_uuid('chat_conversation_item'),
|
|
@@ -3779,9 +3780,9 @@ const chat_note = async function (req, job_id, headers) {
|
|
|
3779
3780
|
rtl: _common.detectRTL(body),
|
|
3780
3781
|
};
|
|
3781
3782
|
|
|
3782
|
-
const save_ret = await
|
|
3783
|
+
const save_ret = await db_module.save_app_couch_doc(sender_app_id, out_conversation_item_obj);
|
|
3783
3784
|
|
|
3784
|
-
// await
|
|
3785
|
+
// await db_module.save_app_couch_doc_native(sender_app_id, { _id: obj.id, stat: 3, docType: 'chat_conversation_item', ts: obj.ts, uid, conversation_type: obj.conversation_type, date_created_ts: obj.ts, conversation_id, body, reference_id: conversation_doc.reference_id });
|
|
3785
3786
|
|
|
3786
3787
|
return save_ret; //{ code: 15, data: item };
|
|
3787
3788
|
} catch (err) {
|
|
@@ -3801,9 +3802,9 @@ const chat_email = async function (req, job_id, headers) {
|
|
|
3801
3802
|
const conversation_id = conversation_doc._id;
|
|
3802
3803
|
const sender_app_id = account_profile_info.app_id;
|
|
3803
3804
|
|
|
3804
|
-
let email_account_doc = await
|
|
3805
|
+
let email_account_doc = await db_module.get_app_couch_doc_native(sender_app_id, account_profile_info.account_profile_obj?.email_account_id);
|
|
3805
3806
|
|
|
3806
|
-
let sender_conversation_doc = await
|
|
3807
|
+
let sender_conversation_doc = await db_module.get_app_couch_doc_native(sender_app_id, conversation_id);
|
|
3807
3808
|
|
|
3808
3809
|
if (sender_conversation_doc.reference_type !== 'contacts') {
|
|
3809
3810
|
throw new Error('not an contact conversation');
|
|
@@ -3820,7 +3821,7 @@ const chat_email = async function (req, job_id, headers) {
|
|
|
3820
3821
|
if (!from_mailbox) {
|
|
3821
3822
|
// get last email
|
|
3822
3823
|
|
|
3823
|
-
const chat_conversation_item = await
|
|
3824
|
+
const chat_conversation_item = await db_module.find_app_couch_query(account_profile_info.app_id, {
|
|
3824
3825
|
selector: {
|
|
3825
3826
|
docType: 'chat_conversation_item',
|
|
3826
3827
|
conversation_type: 'email',
|
|
@@ -3883,7 +3884,7 @@ const chat_email = async function (req, job_id, headers) {
|
|
|
3883
3884
|
// let obj = { id: item.data[0].id, ts: Date.now(), uid, read: true, conversation_type: 'email' };
|
|
3884
3885
|
|
|
3885
3886
|
// sender_conversation_doc.messages.push(obj);
|
|
3886
|
-
await
|
|
3887
|
+
await db_module.save_app_couch_doc_native(sender_app_id, sender_conversation_doc);
|
|
3887
3888
|
|
|
3888
3889
|
let out_conversation_item_obj = {
|
|
3889
3890
|
_id: await _common.xuda_get_uuid('chat_conversation_item'),
|
|
@@ -3907,8 +3908,8 @@ const chat_email = async function (req, job_id, headers) {
|
|
|
3907
3908
|
process_stat: perform_ai_execution ? 'full' : 'partial',
|
|
3908
3909
|
};
|
|
3909
3910
|
|
|
3910
|
-
const save_ret = await
|
|
3911
|
-
// const save_ret = await
|
|
3911
|
+
const save_ret = await db_module.save_app_couch_doc(sender_app_id, out_conversation_item_obj);
|
|
3912
|
+
// const save_ret = await db_module.save_app_couch_doc_native(sender_app_id, {
|
|
3912
3913
|
// _id: obj.id,
|
|
3913
3914
|
// stat: 3,
|
|
3914
3915
|
// docType: 'chat_conversation_item',
|
|
@@ -3961,7 +3962,7 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
3961
3962
|
direction: 'out',
|
|
3962
3963
|
role: 'user',
|
|
3963
3964
|
};
|
|
3964
|
-
await
|
|
3965
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, out_conversation_item_obj);
|
|
3965
3966
|
|
|
3966
3967
|
// const { account_profile_info } = conversation_doc;
|
|
3967
3968
|
const emitToDashboard = (type, content) => {
|
|
@@ -4036,13 +4037,13 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4036
4037
|
await _utils.delay(500);
|
|
4037
4038
|
await update_job('initiating conversation');
|
|
4038
4039
|
|
|
4039
|
-
// let conversation_doc = await
|
|
4040
|
+
// let conversation_doc = await db_module.get_app_couch_doc_native(app_id, conversation_id);
|
|
4040
4041
|
const reference_type = conversation_doc.reference_type;
|
|
4041
4042
|
const reference_id = conversation_doc.reference_id;
|
|
4042
4043
|
|
|
4043
4044
|
conversation_doc.stat = 2;
|
|
4044
4045
|
conversation_doc.ts = Date.now();
|
|
4045
|
-
await
|
|
4046
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_doc);
|
|
4046
4047
|
|
|
4047
4048
|
await update_job('analyzing request');
|
|
4048
4049
|
|
|
@@ -4155,16 +4156,16 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4155
4156
|
try {
|
|
4156
4157
|
let ai_agent_doc;
|
|
4157
4158
|
try {
|
|
4158
|
-
ai_agent_doc = await
|
|
4159
|
+
ai_agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, agent_id);
|
|
4159
4160
|
if (ai_agent_doc.studio_meta.shared_from_uid) {
|
|
4160
4161
|
const reference_doc = _.cloneDeep(ai_agent_doc);
|
|
4161
4162
|
const app_id = await get_account_default_project_id(ai_agent_doc.studio_meta.shared_from_uid);
|
|
4162
|
-
ai_agent_doc = await
|
|
4163
|
+
ai_agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, ai_agent_doc.studio_meta.share_item_id);
|
|
4163
4164
|
ai_agent_doc.reference_doc = reference_doc;
|
|
4164
4165
|
} else if (ai_agent_doc.studio_meta.installed_from_uid) {
|
|
4165
4166
|
const reference_doc = _.cloneDeep(ai_agent_doc);
|
|
4166
4167
|
const app_id = await get_account_default_project_id(ai_agent_doc.studio_meta.installed_from_uid);
|
|
4167
|
-
ai_agent_doc = await
|
|
4168
|
+
ai_agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, ai_agent_doc.studio_meta.share_item_id);
|
|
4168
4169
|
ai_agent_doc.reference_doc = reference_doc;
|
|
4169
4170
|
}
|
|
4170
4171
|
} catch (err) {
|
|
@@ -4417,7 +4418,7 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4417
4418
|
opt.selector._id = val.ai_agent_id;
|
|
4418
4419
|
}
|
|
4419
4420
|
|
|
4420
|
-
const user_agents = await
|
|
4421
|
+
const user_agents = await db_module.find_app_couch_query(ai_agent_doc?.reference_doc?.studio_meta?.shared_from_app_id || ai_agent_doc?.reference_doc?.studio_meta?.installed_from_app_id || app_id, opt);
|
|
4421
4422
|
for (const agent_doc of user_agents.docs) {
|
|
4422
4423
|
const agent = new Agent({
|
|
4423
4424
|
name: agent_doc.agent_name.substring(0, 60),
|
|
@@ -4506,9 +4507,9 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4506
4507
|
|
|
4507
4508
|
const set_ts_to_agent = async function () {
|
|
4508
4509
|
try {
|
|
4509
|
-
let agent_doc = await
|
|
4510
|
+
let agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, reference_id);
|
|
4510
4511
|
agent_doc.ts = Date.now();
|
|
4511
|
-
await
|
|
4512
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, agent_doc);
|
|
4512
4513
|
} catch (err) {}
|
|
4513
4514
|
};
|
|
4514
4515
|
|
|
@@ -4554,7 +4555,7 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4554
4555
|
const done = async function (output) {
|
|
4555
4556
|
try {
|
|
4556
4557
|
// const obj = { id: output.state._lastTurnResponse.responseId, ts: Date.now(), ai_agent_id: output.state._currentAgent.name, attachments, conversation_type: 'ai_chat' };
|
|
4557
|
-
conversation_doc = await
|
|
4558
|
+
conversation_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, conversation_id);
|
|
4558
4559
|
|
|
4559
4560
|
conversation_doc.ts = Date.now();
|
|
4560
4561
|
conversation_doc.stat = 3;
|
|
@@ -4568,7 +4569,7 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4568
4569
|
outputTokens += item.usage.outputTokens;
|
|
4569
4570
|
}
|
|
4570
4571
|
|
|
4571
|
-
await
|
|
4572
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_doc);
|
|
4572
4573
|
|
|
4573
4574
|
// let conversation_item_obj = {
|
|
4574
4575
|
// _id: obj.id,
|
|
@@ -4587,7 +4588,7 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4587
4588
|
// direction: 'out',
|
|
4588
4589
|
// role: 'user',
|
|
4589
4590
|
// };
|
|
4590
|
-
// await
|
|
4591
|
+
// await db_module.save_app_couch_doc_native(account_profile_info.app_id, conversation_item_obj);
|
|
4591
4592
|
|
|
4592
4593
|
let in_conversation_item_obj = {
|
|
4593
4594
|
_id: await _common.xuda_get_uuid('chat_conversation_item'),
|
|
@@ -4606,16 +4607,16 @@ const ai_chat_conversation = async function (req, job_id, headers) {
|
|
|
4606
4607
|
role: 'assistant',
|
|
4607
4608
|
ai_agent_id: output.state._currentAgent.name,
|
|
4608
4609
|
};
|
|
4609
|
-
await
|
|
4610
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, in_conversation_item_obj);
|
|
4610
4611
|
|
|
4611
4612
|
debugger;
|
|
4612
4613
|
|
|
4613
4614
|
let conversation_items = await client.conversations.items.list(conversation_doc.reference_conversation_id, { order: 'asc', after: last_conversation_item });
|
|
4614
4615
|
|
|
4615
|
-
let out_conversation_item_doc = await
|
|
4616
|
+
let out_conversation_item_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, out_conversation_item_obj._id);
|
|
4616
4617
|
// out_conversation_item_doc.stat = 3;
|
|
4617
4618
|
out_conversation_item_doc.conversation_item_reference_id = conversation_items?.data?.[0]?.id;
|
|
4618
|
-
await
|
|
4619
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, out_conversation_item_doc);
|
|
4619
4620
|
|
|
4620
4621
|
account_ms.record_ai_usage(uid, inputTokens, outputTokens, 'conversation chat', prompt, model, { conversation_id, ai_agent_id: in_conversation_item_obj.ai_agent_id, item_id: in_conversation_item_obj._id }, account_profile_info);
|
|
4621
4622
|
// if (!conversation_doc.chat_image && (!conversation_doc.thumbnail_request_ts || Date.now() - conversation_doc.thumbnail_request_ts > 120000)) {
|
|
@@ -4823,7 +4824,7 @@ const run_plugin = async function (app_id, uid, plugin_name, method, prop_data,
|
|
|
4823
4824
|
|
|
4824
4825
|
let plugin_doc;
|
|
4825
4826
|
try {
|
|
4826
|
-
plugin_doc = await
|
|
4827
|
+
plugin_doc = await db_module.get_app_couch_doc_native(app_id, plugin_name);
|
|
4827
4828
|
} catch (error) {
|
|
4828
4829
|
throw new Error(`plugin_doc ${plugin_name} not found`);
|
|
4829
4830
|
}
|
|
@@ -4951,7 +4952,7 @@ const get_plugin_tool = async function (app_id, uid, plugin_name, method, prop_d
|
|
|
4951
4952
|
|
|
4952
4953
|
let plugin_doc;
|
|
4953
4954
|
try {
|
|
4954
|
-
plugin_doc = await
|
|
4955
|
+
plugin_doc = await db_module.get_app_couch_doc_native(app_id, plugin_name);
|
|
4955
4956
|
} catch (error) {
|
|
4956
4957
|
throw new Error(`plugin_doc ${plugin_name} not found`);
|
|
4957
4958
|
}
|
|
@@ -5123,7 +5124,7 @@ export const create_avatar = async function (req, job_id, headers) {
|
|
|
5123
5124
|
|
|
5124
5125
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
5125
5126
|
|
|
5126
|
-
const account_obj = await
|
|
5127
|
+
const account_obj = await db_module.get_couch_doc_native('xuda_accounts', uid);
|
|
5127
5128
|
const account_info = account_obj.account_info;
|
|
5128
5129
|
if (!metadata) {
|
|
5129
5130
|
metadata = account_info;
|
|
@@ -5706,9 +5707,9 @@ export const conversation_actions = async function (req, job_id, headers) {
|
|
|
5706
5707
|
|
|
5707
5708
|
// const update_profile_avatar_status = async function (uid, stat) {
|
|
5708
5709
|
// try {
|
|
5709
|
-
// let doc = await
|
|
5710
|
+
// let doc = await db_module.get_couch_doc_native('xuda_accounts', uid);
|
|
5710
5711
|
// doc.account_info.profile_avatar_stat = stat;
|
|
5711
|
-
// const save_ret = await
|
|
5712
|
+
// const save_ret = await db_module.save_couch_doc_native('xuda_accounts', doc);
|
|
5712
5713
|
// } catch (err) {
|
|
5713
5714
|
// console.error(err);
|
|
5714
5715
|
// }
|
|
@@ -5756,7 +5757,7 @@ export const modify_profile_avatar = async function (req, job_id, headers) {
|
|
|
5756
5757
|
}
|
|
5757
5758
|
}
|
|
5758
5759
|
|
|
5759
|
-
const account_obj = await
|
|
5760
|
+
const account_obj = await db_module.get_couch_doc_native('xuda_accounts', uid);
|
|
5760
5761
|
const account_info = account_obj.account_info;
|
|
5761
5762
|
if (!metadata) {
|
|
5762
5763
|
metadata = account_info;
|
|
@@ -5773,7 +5774,7 @@ export const get_ai_workspace_pending_counts = async function (req, job_id, head
|
|
|
5773
5774
|
const { uid } = req;
|
|
5774
5775
|
|
|
5775
5776
|
try {
|
|
5776
|
-
const workspace_pending_counts_ret = await
|
|
5777
|
+
const workspace_pending_counts_ret = await db_module.get_couch_view('xuda_team', 'pending_workspace_requests_count', {
|
|
5777
5778
|
startkey: [uid, ''],
|
|
5778
5779
|
endkey: [uid, 'zzzz'],
|
|
5779
5780
|
reduce: true,
|
|
@@ -5834,8 +5835,8 @@ const create_ai_agent_image = async function (req, job_id, headers) {
|
|
|
5834
5835
|
|
|
5835
5836
|
const { app_id, uid, ai_agent_id, tags } = req;
|
|
5836
5837
|
const account_profile_info = await get_active_account_profile_info(uid);
|
|
5837
|
-
const ai_agent_doc = await
|
|
5838
|
-
const account_doc = await
|
|
5838
|
+
const ai_agent_doc = await db_module.get_app_couch_doc_native(account_profile_info.app_id, ai_agent_id);
|
|
5839
|
+
const account_doc = await db_module.get_couch_doc_native('xuda_accounts', uid);
|
|
5839
5840
|
|
|
5840
5841
|
// faceless humanoid for business
|
|
5841
5842
|
if (account_doc.account_info.account_type === 'business') {
|
|
@@ -5977,7 +5978,7 @@ export const create_mini_app = async function (req, job_id, headers) {
|
|
|
5977
5978
|
const name = await submit_chat_gpt_prompt({ uid, prompt: `create title for the prompt return 5 words result maximum text only without options : ${prompt}`, model: _conf.default_ai_model, metadata: { prog_id: component_doc._id, func: 'create_mini_app' } }, account_profile_info);
|
|
5978
5979
|
component_doc.properties.menuName = name.data;
|
|
5979
5980
|
component_doc.properties.menuTitle = name.data;
|
|
5980
|
-
const data = await
|
|
5981
|
+
const data = await db_module.save_app_couch_doc_native(account_profile_info.app_id, component_doc);
|
|
5981
5982
|
setTimeout(async () => {
|
|
5982
5983
|
await update_thumbnail('mini_app', component_doc, account_profile_info.app_id, uid, job_id, headers, null, null, account_profile_info);
|
|
5983
5984
|
}, 500);
|
|
@@ -5993,11 +5994,11 @@ export const pin_ai_agent = async function (req, job_id, headers) {
|
|
|
5993
5994
|
const { uid, agent_id } = req;
|
|
5994
5995
|
try {
|
|
5995
5996
|
const app_id = await get_account_default_project_id(uid);
|
|
5996
|
-
const ai_agent_doc = await
|
|
5997
|
+
const ai_agent_doc = await db_module.get_app_couch_doc_native(app_id, agent_id);
|
|
5997
5998
|
|
|
5998
5999
|
ai_agent_doc.studio_meta.pinned = true;
|
|
5999
6000
|
|
|
6000
|
-
const save_ret = await
|
|
6001
|
+
const save_ret = await db_module.save_app_couch_doc(app_id, ai_agent_doc);
|
|
6001
6002
|
|
|
6002
6003
|
ws_dashboard_ms.emit_message_to_dashboard({
|
|
6003
6004
|
service: 'ai_agent_pinned',
|
|
@@ -6017,11 +6018,11 @@ export const unpin_ai_agent = async function (req, job_id, headers) {
|
|
|
6017
6018
|
const { uid, agent_id } = req;
|
|
6018
6019
|
try {
|
|
6019
6020
|
const app_id = await get_account_default_project_id(uid);
|
|
6020
|
-
const ai_agent_doc = await
|
|
6021
|
+
const ai_agent_doc = await db_module.get_app_couch_doc_native(app_id, agent_id);
|
|
6021
6022
|
|
|
6022
6023
|
ai_agent_doc.studio_meta.pinned = false;
|
|
6023
6024
|
|
|
6024
|
-
const save_ret = await
|
|
6025
|
+
const save_ret = await db_module.save_app_couch_doc(app_id, ai_agent_doc);
|
|
6025
6026
|
|
|
6026
6027
|
ws_dashboard_ms.emit_message_to_dashboard({
|
|
6027
6028
|
service: 'ai_agent_unpinned',
|
|
@@ -6164,7 +6165,7 @@ export const add_transcript_conversation_item = async function (reference_conver
|
|
|
6164
6165
|
|
|
6165
6166
|
const attachment_handler = async function (uid, app_id, conversation_id, attachments, account_profile_info, date_created_ts) {
|
|
6166
6167
|
if (!attachments?.length) return;
|
|
6167
|
-
let conversation_doc = await
|
|
6168
|
+
let conversation_doc = await db_module.get_app_couch_doc_native(app_id, conversation_id);
|
|
6168
6169
|
|
|
6169
6170
|
// const get_transcript = async function (filename) {
|
|
6170
6171
|
// async function streamToBuffer(fileStream) {
|
|
@@ -6326,21 +6327,21 @@ const attachment_handler = async function (uid, app_id, conversation_id, attachm
|
|
|
6326
6327
|
read: { [uid]: Date.now() },
|
|
6327
6328
|
process_stat,
|
|
6328
6329
|
};
|
|
6329
|
-
await
|
|
6330
|
+
await db_module.save_app_couch_doc_native(account_profile_info.app_id, out_conversation_item_obj);
|
|
6330
6331
|
system_message_items.push(out_conversation_item_obj);
|
|
6331
6332
|
}
|
|
6332
6333
|
|
|
6333
|
-
conversation_doc = await
|
|
6334
|
+
conversation_doc = await db_module.get_app_couch_doc_native(app_id, conversation_id);
|
|
6334
6335
|
|
|
6335
6336
|
conversation_doc.ts = Date.now();
|
|
6336
6337
|
conversation_doc.stat = 2;
|
|
6337
6338
|
|
|
6338
|
-
await
|
|
6339
|
+
await db_module.save_app_couch_doc_native(app_id, conversation_doc);
|
|
6339
6340
|
return system_message_items;
|
|
6340
6341
|
};
|
|
6341
6342
|
|
|
6342
6343
|
export const is_spam_email = async function (uid, email, subject, account_profile_info) {
|
|
6343
|
-
const spam_whitelists = await
|
|
6344
|
+
const spam_whitelists = await db_module.find_couch_query('xuda_accounts', {
|
|
6344
6345
|
selector: {
|
|
6345
6346
|
docType: 'spam_whitelist',
|
|
6346
6347
|
email,
|
|
@@ -6562,7 +6563,7 @@ const get_chat_picture_cache = async function (uid, docType, key) {
|
|
|
6562
6563
|
|
|
6563
6564
|
if (words.length < 3) {
|
|
6564
6565
|
// Direct exact match for short names
|
|
6565
|
-
const ret = await
|
|
6566
|
+
const ret = await db_module.find_couch_query('xuda_cache', {
|
|
6566
6567
|
selector: { docType, key: key.toLowerCase().trim() },
|
|
6567
6568
|
limit: 1,
|
|
6568
6569
|
});
|
|
@@ -6593,7 +6594,7 @@ const get_chat_picture_cache = async function (uid, docType, key) {
|
|
|
6593
6594
|
limit: 1,
|
|
6594
6595
|
};
|
|
6595
6596
|
|
|
6596
|
-
const ret = await
|
|
6597
|
+
const ret = await db_module.find_couch_query('xuda_cache', query);
|
|
6597
6598
|
|
|
6598
6599
|
if (ret.docs.length > 0) {
|
|
6599
6600
|
account_ms.save_cache_hit(ret.docs[0]._id);
|
|
@@ -10726,11 +10727,11 @@ export const open_ai_alive_check = async function () {};
|
|
|
10726
10727
|
|
|
10727
10728
|
// let account_profile_info;
|
|
10728
10729
|
// try {
|
|
10729
|
-
// account_profile_info = await
|
|
10730
|
+
// account_profile_info = await db_module.get_memcached_doc(key);
|
|
10730
10731
|
// } catch (error) {
|
|
10731
10732
|
// try {
|
|
10732
10733
|
// account_profile_info = await account_ms.get_active_account_profile_info(uid);
|
|
10733
|
-
//
|
|
10734
|
+
// db_module.set_memcached_doc(key, account_profile_info);
|
|
10734
10735
|
// } catch (error) {}
|
|
10735
10736
|
// }
|
|
10736
10737
|
|