@peopl-health/nexus 4.4.3 → 4.4.5
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.
|
@@ -10,28 +10,20 @@ const { createAssistant, addMsgAssistant, switchAssistant } = require('../servic
|
|
|
10
10
|
|
|
11
11
|
const { sendMessage, processInstruction, processSystemMessage } = require('../core/NexusMessaging');
|
|
12
12
|
|
|
13
|
-
const
|
|
14
|
-
const { code } = req.body;
|
|
15
|
-
const value = req.body[field];
|
|
13
|
+
const stopAssistantController = async (req, res) => {
|
|
14
|
+
const { code, stop } = req.body;
|
|
16
15
|
if (!code) return res.status(400).json({ success: false, error: 'Code is required' });
|
|
17
16
|
|
|
17
|
+
const stopped = typeof stop === 'string' ? stop === 'true' : !!stop;
|
|
18
18
|
try {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
return res.status(200).json({ success: true, message: successMsg });
|
|
19
|
+
await switchThreadStoppedStatus(code, stopped);
|
|
20
|
+
return res.status(200).json({ success: true, message: stopped ? 'Assistant stopped' : 'Assistant resumed' });
|
|
23
21
|
} catch (error) {
|
|
24
|
-
logger.error(
|
|
25
|
-
return res.status(500).json({ success: false, error:
|
|
22
|
+
logger.error('[AssistantController] Failed to stop assistant', { error: error.message, code });
|
|
23
|
+
return res.status(500).json({ success: false, error: 'Failed to stop assistant' });
|
|
26
24
|
}
|
|
27
25
|
};
|
|
28
26
|
|
|
29
|
-
const activeAssistantController = (req, res) =>
|
|
30
|
-
_updateThreadFlag(req, res, 'active', 'Assistant activated', 'Failed to activate assistant');
|
|
31
|
-
|
|
32
|
-
const stopAssistantController = (req, res) =>
|
|
33
|
-
_updateThreadFlag(req, res, 'stop', 'Assistant stopped', 'Failed to stop assistant');
|
|
34
|
-
|
|
35
27
|
const addInsAssistantController = async (req, res) => {
|
|
36
28
|
const { code, instruction, triggeredBy } = req.body;
|
|
37
29
|
if (!code) return res.status(400).json({ success: false, error: 'Code is required' });
|
|
@@ -124,7 +116,6 @@ const switchAssistantController = async (req, res) => {
|
|
|
124
116
|
};
|
|
125
117
|
|
|
126
118
|
module.exports = {
|
|
127
|
-
activeAssistantController,
|
|
128
119
|
addInsAssistantController,
|
|
129
120
|
addMsgAssistantController,
|
|
130
121
|
createAssistantController,
|
|
@@ -3,6 +3,7 @@ const EventEmitter = require('events');
|
|
|
3
3
|
const { airtable } = require('../config/airtableConfig');
|
|
4
4
|
const llmConfigModule = require('../config/llmConfig');
|
|
5
5
|
const { connect } = require('../config/mongoConfig');
|
|
6
|
+
const { setMetaConfig } = require('../config/metaConfig');
|
|
6
7
|
|
|
7
8
|
const { logger } = require('../utils/logger');
|
|
8
9
|
|
|
@@ -101,7 +102,7 @@ class NexusMessaging {
|
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
async initialize(options = {}) {
|
|
104
|
-
const { provider, providerConfig, mongoUri, messageStorage, llm, llmConfig } = options;
|
|
105
|
+
const { provider, providerConfig, mongoUri, messageStorage, llm, llmConfig, meta } = options;
|
|
105
106
|
|
|
106
107
|
if (mongoUri || process.env.MONGODB_URI) {
|
|
107
108
|
await this.initializeMongoDB(mongoUri);
|
|
@@ -112,6 +113,9 @@ class NexusMessaging {
|
|
|
112
113
|
if (llm && llmConfig) {
|
|
113
114
|
this.initializeLLM(llm, llmConfig);
|
|
114
115
|
}
|
|
116
|
+
if (meta) {
|
|
117
|
+
setMetaConfig(meta);
|
|
118
|
+
}
|
|
115
119
|
if (messageStorage) {
|
|
116
120
|
this.setMessageStorage(messageStorage);
|
|
117
121
|
}
|
package/lib/routes/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
|
|
3
3
|
const assistantRouteDefinitions = {
|
|
4
|
-
'POST /
|
|
5
|
-
'POST /add-instruction': 'addInsAssistantController',
|
|
4
|
+
'POST /add-instruction': 'addInsAssistantController',
|
|
6
5
|
'POST /add-msg': 'addMsgAssistantController',
|
|
7
6
|
'POST /create': 'createAssistantController',
|
|
8
7
|
'POST /info': 'getInfoAssistantController',
|
|
@@ -126,7 +125,6 @@ const prescriptionController = require('../controllers/prescriptionController');
|
|
|
126
125
|
|
|
127
126
|
const builtInControllers = {
|
|
128
127
|
// Assistant controllers
|
|
129
|
-
activeAssistantController: assistantController.activeAssistantController,
|
|
130
128
|
addInsAssistantController: assistantController.addInsAssistantController,
|
|
131
129
|
addMsgAssistantController: assistantController.addMsgAssistantController,
|
|
132
130
|
createAssistantController: assistantController.createAssistantController,
|
|
@@ -5,16 +5,8 @@ const { getMetaConfig } = require('../config/metaConfig');
|
|
|
5
5
|
const { logger } = require('../utils/logger');
|
|
6
6
|
const { jsonStringifyWithUnicodeEscapes } = require('../utils/jsonUtils');
|
|
7
7
|
|
|
8
|
-
const requireConfig = () => {
|
|
9
|
-
const config = getMetaConfig();
|
|
10
|
-
if (!config.accessToken || !config.wabaId) {
|
|
11
|
-
throw new Error('Meta API not configured. Call setMetaConfig() first with accessToken and wabaId.');
|
|
12
|
-
}
|
|
13
|
-
return config;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
8
|
const getApiUrl = (path) => {
|
|
17
|
-
const config =
|
|
9
|
+
const config = getMetaConfig();
|
|
18
10
|
return `https://graph.facebook.com/${config.apiVersion}/${path}`;
|
|
19
11
|
};
|
|
20
12
|
|
|
@@ -27,7 +19,7 @@ const errorResult = (error) => ({
|
|
|
27
19
|
});
|
|
28
20
|
|
|
29
21
|
async function createFlowInMeta(flowJSON, name, category = 'OTHER') {
|
|
30
|
-
const config =
|
|
22
|
+
const config = getMetaConfig();
|
|
31
23
|
const categories = Array.isArray(category) ? category : [category];
|
|
32
24
|
|
|
33
25
|
logger.info('[createFlowInMeta] Creating', { name, categories });
|
|
@@ -58,7 +50,7 @@ async function createFlowInMeta(flowJSON, name, category = 'OTHER') {
|
|
|
58
50
|
}
|
|
59
51
|
|
|
60
52
|
async function setFlowEndpoint(flowId, endpointUri, applicationId) {
|
|
61
|
-
const config =
|
|
53
|
+
const config = getMetaConfig();
|
|
62
54
|
|
|
63
55
|
try {
|
|
64
56
|
const response = await axios.post(getApiUrl(flowId), {
|
|
@@ -78,7 +70,7 @@ async function setFlowEndpoint(flowId, endpointUri, applicationId) {
|
|
|
78
70
|
}
|
|
79
71
|
|
|
80
72
|
async function getFlowFromMeta(flowId) {
|
|
81
|
-
const config =
|
|
73
|
+
const config = getMetaConfig();
|
|
82
74
|
|
|
83
75
|
try {
|
|
84
76
|
const response = await axios.get(getApiUrl(flowId), {
|
|
@@ -101,7 +93,7 @@ async function getFlowFromMeta(flowId) {
|
|
|
101
93
|
}
|
|
102
94
|
|
|
103
95
|
async function publishFlowInMeta(flowId) {
|
|
104
|
-
const config =
|
|
96
|
+
const config = getMetaConfig();
|
|
105
97
|
|
|
106
98
|
try {
|
|
107
99
|
const current = await getFlowFromMeta(flowId);
|