ttc-origin-server 0.9.3 → 0.9.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.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -15
- package/dist/index.js.map +1 -1
- package/dist/util/cache.d.ts +4 -0
- package/dist/util/cache.d.ts.map +1 -0
- package/dist/util/cache.js +46 -0
- package/dist/util/cache.js.map +1 -0
- package/dist/util/client.d.ts +25 -26
- package/dist/util/client.d.ts.map +1 -1
- package/dist/util/client.js +117 -104
- package/dist/util/client.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export declare const runServer: (config: {
|
|
|
16
16
|
credentials: CredentialSpecification[];
|
|
17
17
|
modifyable?: boolean;
|
|
18
18
|
authCb: (req: any) => Promise<boolean>;
|
|
19
|
+
cacheClient?: boolean;
|
|
20
|
+
onPing?: (origin: string) => Promise<void>;
|
|
19
21
|
app?: express.Express;
|
|
20
22
|
}) => void;
|
|
21
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,CAAA;AAGrB,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,gBAAgB,GAAG,SAY7D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,EAAE,SAAS;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAA;CACxB,QAMA,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,GAAG,MAAM,KAAG,gBA0B9C,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,CAAA;AAGrB,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,gBAAgB,GAAG,SAY7D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,EAAE,SAAS;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAA;CACxB,QAMA,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,GAAG,MAAM,KAAG,gBA0B9C,CAAA;AA2BD,eAAO,MAAM,SAAS,GAAI,QAAQ;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;CACxB,SAoGA,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -20,10 +20,10 @@ const getClientById = (id) => {
|
|
|
20
20
|
return {
|
|
21
21
|
id: id,
|
|
22
22
|
message: async (message) => {
|
|
23
|
-
await client.
|
|
23
|
+
await client.message(message);
|
|
24
24
|
},
|
|
25
25
|
trigger: async (triggerMessage) => {
|
|
26
|
-
await client.
|
|
26
|
+
await client.trigger(triggerMessage);
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
};
|
|
@@ -56,23 +56,14 @@ const getClient = (args) => {
|
|
|
56
56
|
return {
|
|
57
57
|
id: assistantId,
|
|
58
58
|
message: async (message) => {
|
|
59
|
-
await client.
|
|
59
|
+
await client.message(message);
|
|
60
60
|
},
|
|
61
61
|
trigger: async (triggerMessage) => {
|
|
62
|
-
await client.
|
|
62
|
+
await client.trigger(triggerMessage);
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
};
|
|
66
66
|
exports.getClient = getClient;
|
|
67
|
-
const getApiKey = (authKey, moduleName) => {
|
|
68
|
-
try {
|
|
69
|
-
const keys = JSON.parse(authKey);
|
|
70
|
-
return keys[moduleName];
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
return authKey;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
67
|
const getModules = (methods) => {
|
|
77
68
|
const modules = new Set();
|
|
78
69
|
methods.forEach((method) => {
|
|
@@ -83,6 +74,19 @@ const getModules = (methods) => {
|
|
|
83
74
|
});
|
|
84
75
|
return Array.from(modules);
|
|
85
76
|
};
|
|
77
|
+
const pingClients = async (port) => {
|
|
78
|
+
const clients = client_1.allHostUri.values();
|
|
79
|
+
const localUri = `http://localhost:${port}/rpc/ping`;
|
|
80
|
+
for (const client of clients) {
|
|
81
|
+
try {
|
|
82
|
+
await fetch(`${client}?url=${localUri}`, {
|
|
83
|
+
method: 'GET',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
86
90
|
const runServer = (config) => {
|
|
87
91
|
const { modules, port, app } = config;
|
|
88
92
|
const appInstance = app || (0, express_1.default)();
|
|
@@ -114,10 +118,10 @@ const runServer = (config) => {
|
|
|
114
118
|
const actionClient = {
|
|
115
119
|
id: data.id,
|
|
116
120
|
message: async (message) => {
|
|
117
|
-
await clientInstance.
|
|
121
|
+
await clientInstance.message(message);
|
|
118
122
|
},
|
|
119
123
|
trigger: async (triggerMessage) => {
|
|
120
|
-
await clientInstance.
|
|
124
|
+
await clientInstance.trigger(triggerMessage);
|
|
121
125
|
}
|
|
122
126
|
};
|
|
123
127
|
const modules = getModules(keys);
|
|
@@ -151,6 +155,14 @@ const runServer = (config) => {
|
|
|
151
155
|
functions: finalFunctions
|
|
152
156
|
});
|
|
153
157
|
});
|
|
158
|
+
appInstance.get('/rpc/ping', (req, res) => {
|
|
159
|
+
const queryParams = req.query;
|
|
160
|
+
const originUri = queryParams.url;
|
|
161
|
+
// that's the server that is requesting, we simply
|
|
162
|
+
if (config.onPing) {
|
|
163
|
+
config.onPing(originUri);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
154
166
|
ttc_rpc_1.ttc.init({
|
|
155
167
|
app: appInstance,
|
|
156
168
|
modules: modules,
|
|
@@ -163,6 +175,9 @@ const runServer = (config) => {
|
|
|
163
175
|
},
|
|
164
176
|
socketCb: async (socket) => { }
|
|
165
177
|
}).listen(port);
|
|
178
|
+
if (config.cacheClient) {
|
|
179
|
+
pingClients(config.port);
|
|
180
|
+
}
|
|
166
181
|
};
|
|
167
182
|
exports.runServer = runServer;
|
|
168
183
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA0E;AAC1E,sDAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/util/cache.ts"],"names":[],"mappings":"AAgBA,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAI7D;AAED,wBAAgB,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAavC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.saveHosts = saveHosts;
|
|
7
|
+
exports.loadHosts = loadHosts;
|
|
8
|
+
exports.clearHostsCache = clearHostsCache;
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const HOME_DIR = os_1.default.homedir();
|
|
13
|
+
const CACHE_DIR = path_1.default.join(HOME_DIR, '.tentarcles-cli');
|
|
14
|
+
const HOSTS_FILE = path_1.default.join(CACHE_DIR, 'hosts.json');
|
|
15
|
+
// Ensure cache directory exists
|
|
16
|
+
function ensureCacheDir() {
|
|
17
|
+
if (!fs_1.default.existsSync(CACHE_DIR)) {
|
|
18
|
+
fs_1.default.mkdirSync(CACHE_DIR, { recursive: true });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function saveHosts(hosts) {
|
|
22
|
+
ensureCacheDir();
|
|
23
|
+
const hostsArray = Array.from(hosts);
|
|
24
|
+
fs_1.default.writeFileSync(HOSTS_FILE, JSON.stringify(hostsArray, null, 2), 'utf8');
|
|
25
|
+
}
|
|
26
|
+
function loadHosts() {
|
|
27
|
+
ensureCacheDir();
|
|
28
|
+
if (!fs_1.default.existsSync(HOSTS_FILE)) {
|
|
29
|
+
return new Set();
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const data = fs_1.default.readFileSync(HOSTS_FILE, 'utf8');
|
|
33
|
+
const hostsArray = JSON.parse(data);
|
|
34
|
+
return new Set(hostsArray);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error('Failed to load hosts cache:', error);
|
|
38
|
+
return new Set();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function clearHostsCache() {
|
|
42
|
+
if (fs_1.default.existsSync(HOSTS_FILE)) {
|
|
43
|
+
fs_1.default.unlinkSync(HOSTS_FILE);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/util/cache.ts"],"names":[],"mappings":";;;;;AAgBA,8BAIC;AAED,8BAaC;AAED,0CAIC;AAzCD,4CAAoB;AACpB,gDAAwB;AAExB,4CAAoB;AAEpB,MAAM,QAAQ,GAAG,YAAE,CAAC,OAAO,EAAE,CAAC;AAC9B,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEtD,gCAAgC;AAChC,SAAS,cAAc;IACrB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CAAC,KAA6B;IACrD,cAAc,EAAE,CAAC;IACjB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,SAAS;IACvB,cAAc,EAAE,CAAC;IACjB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;QAChD,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
package/dist/util/client.d.ts
CHANGED
|
@@ -5,34 +5,33 @@ export type rpcResponseType<T = any> = {
|
|
|
5
5
|
status: 'success' | 'error';
|
|
6
6
|
data?: T;
|
|
7
7
|
};
|
|
8
|
+
export declare let allHostUri: Set<string>;
|
|
8
9
|
export declare class RPCClient {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
token_cb: () => Promise<string>;
|
|
11
|
+
url: string;
|
|
12
|
+
_scid: string;
|
|
13
|
+
socket: Socket;
|
|
14
|
+
transport: 'http' | 'socket';
|
|
14
15
|
constructor(url: string, token_cb: () => Promise<string>, socket_cb?: (socket: Socket) => Promise<any>);
|
|
15
16
|
seTransport(tp: 'http' | 'socket'): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
connectSocket
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
trigger(trigger: string): Promise<rpcResponseType<any>>;
|
|
36
|
-
};
|
|
17
|
+
private invokeSocket;
|
|
18
|
+
private apiCallback;
|
|
19
|
+
private invokeHttp;
|
|
20
|
+
private mediaCallback;
|
|
21
|
+
private connectSocket;
|
|
22
|
+
/**
|
|
23
|
+
* Send a message to the assistant, message will appear in chathistory
|
|
24
|
+
*
|
|
25
|
+
* @param {message: string}
|
|
26
|
+
* @returns {Promise<rpcResponseType<any>>}
|
|
27
|
+
*/
|
|
28
|
+
message(message: string): Promise<rpcResponseType<any>>;
|
|
29
|
+
/**
|
|
30
|
+
* Trigger an event on the assistant, event will not appear in chathistory
|
|
31
|
+
*
|
|
32
|
+
* @param {trigger: string}
|
|
33
|
+
* @returns {Promise<rpcResponseType<any>>}
|
|
34
|
+
*/
|
|
35
|
+
trigger(trigger: string): Promise<rpcResponseType<any>>;
|
|
37
36
|
}
|
|
38
37
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/util/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/util/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE3F,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,GAAG,IAAI;IACnC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;CACZ,CAAA;AAMD,eAAO,IAAI,UAAU,EAAE,GAAG,CAAC,MAAM,CAAe,CAAC;AAiCjD,qBAAa,SAAS;IAElB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,GAAG,SAA+B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAU;gBAE1B,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;IAQtG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ;IAIjC,OAAO,CAAC,YAAY,CAcnB;IAED,OAAO,CAAC,WAAW,CAMlB;IAED,OAAO,CAAC,UAAU,CAoBjB;IAED,OAAO,CAAC,aAAa,CAwBpB;YAEa,aAAa;IAe3B;;;;;MAKE;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAG7D;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;CAIhE"}
|
package/dist/util/client.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.RPCClient = void 0;
|
|
3
|
+
exports.RPCClient = exports.allHostUri = void 0;
|
|
5
4
|
const socket_io_client_1 = require("socket.io-client");
|
|
6
5
|
let _Scid_server_cache = '';
|
|
6
|
+
const cache_1 = require("./cache");
|
|
7
|
+
exports.allHostUri = (0, cache_1.loadHosts)();
|
|
8
|
+
let currentUriLen = exports.allHostUri.size;
|
|
9
|
+
// Auto-save every 10 seconds if changed
|
|
10
|
+
setInterval(() => {
|
|
11
|
+
if (exports.allHostUri.size !== currentUriLen) {
|
|
12
|
+
(0, cache_1.saveHosts)(exports.allHostUri);
|
|
13
|
+
currentUriLen = exports.allHostUri.size;
|
|
14
|
+
}
|
|
15
|
+
}, 10000);
|
|
7
16
|
const uuid = () => {
|
|
8
17
|
const key = 'ttc_scid';
|
|
9
18
|
let sid = (typeof localStorage !== 'undefined') ? localStorage.getItem(key) : _Scid_server_cache;
|
|
@@ -18,129 +27,133 @@ const uuid = () => {
|
|
|
18
27
|
}
|
|
19
28
|
return sid;
|
|
20
29
|
};
|
|
30
|
+
const saveClientUri = (url) => {
|
|
31
|
+
exports.allHostUri.add(url);
|
|
32
|
+
// Immediate save on new addition
|
|
33
|
+
(0, cache_1.saveHosts)(exports.allHostUri);
|
|
34
|
+
currentUriLen = exports.allHostUri.size;
|
|
35
|
+
};
|
|
21
36
|
class RPCClient {
|
|
22
37
|
constructor(url, token_cb, socket_cb) {
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
this.url = 'http://localhost:3000/rpc';
|
|
39
|
+
this.transport = 'http';
|
|
40
|
+
this.invokeSocket = async (method, params) => {
|
|
41
|
+
if (this.socket) {
|
|
42
|
+
this.socket.emit('function_call', { method, params });
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
this.socket.once('function_response', (response) => {
|
|
45
|
+
resolve(response);
|
|
46
|
+
});
|
|
47
|
+
// set a timeout for the response
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
reject(new Error('Socket API call timed out'));
|
|
50
|
+
}, 20000);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
this.apiCallback = async (method, params) => {
|
|
55
|
+
if (this.transport === 'http') {
|
|
56
|
+
return await this.invokeHttp(method, params);
|
|
57
|
+
}
|
|
58
|
+
else if (this.transport === 'socket') {
|
|
59
|
+
return await this.invokeSocket(method, params);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
this.invokeHttp = async (method, params) => {
|
|
63
|
+
try {
|
|
64
|
+
if (!this.token_cb)
|
|
65
|
+
throw new Error('this.token_cb is not set');
|
|
66
|
+
const token = await this.token_cb();
|
|
67
|
+
const response = await fetch(`${this.url}/rpc`, {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
headers: {
|
|
70
|
+
'Content-Type': 'application/json',
|
|
71
|
+
Authorization: `Bearer ${token}:${this._scid}`,
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify({ method, params })
|
|
74
|
+
});
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
77
|
+
}
|
|
78
|
+
return await response.json();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error("Error calling API:", error);
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
this.mediaCallback = async (method, params, file) => {
|
|
86
|
+
try {
|
|
87
|
+
if (!this.token_cb)
|
|
88
|
+
throw new Error('this.token_cb is not set');
|
|
89
|
+
const token = await this.token_cb();
|
|
90
|
+
const formData = new FormData();
|
|
91
|
+
formData.append('method', method);
|
|
92
|
+
if (params)
|
|
93
|
+
formData.append('params', JSON.stringify(params));
|
|
94
|
+
if (file)
|
|
95
|
+
formData.append('file', file);
|
|
96
|
+
const response = await fetch(`${this.url}/rpc`, {
|
|
97
|
+
method: 'POST',
|
|
98
|
+
headers: {
|
|
99
|
+
Authorization: `Bearer ${token}:${this._scid}`,
|
|
100
|
+
},
|
|
101
|
+
body: formData
|
|
102
|
+
});
|
|
103
|
+
if (!response.ok) {
|
|
104
|
+
throw new Error(`Media API error: ${response.status} ${response.statusText}`);
|
|
105
|
+
}
|
|
106
|
+
return await response.json();
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error("Error calling Media API:", error);
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
42
112
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
113
|
+
this.token_cb = token_cb;
|
|
114
|
+
this.url = url;
|
|
115
|
+
this._scid = uuid();
|
|
46
116
|
if (socket_cb)
|
|
47
117
|
this.connectSocket(url, socket_cb);
|
|
118
|
+
saveClientUri(url);
|
|
48
119
|
}
|
|
49
120
|
seTransport(tp) {
|
|
50
|
-
|
|
121
|
+
this.transport = tp;
|
|
51
122
|
}
|
|
52
123
|
async connectSocket(url, socket_cb) {
|
|
53
124
|
try {
|
|
54
125
|
const socket = (0, socket_io_client_1.io)(url, {
|
|
55
126
|
auth: {
|
|
56
|
-
authorization: await
|
|
57
|
-
_scid:
|
|
127
|
+
authorization: await this.token_cb(),
|
|
128
|
+
_scid: this._scid
|
|
58
129
|
}
|
|
59
130
|
});
|
|
60
131
|
if (socket_cb)
|
|
61
132
|
socket_cb(socket);
|
|
62
|
-
|
|
133
|
+
this.socket = socket;
|
|
63
134
|
}
|
|
64
135
|
catch (error) {
|
|
65
136
|
console.error('Error initializing socket:', error.message);
|
|
66
137
|
}
|
|
67
138
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return new Promise((resolve, reject) => {
|
|
77
|
-
_a.socket.once('function_response', (response) => {
|
|
78
|
-
resolve(response);
|
|
79
|
-
});
|
|
80
|
-
// set a timeout for the response
|
|
81
|
-
setTimeout(() => {
|
|
82
|
-
reject(new Error('Socket API call timed out'));
|
|
83
|
-
}, 20000);
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
RPCClient.apiCallback = async (method, params) => {
|
|
88
|
-
if (_a.transport === 'http') {
|
|
89
|
-
return await _a.invokeHttp(method, params);
|
|
139
|
+
/**
|
|
140
|
+
* Send a message to the assistant, message will appear in chathistory
|
|
141
|
+
*
|
|
142
|
+
* @param {message: string}
|
|
143
|
+
* @returns {Promise<rpcResponseType<any>>}
|
|
144
|
+
*/
|
|
145
|
+
async message(message) {
|
|
146
|
+
return await this.apiCallback('TentarclesCLI.message', [message]);
|
|
90
147
|
}
|
|
91
|
-
|
|
92
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Trigger an event on the assistant, event will not appear in chathistory
|
|
150
|
+
*
|
|
151
|
+
* @param {trigger: string}
|
|
152
|
+
* @returns {Promise<rpcResponseType<any>>}
|
|
153
|
+
*/
|
|
154
|
+
async trigger(trigger) {
|
|
155
|
+
return await this.apiCallback('TentarclesCLI.trigger', [trigger]);
|
|
93
156
|
}
|
|
94
|
-
}
|
|
95
|
-
RPCClient
|
|
96
|
-
try {
|
|
97
|
-
if (!_a.token_cb)
|
|
98
|
-
throw new Error('RPCClient.token_cb is not set');
|
|
99
|
-
const token = await _a.token_cb();
|
|
100
|
-
const response = await fetch(`${_a.url}/rpc`, {
|
|
101
|
-
method: 'POST',
|
|
102
|
-
headers: {
|
|
103
|
-
'Content-Type': 'application/json',
|
|
104
|
-
Authorization: `Bearer ${token}:${_a._scid}`,
|
|
105
|
-
},
|
|
106
|
-
body: JSON.stringify({ method, params })
|
|
107
|
-
});
|
|
108
|
-
if (!response.ok) {
|
|
109
|
-
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
110
|
-
}
|
|
111
|
-
return await response.json();
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
console.error("Error calling API:", error);
|
|
115
|
-
throw error;
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
RPCClient.mediaCallback = async (method, params, file) => {
|
|
119
|
-
try {
|
|
120
|
-
if (!_a.token_cb)
|
|
121
|
-
throw new Error('RPCClient.token_cb is not set');
|
|
122
|
-
const token = await _a.token_cb();
|
|
123
|
-
const formData = new FormData();
|
|
124
|
-
formData.append('method', method);
|
|
125
|
-
if (params)
|
|
126
|
-
formData.append('params', JSON.stringify(params));
|
|
127
|
-
if (file)
|
|
128
|
-
formData.append('file', file);
|
|
129
|
-
const response = await fetch(`${_a.url}/rpc`, {
|
|
130
|
-
method: 'POST',
|
|
131
|
-
headers: {
|
|
132
|
-
Authorization: `Bearer ${token}:${_a._scid}`,
|
|
133
|
-
},
|
|
134
|
-
body: formData
|
|
135
|
-
});
|
|
136
|
-
if (!response.ok) {
|
|
137
|
-
throw new Error(`Media API error: ${response.status} ${response.statusText}`);
|
|
138
|
-
}
|
|
139
|
-
return await response.json();
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error("Error calling Media API:", error);
|
|
143
|
-
throw error;
|
|
144
|
-
}
|
|
145
|
-
};
|
|
157
|
+
}
|
|
158
|
+
exports.RPCClient = RPCClient;
|
|
146
159
|
//# sourceMappingURL=client.js.map
|
package/dist/util/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/util/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/util/client.ts"],"names":[],"mappings":"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"}
|