@ai-support-agent/cli 0.0.2-beta.0 → 0.0.2
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/agent-runner.d.ts +3 -5
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +20 -121
- package/dist/agent-runner.js.map +1 -1
- package/dist/api-client.d.ts +8 -5
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +39 -8
- package/dist/api-client.js.map +1 -1
- package/dist/appsync-subscriber.d.ts +36 -0
- package/dist/appsync-subscriber.d.ts.map +1 -0
- package/dist/appsync-subscriber.js +234 -0
- package/dist/appsync-subscriber.js.map +1 -0
- package/dist/chat-mode-detector.d.ts +19 -0
- package/dist/chat-mode-detector.d.ts.map +1 -0
- package/dist/chat-mode-detector.js +83 -0
- package/dist/chat-mode-detector.js.map +1 -0
- package/dist/cli/auth-commands.d.ts +3 -0
- package/dist/cli/auth-commands.d.ts.map +1 -0
- package/dist/cli/auth-commands.js +123 -0
- package/dist/cli/auth-commands.js.map +1 -0
- package/dist/cli/status-command.d.ts +5 -0
- package/dist/cli/status-command.d.ts.map +1 -0
- package/dist/cli/status-command.js +57 -0
- package/dist/cli/status-command.js.map +1 -0
- package/dist/cli/validators.d.ts +4 -0
- package/dist/cli/validators.d.ts.map +1 -0
- package/dist/cli/validators.js +26 -0
- package/dist/cli/validators.js.map +1 -0
- package/dist/command-executor.d.ts +2 -2
- package/dist/command-executor.d.ts.map +1 -1
- package/dist/command-executor.js +15 -303
- package/dist/command-executor.js.map +1 -1
- package/dist/commands/api-chat-executor.d.ts +8 -0
- package/dist/commands/api-chat-executor.d.ts.map +1 -0
- package/dist/commands/api-chat-executor.js +117 -0
- package/dist/commands/api-chat-executor.js.map +1 -0
- package/dist/commands/chat-executor.d.ts +11 -0
- package/dist/commands/chat-executor.d.ts.map +1 -0
- package/dist/commands/chat-executor.js +127 -0
- package/dist/commands/chat-executor.js.map +1 -0
- package/dist/commands/file-executor.d.ts +5 -0
- package/dist/commands/file-executor.d.ts.map +1 -0
- package/dist/commands/file-executor.js +97 -0
- package/dist/commands/file-executor.js.map +1 -0
- package/dist/commands/index.d.ts +16 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +80 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/process-executor.d.ts +4 -0
- package/dist/commands/process-executor.d.ts.map +1 -0
- package/dist/commands/process-executor.js +66 -0
- package/dist/commands/process-executor.js.map +1 -0
- package/dist/commands/shared-chat-utils.d.ts +20 -0
- package/dist/commands/shared-chat-utils.d.ts.map +1 -0
- package/dist/commands/shared-chat-utils.js +35 -0
- package/dist/commands/shared-chat-utils.js.map +1 -0
- package/dist/commands/shell-executor.d.ts +3 -0
- package/dist/commands/shell-executor.d.ts.map +1 -0
- package/dist/commands/shell-executor.js +125 -0
- package/dist/commands/shell-executor.js.map +1 -0
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +5 -0
- package/dist/config-manager.js.map +1 -1
- package/dist/constants.d.ts +5 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +44 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js +9 -176
- package/dist/index.js.map +1 -1
- package/dist/project-agent.d.ts +32 -0
- package/dist/project-agent.d.ts.map +1 -0
- package/dist/project-agent.js +296 -0
- package/dist/project-agent.js.map +1 -0
- package/dist/security.d.ts +13 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +123 -0
- package/dist/security.js.map +1 -0
- package/dist/system-info.d.ts +4 -0
- package/dist/system-info.d.ts.map +1 -0
- package/dist/system-info.js +60 -0
- package/dist/system-info.js.map +1 -0
- package/dist/types.d.ts +67 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
package/dist/agent-runner.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ApiClient } from './api-client';
|
|
2
1
|
import { type AutoUpdaterHandle } from './auto-updater';
|
|
3
|
-
import type { ProjectRegistration, ReleaseChannel
|
|
2
|
+
import type { AgentChatMode, ProjectRegistration, ReleaseChannel } from './types';
|
|
4
3
|
export interface RunnerOptions {
|
|
5
4
|
token?: string;
|
|
6
5
|
apiUrl?: string;
|
|
@@ -10,14 +9,13 @@ export interface RunnerOptions {
|
|
|
10
9
|
autoUpdate?: boolean;
|
|
11
10
|
updateChannel?: ReleaseChannel;
|
|
12
11
|
}
|
|
13
|
-
export declare function getSystemInfo(): SystemInfo;
|
|
14
|
-
export declare function getLocalIpAddress(): string | undefined;
|
|
15
12
|
export declare function startProjectAgent(project: ProjectRegistration, agentId: string, options: {
|
|
16
13
|
pollInterval: number;
|
|
17
14
|
heartbeatInterval: number;
|
|
15
|
+
agentChatMode?: AgentChatMode;
|
|
18
16
|
}): {
|
|
19
17
|
stop: () => void;
|
|
20
|
-
client: ApiClient;
|
|
18
|
+
client: import('./api-client').ApiClient;
|
|
21
19
|
};
|
|
22
20
|
export declare function setupShutdownHandlers(agents: {
|
|
23
21
|
stop: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAoB,MAAM,gBAAgB,CAAA;AAOzE,OAAO,KAAK,EAAE,aAAa,EAAoB,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGnG,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,cAAc,CAAA;CAC/B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,GACA;IAAE,IAAI,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,cAAc,EAAE,SAAS,CAAA;CAAE,CAOhE;AAYD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,EAAE,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAUN;AA2CD,wBAAsB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGtE"}
|
package/dist/agent-runner.js
CHANGED
|
@@ -33,133 +33,24 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getSystemInfo = getSystemInfo;
|
|
37
|
-
exports.getLocalIpAddress = getLocalIpAddress;
|
|
38
36
|
exports.startProjectAgent = startProjectAgent;
|
|
39
37
|
exports.setupShutdownHandlers = setupShutdownHandlers;
|
|
40
38
|
exports.startAgent = startAgent;
|
|
41
39
|
const os = __importStar(require("os"));
|
|
42
|
-
const api_client_1 = require("./api-client");
|
|
43
40
|
const auto_updater_1 = require("./auto-updater");
|
|
44
41
|
const constants_1 = require("./constants");
|
|
45
|
-
const command_executor_1 = require("./command-executor");
|
|
46
42
|
const config_manager_1 = require("./config-manager");
|
|
47
43
|
const i18n_1 = require("./i18n");
|
|
48
44
|
const logger_1 = require("./logger");
|
|
45
|
+
const project_agent_1 = require("./project-agent");
|
|
46
|
+
const system_info_1 = require("./system-info");
|
|
49
47
|
const utils_1 = require("./utils");
|
|
50
|
-
function getSystemInfo() {
|
|
51
|
-
const cpus = os.cpus();
|
|
52
|
-
return {
|
|
53
|
-
platform: os.platform(),
|
|
54
|
-
arch: os.arch(),
|
|
55
|
-
cpuUsage: cpus.length > 0 ? (os.loadavg()[0] / cpus.length) * 100 : 0,
|
|
56
|
-
memoryUsage: (1 - os.freemem() / os.totalmem()) * 100,
|
|
57
|
-
uptime: os.uptime(),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function getLocalIpAddress() {
|
|
61
|
-
const interfaces = os.networkInterfaces();
|
|
62
|
-
for (const name of Object.keys(interfaces)) {
|
|
63
|
-
for (const iface of interfaces[name] ?? []) {
|
|
64
|
-
if (iface.family === 'IPv4' && !iface.internal) {
|
|
65
|
-
return iface.address;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
48
|
function startProjectAgent(project, agentId, options) {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
let heartbeatTimer = null;
|
|
75
|
-
let pollTimer = null;
|
|
76
|
-
let processing = false;
|
|
77
|
-
// 1. Register
|
|
78
|
-
const registerAndStart = async () => {
|
|
79
|
-
try {
|
|
80
|
-
const result = await client.register({
|
|
81
|
-
agentId,
|
|
82
|
-
hostname: os.hostname(),
|
|
83
|
-
os: os.platform(),
|
|
84
|
-
arch: os.arch(),
|
|
85
|
-
ipAddress: getLocalIpAddress(),
|
|
86
|
-
});
|
|
87
|
-
logger_1.logger.success((0, i18n_1.t)('runner.registered', { prefix, agentId: result.agentId }));
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
logger_1.logger.error((0, i18n_1.t)('runner.registerFailed', { prefix, message: (0, utils_1.getErrorMessage)(error) }));
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
// 2. Heartbeat loop
|
|
94
|
-
const sendHeartbeat = async () => {
|
|
95
|
-
try {
|
|
96
|
-
await client.heartbeat(agentId, getSystemInfo());
|
|
97
|
-
logger_1.logger.debug(`${prefix} Heartbeat sent`);
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
logger_1.logger.warn((0, i18n_1.t)('runner.heartbeatFailed', { prefix, message: (0, utils_1.getErrorMessage)(error) }));
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
heartbeatTimer = setInterval(() => {
|
|
104
|
-
void sendHeartbeat();
|
|
105
|
-
}, options.heartbeatInterval);
|
|
106
|
-
void sendHeartbeat();
|
|
107
|
-
// 3. Command polling loop
|
|
108
|
-
const pollCommands = async () => {
|
|
109
|
-
if (processing)
|
|
110
|
-
return;
|
|
111
|
-
processing = true;
|
|
112
|
-
try {
|
|
113
|
-
const pending = await client.getPendingCommands();
|
|
114
|
-
for (const cmd of pending) {
|
|
115
|
-
logger_1.logger.info((0, i18n_1.t)('runner.commandReceived', { prefix, type: cmd.type, commandId: cmd.commandId }));
|
|
116
|
-
try {
|
|
117
|
-
const detail = await client.getCommand(cmd.commandId);
|
|
118
|
-
const result = await (0, command_executor_1.executeCommand)(detail.type, detail.payload);
|
|
119
|
-
await client.submitResult(cmd.commandId, result);
|
|
120
|
-
logger_1.logger.info((0, i18n_1.t)('runner.commandDone', {
|
|
121
|
-
prefix,
|
|
122
|
-
commandId: cmd.commandId,
|
|
123
|
-
result: result.success ? 'success' : 'failed',
|
|
124
|
-
}));
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
const message = (0, utils_1.getErrorMessage)(error);
|
|
128
|
-
logger_1.logger.error((0, i18n_1.t)('runner.commandError', { prefix, commandId: cmd.commandId, message }));
|
|
129
|
-
try {
|
|
130
|
-
await client.submitResult(cmd.commandId, {
|
|
131
|
-
success: false,
|
|
132
|
-
error: message,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
logger_1.logger.error((0, i18n_1.t)('runner.resultSendFailed', { prefix }));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
logger_1.logger.debug(`${prefix} Polling error: ${(0, utils_1.getErrorMessage)(error)}`);
|
|
143
|
-
}
|
|
144
|
-
finally {
|
|
145
|
-
processing = false;
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
pollTimer = setInterval(() => {
|
|
149
|
-
void pollCommands();
|
|
150
|
-
}, options.pollInterval);
|
|
151
|
-
};
|
|
152
|
-
registerAndStart().catch((error) => {
|
|
153
|
-
logger_1.logger.error((0, i18n_1.t)('runner.unexpectedError', { message: (0, utils_1.getErrorMessage)(error) }));
|
|
154
|
-
});
|
|
49
|
+
const agent = new project_agent_1.ProjectAgent(project, agentId, options, undefined, options.agentChatMode);
|
|
50
|
+
agent.start();
|
|
155
51
|
return {
|
|
156
|
-
stop: () =>
|
|
157
|
-
|
|
158
|
-
clearInterval(heartbeatTimer);
|
|
159
|
-
if (pollTimer)
|
|
160
|
-
clearInterval(pollTimer);
|
|
161
|
-
},
|
|
162
|
-
client,
|
|
52
|
+
stop: () => agent.stop(),
|
|
53
|
+
client: agent.getClient(),
|
|
163
54
|
};
|
|
164
55
|
}
|
|
165
56
|
function resolveIntervals(options) {
|
|
@@ -190,15 +81,15 @@ function resolveAutoUpdateConfig(options, config) {
|
|
|
190
81
|
...(options.updateChannel && { channel: options.updateChannel }),
|
|
191
82
|
};
|
|
192
83
|
}
|
|
193
|
-
function runSingleProject(project, agentId, options) {
|
|
84
|
+
function runSingleProject(project, agentId, options, agentChatMode) {
|
|
194
85
|
const { pollInterval, heartbeatInterval } = resolveIntervals(options);
|
|
195
86
|
logger_1.logger.info((0, i18n_1.t)('runner.starting'));
|
|
196
|
-
const agent = startProjectAgent(project, agentId, { pollInterval, heartbeatInterval });
|
|
87
|
+
const agent = startProjectAgent(project, agentId, { pollInterval, heartbeatInterval, agentChatMode });
|
|
197
88
|
const autoUpdateConfig = resolveAutoUpdateConfig(options);
|
|
198
89
|
let updater;
|
|
199
90
|
if (autoUpdateConfig.enabled) {
|
|
200
91
|
updater = (0, auto_updater_1.startAutoUpdater)([agent.client], autoUpdateConfig, () => agent.stop(), (error) => {
|
|
201
|
-
void agent.client.heartbeat(agentId, getSystemInfo(), error).catch(() => { });
|
|
92
|
+
void agent.client.heartbeat(agentId, (0, system_info_1.getSystemInfo)(), error).catch(() => { });
|
|
202
93
|
});
|
|
203
94
|
}
|
|
204
95
|
logger_1.logger.info((0, i18n_1.t)('runner.startedSingle', { pollInterval, heartbeatInterval }));
|
|
@@ -206,6 +97,14 @@ function runSingleProject(project, agentId, options) {
|
|
|
206
97
|
setupShutdownHandlers([agent], updater);
|
|
207
98
|
}
|
|
208
99
|
async function startAgent(options) {
|
|
100
|
+
// グローバルエラーハンドラ(非同期エラーでの静かなクラッシュを防止)
|
|
101
|
+
process.on('uncaughtException', (error) => {
|
|
102
|
+
logger_1.logger.error(`Uncaught exception: ${error.message}${error.stack ? `\n${error.stack}` : ''}`);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
});
|
|
105
|
+
process.on('unhandledRejection', (reason) => {
|
|
106
|
+
logger_1.logger.error(`Unhandled rejection: ${reason}`);
|
|
107
|
+
});
|
|
209
108
|
if (options.verbose) {
|
|
210
109
|
logger_1.logger.setVerbose(true);
|
|
211
110
|
}
|
|
@@ -227,7 +126,7 @@ async function startAgent(options) {
|
|
|
227
126
|
token: options.token,
|
|
228
127
|
apiUrl: options.apiUrl,
|
|
229
128
|
};
|
|
230
|
-
runSingleProject(project, agentId, options);
|
|
129
|
+
runSingleProject(project, agentId, options, config?.agentChatMode);
|
|
231
130
|
(0, config_manager_1.saveConfig)({ lastConnected: new Date().toISOString() });
|
|
232
131
|
return;
|
|
233
132
|
}
|
|
@@ -260,14 +159,14 @@ async function startAgent(options) {
|
|
|
260
159
|
const agentId = config.agentId ?? os.hostname();
|
|
261
160
|
const { pollInterval, heartbeatInterval } = resolveIntervals(options);
|
|
262
161
|
logger_1.logger.info((0, i18n_1.t)('runner.startingMulti', { count: projects.length }));
|
|
263
|
-
const agents = projects.map((project) => startProjectAgent(project, agentId, { pollInterval, heartbeatInterval }));
|
|
162
|
+
const agents = projects.map((project) => startProjectAgent(project, agentId, { pollInterval, heartbeatInterval, agentChatMode: config.agentChatMode }));
|
|
264
163
|
(0, config_manager_1.saveConfig)({ lastConnected: new Date().toISOString() });
|
|
265
164
|
const autoUpdateConfig = resolveAutoUpdateConfig(options, config);
|
|
266
165
|
let updater;
|
|
267
166
|
if (autoUpdateConfig.enabled) {
|
|
268
167
|
const clients = agents.map((a) => a.client);
|
|
269
168
|
updater = (0, auto_updater_1.startAutoUpdater)(clients, autoUpdateConfig, () => agents.forEach((a) => a.stop()), (error) => {
|
|
270
|
-
void agents[0]?.client.heartbeat(agentId, getSystemInfo(), error).catch(() => { });
|
|
169
|
+
void agents[0]?.client.heartbeat(agentId, (0, system_info_1.getSystemInfo)(), error).catch(() => { });
|
|
271
170
|
});
|
|
272
171
|
}
|
|
273
172
|
logger_1.logger.info((0, i18n_1.t)('runner.startedMulti', { count: projects.length, pollInterval, heartbeatInterval }));
|
package/dist/agent-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,8CAeC;AAYD,sDAaC;AA2CD,gCAuGC;AAhND,uCAAwB;AAExB,iDAAyE;AACzE,2CAAkI;AAClI,qDAAyE;AACzE,iCAA0B;AAC1B,qCAAiC;AACjC,mDAA8C;AAC9C,+CAA6C;AAE7C,mCAAwC;AAYxC,SAAgB,iBAAiB,CAC/B,OAA4B,EAC5B,OAAe,EACf,OAIC;IAED,MAAM,KAAK,GAAG,IAAI,4BAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC3F,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE;KAC1B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAsB;IAI9C,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,iCAAqB;QAC3D,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,sCAA0B;KAC3E,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA8B,EAC9B,OAA2B;IAE3B,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,qBAAqB,CAAC,CAAC,CAAA;QACrC,OAAO,EAAE,IAAI,EAAE,CAAA;QACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/B,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,gBAAgB,CAAC,CAAC,CAAA;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAsB,EAAE,MAAiD;IACxG,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,UAAU,KAAK,KAAK;QACrC,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,MAAM,EAAE,UAAU,EAAE,OAAO,IAAI,QAAQ;QACzE,GAAG,MAAM,EAAE,UAAU;QACrB,4BAA4B;QAC5B,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvD,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;KACjE,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA4B,EAC5B,OAAe,EACf,OAAsB,EACtB,aAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAErE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC,CAAA;IAErG,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACzD,IAAI,OAAsC,CAAA;IAC1C,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAA,+BAAgB,EACxB,CAAC,KAAK,CAAC,MAAM,CAAC,EACd,gBAAgB,EAChB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAClB,CAAC,KAAK,EAAE,EAAE;YACR,KAAK,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAA,2BAAa,GAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9E,CAAC,CACF,CAAA;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;IAC3E,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAA;IACjC,qBAAqB,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAAsB;IACrD,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,eAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,eAAM,CAAC,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAA;IAE3B,iDAAiD;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAA;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IAEtD,+BAA+B;IAC/B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,wBAAwB,CAAC,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAA;QAChD,MAAM,OAAO,GAAwB;YACnC,WAAW,EAAE,mCAAuB;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAA;QAED,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QAClE,IAAA,2BAAU,EAAC,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACvD,OAAM;IACR,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,qCAAqC;QACrC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,WAAW,EAAE,CAAC;gBAChB,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,wBAAwB,CAAC,CAAC,CAAA;YACxC,MAAM,OAAO,GAAwB;gBACnC,WAAW,EAAE,oCAAwB;gBACrC,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;YAED,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,gBAAgB,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAA;IACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,mBAAmB,CAAC,CAAC,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAA;IAC/C,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAErE,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAElE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAC9G,CAAA;IAED,IAAA,2BAAU,EAAC,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAEvD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjE,IAAI,OAAsC,CAAA;IAC1C,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC3C,OAAO,GAAG,IAAA,+BAAgB,EACxB,OAAO,EACP,gBAAgB,EAChB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EACrC,CAAC,KAAK,EAAE,EAAE;YACR,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAA,2BAAa,GAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACnF,CAAC,CACF,CAAA;IACH,CAAC;IAED,eAAM,CAAC,IAAI,CACT,IAAA,QAAC,EAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CACtF,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,eAAM,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,CAAA;IACjC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC"}
|
package/dist/api-client.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import type { AgentCommand, CommandResult, PendingCommand, ReleaseChannel, RegisterRequest, RegisterResponse, SystemInfo, VersionInfo } from './types';
|
|
1
|
+
import type { AgentCommand, AgentServerConfig, ChatChunk, CommandResult, PendingCommand, ReleaseChannel, RegisterRequest, RegisterResponse, SystemInfo, VersionInfo } from './types';
|
|
2
2
|
export declare class ApiClient {
|
|
3
3
|
private readonly client;
|
|
4
4
|
constructor(apiUrl: string, token: string);
|
|
5
5
|
private shouldRetry;
|
|
6
6
|
private withRetry;
|
|
7
7
|
register(request: RegisterRequest): Promise<RegisterResponse>;
|
|
8
|
-
heartbeat(agentId: string, systemInfo: SystemInfo, updateError?: string): Promise<void>;
|
|
8
|
+
heartbeat(agentId: string, systemInfo: SystemInfo, updateError?: string, availableChatModes?: string[], activeChatMode?: string): Promise<void>;
|
|
9
9
|
getVersionInfo(channel?: ReleaseChannel): Promise<VersionInfo>;
|
|
10
|
-
getPendingCommands(): Promise<PendingCommand[]>;
|
|
10
|
+
getPendingCommands(agentId: string): Promise<PendingCommand[]>;
|
|
11
11
|
private validateCommandId;
|
|
12
|
-
getCommand(commandId: string): Promise<AgentCommand>;
|
|
13
|
-
submitResult(commandId: string, result: CommandResult): Promise<void>;
|
|
12
|
+
getCommand(commandId: string, agentId: string): Promise<AgentCommand>;
|
|
13
|
+
submitResult(commandId: string, result: CommandResult, agentId: string): Promise<void>;
|
|
14
|
+
reportConnectionStatus(agentId: string, status: 'connected' | 'disconnected'): Promise<void>;
|
|
15
|
+
getConfig(): Promise<AgentServerConfig>;
|
|
16
|
+
submitChatChunk(commandId: string, chunk: ChatChunk, agentId: string): Promise<void>;
|
|
14
17
|
}
|
|
15
18
|
//# sourceMappingURL=api-client.d.ts.map
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAgBzC,OAAO,CAAC,WAAW;YAcL,SAAS;IAqBjB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAgBzC,OAAO,CAAC,WAAW;YAcL,SAAS;IAqBjB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkB7D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAeV,cAAc,CAAC,OAAO,GAAE,cAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IASxE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAWpE,OAAO,CAAC,iBAAiB;IAMnB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAYrE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAUV,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,cAAc,GACnC,OAAO,CAAC,IAAI,CAAC;IAUV,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAUvC,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;CASjB"}
|
package/dist/api-client.js
CHANGED
|
@@ -60,16 +60,18 @@ class ApiClient {
|
|
|
60
60
|
async register(request) {
|
|
61
61
|
logger_1.logger.debug(`Registering agent: ${request.agentId}`);
|
|
62
62
|
return this.withRetry(async () => {
|
|
63
|
-
const { ipAddress, ...rest } = request;
|
|
63
|
+
const { ipAddress, availableChatModes, activeChatMode, ...rest } = request;
|
|
64
64
|
const { data } = await this.client.post(constants_1.API_ENDPOINTS.REGISTER, {
|
|
65
65
|
...rest,
|
|
66
66
|
version: constants_1.AGENT_VERSION,
|
|
67
67
|
...(ipAddress && { ipAddress }),
|
|
68
|
+
...(availableChatModes !== undefined && { availableChatModes }),
|
|
69
|
+
...(activeChatMode !== undefined && { activeChatMode }),
|
|
68
70
|
});
|
|
69
71
|
return data;
|
|
70
72
|
});
|
|
71
73
|
}
|
|
72
|
-
async heartbeat(agentId, systemInfo, updateError) {
|
|
74
|
+
async heartbeat(agentId, systemInfo, updateError, availableChatModes, activeChatMode) {
|
|
73
75
|
logger_1.logger.debug('Sending heartbeat');
|
|
74
76
|
await this.withRetry(async () => {
|
|
75
77
|
await this.client.post(constants_1.API_ENDPOINTS.HEARTBEAT, {
|
|
@@ -78,6 +80,8 @@ class ApiClient {
|
|
|
78
80
|
version: constants_1.AGENT_VERSION,
|
|
79
81
|
systemInfo,
|
|
80
82
|
...(updateError && { updateError }),
|
|
83
|
+
...(availableChatModes !== undefined && { availableChatModes }),
|
|
84
|
+
...(activeChatMode !== undefined && { activeChatMode }),
|
|
81
85
|
});
|
|
82
86
|
});
|
|
83
87
|
}
|
|
@@ -87,10 +91,10 @@ class ApiClient {
|
|
|
87
91
|
return data;
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
|
-
async getPendingCommands() {
|
|
94
|
+
async getPendingCommands(agentId) {
|
|
91
95
|
logger_1.logger.debug('Polling for pending commands');
|
|
92
96
|
return this.withRetry(async () => {
|
|
93
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMANDS_PENDING);
|
|
97
|
+
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMANDS_PENDING, { params: { agentId } });
|
|
94
98
|
return data;
|
|
95
99
|
});
|
|
96
100
|
}
|
|
@@ -99,19 +103,46 @@ class ApiClient {
|
|
|
99
103
|
throw new Error(`Invalid command ID format: ${commandId}`);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
|
-
async getCommand(commandId) {
|
|
106
|
+
async getCommand(commandId, agentId) {
|
|
103
107
|
this.validateCommandId(commandId);
|
|
104
108
|
logger_1.logger.debug(`Fetching command: ${commandId}`);
|
|
105
109
|
return this.withRetry(async () => {
|
|
106
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMAND(commandId));
|
|
110
|
+
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMAND(commandId), { params: { agentId } });
|
|
107
111
|
return data;
|
|
108
112
|
});
|
|
109
113
|
}
|
|
110
|
-
async submitResult(commandId, result) {
|
|
114
|
+
async submitResult(commandId, result, agentId) {
|
|
111
115
|
this.validateCommandId(commandId);
|
|
112
116
|
logger_1.logger.debug(`Submitting result for command: ${commandId}`);
|
|
113
117
|
await this.withRetry(async () => {
|
|
114
|
-
await this.client.post(constants_1.API_ENDPOINTS.COMMAND_RESULT(commandId), result
|
|
118
|
+
await this.client.post(constants_1.API_ENDPOINTS.COMMAND_RESULT(commandId), result, {
|
|
119
|
+
params: { agentId },
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async reportConnectionStatus(agentId, status) {
|
|
124
|
+
await this.withRetry(async () => {
|
|
125
|
+
await this.client.post(constants_1.API_ENDPOINTS.CONNECTION_STATUS, {
|
|
126
|
+
agentId,
|
|
127
|
+
status,
|
|
128
|
+
timestamp: Date.now(),
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async getConfig() {
|
|
133
|
+
logger_1.logger.debug('Fetching agent config from server');
|
|
134
|
+
return this.withRetry(async () => {
|
|
135
|
+
const { data } = await this.client.get(constants_1.API_ENDPOINTS.CONFIG);
|
|
136
|
+
return data;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
async submitChatChunk(commandId, chunk, agentId) {
|
|
140
|
+
this.validateCommandId(commandId);
|
|
141
|
+
logger_1.logger.debug(`Submitting chat chunk ${chunk.index} (${chunk.type}) for command: ${commandId}`);
|
|
142
|
+
await this.withRetry(async () => {
|
|
143
|
+
await this.client.post(constants_1.API_ENDPOINTS.COMMAND_CHUNKS(commandId), chunk, {
|
|
144
|
+
params: { agentId },
|
|
145
|
+
});
|
|
115
146
|
});
|
|
116
147
|
}
|
|
117
148
|
}
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiD;AAEjD,2CAAmH;AACnH,qCAAiC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface AppSyncNotification {
|
|
2
|
+
id: string;
|
|
3
|
+
table: string;
|
|
4
|
+
pk: string;
|
|
5
|
+
sk: string;
|
|
6
|
+
tenantCode: string;
|
|
7
|
+
action: string;
|
|
8
|
+
content: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare class AppSyncSubscriber {
|
|
11
|
+
private ws;
|
|
12
|
+
private readonly realtimeUrl;
|
|
13
|
+
private readonly host;
|
|
14
|
+
private readonly apiKey;
|
|
15
|
+
private subscriptionId;
|
|
16
|
+
private tenantCode;
|
|
17
|
+
private messageHandler;
|
|
18
|
+
private reconnectCallback;
|
|
19
|
+
private reconnectAttempts;
|
|
20
|
+
private closed;
|
|
21
|
+
private keepAliveTimer;
|
|
22
|
+
private keepAliveTimeoutMs;
|
|
23
|
+
constructor(appsyncUrl: string, apiKey: string);
|
|
24
|
+
connect(): Promise<void>;
|
|
25
|
+
subscribe(tenantCode: string, onMessage: (notification: AppSyncNotification) => void): void;
|
|
26
|
+
onReconnect(callback: () => void): void;
|
|
27
|
+
disconnect(): void;
|
|
28
|
+
private buildConnectionUrl;
|
|
29
|
+
private doConnect;
|
|
30
|
+
private handleMessage;
|
|
31
|
+
private sendSubscription;
|
|
32
|
+
private attemptReconnect;
|
|
33
|
+
private resetKeepAliveTimer;
|
|
34
|
+
private clearKeepAliveTimer;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=appsync-subscriber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appsync-subscriber.d.ts","sourceRoot":"","sources":["../src/appsync-subscriber.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAuBD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,cAAc,CAA6D;IACnF,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,kBAAkB,CAAI;gBAElB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAU9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,IAAI,GACrD,IAAI;IAQP,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,UAAU,IAAI,IAAI;IAqBlB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,gBAAgB;YA6BV,gBAAgB;IA6B9B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;CAM5B"}
|