@alwaysai/device-agent 0.0.16 → 0.0.18

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 (80) hide show
  1. package/lib/application-control/config.d.ts.map +1 -1
  2. package/lib/application-control/config.js +4 -4
  3. package/lib/application-control/config.js.map +1 -1
  4. package/lib/application-control/install.d.ts.map +1 -1
  5. package/lib/application-control/install.js +1 -1
  6. package/lib/application-control/install.js.map +1 -1
  7. package/lib/application-control/models.js +1 -1
  8. package/lib/application-control/utils.d.ts.map +1 -1
  9. package/lib/application-control/utils.js +3 -3
  10. package/lib/application-control/utils.js.map +1 -1
  11. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  12. package/lib/cloud-connection/device-agent-cloud-connection.js +28 -15
  13. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  14. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  15. package/lib/cloud-connection/live-updates-handler.js +9 -8
  16. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  17. package/lib/cloud-connection/messages.js +1 -1
  18. package/lib/cloud-connection/messages.js.map +1 -1
  19. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
  20. package/lib/cloud-connection/passthrough-handler.js +0 -1
  21. package/lib/cloud-connection/passthrough-handler.js.map +1 -1
  22. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  23. package/lib/cloud-connection/publisher.js +0 -1
  24. package/lib/cloud-connection/publisher.js.map +1 -1
  25. package/lib/cloud-connection/shadow-handler.d.ts +9 -5
  26. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  27. package/lib/cloud-connection/shadow-handler.js +14 -6
  28. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  29. package/lib/cloud-connection/shadow-handler.test.js +24 -14
  30. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  31. package/lib/cloud-connection/shadow.js +1 -1
  32. package/lib/cloud-connection/shadow.js.map +1 -1
  33. package/lib/subcommands/app/env-vars.d.ts +8 -0
  34. package/lib/subcommands/app/env-vars.d.ts.map +1 -0
  35. package/lib/subcommands/app/env-vars.js +43 -0
  36. package/lib/subcommands/app/env-vars.js.map +1 -0
  37. package/lib/subcommands/app/index.d.ts.map +1 -1
  38. package/lib/subcommands/app/index.js +20 -19
  39. package/lib/subcommands/app/index.js.map +1 -1
  40. package/lib/subcommands/app/models.d.ts +20 -0
  41. package/lib/subcommands/app/models.d.ts.map +1 -0
  42. package/lib/subcommands/app/models.js +114 -0
  43. package/lib/subcommands/app/models.js.map +1 -0
  44. package/lib/subcommands/app/status.d.ts +17 -0
  45. package/lib/subcommands/app/status.d.ts.map +1 -0
  46. package/lib/subcommands/app/status.js +103 -0
  47. package/lib/subcommands/app/status.js.map +1 -0
  48. package/lib/subcommands/app/version.d.ts +12 -0
  49. package/lib/subcommands/app/version.d.ts.map +1 -0
  50. package/lib/subcommands/app/version.js +103 -0
  51. package/lib/subcommands/app/version.js.map +1 -0
  52. package/lib/util/get-device-id.js +1 -1
  53. package/lib/util/get-device-id.js.map +1 -1
  54. package/lib/util/http-client.js +1 -1
  55. package/lib/util/http-client.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/application-control/config.ts +8 -4
  58. package/src/application-control/install.ts +3 -1
  59. package/src/application-control/models.ts +1 -1
  60. package/src/application-control/utils.ts +3 -4
  61. package/src/cloud-connection/device-agent-cloud-connection.ts +33 -21
  62. package/src/cloud-connection/live-updates-handler.ts +14 -13
  63. package/src/cloud-connection/messages.ts +1 -1
  64. package/src/cloud-connection/passthrough-handler.ts +0 -1
  65. package/src/cloud-connection/publisher.ts +0 -1
  66. package/src/cloud-connection/shadow-handler.test.ts +24 -14
  67. package/src/cloud-connection/shadow-handler.ts +21 -8
  68. package/src/cloud-connection/shadow.ts +1 -1
  69. package/src/subcommands/app/env-vars.ts +46 -0
  70. package/src/subcommands/app/index.ts +16 -17
  71. package/src/subcommands/app/models.ts +129 -0
  72. package/src/subcommands/app/status.ts +92 -0
  73. package/src/subcommands/app/version.ts +103 -0
  74. package/src/util/get-device-id.ts +1 -1
  75. package/src/util/http-client.ts +1 -1
  76. package/lib/subcommands/app/app.d.ts +0 -60
  77. package/lib/subcommands/app/app.d.ts.map +0 -1
  78. package/lib/subcommands/app/app.js +0 -370
  79. package/lib/subcommands/app/app.js.map +0 -1
  80. package/src/subcommands/app/app.ts +0 -390
@@ -1,370 +0,0 @@
1
- "use strict";
2
- var __asyncValues = (this && this.__asyncValues) || function (o) {
3
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
4
- var m = o[Symbol.asyncIterator], i;
5
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
6
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
7
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.setEnvCliLeaf = exports.getAllEnvsCliLeaf = exports.updateModelsCliLeaf = exports.replaceModelsCliLeaf = exports.removeModelCliLeaf = exports.addModelCliLeaf = exports.showAppModelsCliLeaf = exports.rollbackAppCliLeaf = exports.uninstallAppCliLeaf = exports.restartAppCliLeaf = exports.stopAppCliLeaf = exports.getAppLogsCliLeaf = exports.startAppCliLeaf = exports.getAppStatusCliLeaf = exports.installAppCliLeaf = exports.listAppLatestReleaseCliLeaf = exports.listAppReleasesCliLeaf = exports.listAppsCliLeaf = void 0;
11
- const alwayscli_1 = require("@alwaysai/alwayscli");
12
- const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
13
- const application_control_1 = require("../../application-control");
14
- const device_agent_cloud_connection_1 = require("../../cloud-connection/device-agent-cloud-connection");
15
- const agent_config_1 = require("../../infrastructure/agent-config");
16
- const logger_1 = require("../../util/logger");
17
- const sleep_1 = require("../../util/sleep");
18
- exports.listAppsCliLeaf = (0, alwayscli_1.CliLeaf)({
19
- name: 'list',
20
- description: 'List all installed apps',
21
- namedInputs: {},
22
- async action(_, opts) {
23
- const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
24
- console.table(apps);
25
- }
26
- });
27
- exports.listAppReleasesCliLeaf = (0, alwayscli_1.CliLeaf)({
28
- name: 'list-releases',
29
- description: 'List all releases for a given app',
30
- namedInputs: {
31
- project: (0, alwayscli_1.CliStringInput)({
32
- description: 'Project ID',
33
- required: true
34
- })
35
- },
36
- hidden: true,
37
- async action(_, opts) {
38
- throw new alwayscli_1.CliTerseError('This command is yet currently implemented!');
39
- }
40
- });
41
- exports.listAppLatestReleaseCliLeaf = (0, alwayscli_1.CliLeaf)({
42
- name: 'list-latest-release',
43
- description: 'List the latest release hash for a given app',
44
- namedInputs: {
45
- project: (0, alwayscli_1.CliStringInput)({
46
- description: 'Project ID',
47
- required: true
48
- })
49
- },
50
- hidden: true,
51
- async action(_, opts) {
52
- throw new alwayscli_1.CliTerseError('This command is yet currently implemented!');
53
- }
54
- });
55
- exports.installAppCliLeaf = (0, alwayscli_1.CliLeaf)({
56
- name: 'install',
57
- description: 'Install an alwaysAI app from a project',
58
- namedInputs: {
59
- project: (0, alwayscli_1.CliStringInput)({
60
- description: 'Project ID',
61
- required: true
62
- }),
63
- releaseHash: (0, alwayscli_1.CliStringInput)({
64
- description: 'Release Hash',
65
- required: true
66
- })
67
- },
68
- async action(_, opts) {
69
- const { project, releaseHash } = opts;
70
- const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
71
- await deviceAgent.setupHandlers();
72
- const topic = deviceAgent.getToDeviceTopic();
73
- const message = {
74
- timestamp: '',
75
- topic,
76
- payload: {
77
- messageType: device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control,
78
- appVersionControl: {
79
- baseCommand: device_agent_schemas_1.keyMirrors.appVersionControl.install,
80
- projectId: project,
81
- appReleaseHash: releaseHash
82
- }
83
- }
84
- };
85
- await deviceAgent.handleMessage(topic, message);
86
- while (deviceAgent.isCmdInProgress(project)) {
87
- await (0, sleep_1.default)(1000);
88
- }
89
- deviceAgent.stop();
90
- }
91
- });
92
- exports.getAppStatusCliLeaf = (0, alwayscli_1.CliLeaf)({
93
- name: 'status',
94
- description: 'Get the status of an installed alwaysAI app',
95
- namedInputs: {
96
- project: (0, alwayscli_1.CliStringInput)({
97
- description: 'Project ID',
98
- required: true
99
- })
100
- },
101
- async action(_, opts) {
102
- const { project } = opts;
103
- const appStatus = await (0, application_control_1.getAppStatus)({ projectId: project });
104
- logger_1.logger.info(JSON.stringify(appStatus, null, 2));
105
- }
106
- });
107
- exports.startAppCliLeaf = (0, alwayscli_1.CliLeaf)({
108
- name: 'start',
109
- description: 'Start an installed alwaysAI app',
110
- namedInputs: {
111
- project: (0, alwayscli_1.CliStringInput)({
112
- description: 'Project ID',
113
- required: true
114
- }),
115
- dockerLoginToken: (0, alwayscli_1.CliStringInput)({
116
- description: 'Docker login token'
117
- })
118
- },
119
- async action(_, opts) {
120
- const { project, dockerLoginToken } = opts;
121
- await (0, application_control_1.startApp)({ projectId: project, dockerLoginToken });
122
- }
123
- });
124
- exports.getAppLogsCliLeaf = (0, alwayscli_1.CliLeaf)({
125
- name: 'logs',
126
- description: 'Get logs for an application',
127
- namedInputs: {
128
- project: (0, alwayscli_1.CliStringInput)({
129
- description: 'Project ID',
130
- required: true
131
- })
132
- },
133
- async action(_, opts) {
134
- var e_1, _a;
135
- const { project } = opts;
136
- const readable = await (0, application_control_1.getAppLogs)({ projectId: project });
137
- readable.setEncoding('utf8');
138
- try {
139
- for (var readable_1 = __asyncValues(readable), readable_1_1; readable_1_1 = await readable_1.next(), !readable_1_1.done;) {
140
- const chunk = readable_1_1.value;
141
- logger_1.logger.info(chunk);
142
- }
143
- }
144
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
145
- finally {
146
- try {
147
- if (readable_1_1 && !readable_1_1.done && (_a = readable_1.return)) await _a.call(readable_1);
148
- }
149
- finally { if (e_1) throw e_1.error; }
150
- }
151
- }
152
- });
153
- exports.stopAppCliLeaf = (0, alwayscli_1.CliLeaf)({
154
- name: 'stop',
155
- description: 'Stop a running alwaysAI app',
156
- namedInputs: {
157
- project: (0, alwayscli_1.CliStringInput)({
158
- description: 'Project ID',
159
- required: true
160
- })
161
- },
162
- async action(_, opts) {
163
- const { project } = opts;
164
- await (0, application_control_1.stopApp)({ projectId: project });
165
- }
166
- });
167
- exports.restartAppCliLeaf = (0, alwayscli_1.CliLeaf)({
168
- name: 'restart',
169
- description: 'Restart running alwaysAI app',
170
- namedInputs: {
171
- project: (0, alwayscli_1.CliStringInput)({
172
- description: 'Project ID',
173
- required: true
174
- })
175
- },
176
- async action(_, opts) {
177
- const { project } = opts;
178
- await (0, application_control_1.restartApp)({ projectId: project });
179
- }
180
- });
181
- exports.uninstallAppCliLeaf = (0, alwayscli_1.CliLeaf)({
182
- name: 'uninstall',
183
- description: 'Remove an alwaysAI app',
184
- namedInputs: {
185
- project: (0, alwayscli_1.CliStringInput)({
186
- description: 'Project ID',
187
- required: true
188
- })
189
- },
190
- async action(_, opts) {
191
- const { project } = opts;
192
- const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
193
- await deviceAgent.setupHandlers();
194
- const topic = deviceAgent.getToDeviceTopic();
195
- const message = {
196
- timestamp: '',
197
- topic,
198
- payload: {
199
- messageType: device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control,
200
- appVersionControl: {
201
- baseCommand: device_agent_schemas_1.keyMirrors.appVersionControl.uninstall,
202
- projectId: project
203
- }
204
- }
205
- };
206
- await deviceAgent.handleMessage(topic, message);
207
- while (deviceAgent.isCmdInProgress(project)) {
208
- await (0, sleep_1.default)(1000);
209
- }
210
- deviceAgent.stop();
211
- }
212
- });
213
- exports.rollbackAppCliLeaf = (0, alwayscli_1.CliLeaf)({
214
- name: 'rollback',
215
- description: 'Rollback an alwaysAI app to the previous version',
216
- namedInputs: {
217
- project: (0, alwayscli_1.CliStringInput)({
218
- description: 'Project ID',
219
- required: true
220
- })
221
- },
222
- hidden: true,
223
- async action(_, opts) {
224
- const { project } = opts;
225
- await (0, application_control_1.rollbackApp)({ projectId: project });
226
- }
227
- });
228
- exports.showAppModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
229
- name: 'show-models',
230
- description: 'Show the application models',
231
- namedInputs: {
232
- project: (0, alwayscli_1.CliStringInput)({
233
- description: 'Project ID',
234
- required: true
235
- })
236
- },
237
- async action(_, opts) {
238
- const { project } = opts;
239
- const appModels = await (0, application_control_1.getAppModels)({ projectId: project });
240
- console.table(appModels);
241
- }
242
- });
243
- exports.addModelCliLeaf = (0, alwayscli_1.CliLeaf)({
244
- name: 'add-model',
245
- description: 'Add a model to an alwaysAI app',
246
- namedInputs: {
247
- project: (0, alwayscli_1.CliStringInput)({
248
- description: 'Project ID',
249
- required: true
250
- }),
251
- model: (0, alwayscli_1.CliStringInput)({
252
- description: 'Model ID',
253
- required: true
254
- }),
255
- version: (0, alwayscli_1.CliStringInput)({
256
- description: 'Model version',
257
- required: true
258
- })
259
- },
260
- async action(_, opts) {
261
- const { project, model, version } = opts;
262
- const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
263
- await deviceAgent.setupHandlers();
264
- const topic = deviceAgent.getShadowTopics().projects.updateDelta;
265
- const newAppCfg = await (0, application_control_1.readAppCfgFile)({ projectId: project });
266
- newAppCfg.models[model] = Number(version);
267
- const message = {
268
- version: 3,
269
- timestamp: 0,
270
- state: {
271
- [project]: {
272
- appConfig: JSON.stringify(newAppCfg)
273
- }
274
- },
275
- clientToken: 'not-self'
276
- };
277
- await deviceAgent.handleMessage(topic, message);
278
- while (deviceAgent.isCmdInProgress(project)) {
279
- await (0, sleep_1.default)(1000);
280
- }
281
- deviceAgent.stop();
282
- }
283
- });
284
- exports.removeModelCliLeaf = (0, alwayscli_1.CliLeaf)({
285
- name: 'remove-model',
286
- description: 'Remove a model from an alwaysAI app',
287
- namedInputs: {
288
- project: (0, alwayscli_1.CliStringInput)({
289
- description: 'Project ID',
290
- required: true
291
- }),
292
- model: (0, alwayscli_1.CliStringInput)({
293
- description: 'Model ID',
294
- required: true
295
- })
296
- },
297
- async action(_, opts) {
298
- const { project, model } = opts;
299
- await (0, application_control_1.removeModel)({ projectId: project, modelId: model });
300
- }
301
- });
302
- exports.replaceModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
303
- name: 'replace-models',
304
- description: 'Replace all models of an alwaysAI app with new models',
305
- namedInputs: {
306
- project: (0, alwayscli_1.CliStringInput)({
307
- description: 'Project Id',
308
- required: true
309
- }),
310
- models: (0, alwayscli_1.CliStringArrayInput)({
311
- description: 'One or more model IDs',
312
- required: true
313
- })
314
- },
315
- async action(_, opts) {
316
- const { project, models } = opts;
317
- await (0, application_control_1.replaceModels)({ projectId: project, modelIds: models });
318
- }
319
- });
320
- exports.updateModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
321
- name: 'update-models',
322
- description: 'Update all models for an alwaysAI app',
323
- namedInputs: {
324
- project: (0, alwayscli_1.CliStringInput)({
325
- description: 'Project Id',
326
- required: true
327
- })
328
- },
329
- async action(_, opts) {
330
- const { project } = opts;
331
- await (0, application_control_1.updateModels)({ projectId: project });
332
- }
333
- });
334
- exports.getAllEnvsCliLeaf = (0, alwayscli_1.CliLeaf)({
335
- name: 'get-all-envs',
336
- description: 'Get environment variables for an application',
337
- namedInputs: {
338
- project: (0, alwayscli_1.CliStringInput)({
339
- description: 'Project Id',
340
- required: true
341
- })
342
- },
343
- async action(_, opts) {
344
- const { project } = opts;
345
- logger_1.logger.info(await (0, application_control_1.getAllEnvs)({ projectId: project }));
346
- }
347
- });
348
- exports.setEnvCliLeaf = (0, alwayscli_1.CliLeaf)({
349
- name: 'set-env',
350
- description: 'Set environment variables for a service',
351
- positionalInput: (0, alwayscli_1.CliStringArrayInput)({
352
- placeholder: '<NAME=VALUE> [<NAME=VALUE> ...]',
353
- required: true
354
- }),
355
- namedInputs: {
356
- project: (0, alwayscli_1.CliStringInput)({
357
- description: 'Project Id',
358
- required: true
359
- }),
360
- service: (0, alwayscli_1.CliStringInput)({
361
- description: 'The name of the docker-compose service to apply environment variable to',
362
- required: false
363
- })
364
- },
365
- async action(args, opts) {
366
- const { project, service } = opts;
367
- await (0, application_control_1.setEnv)({ projectId: project, vars: args, service });
368
- }
369
- });
370
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/subcommands/app/app.ts"],"names":[],"mappings":"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"}