@alwaysai/device-agent 1.3.1-2 → 1.4.0
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/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +9 -4
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/environment-variables.test.js +1 -1
- package/lib/application-control/environment-variables.test.js.map +1 -1
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +6 -2
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +4 -2
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.js +4 -5
- package/lib/application-control/status.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +30 -23
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +1 -0
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +22 -4
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/messages.d.ts.map +1 -1
- package/lib/cloud-connection/messages.js +3 -4
- package/lib/cloud-connection/messages.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.d.ts +4 -0
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +18 -11
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/device-control/device-control.d.ts +5 -12
- package/lib/device-control/device-control.d.ts.map +1 -1
- package/lib/device-control/device-control.js +37 -14
- package/lib/device-control/device-control.js.map +1 -1
- package/lib/subcommands/device/clean.d.ts.map +1 -1
- package/lib/subcommands/device/clean.js +3 -1
- package/lib/subcommands/device/clean.js.map +1 -1
- package/lib/subcommands/device/device.d.ts.map +1 -1
- package/lib/subcommands/device/device.js +14 -6
- package/lib/subcommands/device/device.js.map +1 -1
- package/package.json +2 -2
- package/src/application-control/environment-variables.test.ts +1 -1
- package/src/application-control/environment-variables.ts +9 -6
- package/src/application-control/install.ts +7 -3
- package/src/application-control/models.ts +11 -6
- package/src/application-control/status.ts +8 -8
- package/src/cloud-connection/device-agent-cloud-connection.ts +45 -26
- package/src/cloud-connection/live-updates-handler.ts +34 -6
- package/src/cloud-connection/messages.ts +3 -4
- package/src/cloud-connection/shadow-handler.ts +41 -10
- package/src/device-control/device-control.ts +43 -16
- package/src/subcommands/device/clean.ts +4 -1
- package/src/subcommands/device/device.ts +26 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,qCAAqC,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"shadow-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,OAAO,EAIR,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAchE,oBAAY,eAAe,GAAG;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAY;IACtB,mBAAmB,EAAE,MAAM,EAAE,CAAM;IAC1C,SAAgB,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;gBACzC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;YAoDpC,uBAAuB;YAiDvB,2BAA2B;YAkC3B,0BAA0B;IAiD3B,mBAAmB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,WAAW,EACZ,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,GAAG,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqEd,sBAAsB;IAUtB,mBAAmB,CAAC,SAAS,EAAE,MAAM;IAqBrC,oBAAoB,CAAC,EAChC,SAAS,EACT,OAAO,EACR,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB;IAkBM,uBAAuB;IAOvB,kBAAkB,CAAC,SAAS,EAAE,MAAM;CAY5C"}
|
|
@@ -75,25 +75,21 @@ class ShadowHandler {
|
|
|
75
75
|
return appCfgUpdate;
|
|
76
76
|
}
|
|
77
77
|
async processProjectShadowUpdates({ delta }) {
|
|
78
|
-
const
|
|
78
|
+
const shadowUpdatesPromises = [];
|
|
79
79
|
for (const [projectId, projectDelta] of Object.entries(delta)) {
|
|
80
80
|
if (projectDelta) {
|
|
81
81
|
const valid = (0, device_agent_schemas_1.validateProjectShadowUpdate)(projectDelta);
|
|
82
82
|
if (!valid) {
|
|
83
83
|
logger_1.logger.error(`Error validating shadow update: ${JSON.stringify({ projectDelta, errors: device_agent_schemas_1.validateProjectShadowUpdate.errors }, null, 2)}`);
|
|
84
|
+
continue;
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
});
|
|
90
|
-
if (shadowUpdate) {
|
|
91
|
-
shadowUpdates.push(shadowUpdate);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
86
|
+
shadowUpdatesPromises.push(this.processProjectShadowUpdate({
|
|
87
|
+
projectId,
|
|
88
|
+
projectDelta
|
|
89
|
+
}));
|
|
94
90
|
}
|
|
95
91
|
}
|
|
96
|
-
return
|
|
92
|
+
return (await Promise.all(shadowUpdatesPromises)).filter((promise) => promise !== null);
|
|
97
93
|
}
|
|
98
94
|
async processProjectShadowUpdate({ projectId, projectDelta }) {
|
|
99
95
|
const txId = (0, device_agent_schemas_1.generateTxId)();
|
|
@@ -192,6 +188,17 @@ class ShadowHandler {
|
|
|
192
188
|
reported: toReport
|
|
193
189
|
})));
|
|
194
190
|
}
|
|
191
|
+
async updateProjectEnvVars({ projectId, envVars }) {
|
|
192
|
+
await (0, application_control_1.setEnv)({ projectId, envVars });
|
|
193
|
+
this.publisher.publish((0, device_agent_schemas_1.getShadowTopic)(this.clientId, 'projects', 'update'), JSON.stringify((0, device_agent_schemas_1.buildUpdateProjectShadowMessage)({
|
|
194
|
+
clientId: this.clientId,
|
|
195
|
+
reported: {
|
|
196
|
+
[projectId]: {
|
|
197
|
+
envVars
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
})));
|
|
201
|
+
}
|
|
195
202
|
getProjectShadowUpdates() {
|
|
196
203
|
this.publisher.publish((0, device_agent_schemas_1.getShadowTopic)(this.clientId, 'projects', 'get'), JSON.stringify((0, device_agent_schemas_1.buildBaseShadowMessage)(this.clientId)));
|
|
197
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":";;;AAAA,mFAG6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"shadow-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":";;;AAAA,mFAG6C;AAC7C,gEAKgC;AAChC,qEAAwE;AACxE,2CAAwC;AAExC,qCAAgE;AAChE,yEAWwC;AAkBxC,MAAa,aAAa;IAKxB,YAAY,QAAgB,EAAE,SAAoB;QAF3C,wBAAmB,GAAa,EAAE,CAAC;QAGxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG;YAClB,OAAO,EAAE;gBACP,GAAG,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;gBAChD,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;gBACjE,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;gBACjE,MAAM,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;gBACtD,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;gBACjE,cAAc,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC;gBACvE,cAAc,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC;aACxE;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC;aAC1D;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC;gBACrD,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC;gBACtE,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC;gBACtE,MAAM,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC;gBAC3D,WAAW,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC;gBACtE,cAAc,EAAE,IAAA,qCAAc,EAC5B,QAAQ,EACR,eAAe,EACf,iBAAiB,CAClB;gBACD,cAAc,EAAE,IAAA,qCAAc,EAC5B,QAAQ,EACR,eAAe,EACf,iBAAiB,CAClB;gBACD,MAAM,EAAE,IAAA,qCAAc,EAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC;gBAC3D,cAAc,EAAE,IAAA,qCAAc,EAC5B,QAAQ,EACR,eAAe,EACf,iBAAiB,CAClB;gBACD,cAAc,EAAE,IAAA,qCAAc,EAC5B,QAAQ,EACR,eAAe,EACf,iBAAiB,CAClB;aACF;SACF,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,SAAS,EAKV;QACC,IAAI,YAAiB,CAAC;QACtB,IAAI,SAAc,CAAC;QAEnB,+BAA+B;QAC/B,IAAI;YACF,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,eAAM,CAAC,KAAK,CACV,iDAAiD,IAAI,MAAM,KAAK,EAAE,CACnE,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAA,6CAAiB,EAAC,SAAS,CAAC,EAAE;YACjC,0DAA0D;YAC1D,eAAM,CAAC,KAAK,CACV,mCAAmC,SAAS,MAAM,IAAI,CAAC,SAAS,CAC9D,6CAAiB,CAAC,MAAM,EACxB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAED,wCAAwC;QACxC,eAAM,CAAC,IAAI,CAAC,iDAAiD,SAAS,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,4BAAmB,EAAC;YAClD,SAAS;YACT,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;YACtD,YAAY,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;SAC7C;aAAM;YACL,YAAY,GAAG,EAAE,SAAS,EAAE,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAC,EACxC,KAAK,EAGN;QACC,MAAM,qBAAqB,GAAmC,EAAE,CAAC;QAEjE,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7D,IAAI,YAAY,EAAE;gBAChB,MAAM,KAAK,GAAG,IAAA,kDAA2B,EAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,EAAE;oBACV,eAAM,CAAC,KAAK,CACV,mCAAmC,IAAI,CAAC,SAAS,CAC/C,EAAE,YAAY,EAAE,MAAM,EAAE,kDAA2B,CAAC,MAAM,EAAE,EAC5D,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;oBACF,SAAS;iBACV;gBAED,qBAAqB,CAAC,IAAI,CACxB,IAAI,CAAC,0BAA0B,CAAC;oBAC9B,SAAS;oBACT,YAAY;iBACb,CAAC,CACH,CAAC;aACH;SACF;QACD,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CACtD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CACZ,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,EACvC,SAAS,EACT,YAAY,EAIb;QACC,MAAM,IAAI,GAAG,IAAA,mCAAY,GAAE,CAAC;QAC5B,MAAM,YAAY,GAAiB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAEvD,2BAA2B;QAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC3B,eAAM,CAAC,IAAI,CACT,yCAAyC,SAAS,kBAAkB,CACrE,CAAC;SACH;aAAM;YACL,eAAM,CAAC,IAAI,CAAC,iDAAiD,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC;gBACtD,SAAS;gBACT,IAAI;gBACJ,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;aAC1C;SACF;QAED,yBAAyB;QACzB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACzB,eAAM,CAAC,IAAI,CACT,uDAAuD,SAAS,kBAAkB,CACnF,CAAC;SACH;aAAM;YACL,eAAM,CAAC,IAAI,CACT,+DAA+D,SAAS,EAAE,CAC3E,CAAC;YACF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YACrC,YAAY,CAAC,YAAY,GAAG,EAAE,OAAO,EAAE,CAAC;SACzC;QAED,OAAO,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY;YAC3D,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,mBAAmB;IAEZ,KAAK,CAAC,mBAAmB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,WAAW,EAKZ;QACC,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,KAAK,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SACzE;QACD,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;oBACjC,eAAM,CAAC,KAAK,CACV,6DAA6D,IAAI,CAAC,SAAS,CACzE,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;oBACF,MAAM;iBACP;gBACD,MAAM,OAAO,GAAG,IAAA,4CAAqB,EAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,EAAE;oBACZ,eAAM,CAAC,KAAK,CACV,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAChE,CAAC;iBACH;qBAAM;oBACL,OAAO,MAAM,IAAI,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;iBACnE;gBACD,MAAM;aACP;YACD,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;oBACjC,eAAM,CAAC,KAAK,CACV,6DAA6D,IAAI,CAAC,SAAS,CACzE,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;oBACF,MAAM;iBACP;gBACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;oBACvB,OAAO,MAAM,IAAI,CAAC,2BAA2B,CAAC;wBAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;qBAC3B,CAAC,CAAC;iBACJ;qBAAM;oBACL,eAAM,CAAC,IAAI,CACT,qDACE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CACpB,GAAG,CACJ,CAAC;iBACH;gBACD,MAAM;aACP;YACD,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3C,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3C,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,6BAA6B;gBAC7B,MAAM;aACP;YACD;gBACE,eAAM,CAAC,IAAI,CACT,2DAA2D,IAAI,CAAC,SAAS,CACvE,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;SACL;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,sBAAsB;QACjC,MAAM,UAAU,GAAG,MAAM,IAAA,qCAAoB,GAAE,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,EACtD,IAAI,CAAC,SAAS,CACZ,IAAA,yDAAkC,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAC9D,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QAChD,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAc,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAA,gCAAU,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAA4B;YACxC,CAAC,SAAS,CAAC,EAAE;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBACjC,OAAO;aACR;SACF,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EACnD,IAAI,CAAC,SAAS,CACZ,IAAA,sDAA+B,EAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,EAChC,SAAS,EACT,OAAO,EAIR;QACC,MAAM,IAAA,4BAAM,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EACnD,IAAI,CAAC,SAAS,CACZ,IAAA,sDAA+B,EAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE;gBACR,CAAC,SAAS,CAAC,EAAE;oBACX,OAAO;iBACR;aACF;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEM,uBAAuB;QAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAChD,IAAI,CAAC,SAAS,CAAC,IAAA,6CAAsB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,SAAiB;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EACnD,IAAI,CAAC,SAAS,CACZ,IAAA,sDAA+B,EAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAC/B,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;SAC/B,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF;AApVD,sCAoVC"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import { SystemInformationShadowUpdate } from '@alwaysai/device-agent-schemas';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare function getDiskDetails(): Promise<{
|
|
7
|
-
usedGb: number;
|
|
8
|
-
freeGb: number;
|
|
9
|
-
}>;
|
|
10
|
-
export declare function getMemDetails(): Promise<{
|
|
11
|
-
usedMb: number;
|
|
12
|
-
freeMb: number;
|
|
13
|
-
}>;
|
|
2
|
+
import { DeviceStatsPayload } from '@alwaysai/device-agent-schemas';
|
|
3
|
+
export declare function getCpuDetails(): Promise<DeviceStatsPayload['cpuDetails']>;
|
|
4
|
+
export declare function getDiskDetails(): Promise<DeviceStatsPayload['diskDetails']>;
|
|
5
|
+
export declare function getMemDetails(): Promise<DeviceStatsPayload['memDetails']>;
|
|
14
6
|
export declare function getOsInfo(): Promise<{
|
|
15
7
|
platform: string;
|
|
16
8
|
distro: string;
|
|
@@ -54,6 +46,7 @@ export declare function getPackageVersions(): Promise<{
|
|
|
54
46
|
agent: any;
|
|
55
47
|
deviceAgentSchemas: any;
|
|
56
48
|
}>;
|
|
49
|
+
export declare function getLastBootTime(): Promise<string | undefined>;
|
|
57
50
|
export declare function getSystemInformation(): Promise<SystemInformationShadowUpdate>;
|
|
58
51
|
export declare function reboot(): Promise<void>;
|
|
59
52
|
//# sourceMappingURL=device-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKpE,wBAAsB,aAAa,IAAI,OAAO,CAC5C,kBAAkB,CAAC,YAAY,CAAC,CACjC,CAOA;AAED,wBAAsB,cAAc,IAAI,OAAO,CAC7C,kBAAkB,CAAC,aAAa,CAAC,CAClC,CAWA;AAED,wBAAsB,aAAa,IAAI,OAAO,CAC5C,kBAAkB,CAAC,YAAY,CAAC,CACjC,CAMA;AAGD,wBAAsB,SAAS;;;;;;;GAU9B;AAED,wBAAsB,UAAU;;;;;;;;;GAY/B;AAED,wBAAsB,WAAW;;;;;;;;GAWhC;AAED,wBAAsB,aAAa;;;;;;GAYlC;AAED,wBAAsB,cAAc;;;;GAWnC;AAED,wBAAsB,kBAAkB;;;GASvC;AAED,wBAAsB,eAAe,gCAcpC;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,6BAA6B,CAAC,CAgBnF;AAED,wBAAsB,MAAM,kBAiB3B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.reboot = exports.getSystemInformation = exports.getPackageVersions = exports.getNetworkInfo = exports.getDeviceInfo = exports.getDiskInfo = exports.getCpuInfo = exports.getOsInfo = exports.getMemDetails = exports.getDiskDetails = exports.getCpuDetails = void 0;
|
|
3
|
+
exports.reboot = exports.getSystemInformation = exports.getLastBootTime = exports.getPackageVersions = exports.getNetworkInfo = exports.getDeviceInfo = exports.getDiskInfo = exports.getCpuInfo = exports.getOsInfo = exports.getMemDetails = exports.getDiskDetails = exports.getCpuDetails = void 0;
|
|
4
4
|
const logger_1 = require("../util/logger");
|
|
5
5
|
const osu = require("node-os-utils");
|
|
6
6
|
const si = require("systeminformation");
|
|
@@ -11,28 +11,35 @@ const exec_promise = (0, util_1.promisify)(child_process_1.exec);
|
|
|
11
11
|
async function getCpuDetails() {
|
|
12
12
|
const cpuFree = await osu.cpu.free();
|
|
13
13
|
const cpuTemp = await si.cpuTemperature();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const cpuDetails = {};
|
|
15
|
+
if (cpuFree !== null)
|
|
16
|
+
cpuDetails.usedPerc = 100 - cpuFree;
|
|
17
|
+
if ((cpuTemp === null || cpuTemp === void 0 ? void 0 : cpuTemp.main) !== null)
|
|
18
|
+
cpuDetails.temperature = cpuTemp.main;
|
|
19
|
+
return cpuDetails;
|
|
18
20
|
}
|
|
19
21
|
exports.getCpuDetails = getCpuDetails;
|
|
20
22
|
async function getDiskDetails() {
|
|
21
23
|
// Types incorrectly specify diskname as required instead of optional
|
|
22
24
|
// @ts-expect-error
|
|
23
25
|
const driveInfo = await osu.drive.info();
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const diskDetails = {};
|
|
27
|
+
if ((driveInfo === null || driveInfo === void 0 ? void 0 : driveInfo.usedGb) !== null)
|
|
28
|
+
diskDetails.usedGb = parseFloat(driveInfo.usedGb);
|
|
29
|
+
if ((driveInfo === null || driveInfo === void 0 ? void 0 : driveInfo.freeGb) !== null) {
|
|
30
|
+
diskDetails.freeGb = parseFloat(driveInfo.freeGb);
|
|
31
|
+
}
|
|
32
|
+
return diskDetails;
|
|
28
33
|
}
|
|
29
34
|
exports.getDiskDetails = getDiskDetails;
|
|
30
35
|
async function getMemDetails() {
|
|
31
36
|
const memInfo = await osu.mem.info();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
const memDetails = {};
|
|
38
|
+
if ((memInfo === null || memInfo === void 0 ? void 0 : memInfo.usedMemMb) !== null)
|
|
39
|
+
memDetails.usedMb = memInfo.usedMemMb;
|
|
40
|
+
if ((memInfo === null || memInfo === void 0 ? void 0 : memInfo.freeMemMb) !== null)
|
|
41
|
+
memDetails.freeMb = memInfo.freeMemMb;
|
|
42
|
+
return memDetails;
|
|
36
43
|
}
|
|
37
44
|
exports.getMemDetails = getMemDetails;
|
|
38
45
|
// System information
|
|
@@ -111,6 +118,21 @@ async function getPackageVersions() {
|
|
|
111
118
|
};
|
|
112
119
|
}
|
|
113
120
|
exports.getPackageVersions = getPackageVersions;
|
|
121
|
+
async function getLastBootTime() {
|
|
122
|
+
try {
|
|
123
|
+
const test = await exec_promise("last -x reboot | grep reboot | head -n 1 | awk '{ print $5, $6, $7, $8 }'");
|
|
124
|
+
if (test.stderr) {
|
|
125
|
+
logger_1.logger.error(`Stderr when getting last boot time: ${test.stderr}`);
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
return new Date(test.stdout).toString();
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
logger_1.logger.error(`Issue getting last boot time: ${e.message}`);
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.getLastBootTime = getLastBootTime;
|
|
114
136
|
async function getSystemInformation() {
|
|
115
137
|
try {
|
|
116
138
|
const systemInfo = {
|
|
@@ -119,7 +141,8 @@ async function getSystemInformation() {
|
|
|
119
141
|
disk: await getDiskInfo(),
|
|
120
142
|
device: await getDeviceInfo(),
|
|
121
143
|
network: await getNetworkInfo(),
|
|
122
|
-
versions: await getPackageVersions()
|
|
144
|
+
versions: await getPackageVersions(),
|
|
145
|
+
lastBootTime: await getLastBootTime()
|
|
123
146
|
};
|
|
124
147
|
return systemInfo;
|
|
125
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qCAAqC;AACrC,wCAAwC;AACxC,iDAAqC;AACrC,+BAAiC;
|
|
1
|
+
{"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY,yKAuCvB,CAAC"}
|
|
@@ -27,10 +27,12 @@ exports.cleanCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
27
27
|
await (0, safe_rimraf_1.default)(directories_1.DEVICE_AGENT_CFG_PATH);
|
|
28
28
|
logger_1.logger.debug('Checking for alwaysAI applications still running');
|
|
29
29
|
const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
|
|
30
|
+
const stopAppPromises = [];
|
|
30
31
|
for (const app of apps) {
|
|
31
32
|
const { projectId } = app;
|
|
32
|
-
|
|
33
|
+
stopAppPromises.push((0, application_control_1.stopApp)({ projectId }));
|
|
33
34
|
}
|
|
35
|
+
await Promise.all(stopAppPromises);
|
|
34
36
|
await (0, safe_rimraf_1.default)(paths_1.LOCAL_CERT_AND_KEY_DIR);
|
|
35
37
|
logger_1.logger.debug(`Removing ${(0, agent_config_1.AgentConfigFile)().path}`);
|
|
36
38
|
(0, agent_config_1.AgentConfigFile)().remove();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,8CAA2C;AAC3C,oEAAoE;AACpE,qDAA4D;AAC5D,wDAKgC;AAChC,oFAGoD;AACpD,mEAAoD;AACpD,8CAA4D;AAC5D,wDAAgD;AAEnC,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,+BAA+B;IAC5C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,eAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,IAAI;YACF,IAAI,MAAM,IAAA,mDAA6B,GAAE,EAAE;gBACzC,MAAM,IAAA,2CAAqB,GAAE,CAAC;aAC/B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CACV,0GAA0G,8CAAgC,EAAE,CAC7I,CAAC;YACF,eAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,IAAA,qBAAU,EAAC,mCAAqB,CAAC,CAAC;QAExC,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;YAC1B,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/subcommands/device/clean.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,8CAA2C;AAC3C,oEAAoE;AACpE,qDAA4D;AAC5D,wDAKgC;AAChC,oFAGoD;AACpD,mEAAoD;AACpD,8CAA4D;AAC5D,wDAAgD;AAEnC,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,+BAA+B;IAC5C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,eAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,IAAI;YACF,IAAI,MAAM,IAAA,mDAA6B,GAAE,EAAE;gBACzC,MAAM,IAAA,2CAAqB,GAAE,CAAC;aAC/B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CACV,0GAA0G,8CAAgC,EAAE,CAC7I,CAAC;YACF,eAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,IAAA,qBAAU,EAAC,mCAAqB,CAAC,CAAC;QAExC,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;YAC1B,eAAe,CAAC,IAAI,CAAC,IAAA,6BAAO,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;SAC9C;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEnC,MAAM,IAAA,qBAAU,EAAC,8BAAsB,CAAC,CAAC;QAEzC,eAAM,CAAC,KAAK,CAAC,YAAY,IAAA,8BAAe,GAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAA,8BAAe,GAAE,CAAC,MAAM,EAAE,CAAC;QAC3B,eAAM,CAAC,KAAK,CAAC,YAAY,IAAA,yBAAgB,GAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,yBAAgB,GAAE,CAAC,MAAM,EAAE,CAAC;QAE5B,MAAM,IAAA,qBAAU,EAAC,mCAAqB,CAAC,CAAC;QACxC,MAAM,IAAA,qBAAU,EAAC,sBAAQ,CAAC,CAAC;QAE3B,eAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,WAAW;;;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,WAAW;;;4DAiFtB,CAAC;AAEH,eAAO,MAAM,cAAc,yKAwCzB,CAAC;AAEH,eAAO,MAAM,cAAc,yKAOzB,CAAC"}
|
|
@@ -61,9 +61,11 @@ exports.initCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
61
61
|
const certSpawner = (0, util_1.JsSpawner)({
|
|
62
62
|
path: (0, directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH)()
|
|
63
63
|
});
|
|
64
|
+
const writeCertFilePromises = [];
|
|
64
65
|
for (const key in response.claimCertificate) {
|
|
65
|
-
|
|
66
|
+
writeCertFilePromises.push(certSpawner.writeFile(key, response.claimCertificate[key]));
|
|
66
67
|
}
|
|
68
|
+
await Promise.all(writeCertFilePromises);
|
|
67
69
|
logger_1.logger.info(`Initialized device ${name}: UUID=${response.deviceUuid}`);
|
|
68
70
|
}
|
|
69
71
|
});
|
|
@@ -72,20 +74,26 @@ exports.getInfoCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
72
74
|
description: 'Get device info',
|
|
73
75
|
namedInputs: {},
|
|
74
76
|
async action(_, opts) {
|
|
75
|
-
var _a;
|
|
77
|
+
var _a, _b;
|
|
76
78
|
const cpuDetails = await (0, device_control_1.getCpuDetails)();
|
|
77
79
|
const diskDetails = await (0, device_control_1.getDiskDetails)();
|
|
78
80
|
const memDetails = await (0, device_control_1.getMemDetails)();
|
|
79
81
|
const out = {
|
|
80
|
-
'CPU Utilization':
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
'CPU Utilization': `${(cpuDetails === null || cpuDetails === void 0 ? void 0 : cpuDetails.usedPerc) && cpuDetails.temperature
|
|
83
|
+
? `Used ${(_a = cpuDetails === null || cpuDetails === void 0 ? void 0 : cpuDetails.usedPerc) === null || _a === void 0 ? void 0 : _a.toFixed(2)}%, Temperature ${cpuDetails === null || cpuDetails === void 0 ? void 0 : cpuDetails.temperature} °C`
|
|
84
|
+
: 'Unavailable'}`,
|
|
85
|
+
'Disk Utilization': `${(diskDetails === null || diskDetails === void 0 ? void 0 : diskDetails.usedGb) && diskDetails.freeGb
|
|
86
|
+
? `${diskDetails === null || diskDetails === void 0 ? void 0 : diskDetails.usedGb} GB / ${(diskDetails === null || diskDetails === void 0 ? void 0 : diskDetails.usedGb) + (diskDetails === null || diskDetails === void 0 ? void 0 : diskDetails.freeGb)} GB`
|
|
87
|
+
: 'Unavailable'}`,
|
|
88
|
+
'Memory Utilization': `${(memDetails === null || memDetails === void 0 ? void 0 : memDetails.usedMb) && memDetails.freeMb
|
|
89
|
+
? `${memDetails.usedMb} MB / ${memDetails.usedMb + memDetails.freeMb} MB`
|
|
90
|
+
: 'Unavailable'}`
|
|
83
91
|
};
|
|
84
92
|
console.table(out);
|
|
85
93
|
const systemInfo = await (0, device_control_1.getSystemInformation)();
|
|
86
94
|
console.table(systemInfo.os);
|
|
87
95
|
console.table(systemInfo.cpu);
|
|
88
|
-
console.table((
|
|
96
|
+
console.table((_b = systemInfo.disk) === null || _b === void 0 ? void 0 : _b.drives);
|
|
89
97
|
console.table(systemInfo.device);
|
|
90
98
|
console.table(systemInfo.network);
|
|
91
99
|
console.table(systemInfo.versions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,+CAA8D;AAC9D,+BAAoC;AACpC,gEAAsE;AACtE,2BAAgC;AAChC,wDAA4E;AAC5E,wDAIgC;AAEhC,4CAA8C;AAC9C,wEAM6C;AAC7C,sFAAoF;AACpF,8CAA2C;AAC3C,qDAA4D;AAC5D,gGAAwF;AACxF,8CAA4D;AAE/C,QAAA,WAAW,GAAG,IAAA,mBAAO,EAAC;IACjC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE;QACX,IAAI,EAAE,IAAA,0BAAc,EAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,IAAA,0BAAc,EAAC;YAC1B,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACpB,IAAI,GAAG,IAAI,IAAI,IAAA,SAAM,GAAE,CAAC;QAExB,IACE,IAAA,yBAAgB,GAAE,CAAC,MAAM,EAAE;YAC3B,IAAA,eAAU,EAAC,0CAA4B,CAAC,EACxC;YACA,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;SACH;QACD,eAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAA,4DAA0B,GAAE,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wCAAuB,GAAE,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAqB,EAAC,IAAA,gBAAS,GAAE,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,YAAY;YACxB,UAAU;YACV,IAAI,EAAE,IAAA,SAAM,GAAE;YACd,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,2CAA2C;QAC3C,MAAM,QAAQ,GACZ,MAAM,IAAA,oCAAsB,EAC1B,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;QACJ,eAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,CAAC,kBAAkB,IAAI,QAAQ,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;SACH;QACD,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAU,EACpC,0DAA0D,EAC1D,KAAK,EACL,EAAE,CACH,CAAC;QAEF,MAAM,IAAA,8CAAsB,EAAC;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;QAEH,MAAM,IAAA,gBAAS,GAAE,CAAC,MAAM,CAAC,IAAA,6CAA+B,GAAE,CAAC,CAAC;QAE5D,MAAM,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,8BAAsB,EAAE,CAAC,CAAC,SAAS,CACzD,4CAA8B,EAC9B,aAAa,CACd,CAAC;QACF,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC;YAC5B,IAAI,EAAE,IAAA,6CAA+B,GAAE;SACxC,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE;YAC3C,
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysai/device-agent",
|
|
3
3
|
"description": "The alwaysAI Device Agent",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"publishConfig": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@alwaysai/alwayscli": "0.3.2",
|
|
38
38
|
"@alwaysai/app-configuration-schemas": "0.1.0",
|
|
39
39
|
"@alwaysai/config-nodejs": "0.3.0",
|
|
40
|
-
"@alwaysai/device-agent-schemas": "2.
|
|
40
|
+
"@alwaysai/device-agent-schemas": "2.3.1",
|
|
41
41
|
"@carnesen/coded-error": "0.4.0",
|
|
42
42
|
"ajv": "8.11.0",
|
|
43
43
|
"alwaysai": "2.2.0",
|
|
@@ -41,24 +41,27 @@ export async function setEnv(props: { projectId: string; envVars: EnvVars }) {
|
|
|
41
41
|
|
|
42
42
|
const service = composeParsed['services'][s];
|
|
43
43
|
const oldEnv: string[] | undefined = service['environment'];
|
|
44
|
+
const envVarsForService = envVars[s];
|
|
44
45
|
|
|
45
46
|
const newEnvVarsObj = {};
|
|
46
47
|
oldEnv?.forEach((envVarStr: string) => {
|
|
47
48
|
const envVarSplit = envVarStr.split('=');
|
|
48
49
|
const key = envVarSplit[0];
|
|
49
50
|
const value = envVarSplit[1];
|
|
50
|
-
|
|
51
|
+
if (envVarsForService[key] !== null) {
|
|
52
|
+
newEnvVarsObj[key] = value;
|
|
53
|
+
}
|
|
51
54
|
});
|
|
52
55
|
|
|
53
|
-
for (const envVar of Object.keys(
|
|
54
|
-
|
|
56
|
+
for (const envVar of Object.keys(envVarsForService)) {
|
|
57
|
+
if (envVarsForService[envVar] !== null) {
|
|
58
|
+
newEnvVarsObj[envVar] = envVarsForService[envVar];
|
|
59
|
+
}
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
const envVarList: string[] = [];
|
|
58
63
|
for (const envVar of Object.keys(newEnvVarsObj)) {
|
|
59
|
-
envVarList.push(
|
|
60
|
-
`${envVar}=${newEnvVarsObj[envVar] ? newEnvVarsObj[envVar] : ''}`
|
|
61
|
-
);
|
|
64
|
+
envVarList.push(`${envVar}=${newEnvVarsObj[envVar]}`);
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
service['environment'] = envVarList;
|
|
@@ -113,12 +113,18 @@ export async function installApp(props: {
|
|
|
113
113
|
const DACfg = await createAppCfgDeviceAgentConnection();
|
|
114
114
|
await updateAppCfgFile({ projectId, newAppCfg: DACfg });
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
// Clean up original dependency files (models, virtual env)
|
|
117
|
+
const targetJsonFile = TargetJsonFile(appDir);
|
|
118
|
+
const hostSpawner = targetJsonFile.readHostSpawner();
|
|
119
|
+
await appCleanDocker({ targetHostSpawner: hostSpawner });
|
|
120
|
+
|
|
121
|
+
// Download model files
|
|
117
122
|
await installModelsWithPresignedURLs(
|
|
118
123
|
signedUrlsPayload.modelsInstallPayload,
|
|
119
124
|
path.join(appDir, 'models')
|
|
120
125
|
);
|
|
121
126
|
|
|
127
|
+
await installAppBuildReqs({ appDir });
|
|
122
128
|
await buildApp({ appDir });
|
|
123
129
|
|
|
124
130
|
await AgentConfigFile().setAppInstalled({
|
|
@@ -153,8 +159,6 @@ async function installAppBuildReqs(props: { appDir: string }) {
|
|
|
153
159
|
async () => {
|
|
154
160
|
const hostSpawner = targetJsonFile.readHostSpawner();
|
|
155
161
|
|
|
156
|
-
await appCleanDocker({ targetHostSpawner: hostSpawner });
|
|
157
|
-
|
|
158
162
|
const dockerImageId = await buildDockerImage({
|
|
159
163
|
targetHostSpawner: hostSpawner,
|
|
160
164
|
targetHardware: targetCfg.targetHardware,
|
|
@@ -89,14 +89,19 @@ export async function replaceModels(props: {
|
|
|
89
89
|
],
|
|
90
90
|
appDir
|
|
91
91
|
);
|
|
92
|
+
const modelsAddPromises: Promise<void>[] = [];
|
|
92
93
|
for (const modelId of modelIds) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
modelsAddPromises.push(
|
|
95
|
+
appModelsAddComponent({
|
|
96
|
+
yes: false,
|
|
97
|
+
dir: appDir,
|
|
98
|
+
id: modelId,
|
|
99
|
+
addToProject: false
|
|
100
|
+
})
|
|
101
|
+
);
|
|
99
102
|
}
|
|
103
|
+
await Promise.all(modelsAddPromises);
|
|
104
|
+
|
|
100
105
|
await buildApp({ appDir });
|
|
101
106
|
}
|
|
102
107
|
|
|
@@ -126,14 +126,14 @@ export async function getAppLogs(props: {
|
|
|
126
126
|
|
|
127
127
|
const appDir = getAppDir(projectId);
|
|
128
128
|
|
|
129
|
-
const serviceList =
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const argsList = args
|
|
129
|
+
const serviceList =
|
|
130
|
+
services ||
|
|
131
|
+
(await (async function () {
|
|
132
|
+
const composeServices = await compose.configServices({ cwd: appDir });
|
|
133
|
+
return composeServices.data.services;
|
|
134
|
+
})());
|
|
135
|
+
|
|
136
|
+
const argsList = args || [];
|
|
137
137
|
|
|
138
138
|
// Use direct command with spawner in order to get a readable stream
|
|
139
139
|
return await JsSpawner().runStreaming({
|
|
@@ -21,7 +21,6 @@ import { existsSync } from 'fs';
|
|
|
21
21
|
import {
|
|
22
22
|
installApp,
|
|
23
23
|
restartApp,
|
|
24
|
-
setEnv,
|
|
25
24
|
startApp,
|
|
26
25
|
stopApp,
|
|
27
26
|
uninstallApp,
|
|
@@ -146,7 +145,7 @@ export class DeviceAgentCloudConnection {
|
|
|
146
145
|
modelsInstallPayload
|
|
147
146
|
};
|
|
148
147
|
await this.atomicApplicationUpdate(async () => {
|
|
149
|
-
|
|
148
|
+
this.shadowHandler.clearProjectShadow(projectId);
|
|
150
149
|
await installApp({ projectId, appReleaseHash, signedUrlsPayload });
|
|
151
150
|
}, projectId);
|
|
152
151
|
return true;
|
|
@@ -177,8 +176,13 @@ export class DeviceAgentCloudConnection {
|
|
|
177
176
|
|
|
178
177
|
if (envVarUpdate) {
|
|
179
178
|
await this.atomicApplicationUpdate(
|
|
180
|
-
async () =>
|
|
181
|
-
|
|
179
|
+
async () =>
|
|
180
|
+
await this.shadowHandler.updateProjectEnvVars({
|
|
181
|
+
projectId,
|
|
182
|
+
envVars: envVarUpdate.envVars
|
|
183
|
+
}),
|
|
184
|
+
projectId,
|
|
185
|
+
true
|
|
182
186
|
);
|
|
183
187
|
}
|
|
184
188
|
return true;
|
|
@@ -211,7 +215,7 @@ export class DeviceAgentCloudConnection {
|
|
|
211
215
|
private async atomicApplicationUninstall(projectId: string) {
|
|
212
216
|
try {
|
|
213
217
|
await uninstallApp({ projectId });
|
|
214
|
-
|
|
218
|
+
this.shadowHandler.clearProjectShadow(projectId);
|
|
215
219
|
} catch (e) {
|
|
216
220
|
logger.error(`Failed to uninstall ${projectId}: ${e.message}`);
|
|
217
221
|
throw e;
|
|
@@ -221,7 +225,8 @@ export class DeviceAgentCloudConnection {
|
|
|
221
225
|
// eslint-disable-next-line
|
|
222
226
|
private async atomicApplicationUpdate <F extends () => any>(
|
|
223
227
|
func: F,
|
|
224
|
-
projectId: string
|
|
228
|
+
projectId: string,
|
|
229
|
+
skipUpdateShadow?: boolean
|
|
225
230
|
): Promise<ReturnType<F>> {
|
|
226
231
|
// First try to create a backup, so that there is one available if something goes wrong in the next try:catch.
|
|
227
232
|
if (await AgentConfigFile().isAppPresent({ projectId })) {
|
|
@@ -236,7 +241,8 @@ export class DeviceAgentCloudConnection {
|
|
|
236
241
|
|
|
237
242
|
try {
|
|
238
243
|
const out: ReturnType<F> = await func();
|
|
239
|
-
|
|
244
|
+
if (!skipUpdateShadow)
|
|
245
|
+
await this.shadowHandler.updateProjectShadow(projectId);
|
|
240
246
|
return out;
|
|
241
247
|
} catch (errorAppUpdate) {
|
|
242
248
|
logger.error(
|
|
@@ -275,8 +281,7 @@ export class DeviceAgentCloudConnection {
|
|
|
275
281
|
const { projectId, appCfgUpdate, envVarUpdate } = update;
|
|
276
282
|
|
|
277
283
|
if (
|
|
278
|
-
appCfgUpdate &&
|
|
279
|
-
appCfgUpdate.updatedModels &&
|
|
284
|
+
appCfgUpdate?.updatedModels &&
|
|
280
285
|
Object.keys(appCfgUpdate.updatedModels).length
|
|
281
286
|
) {
|
|
282
287
|
// When there are model updates request signed URLs and wait to apply config changes
|
|
@@ -317,8 +322,13 @@ export class DeviceAgentCloudConnection {
|
|
|
317
322
|
|
|
318
323
|
if (envVarUpdate) {
|
|
319
324
|
await this.atomicApplicationUpdate(
|
|
320
|
-
async () =>
|
|
321
|
-
|
|
325
|
+
async () =>
|
|
326
|
+
await this.shadowHandler.updateProjectEnvVars({
|
|
327
|
+
projectId,
|
|
328
|
+
envVars: envVarUpdate.envVars
|
|
329
|
+
}),
|
|
330
|
+
projectId,
|
|
331
|
+
true
|
|
322
332
|
);
|
|
323
333
|
}
|
|
324
334
|
return true;
|
|
@@ -331,22 +341,31 @@ export class DeviceAgentCloudConnection {
|
|
|
331
341
|
clientToken: message.clientToken
|
|
332
342
|
});
|
|
333
343
|
if (shadowUpdates.length) {
|
|
344
|
+
const shadowUpdatePromises: Promise<void>[] = [];
|
|
334
345
|
for (const shadowUpdate of shadowUpdates) {
|
|
335
346
|
const projectId = shadowUpdate.projectId;
|
|
336
347
|
const txId = shadowUpdate.txId;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
348
|
+
shadowUpdatePromises.push(
|
|
349
|
+
this.txnMgr
|
|
350
|
+
.runTransactionStep({
|
|
351
|
+
func: () =>
|
|
352
|
+
this.handleProjectShadowConfigUpdate(shadowUpdate, txId),
|
|
353
|
+
projectId,
|
|
354
|
+
txId,
|
|
355
|
+
start: true,
|
|
356
|
+
stepName: topic
|
|
357
|
+
})
|
|
358
|
+
.catch((e: Error) => {
|
|
359
|
+
logger.error(
|
|
360
|
+
`There was an issue updating project shadow config: ${JSON.stringify(
|
|
361
|
+
e
|
|
362
|
+
)}`
|
|
363
|
+
);
|
|
364
|
+
})
|
|
365
|
+
);
|
|
349
366
|
}
|
|
367
|
+
|
|
368
|
+
await Promise.all(shadowUpdatePromises);
|
|
350
369
|
}
|
|
351
370
|
}
|
|
352
371
|
|
|
@@ -721,9 +740,9 @@ export class DeviceAgentCloudConnection {
|
|
|
721
740
|
}
|
|
722
741
|
|
|
723
742
|
public async stop() {
|
|
724
|
-
//
|
|
725
|
-
//
|
|
726
|
-
//
|
|
743
|
+
// This method is currently only used by the CLI, and shadow messages can be
|
|
744
|
+
// lost since we aren't waiting for responses so sleep for a short time to
|
|
745
|
+
// receive them
|
|
727
746
|
await sleep(1000);
|
|
728
747
|
this.device.end();
|
|
729
748
|
}
|