@alwaysai/device-agent 0.1.0 → 0.1.1

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 (96) 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 +201 -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/shadow-handler.d.ts +11 -3
  41. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  42. package/lib/cloud-connection/shadow-handler.js +22 -7
  43. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  44. package/lib/cloud-connection/shadow-handler.test.js +313 -228
  45. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  46. package/lib/cloud-connection/shadow.js +1 -1
  47. package/lib/cloud-connection/shadow.js.map +1 -1
  48. package/lib/environment.d.ts +1 -0
  49. package/lib/environment.d.ts.map +1 -1
  50. package/lib/environment.js +2 -1
  51. package/lib/environment.js.map +1 -1
  52. package/lib/infrastructure/agent-config.d.ts +3 -1
  53. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  54. package/lib/subcommands/app/env-vars.d.ts +1 -1
  55. package/lib/subcommands/app/env-vars.d.ts.map +1 -1
  56. package/lib/subcommands/app/env-vars.js +32 -5
  57. package/lib/subcommands/app/env-vars.js.map +1 -1
  58. package/lib/subcommands/app/index.d.ts.map +1 -1
  59. package/lib/subcommands/app/index.js +4 -1
  60. package/lib/subcommands/app/index.js.map +1 -1
  61. package/lib/subcommands/app/models.d.ts.map +1 -1
  62. package/lib/subcommands/app/models.js +6 -1
  63. package/lib/subcommands/app/models.js.map +1 -1
  64. package/lib/subcommands/app/shadow.d.ts +7 -0
  65. package/lib/subcommands/app/shadow.d.ts.map +1 -0
  66. package/lib/subcommands/app/shadow.js +48 -0
  67. package/lib/subcommands/app/shadow.js.map +1 -0
  68. package/lib/subcommands/app/version.js +2 -2
  69. package/lib/subcommands/app/version.js.map +1 -1
  70. package/lib/util/cloud-mode-ready.d.ts +2 -0
  71. package/lib/util/cloud-mode-ready.d.ts.map +1 -0
  72. package/lib/util/cloud-mode-ready.js +22 -0
  73. package/lib/util/cloud-mode-ready.js.map +1 -0
  74. package/package.json +1 -1
  75. package/readme.md +2 -2
  76. package/src/application-control/config.ts +30 -31
  77. package/src/application-control/environment-variables.test.ts +171 -0
  78. package/src/application-control/environment-variables.ts +102 -43
  79. package/src/application-control/index.ts +3 -9
  80. package/src/application-control/models.ts +14 -29
  81. package/src/application-control/status.ts +20 -0
  82. package/src/application-control/utils.ts +4 -2
  83. package/src/cloud-connection/device-agent-cloud-connection.ts +220 -155
  84. package/src/cloud-connection/live-updates-handler.test.ts +68 -0
  85. package/src/cloud-connection/live-updates-handler.ts +30 -7
  86. package/src/cloud-connection/shadow-handler.test.ts +329 -239
  87. package/src/cloud-connection/shadow-handler.ts +38 -12
  88. package/src/cloud-connection/shadow.ts +1 -1
  89. package/src/environment.ts +2 -0
  90. package/src/infrastructure/agent-config.ts +1 -1
  91. package/src/subcommands/app/env-vars.ts +38 -8
  92. package/src/subcommands/app/index.ts +4 -1
  93. package/src/subcommands/app/models.ts +10 -1
  94. package/src/subcommands/app/shadow.ts +48 -0
  95. package/src/subcommands/app/version.ts +2 -2
  96. 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,51 @@ 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
+ appReleaseHash = '';
177
212
  }
178
213
  }
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
- });
214
+ try {
186
215
  await this.cmdStatusMgr.start(projectId);
187
216
  await this.liveUpdatesHandler.enableAppInstallStatus({
188
217
  projectId,
189
218
  appReleaseHash
190
219
  });
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({
220
+ const completed = await func(...args);
221
+ if (completed) {
222
+ await this.cmdStatusMgr.stop(projectId);
223
+ await this.liveUpdatesHandler.disableAppInstallStatus({
207
224
  projectId
208
225
  });
209
- await this.atomicApplicationUpdate(application_control_1.updateAppCfg, [
210
- {
211
- projectId,
212
- appReleaseHash,
213
- newAppCfg
214
- }
215
- ], projectId, appReleaseHash);
226
+ // Send final status message
227
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
216
228
  }
229
+ return completed;
230
+ }
231
+ catch (e) {
232
+ logger_1.logger.error(`Failed to execute cmd for ${projectId}:\n${e.message}\n${e.stack}`);
233
+ const message = e.message;
234
+ // uninstall the failed app to put system back in good state
235
+ await this.cmdStatusMgr.stop(projectId);
236
+ await this.liveUpdatesHandler.disableAppInstallStatus({
237
+ projectId
238
+ });
239
+ // Send final status message
240
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
217
241
  }
218
242
  }
219
243
  getClientId() {
@@ -228,53 +252,62 @@ class DeviceAgentCloudConnection {
228
252
  isCmdInProgress(projectId) {
229
253
  return this.cmdStatusMgr.isCmdInProgress(projectId);
230
254
  }
255
+ async updateProjectShadow(projectId) {
256
+ await this.shadowHandler.updateProjectShadow(projectId);
257
+ }
231
258
  async handleClientMessage({ topic, message }) {
232
259
  const valid = (0, device_agent_schemas_1.validateClientMessage)(message);
233
260
  if (!valid) {
234
261
  logger_1.logger.error(`Error validating message: ${JSON.stringify({ topic, message, errors: device_agent_schemas_1.validateClientMessage.errors }, null, 2)}`);
262
+ // TODO: Send generic error response
235
263
  return;
236
264
  }
237
265
  const payload = message.payload;
238
266
  switch (payload.messageType) {
239
267
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_state_control: {
240
- await this.handleAppStateControl(payload.appStateControl);
268
+ const projectId = payload.appStateControl.projectId;
269
+ await this.atomicCmd({
270
+ func: this.handleAppStateControl,
271
+ args: [payload.appStateControl],
272
+ projectId
273
+ });
241
274
  break;
242
275
  }
243
276
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control: {
244
- await this.handleAppVersionControl(payload.appVersionControl);
277
+ const projectId = payload.appVersionControl.projectId;
278
+ const appReleaseHash = payload.appVersionControl.baseCommand ===
279
+ device_agent_schemas_1.keyMirrors.appVersionControl.install
280
+ ? payload.appVersionControl.appReleaseHash
281
+ : undefined;
282
+ await this.atomicCmd({
283
+ func: this.handleAppVersionControl,
284
+ args: [payload.appVersionControl],
285
+ projectId,
286
+ appReleaseHash
287
+ });
245
288
  break;
246
289
  }
247
290
  case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates: {
291
+ // TODO: Send response?
248
292
  await this.handleAgentCommand(payload);
249
293
  break;
250
294
  }
251
295
  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);
296
+ const projectId = payload.appInstallCloudResponse.projectId;
297
+ await this.atomicCmd({
298
+ func: this.handleAppInstallCloudResponse,
299
+ args: [payload],
300
+ projectId
301
+ });
258
302
  break;
259
303
  }
260
304
  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({
305
+ const { projectId } = payload.modelsInstallCloudResponse;
306
+ await this.atomicCmd({
307
+ func: this.handleModelsInstallCloudResponse,
308
+ args: [payload],
263
309
  projectId
264
310
  });
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
311
  break;
279
312
  }
280
313
  default:
@@ -286,12 +319,26 @@ class DeviceAgentCloudConnection {
286
319
  switch (topic) {
287
320
  case this.shadowHandler.shadowTopics.projects.getAccepted:
288
321
  case this.shadowHandler.shadowTopics.projects.updateDelta: {
289
- const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
322
+ const shadowUpdates = await this.shadowHandler.handleShadowTopic({
290
323
  topic,
291
324
  payload: message.state,
292
325
  clientToken: message.clientToken
293
326
  });
294
- await this.handleAppConfigUpdates(appConfigUpdates);
327
+ if (shadowUpdates.length) {
328
+ // FIXME: Take project ID of first shadow update. Most likely there will only be one update
329
+ // so this should be sufficient for now.
330
+ const projectId = shadowUpdates[0].projectId;
331
+ try {
332
+ await this.atomicCmd({
333
+ func: this.handleAppConfigUpdates,
334
+ args: [shadowUpdates],
335
+ projectId
336
+ });
337
+ }
338
+ catch (e) {
339
+ logger_1.logger.error(`Error handling shadow message: ${e.message}`);
340
+ }
341
+ }
295
342
  break;
296
343
  }
297
344
  case this.shadowHandler.shadowTopics.projects.getRejected:
@@ -337,14 +384,17 @@ class DeviceAgentCloudConnection {
337
384
  logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
338
385
  });
339
386
  }
340
- stop() {
387
+ async stop() {
388
+ // FIXME: This method is currently only used by the CLI, and shadow messages
389
+ // can be lost since we aren't waiting for responses so sleep for a short
390
+ // time to receive them
391
+ await (0, sleep_1.default)(1000);
341
392
  this.device.end();
342
393
  }
343
394
  }
344
395
  exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
345
396
  async function runDeviceAgentCloudInterface() {
346
- // FIXME: Check for KeyPath as well
347
- if ((0, fs_1.existsSync)(directories_1.DEVICE_CERTIFICATE_FILE_PATH)) {
397
+ if ((0, cloud_mode_ready_1.cloudModeReady)()) {
348
398
  const deviceAgent = new DeviceAgentCloudConnection();
349
399
  await deviceAgent.setupHandlers();
350
400
  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
  }