@alwaysai/device-agent 0.1.0 → 0.1.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.
Files changed (100) hide show
  1. package/lib/application-control/config.d.ts +0 -1
  2. package/lib/application-control/config.d.ts.map +1 -1
  3. package/lib/application-control/config.js +15 -29
  4. package/lib/application-control/config.js.map +1 -1
  5. package/lib/application-control/environment-variables.d.ts +7 -3
  6. package/lib/application-control/environment-variables.d.ts.map +1 -1
  7. package/lib/application-control/environment-variables.js +71 -35
  8. package/lib/application-control/environment-variables.js.map +1 -1
  9. package/lib/application-control/environment-variables.test.d.ts +2 -0
  10. package/lib/application-control/environment-variables.test.d.ts.map +1 -0
  11. package/lib/application-control/environment-variables.test.js +163 -0
  12. package/lib/application-control/environment-variables.test.js.map +1 -0
  13. package/lib/application-control/index.d.ts +3 -3
  14. package/lib/application-control/index.d.ts.map +1 -1
  15. package/lib/application-control/index.js +1 -3
  16. package/lib/application-control/index.js.map +1 -1
  17. package/lib/application-control/models.d.ts +0 -1
  18. package/lib/application-control/models.d.ts.map +1 -1
  19. package/lib/application-control/models.js +12 -26
  20. package/lib/application-control/models.js.map +1 -1
  21. package/lib/application-control/status.d.ts +3 -0
  22. package/lib/application-control/status.d.ts.map +1 -1
  23. package/lib/application-control/status.js +19 -1
  24. package/lib/application-control/status.js.map +1 -1
  25. package/lib/application-control/utils.d.ts.map +1 -1
  26. package/lib/application-control/utils.js +2 -2
  27. package/lib/application-control/utils.js.map +1 -1
  28. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +6 -3
  29. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  30. package/lib/cloud-connection/device-agent-cloud-connection.js +205 -151
  31. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  32. package/lib/cloud-connection/live-updates-handler.d.ts +3 -0
  33. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  34. package/lib/cloud-connection/live-updates-handler.js +23 -7
  35. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  36. package/lib/cloud-connection/live-updates-handler.test.d.ts +2 -0
  37. package/lib/cloud-connection/live-updates-handler.test.d.ts.map +1 -0
  38. package/lib/cloud-connection/live-updates-handler.test.js +57 -0
  39. package/lib/cloud-connection/live-updates-handler.test.js.map +1 -0
  40. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
  41. package/lib/cloud-connection/passthrough-handler.js +6 -3
  42. package/lib/cloud-connection/passthrough-handler.js.map +1 -1
  43. package/lib/cloud-connection/shadow-handler.d.ts +11 -3
  44. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  45. package/lib/cloud-connection/shadow-handler.js +22 -7
  46. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  47. package/lib/cloud-connection/shadow-handler.test.js +313 -228
  48. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  49. package/lib/cloud-connection/shadow.js +1 -1
  50. package/lib/cloud-connection/shadow.js.map +1 -1
  51. package/lib/environment.d.ts +1 -0
  52. package/lib/environment.d.ts.map +1 -1
  53. package/lib/environment.js +2 -1
  54. package/lib/environment.js.map +1 -1
  55. package/lib/infrastructure/agent-config.d.ts +3 -1
  56. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  57. package/lib/subcommands/app/env-vars.d.ts +1 -1
  58. package/lib/subcommands/app/env-vars.d.ts.map +1 -1
  59. package/lib/subcommands/app/env-vars.js +32 -5
  60. package/lib/subcommands/app/env-vars.js.map +1 -1
  61. package/lib/subcommands/app/index.d.ts.map +1 -1
  62. package/lib/subcommands/app/index.js +4 -1
  63. package/lib/subcommands/app/index.js.map +1 -1
  64. package/lib/subcommands/app/models.d.ts.map +1 -1
  65. package/lib/subcommands/app/models.js +6 -1
  66. package/lib/subcommands/app/models.js.map +1 -1
  67. package/lib/subcommands/app/shadow.d.ts +7 -0
  68. package/lib/subcommands/app/shadow.d.ts.map +1 -0
  69. package/lib/subcommands/app/shadow.js +48 -0
  70. package/lib/subcommands/app/shadow.js.map +1 -0
  71. package/lib/subcommands/app/version.js +2 -2
  72. package/lib/subcommands/app/version.js.map +1 -1
  73. package/lib/util/cloud-mode-ready.d.ts +2 -0
  74. package/lib/util/cloud-mode-ready.d.ts.map +1 -0
  75. package/lib/util/cloud-mode-ready.js +22 -0
  76. package/lib/util/cloud-mode-ready.js.map +1 -0
  77. package/package.json +1 -1
  78. package/readme.md +2 -2
  79. package/src/application-control/config.ts +30 -31
  80. package/src/application-control/environment-variables.test.ts +171 -0
  81. package/src/application-control/environment-variables.ts +102 -43
  82. package/src/application-control/index.ts +3 -9
  83. package/src/application-control/models.ts +14 -29
  84. package/src/application-control/status.ts +20 -0
  85. package/src/application-control/utils.ts +4 -2
  86. package/src/cloud-connection/device-agent-cloud-connection.ts +222 -153
  87. package/src/cloud-connection/live-updates-handler.test.ts +68 -0
  88. package/src/cloud-connection/live-updates-handler.ts +30 -7
  89. package/src/cloud-connection/passthrough-handler.ts +10 -3
  90. package/src/cloud-connection/shadow-handler.test.ts +329 -239
  91. package/src/cloud-connection/shadow-handler.ts +38 -12
  92. package/src/cloud-connection/shadow.ts +1 -1
  93. package/src/environment.ts +2 -0
  94. package/src/infrastructure/agent-config.ts +1 -1
  95. package/src/subcommands/app/env-vars.ts +38 -8
  96. package/src/subcommands/app/index.ts +4 -1
  97. package/src/subcommands/app/models.ts +10 -1
  98. package/src/subcommands/app/shadow.ts +48 -0
  99. package/src/subcommands/app/version.ts +2 -2
  100. package/src/util/cloud-mode-ready.ts +23 -0
@@ -9,6 +9,7 @@ const directories_1 = require("../util/directories");
9
9
  const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
10
10
  const get_device_id_1 = require("../util/get-device-id");
11
11
  const logger_1 = require("../util/logger");
12
+ const cloud_mode_ready_1 = require("../util/cloud-mode-ready");
12
13
  const agent_config_1 = require("../infrastructure/agent-config");
13
14
  const application_control_1 = require("../application-control");
14
15
  const shadow_handler_1 = require("./shadow-handler");
@@ -19,6 +20,7 @@ const cmd_status_1 = require("./cmd-status");
19
20
  const passthrough_handler_1 = require("./passthrough-handler");
20
21
  const environment_1 = require("../environment");
21
22
  const messages_1 = require("./messages");
23
+ const sleep_1 = require("../util/sleep");
22
24
  class DeviceAgentCloudConnection {
23
25
  /*=================================================================
24
26
  Public interface
@@ -29,9 +31,114 @@ class DeviceAgentCloudConnection {
29
31
  this.host = (0, urls_1.getIoTCoreEndpointUrl)();
30
32
  this.toDeviceTopic = (0, device_agent_schemas_1.getDeviceTopic)(this.clientId);
31
33
  // FIXME: Add support for multiple simultaneous project updates
32
- this.newAppCfgQueue = [];
33
- this.handleDeviceCommand = async (packet) => {
34
- // TODO
34
+ this.appCfgUpdateQueue = [];
35
+ this.handleAppStateControl = async (payload) => {
36
+ const { baseCommand, projectId } = payload;
37
+ switch (baseCommand) {
38
+ case device_agent_schemas_1.keyMirrors.appStateControl.start:
39
+ await (0, application_control_1.startApp)({ projectId });
40
+ break;
41
+ case device_agent_schemas_1.keyMirrors.appStateControl.stop:
42
+ await (0, application_control_1.stopApp)({ projectId });
43
+ break;
44
+ case device_agent_schemas_1.keyMirrors.appStateControl.restart:
45
+ await (0, application_control_1.restartApp)({ projectId });
46
+ break;
47
+ }
48
+ return true;
49
+ };
50
+ this.handleAppVersionControl = async (payload) => {
51
+ switch (payload.baseCommand) {
52
+ case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
53
+ const { projectId, appReleaseHash } = payload;
54
+ const signedUrlsRequest = { projectId, appReleaseHash };
55
+ await this.publishCloudRequest({
56
+ messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
57
+ signedUrlsRequest
58
+ });
59
+ return false;
60
+ }
61
+ case device_agent_schemas_1.keyMirrors.appVersionControl.uninstall: {
62
+ const { projectId } = payload;
63
+ await this.atomicApplicationUninstall(projectId);
64
+ return true;
65
+ }
66
+ default:
67
+ logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
68
+ return true;
69
+ }
70
+ };
71
+ this.handleAgentCommand = async (message) => {
72
+ switch (message.messageType) {
73
+ case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates:
74
+ await this.liveUpdatesHandler.handleToggles(message.liveUpdatesToggles);
75
+ break;
76
+ default:
77
+ logger_1.logger.error(`Invalid agent action message type from message '${message}'`);
78
+ }
79
+ };
80
+ this.handleAppInstallCloudResponse = async (payload) => {
81
+ const { projectId, appReleaseHash, appInstallPayload, modelsInstallPayload } = payload.appInstallCloudResponse;
82
+ const signedUrlsPayload = {
83
+ appInstallPayload,
84
+ modelsInstallPayload
85
+ };
86
+ await this.atomicApplicationUpdate(application_control_1.installApp, [{ projectId, appReleaseHash, signedUrlsPayload }], projectId);
87
+ return true;
88
+ };
89
+ this.handleModelsInstallCloudResponse = async (payload) => {
90
+ const update = this.appCfgUpdateQueue.shift();
91
+ if (update === undefined) {
92
+ throw new Error('Unknown error while updating models via application config! No config present for model update.');
93
+ }
94
+ const { appCfgUpdate, envVarUpdate } = update;
95
+ const projectId = payload.modelsInstallCloudResponse.projectId;
96
+ if (appCfgUpdate) {
97
+ await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
98
+ {
99
+ projectId,
100
+ modelInstallPayloads: payload.modelsInstallCloudResponse.newModels,
101
+ newAppCfg: appCfgUpdate.newAppCfg
102
+ }
103
+ ], projectId);
104
+ }
105
+ if (envVarUpdate) {
106
+ await this.atomicApplicationUpdate(application_control_1.setEnv, [{ projectId, envVars: envVarUpdate.envVars }], projectId);
107
+ }
108
+ return true;
109
+ };
110
+ this.handleAppConfigUpdates = async (updates) => {
111
+ for (const update of updates) {
112
+ const { projectId, appCfgUpdate, envVarUpdate } = update;
113
+ if (appCfgUpdate &&
114
+ appCfgUpdate.updatedModels &&
115
+ Object.keys(appCfgUpdate.updatedModels).length) {
116
+ // When there are model updates request signed URLs and wait to apply config changes
117
+ const { updatedModels } = appCfgUpdate;
118
+ logger_1.logger.debug(`Requesting presigned urls from cloud for model versions: ${JSON.stringify(updatedModels)}`);
119
+ this.publisher.publishToCloud({
120
+ messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
121
+ modelsOnlyUrlsRequest: {
122
+ projectId,
123
+ models: updatedModels
124
+ }
125
+ });
126
+ this.appCfgUpdateQueue.push(update);
127
+ return false;
128
+ }
129
+ if (appCfgUpdate) {
130
+ await this.atomicApplicationUpdate(application_control_1.updateAppCfg, [
131
+ {
132
+ projectId,
133
+ newAppCfg: appCfgUpdate.newAppCfg
134
+ }
135
+ ], projectId);
136
+ }
137
+ if (envVarUpdate) {
138
+ await this.atomicApplicationUpdate(application_control_1.setEnv, [{ projectId, envVars: envVarUpdate.envVars }], projectId);
139
+ }
140
+ }
141
+ return true;
35
142
  };
36
143
  this.device = awsIot.device({
37
144
  keyPath: directories_1.DEVICE_PRIVATE_KEY_FILE_PATH,
@@ -53,54 +160,6 @@ class DeviceAgentCloudConnection {
53
160
  this.subscribe(this.shadowHandler.shadowTopics.projects.updateAccepted);
54
161
  this.subscribe(this.shadowHandler.shadowTopics.projects.updateRejected);
55
162
  }
56
- async handleAppStateControl(payload) {
57
- const { baseCommand, projectId } = payload;
58
- switch (baseCommand) {
59
- case device_agent_schemas_1.keyMirrors.appStateControl.start:
60
- await (0, application_control_1.startApp)({ projectId });
61
- break;
62
- case device_agent_schemas_1.keyMirrors.appStateControl.stop:
63
- await (0, application_control_1.stopApp)({ projectId });
64
- break;
65
- case device_agent_schemas_1.keyMirrors.appStateControl.restart:
66
- await (0, application_control_1.restartApp)({ projectId });
67
- break;
68
- }
69
- }
70
- async handleAppVersionControl(payload) {
71
- switch (payload.baseCommand) {
72
- case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
73
- const { projectId, appReleaseHash } = payload;
74
- await this.cmdStatusMgr.start(projectId);
75
- await this.liveUpdatesHandler.enableAppInstallStatus({
76
- projectId,
77
- appReleaseHash
78
- });
79
- const signedUrlsRequest = { projectId, appReleaseHash };
80
- await this.publishCloudRequest({
81
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
82
- signedUrlsRequest
83
- });
84
- break;
85
- }
86
- case device_agent_schemas_1.keyMirrors.appVersionControl.uninstall: {
87
- const { projectId } = payload;
88
- await this.atomicApplicationUninstall(projectId);
89
- break;
90
- }
91
- default:
92
- logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
93
- }
94
- }
95
- async handleAgentCommand(message) {
96
- switch (message.messageType) {
97
- case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates:
98
- await this.liveUpdatesHandler.handleToggles(message.liveUpdatesToggles);
99
- break;
100
- default:
101
- logger_1.logger.error(`Invalid agent action message type from message '${message}'`);
102
- }
103
- }
104
163
  async publishCloudRequest(payload) {
105
164
  this.publisher.publishToCloud(payload);
106
165
  }
@@ -109,58 +168,24 @@ class DeviceAgentCloudConnection {
109
168
  this.device.subscribe(topic);
110
169
  }
111
170
  async atomicApplicationUninstall(projectId) {
112
- const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
113
- projectId
114
- });
115
- await this.cmdStatusMgr.start(projectId);
116
- await this.liveUpdatesHandler.enableAppInstallStatus({
117
- projectId,
118
- appReleaseHash
119
- });
120
171
  try {
121
172
  await (0, application_control_1.uninstallApp)({ projectId });
122
173
  this.shadowHandler.clearAppConfig(projectId);
123
- await this.cmdStatusMgr.stop(projectId);
124
- await this.liveUpdatesHandler.disableAppInstallStatus({
125
- projectId
126
- });
127
- // Send final status message
128
- this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
129
174
  }
130
175
  catch (e) {
131
176
  logger_1.logger.error(`Failed to uninstall ${projectId}: ${e.message}`);
132
- const message = e.message;
133
- await this.cmdStatusMgr.stop(projectId);
134
- await this.liveUpdatesHandler.disableAppInstallStatus({
135
- projectId
136
- });
137
- // Send final status message
138
- this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
177
+ throw e;
139
178
  }
140
179
  }
141
180
  // eslint-disable-next-line
142
- async atomicApplicationUpdate(func, args, projectId, appReleaseHash) {
143
- await this.cmdStatusMgr.start(projectId);
144
- await this.liveUpdatesHandler.enableAppInstallStatus({
145
- projectId,
146
- appReleaseHash
147
- });
148
- // Install the app and models
181
+ async atomicApplicationUpdate(func, args, projectId) {
149
182
  try {
150
183
  const out = await func(...args);
151
- await this.cmdStatusMgr.stop(projectId);
152
- await this.liveUpdatesHandler.disableAppInstallStatus({
153
- projectId
154
- });
155
- // Send final status message
156
- this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
157
- // update app config shadow for project
158
- await this.shadowHandler.publishAppConfig(projectId);
184
+ await this.shadowHandler.updateProjectShadow(projectId);
159
185
  return out;
160
186
  }
161
187
  catch (e) {
162
- logger_1.logger.error(`Failed to install ${projectId}: ${e.message}`);
163
- const message = e.message;
188
+ logger_1.logger.error(`Failed to update ${projectId}:\n${e.message}\n${e.stack}`);
164
189
  // uninstall the failed app to put system back in good state
165
190
  // TODO: Replace this with rollback
166
191
  try {
@@ -168,52 +193,52 @@ class DeviceAgentCloudConnection {
168
193
  }
169
194
  finally {
170
195
  this.shadowHandler.clearAppConfig(projectId);
171
- await this.cmdStatusMgr.stop(projectId);
172
- await this.liveUpdatesHandler.disableAppInstallStatus({
196
+ }
197
+ throw e;
198
+ }
199
+ }
200
+ // eslint-disable-next-line
201
+ async atomicCmd(props) {
202
+ const { func, args, projectId } = props;
203
+ let appReleaseHash = props.appReleaseHash;
204
+ if (appReleaseHash === undefined) {
205
+ try {
206
+ appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
173
207
  projectId
174
208
  });
175
- // Send final status message
176
- this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
209
+ }
210
+ catch (e) {
211
+ logger_1.logger.warn(`Unable to get app release hash for ${projectId}!`);
212
+ appReleaseHash = '';
177
213
  }
178
214
  }
179
- }
180
- async handleAppConfigUpdates(appCfgUpdates) {
181
- for (const appConfigUpdate of appCfgUpdates) {
182
- const { projectId, newAppCfg, updatedModels } = appConfigUpdate;
183
- const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
184
- projectId
185
- });
215
+ try {
186
216
  await this.cmdStatusMgr.start(projectId);
187
217
  await this.liveUpdatesHandler.enableAppInstallStatus({
188
218
  projectId,
189
219
  appReleaseHash
190
220
  });
191
- if (updatedModels && Object.keys(updatedModels).length) {
192
- // Publish request for model urls
193
- this.newAppCfgQueue.push(newAppCfg);
194
- logger_1.logger.debug(`Requesting presigned urls from cloud for model versions: ${JSON.stringify(updatedModels)}`);
195
- this.publisher.publishToCloud({
196
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
197
- modelsOnlyUrlsRequest: {
198
- projectId,
199
- models: updatedModels
200
- }
201
- });
202
- }
203
- else {
204
- // FIXME: do we need to send this up to the cloud?
205
- // should it be something other than appReleaseHash?
206
- const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
221
+ const completed = await func(...args);
222
+ if (completed) {
223
+ await this.cmdStatusMgr.stop(projectId);
224
+ await this.liveUpdatesHandler.disableAppInstallStatus({
207
225
  projectId
208
226
  });
209
- await this.atomicApplicationUpdate(application_control_1.updateAppCfg, [
210
- {
211
- projectId,
212
- appReleaseHash,
213
- newAppCfg
214
- }
215
- ], projectId, appReleaseHash);
227
+ // Send final status message
228
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
216
229
  }
230
+ return completed;
231
+ }
232
+ catch (e) {
233
+ logger_1.logger.error(`Failed to execute cmd for ${projectId}:\n${e.message}\n${e.stack}`);
234
+ const message = e.message;
235
+ // uninstall the failed app to put system back in good state
236
+ await this.cmdStatusMgr.stop(projectId);
237
+ await this.liveUpdatesHandler.disableAppInstallStatus({
238
+ projectId
239
+ });
240
+ // Send final status message
241
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
217
242
  }
218
243
  }
219
244
  getClientId() {
@@ -228,53 +253,65 @@ class DeviceAgentCloudConnection {
228
253
  isCmdInProgress(projectId) {
229
254
  return this.cmdStatusMgr.isCmdInProgress(projectId);
230
255
  }
256
+ async updateProjectShadow(projectId) {
257
+ await this.shadowHandler.updateProjectShadow(projectId);
258
+ }
231
259
  async handleClientMessage({ topic, message }) {
232
260
  const valid = (0, device_agent_schemas_1.validateClientMessage)(message);
233
261
  if (!valid) {
234
262
  logger_1.logger.error(`Error validating message: ${JSON.stringify({ topic, message, errors: device_agent_schemas_1.validateClientMessage.errors }, null, 2)}`);
263
+ // TODO: Send generic error response
235
264
  return;
236
265
  }
237
266
  const payload = message.payload;
238
267
  switch (payload.messageType) {
239
268
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_state_control: {
240
- await this.handleAppStateControl(payload.appStateControl);
269
+ const projectId = payload.appStateControl.projectId;
270
+ await this.atomicCmd({
271
+ func: this.handleAppStateControl,
272
+ args: [payload.appStateControl],
273
+ projectId
274
+ });
241
275
  break;
242
276
  }
243
277
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control: {
244
- await this.handleAppVersionControl(payload.appVersionControl);
278
+ const projectId = payload.appVersionControl.projectId;
279
+ const appReleaseHash = payload.appVersionControl.baseCommand ===
280
+ device_agent_schemas_1.keyMirrors.appVersionControl.install
281
+ ? payload.appVersionControl.appReleaseHash
282
+ : undefined;
283
+ await this.atomicCmd({
284
+ func: this.handleAppVersionControl,
285
+ args: [payload.appVersionControl],
286
+ projectId,
287
+ appReleaseHash
288
+ });
245
289
  break;
246
290
  }
247
291
  case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates: {
292
+ // TODO: Send response?
248
293
  await this.handleAgentCommand(payload);
249
294
  break;
250
295
  }
251
296
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_install_cloud_response: {
252
- const { projectId, appReleaseHash, appInstallPayload, modelsInstallPayload } = payload.appInstallCloudResponse;
253
- const signedUrlsPayload = {
254
- appInstallPayload,
255
- modelsInstallPayload
256
- };
257
- await this.atomicApplicationUpdate(application_control_1.installApp, [{ projectId, appReleaseHash, signedUrlsPayload }], projectId, appReleaseHash);
297
+ const { projectId, appReleaseHash } = payload.appInstallCloudResponse;
298
+ await this.atomicCmd({
299
+ func: this.handleAppInstallCloudResponse,
300
+ args: [payload],
301
+ projectId,
302
+ appReleaseHash
303
+ });
258
304
  break;
259
305
  }
260
306
  case device_agent_schemas_1.keyMirrors.clientMessageType.models_install_cloud_response: {
261
- const { projectId, newModels } = payload.modelsInstallCloudResponse;
262
- const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
307
+ // This message doesn't have appReleaseHash in it's payload, but
308
+ // atomicCmd should be able to read it from the installed app
309
+ const { projectId } = payload.modelsInstallCloudResponse;
310
+ await this.atomicCmd({
311
+ func: this.handleModelsInstallCloudResponse,
312
+ args: [payload],
263
313
  projectId
264
314
  });
265
- const newAppCfg = this.newAppCfgQueue.shift();
266
- if (newAppCfg === undefined) {
267
- logger_1.logger.error('Unknown error while updating models via application config! No config present for model update.');
268
- return;
269
- }
270
- await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
271
- {
272
- projectId,
273
- modelInstallPayloads: newModels,
274
- newAppCfg,
275
- appReleaseHash
276
- }
277
- ], projectId, appReleaseHash);
278
315
  break;
279
316
  }
280
317
  default:
@@ -286,12 +323,26 @@ class DeviceAgentCloudConnection {
286
323
  switch (topic) {
287
324
  case this.shadowHandler.shadowTopics.projects.getAccepted:
288
325
  case this.shadowHandler.shadowTopics.projects.updateDelta: {
289
- const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
326
+ const shadowUpdates = await this.shadowHandler.handleShadowTopic({
290
327
  topic,
291
328
  payload: message.state,
292
329
  clientToken: message.clientToken
293
330
  });
294
- await this.handleAppConfigUpdates(appConfigUpdates);
331
+ if (shadowUpdates.length) {
332
+ // FIXME: Take project ID of first shadow update. Most likely there will only be one update
333
+ // so this should be sufficient for now.
334
+ const projectId = shadowUpdates[0].projectId;
335
+ try {
336
+ await this.atomicCmd({
337
+ func: this.handleAppConfigUpdates,
338
+ args: [shadowUpdates],
339
+ projectId
340
+ });
341
+ }
342
+ catch (e) {
343
+ logger_1.logger.error(`Error handling shadow message: ${e.message}`);
344
+ }
345
+ }
295
346
  break;
296
347
  }
297
348
  case this.shadowHandler.shadowTopics.projects.getRejected:
@@ -337,14 +388,17 @@ class DeviceAgentCloudConnection {
337
388
  logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
338
389
  });
339
390
  }
340
- stop() {
391
+ async stop() {
392
+ // FIXME: This method is currently only used by the CLI, and shadow messages
393
+ // can be lost since we aren't waiting for responses so sleep for a short
394
+ // time to receive them
395
+ await (0, sleep_1.default)(1000);
341
396
  this.device.end();
342
397
  }
343
398
  }
344
399
  exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
345
400
  async function runDeviceAgentCloudInterface() {
346
- // FIXME: Check for KeyPath as well
347
- if ((0, fs_1.existsSync)(directories_1.DEVICE_CERTIFICATE_FILE_PATH)) {
401
+ if ((0, cloud_mode_ready_1.cloudModeReady)()) {
348
402
  const deviceAgent = new DeviceAgentCloudConnection();
349
403
  await deviceAgent.setupHandlers();
350
404
  if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ export declare class LiveUpdatesHandler {
14
14
  private restartLiveUpdatesTimeout;
15
15
  private startPublishingLiveUpdates;
16
16
  constructor(publisher: Publisher);
17
+ getDeviceStatsLiveUpdates(): boolean;
18
+ getAppStateLiveUpdates(): boolean;
19
+ getAppLogsLiveUpdates(): boolean;
17
20
  enableAppInstallStatus(props: {
18
21
  projectId: string;
19
22
  appReleaseHash: string;
@@ -1 +1 @@
1
- {"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;YAEjC,iBAAiB;IAqC/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;YAYnB,0BAA0B;gBA6B5B,SAAS,EAAE,SAAS;IAInB,sBAAsB,CAAC,KAAK,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAeY,uBAAuB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IASpD,aAAa,CAAC,OAAO,EAAE,kBAAkB;CAoCvD"}
1
+ {"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAaxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;YAEjC,iBAAiB;IAqC/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;YAWnB,0BAA0B;gBA6B5B,SAAS,EAAE,SAAS;IAOzB,yBAAyB;IAIzB,sBAAsB;IAItB,qBAAqB;IAIf,sBAAsB,CAAC,KAAK,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAeY,uBAAuB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IASpD,aAAa,CAAC,OAAO,EAAE,kBAAkB;CAwCvD"}
@@ -6,6 +6,10 @@ const application_control_1 = require("../application-control");
6
6
  const logger_1 = require("../util/logger");
7
7
  const sleep_1 = require("../util/sleep");
8
8
  const messages_1 = require("./messages");
9
+ const environment_1 = require("../environment");
10
+ const LIVE_UPDATES_TIMEOUT = environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS
11
+ ? parseInt(environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS)
12
+ : 60000;
9
13
  class LiveUpdatesHandler {
10
14
  /*=================================================================
11
15
  Public interface
@@ -26,6 +30,7 @@ class LiveUpdatesHandler {
26
30
  this.appLogStreams = new Set();
27
31
  this.appInstallStatuses = new Set();
28
32
  this.publisher = publisher;
33
+ logger_1.logger.debug(`Toggle live updates timeout set to ${LIVE_UPDATES_TIMEOUT} ms`);
29
34
  }
30
35
  async startAppLogStream(projectId) {
31
36
  logger_1.logger.info(`Starting log stream for ${projectId}`);
@@ -84,10 +89,10 @@ class LiveUpdatesHandler {
84
89
  return -1;
85
90
  }
86
91
  setLiveUpdates(toggles) {
87
- if (toggles.deviceStats) {
92
+ if (toggles.deviceStats !== undefined) {
88
93
  this.liveUpdatesAlive.device_stats = toggles.deviceStats;
89
94
  }
90
- if (toggles.appState) {
95
+ if (toggles.appState !== undefined) {
91
96
  this.liveUpdatesAlive.app_state = toggles.appState;
92
97
  }
93
98
  }
@@ -99,8 +104,7 @@ class LiveUpdatesHandler {
99
104
  appState: false
100
105
  });
101
106
  this.appLogStreams.clear();
102
- // TODO: Make constant, not hard coded
103
- }, 600000); // 10 min
107
+ }, LIVE_UPDATES_TIMEOUT);
104
108
  }
105
109
  async startPublishingLiveUpdates(messageType, getMessageData, args, projectId) {
106
110
  logger_1.logger.info(`Turned on live updates for ${messageType}`);
@@ -120,6 +124,15 @@ class LiveUpdatesHandler {
120
124
  await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
121
125
  }
122
126
  }
127
+ getDeviceStatsLiveUpdates() {
128
+ return this.liveUpdatesAlive.device_stats;
129
+ }
130
+ getAppStateLiveUpdates() {
131
+ return this.liveUpdatesAlive.app_state;
132
+ }
133
+ getAppLogsLiveUpdates() {
134
+ return this.liveUpdatesAlive.app_logs;
135
+ }
123
136
  async enableAppInstallStatus(props) {
124
137
  const { projectId, appReleaseHash } = props;
125
138
  this.liveUpdatesAlive.app_install_status = true;
@@ -139,22 +152,25 @@ class LiveUpdatesHandler {
139
152
  async handleToggles(toggles) {
140
153
  const { deviceStats, appState, appLogs } = toggles;
141
154
  this.restartLiveUpdatesTimeout();
155
+ const currentDeviceStats = this.getDeviceStatsLiveUpdates();
142
156
  if (deviceStats !== undefined) {
143
157
  this.liveUpdatesAlive.device_stats = deviceStats;
144
- if (deviceStats) {
158
+ if (deviceStats && currentDeviceStats !== true) {
145
159
  // Don't wait for this call to finish since it loops until disabled
146
160
  void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.device_stats, messages_1.getDeviceStatsMessage, []);
147
161
  }
148
162
  }
163
+ const currentAppState = this.getAppStateLiveUpdates();
149
164
  if (appState !== undefined) {
150
165
  this.liveUpdatesAlive.app_state = appState;
151
- if (appState) {
166
+ if (appState && currentAppState !== true) {
152
167
  // Don't wait for this call to finish since it loops until disabled
153
168
  void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_state, messages_1.getAppStateMessage, []);
154
169
  }
155
170
  }
171
+ const currentAppLogs = this.getAppLogsLiveUpdates();
156
172
  if (appLogs !== undefined) {
157
- if (appLogs.toggle) {
173
+ if (appLogs.toggle && currentAppLogs !== true) {
158
174
  // Don't wait for this call to finish since it loops until disabled
159
175
  void this.startAppLogStream(appLogs.projectId);
160
176
  }