@alwaysai/device-agent 0.0.7 → 0.0.9
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/backup.d.ts.map +1 -1
- package/lib/application-control/backup.js +2 -0
- package/lib/application-control/backup.js.map +1 -1
- package/lib/application-control/config.d.ts +17 -0
- package/lib/application-control/config.d.ts.map +1 -0
- package/lib/application-control/config.js +62 -0
- package/lib/application-control/config.js.map +1 -0
- package/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +6 -14
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/index.d.ts +2 -1
- package/lib/application-control/index.d.ts.map +1 -1
- package/lib/application-control/index.js +6 -1
- package/lib/application-control/index.js.map +1 -1
- package/lib/application-control/install.d.ts +16 -10
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +95 -57
- package/lib/application-control/install.js.map +1 -1
- package/lib/application-control/models.d.ts +3 -0
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +96 -20
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +3 -2
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +8 -6
- package/lib/application-control/status.js.map +1 -1
- package/lib/application-control/utils.d.ts +5 -0
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +47 -13
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +42 -15
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +357 -195
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts.map +1 -1
- package/lib/infrastructure/agent-config.js +7 -18
- package/lib/infrastructure/agent-config.js.map +1 -1
- package/lib/infrastructure/agent-config.test.js +47 -0
- package/lib/infrastructure/agent-config.test.js.map +1 -1
- package/lib/subcommands/app/app.js +1 -1
- package/lib/subcommands/app/app.js.map +1 -1
- package/lib/subcommands/login.d.ts.map +1 -1
- package/lib/subcommands/login.js +4 -3
- package/lib/subcommands/login.js.map +1 -1
- package/lib/util/copy-dir.d.ts.map +1 -1
- package/lib/util/copy-dir.js +3 -1
- package/lib/util/copy-dir.js.map +1 -1
- package/lib/util/run-in-dir.d.ts +2 -0
- package/lib/util/run-in-dir.d.ts.map +1 -0
- package/lib/util/run-in-dir.js +17 -0
- package/lib/util/run-in-dir.js.map +1 -0
- package/lib/util/sleep.d.ts +2 -0
- package/lib/util/sleep.d.ts.map +1 -0
- package/lib/util/sleep.js +9 -0
- package/lib/util/sleep.js.map +1 -0
- package/package.json +4 -3
- package/src/application-control/backup.ts +3 -0
- package/src/application-control/config.ts +61 -0
- package/src/application-control/environment-variables.ts +6 -12
- package/src/application-control/index.ts +5 -0
- package/src/application-control/install.ts +147 -68
- package/src/application-control/models.ts +136 -23
- package/src/application-control/status.ts +19 -9
- package/src/application-control/utils.ts +58 -13
- package/src/cloud-connection/device-agent-cloud-connection.ts +459 -216
- package/src/infrastructure/agent-config.test.ts +56 -0
- package/src/infrastructure/agent-config.ts +10 -19
- package/src/subcommands/app/app.ts +1 -1
- package/src/subcommands/login.ts +6 -4
- package/src/util/copy-dir.ts +3 -1
- package/src/util/run-in-dir.ts +15 -0
- package/src/util/sleep.ts +5 -0
- package/lib/util/run-cli-cmd.d.ts +0 -5
- package/lib/util/run-cli-cmd.d.ts.map +0 -1
- package/lib/util/run-cli-cmd.js +0 -24
- package/lib/util/run-cli-cmd.js.map +0 -1
- package/src/util/run-cli-cmd.ts +0 -18
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateModels = exports.replaceModels = exports.removeModel = exports.addModel = exports.getAppModels = void 0;
|
|
3
|
+
exports.updateModelsWithPresignedUrls = exports.installModelsWithPresignedURLs = exports.updateModels = exports.replaceModels = exports.removeModel = exports.addModel = exports.getAppModels = void 0;
|
|
4
|
+
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
5
|
+
const app_1 = require("alwaysai/lib/components/app");
|
|
4
6
|
const util_1 = require("alwaysai/lib/util");
|
|
5
7
|
const fs_1 = require("fs");
|
|
6
8
|
const path_1 = require("path");
|
|
7
|
-
const
|
|
9
|
+
const agent_config_1 = require("../infrastructure/agent-config");
|
|
10
|
+
const copy_dir_1 = require("../util/copy-dir");
|
|
11
|
+
const run_in_dir_1 = require("../util/run-in-dir");
|
|
12
|
+
const status_1 = require("./status");
|
|
8
13
|
const utils_1 = require("./utils");
|
|
9
14
|
async function getAppModels(props) {
|
|
10
15
|
const { projectId } = props;
|
|
11
|
-
await (0,
|
|
16
|
+
if (!(await (0, agent_config_1.AgentConfigFile)().isAppPresent({ projectId }))) {
|
|
17
|
+
throw new Error('Application is not installed');
|
|
18
|
+
}
|
|
12
19
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
13
20
|
const appCfgPath = (0, path_1.join)(appDir, 'alwaysai.app.json');
|
|
14
21
|
if (!(0, fs_1.existsSync)(appCfgPath)) {
|
|
@@ -29,9 +36,11 @@ async function addModel(props) {
|
|
|
29
36
|
const { projectId, modelId } = props;
|
|
30
37
|
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
31
38
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
32
|
-
await (0,
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
await (0, app_1.appModelsAddComponent)({
|
|
40
|
+
yes: false,
|
|
41
|
+
dir: appDir,
|
|
42
|
+
id: modelId,
|
|
43
|
+
addToProject: false,
|
|
35
44
|
});
|
|
36
45
|
await (0, utils_1.buildApp)({ appDir });
|
|
37
46
|
}
|
|
@@ -40,24 +49,31 @@ async function removeModel(props) {
|
|
|
40
49
|
const { projectId, modelId } = props;
|
|
41
50
|
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
42
51
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
43
|
-
await (0,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
await (0, run_in_dir_1.runInDir)(app_1.appModelsRemoveComponent, [
|
|
53
|
+
{
|
|
54
|
+
id: modelId,
|
|
55
|
+
purge: true,
|
|
56
|
+
removeFromProject: false,
|
|
57
|
+
},
|
|
58
|
+
], appDir);
|
|
47
59
|
}
|
|
48
60
|
exports.removeModel = removeModel;
|
|
49
61
|
async function replaceModels(props) {
|
|
50
62
|
const { projectId, modelIds } = props;
|
|
51
63
|
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
52
64
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
53
|
-
await (0,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
await (0, run_in_dir_1.runInDir)(app_1.appModelsRemoveAllComponent, [
|
|
66
|
+
{
|
|
67
|
+
purge: true,
|
|
68
|
+
removeFromProject: false,
|
|
69
|
+
},
|
|
70
|
+
], appDir);
|
|
57
71
|
for (const modelId of modelIds) {
|
|
58
|
-
await (0,
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
await (0, app_1.appModelsAddComponent)({
|
|
73
|
+
yes: false,
|
|
74
|
+
dir: appDir,
|
|
75
|
+
id: modelId,
|
|
76
|
+
addToProject: false,
|
|
61
77
|
});
|
|
62
78
|
}
|
|
63
79
|
await (0, utils_1.buildApp)({ appDir });
|
|
@@ -67,11 +83,71 @@ async function updateModels(props) {
|
|
|
67
83
|
const { projectId } = props;
|
|
68
84
|
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
69
85
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
70
|
-
await (0,
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
await (0, app_1.appModelsUpdateComponent)({
|
|
87
|
+
yes: false,
|
|
88
|
+
dir: appDir,
|
|
73
89
|
});
|
|
74
90
|
await (0, utils_1.buildApp)({ appDir });
|
|
75
91
|
}
|
|
76
92
|
exports.updateModels = updateModels;
|
|
93
|
+
async function installModelsWithPresignedURLs(modelPayloads, targetDir) {
|
|
94
|
+
const spawner = (0, util_1.JsSpawner)();
|
|
95
|
+
await Promise.all(modelPayloads.map(async (payload) => {
|
|
96
|
+
const modelDest = `${targetDir}/${payload.id}`;
|
|
97
|
+
await spawner.mkdirp(modelDest);
|
|
98
|
+
const localDest = `${modelDest}/${payload.version}.tar.gz`;
|
|
99
|
+
await (0, utils_1.downloadPackageUsingPresignedUrl)({
|
|
100
|
+
localDest,
|
|
101
|
+
presignedUrl: payload.modelSignedUrl,
|
|
102
|
+
});
|
|
103
|
+
await spawner.untar((0, fs_1.createReadStream)(localDest), (0, path_1.dirname)(modelDest));
|
|
104
|
+
await spawner.rimraf(localDest);
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
exports.installModelsWithPresignedURLs = installModelsWithPresignedURLs;
|
|
108
|
+
async function updateModelsWithPresignedUrls(project, modelInstallPayloads) {
|
|
109
|
+
// create temp dir with all untouched models
|
|
110
|
+
const spawner = (0, util_1.JsSpawner)();
|
|
111
|
+
const appDir = (0, utils_1.getAppDir)(project);
|
|
112
|
+
const ogDir = `${appDir}/models`;
|
|
113
|
+
const tmpDir = `${ogDir}.tmp`;
|
|
114
|
+
const restoreDir = `${ogDir}.restore`;
|
|
115
|
+
await (0, copy_dir_1.copyDir)({ srcPath: ogDir, destPath: restoreDir });
|
|
116
|
+
await spawner.rimraf(tmpDir);
|
|
117
|
+
try {
|
|
118
|
+
// Move unchanged models
|
|
119
|
+
const existingModels = await getAppModels({ projectId: project });
|
|
120
|
+
for (const model of existingModels) {
|
|
121
|
+
if (!modelInstallPayloads
|
|
122
|
+
.map((newModel) => newModel.id)
|
|
123
|
+
.includes(model.modelId)) {
|
|
124
|
+
// model does not need to be updated
|
|
125
|
+
await (0, copy_dir_1.copyDir)({
|
|
126
|
+
srcPath: `${ogDir}/${model.modelId}`,
|
|
127
|
+
destPath: `${tmpDir}/${model.modelId}`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// install model packages
|
|
132
|
+
await installModelsWithPresignedURLs(modelInstallPayloads, tmpDir);
|
|
133
|
+
await spawner.rimraf(ogDir);
|
|
134
|
+
await (0, copy_dir_1.copyDir)({ srcPath: tmpDir, destPath: ogDir });
|
|
135
|
+
await spawner.rimraf(tmpDir);
|
|
136
|
+
await (0, utils_1.buildApp)({ appDir: (0, utils_1.getAppDir)(project) });
|
|
137
|
+
const appStatus = await (0, status_1.getAppStatus)({ projectId: project });
|
|
138
|
+
const appIsRunning = appStatus.services.length &&
|
|
139
|
+
appStatus.services[0].state !== device_agent_schemas_1.keyMirrors.appState.stopped;
|
|
140
|
+
if (appIsRunning) {
|
|
141
|
+
(0, status_1.restartApp)({ projectId: project });
|
|
142
|
+
}
|
|
143
|
+
console.log(`Models installed for project ${project}`);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
console.error(e, 'Error updating app models from presigned URL, restoring models.');
|
|
147
|
+
await spawner.rimraf(tmpDir);
|
|
148
|
+
await spawner.rimraf(ogDir);
|
|
149
|
+
await (0, copy_dir_1.copyDir)({ srcPath: restoreDir, destPath: ogDir });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.updateModelsWithPresignedUrls = updateModelsWithPresignedUrls;
|
|
77
153
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":";;;AAAA,yEAAiF;AAEjF,qDAKqC;AACrC,4CAAsD;AACtD,2BAAkD;AAClD,+BAAqC;AACrC,iEAAiE;AACjE,+CAA2C;AAC3C,mDAA8C;AAC9C,qCAAoD;AAGpD,mCAKiB;AAEV,KAAK,UAAU,YAAY,CAAC,KAA4B;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,CAAC,MAAM,IAAA,8BAAe,GAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACrD,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,gBAAS,GAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;QACzB,OAAO,YAAY,CAAC;KACrB;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;QACpC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACzE;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AApBD,oCAoBC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAA6C;IAC1E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,IAAA,2BAAmB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,MAAM,IAAA,2BAAqB,EAAC;QAC1B,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,MAAM;QACX,EAAE,EAAE,OAAO;QACX,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAZD,4BAYC;AAEM,KAAK,UAAU,WAAW,CAAC,KAA6C;IAC7E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,IAAA,2BAAmB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IAEpC,MAAM,IAAA,qBAAQ,EACZ,8BAAwB,EACxB;QACE;YACE,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,IAAI;YACX,iBAAiB,EAAE,KAAK;SACzB;KACF,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAjBD,kCAiBC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAgD;IAClF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,IAAA,2BAAmB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IAEpC,MAAM,IAAA,qBAAQ,EACZ,iCAA2B,EAC3B;QACE;YACE,KAAK,EAAE,IAAI;YACX,iBAAiB,EAAE,KAAK;SACzB;KACF,EACD,MAAM,CACP,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,IAAA,2BAAqB,EAAC;YAC1B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,MAAM;YACX,EAAE,EAAE,OAAO;YACX,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;KACJ;IACD,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAzBD,sCAyBC;AAEM,KAAK,UAAU,YAAY,CAAC,KAA4B;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,IAAA,2BAAmB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,MAAM,IAAA,8BAAwB,EAAC;QAC7B,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAVD,oCAUC;AAEM,KAAK,UAAU,8BAA8B,CAClD,aAAoC,EACpC,SAAiB;IAEjB,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QACvD,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC;QAC3D,MAAM,IAAA,wCAAgC,EAAC;YACrC,SAAS;YACT,YAAY,EAAE,OAAO,CAAC,cAAc;SACrC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,IAAA,qBAAgB,EAAC,SAAS,CAAC,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAlBD,wEAkBC;AAEM,KAAK,UAAU,6BAA6B,CACjD,OAAe,EACf,oBAA2C;IAE3C,4CAA4C;IAC5C,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,MAAM,SAAS,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,KAAK,UAAU,CAAC;IACtC,MAAM,IAAA,kBAAO,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7B,IAAI;QACF,wBAAwB;QACxB,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;YAClC,IACE,CAAC,oBAAoB;iBAClB,GAAG,CAAC,CAAC,QAA6B,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;iBACnD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAC1B;gBACA,oCAAoC;gBACpC,MAAM,IAAA,kBAAO,EAAC;oBACZ,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;oBACpC,QAAQ,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;iBACvC,CAAC,CAAC;aACJ;SACF;QAED,yBAAyB;QACzB,MAAM,8BAA8B,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAA,kBAAO,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,YAAY,GAChB,SAAS,CAAC,QAAQ,CAAC,MAAM;YACzB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,iCAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE9D,IAAI,YAAY,EAAE;YAChB,IAAA,mBAAU,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;SACpC;QAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;KACxD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,iEAAiE,CAAC,CAAC;QACpF,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAA,kBAAO,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;KACzD;AACH,CAAC;AAtDD,sEAsDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { AppStatePacket } from '@alwaysai/device-agent-schemas';
|
|
3
3
|
export declare function listAppReleases(props: {
|
|
4
4
|
projectId: string;
|
|
5
5
|
}): Promise<import("alwaysai/lib/infrastructure").ReleaseHistoryArray>;
|
|
@@ -8,10 +8,11 @@ export declare function listAppLatestRelease(props: {
|
|
|
8
8
|
}): Promise<string | undefined>;
|
|
9
9
|
export declare function getAppStatus(props: {
|
|
10
10
|
projectId: string;
|
|
11
|
-
}): Promise<
|
|
11
|
+
}): Promise<AppStatePacket>;
|
|
12
12
|
export declare function getAppLogs(props: {
|
|
13
13
|
projectId: string;
|
|
14
14
|
services?: string[];
|
|
15
|
+
args?: string[];
|
|
15
16
|
}): Promise<NodeJS.ReadableStream>;
|
|
16
17
|
export declare function startApp(props: {
|
|
17
18
|
projectId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":";AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":";AAMA,OAAO,EAEL,cAAc,EAGf,MAAM,gCAAgC,CAAC;AAGxC,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,sEAIjE;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,+BAOtE;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+E1B;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAqBjC;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAezE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E"}
|
|
@@ -6,6 +6,7 @@ const infrastructure_1 = require("alwaysai/lib/infrastructure");
|
|
|
6
6
|
const util_1 = require("alwaysai/lib/util");
|
|
7
7
|
const docker_cmd_1 = require("../docker/docker-cmd");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
+
const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
|
|
9
10
|
const agent_config_1 = require("../infrastructure/agent-config");
|
|
10
11
|
async function listAppReleases(props) {
|
|
11
12
|
const { projectId } = props;
|
|
@@ -53,7 +54,7 @@ async function getAppStatus(props) {
|
|
|
53
54
|
});
|
|
54
55
|
if (containerId === '') {
|
|
55
56
|
// The service was not yet started or failed to start
|
|
56
|
-
services.push({ name, state:
|
|
57
|
+
services.push({ name, state: device_agent_schemas_1.keyMirrors.appState.stopped });
|
|
57
58
|
}
|
|
58
59
|
else {
|
|
59
60
|
const slashContainerName = await spawner.run({
|
|
@@ -68,14 +69,14 @@ async function getAppStatus(props) {
|
|
|
68
69
|
}
|
|
69
70
|
let state;
|
|
70
71
|
if (container.state.includes('Up')) {
|
|
71
|
-
state =
|
|
72
|
+
state = device_agent_schemas_1.keyMirrors.appState.up;
|
|
72
73
|
}
|
|
73
74
|
else if (container.state.includes('Stopped') ||
|
|
74
75
|
container.state.includes('Exit')) {
|
|
75
|
-
state =
|
|
76
|
+
state = device_agent_schemas_1.keyMirrors.appState.stopped;
|
|
76
77
|
}
|
|
77
78
|
else if (container.state.includes('Restarting')) {
|
|
78
|
-
state =
|
|
79
|
+
state = device_agent_schemas_1.keyMirrors.appState.restarting;
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
82
|
throw new Error(`Unknown state for service! (${container.state})`);
|
|
@@ -92,7 +93,7 @@ async function getAppStatus(props) {
|
|
|
92
93
|
}
|
|
93
94
|
exports.getAppStatus = getAppStatus;
|
|
94
95
|
async function getAppLogs(props) {
|
|
95
|
-
const { projectId, services } = props;
|
|
96
|
+
const { projectId, services, args } = props;
|
|
96
97
|
await (0, utils_1.requireAppInstalled)({ projectId });
|
|
97
98
|
const appDir = (0, utils_1.getAppDir)(projectId);
|
|
98
99
|
const serviceList = services
|
|
@@ -101,10 +102,11 @@ async function getAppLogs(props) {
|
|
|
101
102
|
const composeServices = await docker_compose_1.default.configServices({ cwd: appDir });
|
|
102
103
|
return composeServices.data.services;
|
|
103
104
|
})();
|
|
105
|
+
const argsList = args ? args : [];
|
|
104
106
|
// Use direct command with spawner in order to get a readable stream
|
|
105
107
|
return await (0, util_1.JsSpawner)().runStreaming({
|
|
106
108
|
exe: 'docker-compose',
|
|
107
|
-
args: ['logs', '-f', ...serviceList],
|
|
109
|
+
args: ['logs', '-f', ...argsList, ...serviceList],
|
|
108
110
|
cwd: appDir,
|
|
109
111
|
});
|
|
110
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,gEAAqE;AACrE,4CAA8C;AAE9C,qDAAsD;AACtD,mCAAyD;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/application-control/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,4 +6,9 @@ export declare function requireAppInstalled(props: {
|
|
|
6
6
|
export declare function buildApp(props: {
|
|
7
7
|
appDir: string;
|
|
8
8
|
}): Promise<void>;
|
|
9
|
+
export declare function downloadPackageUsingPresignedUrl(props: {
|
|
10
|
+
localDest: string;
|
|
11
|
+
presignedUrl: string;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
export declare function getAppConfig(project: string): Promise<any>;
|
|
9
14
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBASrE;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBA+BvD;AAED,wBAAsB,gCAAgC,CAAC,KAAK,EAAE;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,gBAOjD"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildApp = exports.requireAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
|
|
3
|
+
exports.getAppConfig = exports.downloadPackageUsingPresignedUrl = exports.buildApp = exports.requireAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
|
|
4
4
|
const docker_compose_1 = require("docker-compose");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const fs = require("fs");
|
|
7
7
|
const constants_1 = require("alwaysai/lib/constants");
|
|
8
|
-
const run_cli_cmd_1 = require("../util/run-cli-cmd");
|
|
9
8
|
const agent_config_1 = require("../infrastructure/agent-config");
|
|
9
|
+
const node_fetch_1 = require("node-fetch");
|
|
10
|
+
const app_1 = require("alwaysai/lib/core/app");
|
|
11
|
+
const app_2 = require("alwaysai/lib/components/app");
|
|
12
|
+
const run_in_dir_1 = require("../util/run-in-dir");
|
|
13
|
+
const util_1 = require("alwaysai/lib/util");
|
|
10
14
|
exports.APP_ROOT = path.join(constants_1.AAI_DIR, 'applications');
|
|
11
|
-
const DOCKER_COMPOSE_FILENAME = 'docker-compose.yaml';
|
|
12
15
|
function getAppDir(projectId) {
|
|
13
16
|
return path.join(exports.APP_ROOT, projectId);
|
|
14
17
|
}
|
|
@@ -26,22 +29,53 @@ async function requireAppInstalled(props) {
|
|
|
26
29
|
exports.requireAppInstalled = requireAppInstalled;
|
|
27
30
|
async function buildApp(props) {
|
|
28
31
|
const { appDir } = props;
|
|
29
|
-
await (0, run_cli_cmd_1.runCliCmd)({
|
|
30
|
-
cmd: ['app', 'configure', '--yes', '--protocol', 'docker:', '--skip-model-sync'],
|
|
31
|
-
cwd: appDir,
|
|
32
|
-
});
|
|
33
|
-
await (0, run_cli_cmd_1.runCliCmd)({ cmd: ['app', 'install', '--yes', '--clean', '--pull'], cwd: appDir });
|
|
34
32
|
// Build standalone image and docker-compose
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
33
|
+
const targetJson = (0, app_1.TargetJsonFile)(appDir);
|
|
34
|
+
const targetConfig = targetJson.read();
|
|
35
|
+
if (targetConfig.targetProtocol !== 'docker:') {
|
|
36
|
+
throw new Error(`${constants_1.TARGET_JSON_FILE_NAME} is not properly configured!`);
|
|
40
37
|
}
|
|
38
|
+
await (0, run_in_dir_1.runInDir)(app_2.appDeployLinuxAndRemoteDevice, [
|
|
39
|
+
{
|
|
40
|
+
yes: true,
|
|
41
|
+
generateDockerCompose: true,
|
|
42
|
+
logs: false,
|
|
43
|
+
stop: false,
|
|
44
|
+
targetJson,
|
|
45
|
+
targetConfig,
|
|
46
|
+
},
|
|
47
|
+
], appDir);
|
|
41
48
|
const buildOut = await docker_compose_1.default.buildAll({ cwd: appDir });
|
|
49
|
+
console.log(buildOut);
|
|
42
50
|
if (buildOut.exitCode !== 0) {
|
|
43
51
|
throw new Error(`Failed to build application! stdout=${buildOut.out} stderr=${buildOut.err}`);
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
exports.buildApp = buildApp;
|
|
55
|
+
async function downloadPackageUsingPresignedUrl(props) {
|
|
56
|
+
console.log('downloading URL');
|
|
57
|
+
const { localDest, presignedUrl } = props;
|
|
58
|
+
const response = await (0, node_fetch_1.default)(presignedUrl);
|
|
59
|
+
if (response.status !== 200) {
|
|
60
|
+
// If the URL is invalid; I think we shouldn't get here with the new changes
|
|
61
|
+
throw new Error(`Status Code: ${response.status}, ${response.statusText}. Response: ${response.body}`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Write the app package to the hash directory
|
|
65
|
+
*/
|
|
66
|
+
const stream = response.body.pipe(fs.createWriteStream(localDest));
|
|
67
|
+
await new Promise((resolve, reject) => {
|
|
68
|
+
stream.on('finish', resolve);
|
|
69
|
+
stream.on('error', reject);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
exports.downloadPackageUsingPresignedUrl = downloadPackageUsingPresignedUrl;
|
|
73
|
+
async function getAppConfig(project) {
|
|
74
|
+
const appCfgPath = path.join(getAppDir(project), 'alwaysai.app.json');
|
|
75
|
+
if (!fs.existsSync(appCfgPath)) {
|
|
76
|
+
throw new Error(`Application config not found for project ${project}`);
|
|
77
|
+
}
|
|
78
|
+
return JSON.parse(await (0, util_1.JsSpawner)().readFile(appCfgPath));
|
|
79
|
+
}
|
|
80
|
+
exports.getAppConfig = getAppConfig;
|
|
47
81
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ClientMessage } from '@alwaysai/device-agent-schemas';
|
|
2
2
|
export declare class DeviceAgentCloudConnection {
|
|
3
3
|
private clientId;
|
|
4
4
|
private host;
|
|
5
|
-
private
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
5
|
+
private appInstallStatus;
|
|
6
|
+
private liveUpdatesTimeout;
|
|
7
|
+
private liveUpdatesAlive;
|
|
8
|
+
private liveUpdatesSleepIntervals;
|
|
9
|
+
private appLogStreams;
|
|
10
|
+
private deviceType;
|
|
11
|
+
private readonly shadowPrefix;
|
|
12
|
+
private readonly shadowTopics;
|
|
13
|
+
private readonly toCloudTopic;
|
|
14
|
+
private readonly toClientTopic;
|
|
15
|
+
private readonly toDeviceTopic;
|
|
16
|
+
getShadowPrefix(): string;
|
|
17
|
+
private handleNamedShadowUpdate;
|
|
18
|
+
private startAppLogStream;
|
|
19
|
+
private initAppInstallStatus;
|
|
20
|
+
private updateAppInstallStatus;
|
|
21
|
+
private getAppInstallStatus;
|
|
22
|
+
private buildMessagePacket;
|
|
23
|
+
private getAppStateMessage;
|
|
24
|
+
private getDeviceStatsMessage;
|
|
25
|
+
private getAppInstallStatusMessage;
|
|
26
|
+
private startPublishingLiveUpdates;
|
|
27
|
+
private continuePublishing;
|
|
28
|
+
private getLiveUpdatesInterval;
|
|
29
|
+
private setLiveUpdates;
|
|
30
|
+
private handleAppStateControl;
|
|
31
|
+
private handleAppVersionControl;
|
|
32
|
+
private handleDeviceCommand;
|
|
33
|
+
private handleAgentCommand;
|
|
34
|
+
private restartLiveUpdatesTimeout;
|
|
35
|
+
private liveUpdatesBroker;
|
|
36
|
+
private publishReportedState;
|
|
37
|
+
private publishCloudRequest;
|
|
10
38
|
device: any;
|
|
11
|
-
agentTopicPrefix: string;
|
|
12
|
-
cloudTopicPrefix: string;
|
|
13
39
|
constructor();
|
|
14
|
-
setInstallationStatus(installationStatus: InstallationStatus): void;
|
|
15
|
-
getInstallationStatus(): InstallationStatus;
|
|
16
|
-
getPublishable(): boolean;
|
|
17
|
-
setPublishable(enabled: boolean): void;
|
|
18
|
-
restartPublishableTimeout(): void;
|
|
19
|
-
getPublishInterval(): number;
|
|
20
|
-
getInstallationStatusInterval(): number;
|
|
21
40
|
getClientId(): string;
|
|
22
41
|
publishMessage(topic: string, message: string): void;
|
|
42
|
+
handleClientMessage({ topic, message, }: {
|
|
43
|
+
topic: string;
|
|
44
|
+
message: ClientMessage;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
handleShadowTopic({ topic, payload }: {
|
|
47
|
+
topic: string;
|
|
48
|
+
payload: string;
|
|
49
|
+
}): Promise<void>;
|
|
23
50
|
}
|
|
24
51
|
export declare function runDeviceAgentCloudInterface(): void;
|
|
25
52
|
//# sourceMappingURL=device-agent-cloud-connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"device-agent-cloud-connection.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"AAoBA,OAAO,EAiBL,aAAa,EAEd,MAAM,gCAAgC,CAAC;AASxC,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAItB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+C;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAK3B;IACF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwD;IACrF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IACvF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IAIhF,eAAe;YAIR,uBAAuB;YAsCvB,iBAAiB;IAwC/B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;YAcZ,kBAAkB;YAelB,qBAAqB;IAiBnC,OAAO,CAAC,0BAA0B,CAOhC;YAEY,0BAA0B;IAsBxC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,yBAAyB;YAYnB,iBAAiB;YA4CjB,oBAAoB;YAYpB,mBAAmB;IAY1B,MAAM,MAAiB;;IAgBvB,WAAW,IAAI,MAAM;IAIrB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKvC,mBAAmB,CAAC,EAC/B,KAAK,EACL,OAAO,GACR,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,aAAa,CAAC;KACxB;IAgFY,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAetF;AAED,wBAAgB,4BAA4B,SAmC3C"}
|