@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.
- package/lib/application-control/config.d.ts +0 -1
- package/lib/application-control/config.d.ts.map +1 -1
- package/lib/application-control/config.js +15 -29
- package/lib/application-control/config.js.map +1 -1
- package/lib/application-control/environment-variables.d.ts +7 -3
- package/lib/application-control/environment-variables.d.ts.map +1 -1
- package/lib/application-control/environment-variables.js +71 -35
- package/lib/application-control/environment-variables.js.map +1 -1
- package/lib/application-control/environment-variables.test.d.ts +2 -0
- package/lib/application-control/environment-variables.test.d.ts.map +1 -0
- package/lib/application-control/environment-variables.test.js +163 -0
- package/lib/application-control/environment-variables.test.js.map +1 -0
- package/lib/application-control/index.d.ts +3 -3
- package/lib/application-control/index.d.ts.map +1 -1
- package/lib/application-control/index.js +1 -3
- package/lib/application-control/index.js.map +1 -1
- package/lib/application-control/models.d.ts +0 -1
- package/lib/application-control/models.d.ts.map +1 -1
- package/lib/application-control/models.js +12 -26
- package/lib/application-control/models.js.map +1 -1
- package/lib/application-control/status.d.ts +3 -0
- package/lib/application-control/status.d.ts.map +1 -1
- package/lib/application-control/status.js +19 -1
- package/lib/application-control/status.js.map +1 -1
- package/lib/application-control/utils.d.ts.map +1 -1
- package/lib/application-control/utils.js +2 -2
- package/lib/application-control/utils.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts +6 -3
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +201 -151
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts +3 -0
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +23 -7
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.test.d.ts +2 -0
- package/lib/cloud-connection/live-updates-handler.test.d.ts.map +1 -0
- package/lib/cloud-connection/live-updates-handler.test.js +57 -0
- package/lib/cloud-connection/live-updates-handler.test.js.map +1 -0
- package/lib/cloud-connection/shadow-handler.d.ts +11 -3
- package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +22 -7
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.test.js +313 -228
- package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
- package/lib/cloud-connection/shadow.js +1 -1
- package/lib/cloud-connection/shadow.js.map +1 -1
- package/lib/environment.d.ts +1 -0
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +2 -1
- package/lib/environment.js.map +1 -1
- package/lib/infrastructure/agent-config.d.ts +3 -1
- package/lib/infrastructure/agent-config.d.ts.map +1 -1
- package/lib/subcommands/app/env-vars.d.ts +1 -1
- package/lib/subcommands/app/env-vars.d.ts.map +1 -1
- package/lib/subcommands/app/env-vars.js +32 -5
- package/lib/subcommands/app/env-vars.js.map +1 -1
- package/lib/subcommands/app/index.d.ts.map +1 -1
- package/lib/subcommands/app/index.js +4 -1
- package/lib/subcommands/app/index.js.map +1 -1
- package/lib/subcommands/app/models.d.ts.map +1 -1
- package/lib/subcommands/app/models.js +6 -1
- package/lib/subcommands/app/models.js.map +1 -1
- package/lib/subcommands/app/shadow.d.ts +7 -0
- package/lib/subcommands/app/shadow.d.ts.map +1 -0
- package/lib/subcommands/app/shadow.js +48 -0
- package/lib/subcommands/app/shadow.js.map +1 -0
- package/lib/subcommands/app/version.js +2 -2
- package/lib/subcommands/app/version.js.map +1 -1
- package/lib/util/cloud-mode-ready.d.ts +2 -0
- package/lib/util/cloud-mode-ready.d.ts.map +1 -0
- package/lib/util/cloud-mode-ready.js +22 -0
- package/lib/util/cloud-mode-ready.js.map +1 -0
- package/package.json +1 -1
- package/readme.md +2 -2
- package/src/application-control/config.ts +30 -31
- package/src/application-control/environment-variables.test.ts +171 -0
- package/src/application-control/environment-variables.ts +102 -43
- package/src/application-control/index.ts +3 -9
- package/src/application-control/models.ts +14 -29
- package/src/application-control/status.ts +20 -0
- package/src/application-control/utils.ts +4 -2
- package/src/cloud-connection/device-agent-cloud-connection.ts +220 -155
- package/src/cloud-connection/live-updates-handler.test.ts +68 -0
- package/src/cloud-connection/live-updates-handler.ts +30 -7
- package/src/cloud-connection/shadow-handler.test.ts +329 -239
- package/src/cloud-connection/shadow-handler.ts +38 -12
- package/src/cloud-connection/shadow.ts +1 -1
- package/src/environment.ts +2 -0
- package/src/infrastructure/agent-config.ts +1 -1
- package/src/subcommands/app/env-vars.ts +38 -8
- package/src/subcommands/app/index.ts +4 -1
- package/src/subcommands/app/models.ts +10 -1
- package/src/subcommands/app/shadow.ts +48 -0
- package/src/subcommands/app/version.ts +2 -2
- package/src/util/cloud-mode-ready.ts +23 -0
package/lib/environment.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,oBAAoB,iBAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,SAEhC,CAAC;AACF,eAAO,MAAM,0BAA0B,oBACC,CAAC;AACzC,eAAO,MAAM,kBAAkB,oBAAiC,CAAC;AACjE,eAAO,MAAM,uBAAuB,oBAAsC,CAAC;AAC3E,eAAO,MAAM,8BAA8B,SAE1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,oBAAoB,iBAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,SAEhC,CAAC;AACF,eAAO,MAAM,0BAA0B,oBACC,CAAC;AACzC,eAAO,MAAM,kBAAkB,oBAAiC,CAAC;AACjE,eAAO,MAAM,uBAAuB,oBAAsC,CAAC;AAC3E,eAAO,MAAM,8BAA8B,SAE1C,CAAC;AACF,eAAO,MAAM,gCAAgC,oBACC,CAAC"}
|
package/lib/environment.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ALWAYSAI_ANALYTICS_PASSTHROUGH = exports.ALWAYSAI_LOG_TO_CONSOLE = exports.ALWAYSAI_LOG_LEVEL = exports.ALWAYSAI_DEVICE_AGENT_MODE = exports.ALWAYSAI_SHOW_HIDDEN = exports.ALWAYSAI_OS_PLATFORM = void 0;
|
|
3
|
+
exports.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS = exports.ALWAYSAI_ANALYTICS_PASSTHROUGH = exports.ALWAYSAI_LOG_TO_CONSOLE = exports.ALWAYSAI_LOG_LEVEL = exports.ALWAYSAI_DEVICE_AGENT_MODE = exports.ALWAYSAI_SHOW_HIDDEN = exports.ALWAYSAI_OS_PLATFORM = void 0;
|
|
4
4
|
const os_1 = require("os");
|
|
5
5
|
exports.ALWAYSAI_OS_PLATFORM = parseOsPlatform(process.env.ALWAYSAI_OS_PLATFORM);
|
|
6
6
|
exports.ALWAYSAI_SHOW_HIDDEN = parseBoolean(process.env.ALWAYSAI_SHOW_HIDDEN);
|
|
@@ -8,6 +8,7 @@ exports.ALWAYSAI_DEVICE_AGENT_MODE = process.env.ALWAYSAI_DEVICE_AGENT_MODE;
|
|
|
8
8
|
exports.ALWAYSAI_LOG_LEVEL = process.env.ALWAYSAI_LOG_LEVEL;
|
|
9
9
|
exports.ALWAYSAI_LOG_TO_CONSOLE = process.env.ALWAYSAI_LOG_TO_CONSOLE;
|
|
10
10
|
exports.ALWAYSAI_ANALYTICS_PASSTHROUGH = parseBoolean(process.env.ALWAYSAI_ANALYTICS_PASSTHROUGH);
|
|
11
|
+
exports.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS = process.env.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS;
|
|
11
12
|
function parseOsPlatform(str) {
|
|
12
13
|
switch (str) {
|
|
13
14
|
case 'win32':
|
package/lib/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAEjB,QAAA,oBAAoB,GAAG,eAAe,CACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACjC,CAAC;AACW,QAAA,oBAAoB,GAAG,YAAY,CAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACjC,CAAC;AACW,QAAA,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC5B,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACpD,QAAA,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAC9D,QAAA,8BAA8B,GAAG,YAAY,CACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAC3C,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAEjB,QAAA,oBAAoB,GAAG,eAAe,CACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACjC,CAAC;AACW,QAAA,oBAAoB,GAAG,YAAY,CAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CACjC,CAAC;AACW,QAAA,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAC5B,QAAA,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACpD,QAAA,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAC9D,QAAA,8BAA8B,GAAG,YAAY,CACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAC3C,CAAC;AACW,QAAA,gCAAgC,GAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;AAE/C,SAAS,eAAe,CAAC,GAAuB;IAC9C,QAAQ,GAAG,EAAE;QACX,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,GAAG,CAAC;SACZ;QACD;YACE,OAAO,IAAA,aAAQ,GAAE,CAAC;KACrB;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB;IAC3C,OAAO,GAAG,KAAK,GAAG,CAAC;AACrB,CAAC"}
|
|
@@ -22,7 +22,9 @@ export interface AgentJsonFileReturnType extends ConfigFileSchemaReturnType<Agen
|
|
|
22
22
|
setAppInstalling: any;
|
|
23
23
|
setAppInstalled: any;
|
|
24
24
|
setAppUninstalled: any;
|
|
25
|
-
getAppVersion:
|
|
25
|
+
getAppVersion: (props: {
|
|
26
|
+
projectId: string;
|
|
27
|
+
}) => Promise<string>;
|
|
26
28
|
setAppBackup: any;
|
|
27
29
|
getAppBackup: any;
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/infrastructure/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAuCD,MAAM,WAAW,uBACf,SAAQ,0BAA0B,CAAC,WAAW,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7C,YAAY,MAAC;IACb,MAAM,MAAC;IACP,YAAY,MAAC;IACb,UAAU,MAAC;IACX,SAAS,MAAC;IACV,gBAAgB,MAAC;IACjB,eAAe,MAAC;IAChB,iBAAiB,MAAC;IAClB,aAAa,
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/infrastructure/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAuCD,MAAM,WAAW,uBACf,SAAQ,0BAA0B,CAAC,WAAW,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7C,YAAY,MAAC;IACb,MAAM,MAAC;IACP,YAAY,MAAC;IACb,UAAU,MAAC;IACX,SAAS,MAAC;IACV,gBAAgB,MAAC;IACjB,eAAe,MAAC;IAChB,iBAAiB,MAAC;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,YAAY,MAAC;IACb,YAAY,MAAC;CACd;AAED,wBAAgB,eAAe,CAC7B,GAAG,SAAsB,GACxB,uBAAuB,CAmKzB"}
|
|
@@ -3,6 +3,6 @@ export declare const getAllEnvsCliLeaf: import("@alwaysai/alwayscli/lib/types").
|
|
|
3
3
|
}, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
|
|
4
4
|
export declare const setEnvCliLeaf: import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<string[], true>, {
|
|
5
5
|
project: import("@alwaysai/alwayscli").CliInput<string, true>;
|
|
6
|
-
service: import("@alwaysai/alwayscli").CliInput<string
|
|
6
|
+
service: import("@alwaysai/alwayscli").CliInput<string, true>;
|
|
7
7
|
}, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
|
|
8
8
|
//# sourceMappingURL=env-vars.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/env-vars.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/env-vars.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB;;4DAc5B,CAAC;AAEH,eAAO,MAAM,aAAa;;;4DAiDxB,CAAC"}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setEnvCliLeaf = exports.getAllEnvsCliLeaf = void 0;
|
|
4
4
|
const alwayscli_1 = require("@alwaysai/alwayscli");
|
|
5
5
|
const application_control_1 = require("../../application-control");
|
|
6
|
-
const
|
|
6
|
+
const device_agent_cloud_connection_1 = require("../../cloud-connection/device-agent-cloud-connection");
|
|
7
|
+
const sleep_1 = require("../../util/sleep");
|
|
7
8
|
exports.getAllEnvsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
8
9
|
name: 'get-all-envs',
|
|
9
10
|
description: 'Get environment variables for an application',
|
|
@@ -15,7 +16,8 @@ exports.getAllEnvsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
15
16
|
},
|
|
16
17
|
async action(_, opts) {
|
|
17
18
|
const { project } = opts;
|
|
18
|
-
|
|
19
|
+
const envVars = await (0, application_control_1.getAllEnvs)({ projectId: project });
|
|
20
|
+
console.log(JSON.stringify(envVars, null, 2));
|
|
19
21
|
}
|
|
20
22
|
});
|
|
21
23
|
exports.setEnvCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
@@ -31,13 +33,38 @@ exports.setEnvCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
31
33
|
required: true
|
|
32
34
|
}),
|
|
33
35
|
service: (0, alwayscli_1.CliStringInput)({
|
|
34
|
-
description: '
|
|
35
|
-
required:
|
|
36
|
+
description: 'Docker compose service to set environment variables for',
|
|
37
|
+
required: true
|
|
36
38
|
})
|
|
37
39
|
},
|
|
38
40
|
async action(args, opts) {
|
|
39
41
|
const { project, service } = opts;
|
|
40
|
-
|
|
42
|
+
const envVars = { [service]: {} };
|
|
43
|
+
args.forEach((arg) => {
|
|
44
|
+
const nameVal = arg.split('=');
|
|
45
|
+
if (nameVal.length !== 2) {
|
|
46
|
+
throw new alwayscli_1.CliTerseError(`Invalid argument: ${arg}`);
|
|
47
|
+
}
|
|
48
|
+
envVars[service][nameVal[0]] = nameVal[1];
|
|
49
|
+
});
|
|
50
|
+
const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
|
|
51
|
+
await deviceAgent.setupHandlers();
|
|
52
|
+
const topic = deviceAgent.getShadowTopics().projects.updateDelta;
|
|
53
|
+
const message = {
|
|
54
|
+
version: 3,
|
|
55
|
+
timestamp: 0,
|
|
56
|
+
state: {
|
|
57
|
+
[project]: {
|
|
58
|
+
envVars
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
clientToken: 'not-self'
|
|
62
|
+
};
|
|
63
|
+
await deviceAgent.handleMessage(topic, message);
|
|
64
|
+
while (deviceAgent.isCmdInProgress(project)) {
|
|
65
|
+
await (0, sleep_1.default)(1000);
|
|
66
|
+
}
|
|
67
|
+
await deviceAgent.stop();
|
|
41
68
|
}
|
|
42
69
|
});
|
|
43
70
|
//# sourceMappingURL=env-vars.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../../src/subcommands/app/env-vars.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../../src/subcommands/app/env-vars.ts"],"names":[],"mappings":";;;AAAA,mDAK6B;AAC7B,mEAAgE;AAChE,wGAAkG;AAClG,4CAAqC;AAExB,QAAA,iBAAiB,GAAG,IAAA,mBAAO,EAAC;IACvC,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8CAA8C;IAC3D,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,IAAA,gCAAU,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,IAAA,mBAAO,EAAC;IACnC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,yCAAyC;IACtD,eAAe,EAAE,IAAA,+BAAmB,EAAC;QACnC,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI;QACrB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,MAAM,IAAI,yBAAa,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;aACrD;YACD,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACrD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAEjE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE;gBACL,CAAC,OAAO,CAAC,EAAE;oBACT,OAAO;iBACR;aACF;YACD,WAAW,EAAE,UAAU;SACxB,CAAC;QAEF,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC3C,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;SACnB;QACD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/index.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,YAAY,mDAuBvB,CAAC"}
|
|
@@ -6,6 +6,7 @@ const env_vars_1 = require("./env-vars");
|
|
|
6
6
|
const models_1 = require("./models");
|
|
7
7
|
const status_1 = require("./status");
|
|
8
8
|
const version_1 = require("./version");
|
|
9
|
+
const shadow_1 = require("./shadow");
|
|
9
10
|
exports.appCliBranch = (0, alwayscli_1.CliBranch)({
|
|
10
11
|
name: 'app',
|
|
11
12
|
description: 'Manage alwaysAI applications',
|
|
@@ -25,7 +26,9 @@ exports.appCliBranch = (0, alwayscli_1.CliBranch)({
|
|
|
25
26
|
models_1.replaceModelsCliLeaf,
|
|
26
27
|
models_1.updateModelsCliLeaf,
|
|
27
28
|
env_vars_1.getAllEnvsCliLeaf,
|
|
28
|
-
env_vars_1.setEnvCliLeaf
|
|
29
|
+
env_vars_1.setEnvCliLeaf,
|
|
30
|
+
shadow_1.getShadowCliLeaf,
|
|
31
|
+
shadow_1.updateShadowCliLeaf
|
|
29
32
|
]
|
|
30
33
|
});
|
|
31
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subcommands/app/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,yCAA8D;AAC9D,qCAMkB;AAClB,qCAMkB;AAClB,uCAKmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subcommands/app/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,yCAA8D;AAC9D,qCAMkB;AAClB,qCAMkB;AAClB,uCAKmB;AACnB,qCAAiE;AAEpD,QAAA,YAAY,GAAG,IAAA,qBAAS,EAAC;IACpC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,8BAA8B;IAC3C,WAAW,EAAE;QACX,yBAAe;QACf,2BAAiB;QACjB,4BAAmB;QACnB,wBAAe;QACf,uBAAc;QACd,0BAAiB;QACjB,0BAAiB;QACjB,6BAAmB;QACnB,4BAAkB;QAClB,6BAAoB;QACpB,wBAAe;QACf,2BAAkB;QAClB,6BAAoB;QACpB,4BAAmB;QACnB,4BAAiB;QACjB,wBAAa;QACb,yBAAgB;QAChB,4BAAmB;KACpB;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/models.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB;;4DAc/B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;4DA4C1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/models.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB;;4DAc/B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;4DA4C1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;4DAkB7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;4DAqB/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;4DAiB9B,CAAC"}
|
|
@@ -58,7 +58,7 @@ exports.addModelCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
58
58
|
while (deviceAgent.isCmdInProgress(project)) {
|
|
59
59
|
await (0, sleep_1.default)(1000);
|
|
60
60
|
}
|
|
61
|
-
deviceAgent.stop();
|
|
61
|
+
await deviceAgent.stop();
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
exports.removeModelCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
@@ -76,6 +76,7 @@ exports.removeModelCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
76
76
|
},
|
|
77
77
|
async action(_, opts) {
|
|
78
78
|
const { project, model } = opts;
|
|
79
|
+
// TODO: Replace with handleMessage()
|
|
79
80
|
await (0, application_control_1.removeModel)({ projectId: project, modelId: model });
|
|
80
81
|
}
|
|
81
82
|
});
|
|
@@ -92,8 +93,10 @@ exports.replaceModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
92
93
|
required: true
|
|
93
94
|
})
|
|
94
95
|
},
|
|
96
|
+
hidden: true,
|
|
95
97
|
async action(_, opts) {
|
|
96
98
|
const { project, models } = opts;
|
|
99
|
+
console.log('This command is deprecated and will be removed in a future release');
|
|
97
100
|
await (0, application_control_1.replaceModels)({ projectId: project, modelIds: models });
|
|
98
101
|
}
|
|
99
102
|
});
|
|
@@ -106,8 +109,10 @@ exports.updateModelsCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
106
109
|
required: true
|
|
107
110
|
})
|
|
108
111
|
},
|
|
112
|
+
hidden: true,
|
|
109
113
|
async action(_, opts) {
|
|
110
114
|
const { project } = opts;
|
|
115
|
+
console.log('This command is deprecated and will be removed in a future release');
|
|
111
116
|
await (0, application_control_1.updateModels)({ projectId: project });
|
|
112
117
|
}
|
|
113
118
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/subcommands/app/models.ts"],"names":[],"mappings":";;;AAAA,mDAI6B;AAC7B,mEAMmC;AACnC,wGAAkG;AAClG,4CAAqC;AAExB,QAAA,oBAAoB,GAAG,IAAA,mBAAO,EAAC;IAC1C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,IAAA,kCAAY,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAA,mBAAO,EAAC;IACrC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,IAAA,0BAAc,EAAC;YACpB,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACrD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAEjE,MAAM,SAAS,GAAG,MAAM,IAAA,oCAAc,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE;gBACL,CAAC,OAAO,CAAC,EAAE;oBACT,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;iBACrC;aACF;YACD,WAAW,EAAE,UAAU;SACxB,CAAC;QAEF,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC3C,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;SACnB;QACD,WAAW,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/subcommands/app/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const getShadowCliLeaf: import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<undefined, false>, {
|
|
2
|
+
project: import("@alwaysai/alwayscli").CliInput<string, true>;
|
|
3
|
+
}, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
|
|
4
|
+
export declare const updateShadowCliLeaf: import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<undefined, false>, {
|
|
5
|
+
project: import("@alwaysai/alwayscli").CliInput<string, true>;
|
|
6
|
+
}, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
|
|
7
|
+
//# sourceMappingURL=shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/subcommands/app/shadow.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;4DAsB3B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;4DAmB9B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateShadowCliLeaf = exports.getShadowCliLeaf = void 0;
|
|
4
|
+
const alwayscli_1 = require("@alwaysai/alwayscli");
|
|
5
|
+
const device_agent_cloud_connection_1 = require("../../cloud-connection/device-agent-cloud-connection");
|
|
6
|
+
const sleep_1 = require("../../util/sleep");
|
|
7
|
+
exports.getShadowCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
8
|
+
name: 'get-shadow',
|
|
9
|
+
description: 'Get the current shadow',
|
|
10
|
+
namedInputs: {
|
|
11
|
+
project: (0, alwayscli_1.CliStringInput)({
|
|
12
|
+
description: 'Project Id',
|
|
13
|
+
required: true
|
|
14
|
+
})
|
|
15
|
+
},
|
|
16
|
+
async action(_, opts) {
|
|
17
|
+
const { project } = opts;
|
|
18
|
+
const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
|
|
19
|
+
await deviceAgent.setupHandlers();
|
|
20
|
+
// The Device Agent always gets the latest shadow and updates
|
|
21
|
+
// itself. 5 seconds should cover the initial response wait time
|
|
22
|
+
await (0, sleep_1.default)(5000);
|
|
23
|
+
while (deviceAgent.isCmdInProgress(project)) {
|
|
24
|
+
await (0, sleep_1.default)(1000);
|
|
25
|
+
}
|
|
26
|
+
await deviceAgent.stop();
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
exports.updateShadowCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
30
|
+
name: 'update-shadow',
|
|
31
|
+
description: 'Update the shadow with the current application configuration',
|
|
32
|
+
namedInputs: {
|
|
33
|
+
project: (0, alwayscli_1.CliStringInput)({
|
|
34
|
+
description: 'Project Id',
|
|
35
|
+
required: true
|
|
36
|
+
})
|
|
37
|
+
},
|
|
38
|
+
async action(_, opts) {
|
|
39
|
+
const { project } = opts;
|
|
40
|
+
const deviceAgent = new device_agent_cloud_connection_1.DeviceAgentCloudConnection();
|
|
41
|
+
await deviceAgent.setupHandlers();
|
|
42
|
+
await deviceAgent.updateProjectShadow(project);
|
|
43
|
+
// 5 seconds should cover the response wait time
|
|
44
|
+
await (0, sleep_1.default)(5000);
|
|
45
|
+
await deviceAgent.stop();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=shadow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../../src/subcommands/app/shadow.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,wGAAkG;AAClG,4CAAqC;AAExB,QAAA,gBAAgB,GAAG,IAAA,mBAAO,EAAC;IACtC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,wBAAwB;IACrC,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACrD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QAElC,6DAA6D;QAC7D,gEAAgE;QAChE,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC3C,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;SACnB;QACD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,IAAA,mBAAO,EAAC;IACzC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,8DAA8D;IAC3E,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACrD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE/C,gDAAgD;QAChD,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;QAClB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -50,7 +50,7 @@ exports.installAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
50
50
|
while (deviceAgent.isCmdInProgress(project)) {
|
|
51
51
|
await (0, sleep_1.default)(1000);
|
|
52
52
|
}
|
|
53
|
-
deviceAgent.stop();
|
|
53
|
+
await deviceAgent.stop();
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
exports.uninstallAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
@@ -82,7 +82,7 @@ exports.uninstallAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
|
82
82
|
while (deviceAgent.isCmdInProgress(project)) {
|
|
83
83
|
await (0, sleep_1.default)(1000);
|
|
84
84
|
}
|
|
85
|
-
deviceAgent.stop();
|
|
85
|
+
await deviceAgent.stop();
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
88
|
exports.rollbackAppCliLeaf = (0, alwayscli_1.CliLeaf)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/subcommands/app/version.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,yEAA2E;AAC3E,mEAAwD;AACxD,wGAAkG;AAClG,oEAAoE;AACpE,4CAAqC;AAExB,QAAA,eAAe,GAAG,IAAA,mBAAO,EAAC;IACrC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,EAAE;IACf,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,IAAA,mBAAO,EAAC;IACvC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wCAAwC;IACrD,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,IAAA,0BAAc,EAAC;YAC1B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACrD,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAkB;YAC7B,SAAS,EAAE,EAAE;YACb,KAAK;YACL,OAAO,EAAE;gBACP,WAAW,EAAE,iCAAU,CAAC,iBAAiB,CAAC,mBAAmB;gBAC7D,iBAAiB,EAAE;oBACjB,WAAW,EAAE,iCAAU,CAAC,iBAAiB,CAAC,OAAO;oBACjD,SAAS,EAAE,OAAO;oBAClB,cAAc,EAAE,WAAW;iBAC5B;aACF;SACF,CAAC;QACF,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAC3C,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;SACnB;QACD,WAAW,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/subcommands/app/version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-mode-ready.d.ts","sourceRoot":"","sources":["../../src/util/cloud-mode-ready.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,YAe7B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cloudModeReady = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const directories_1 = require("../util/directories");
|
|
6
|
+
function cloudModeReady() {
|
|
7
|
+
let ready = true;
|
|
8
|
+
const requiredFiles = [
|
|
9
|
+
directories_1.DEVICE_CERTIFICATE_FILE_PATH,
|
|
10
|
+
directories_1.DEVICE_PRIVATE_KEY_FILE_PATH,
|
|
11
|
+
directories_1.AWS_ROOT_CERTIFICATE_FILE_PATH
|
|
12
|
+
];
|
|
13
|
+
for (const path of requiredFiles) {
|
|
14
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
15
|
+
ready = false;
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return ready;
|
|
20
|
+
}
|
|
21
|
+
exports.cloudModeReady = cloudModeReady;
|
|
22
|
+
//# sourceMappingURL=cloud-mode-ready.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-mode-ready.js","sourceRoot":"","sources":["../../src/util/cloud-mode-ready.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,qDAI6B;AAE7B,SAAgB,cAAc;IAC5B,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,aAAa,GAAG;QACpB,0CAA4B;QAC5B,0CAA4B;QAC5B,4CAA8B;KAC/B,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;QAChC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE;YACrB,KAAK,GAAG,KAAK,CAAC;YACd,MAAM;SACP;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAfD,wCAeC"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -63,6 +63,8 @@ Where:
|
|
|
63
63
|
devices page of the alwaysAI Dashboard. If a device name is not provided, one
|
|
64
64
|
will be generated for you and logged to the console for reference.
|
|
65
65
|
|
|
66
|
+
**Important note**: If your password contains one or more special characters and you receive an error message that your password does not match your username but you are sure that it is correctly entered, please try enclosing your password with double quotes and re-running the provisioning command. You can also reset your password at https://console.alwaysai.co/dashboard by logging out, navigating to the sign in page, and clicking '`Forgot Password?`'.
|
|
67
|
+
|
|
66
68
|
Confirm the Device Agent is running with the following command:
|
|
67
69
|
|
|
68
70
|
```bash
|
|
@@ -258,8 +260,6 @@ Subcommands:
|
|
|
258
260
|
app show-models : Show the application models
|
|
259
261
|
app add-model : Add a model to an alwaysAI app
|
|
260
262
|
app remove-model : Remove a model from an alwaysAI app
|
|
261
|
-
app replace-models : Replace all models of an alwaysAI app with new models
|
|
262
|
-
app update-models : Update all models for an alwaysAI app
|
|
263
263
|
app get-all-envs : Get environment variables for an application
|
|
264
264
|
app set-env : Set environment variables for a service
|
|
265
265
|
device init : Initialize device
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { AgentConfigFile } from '../infrastructure/agent-config';
|
|
2
2
|
import { parse, stringify } from 'yaml';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
buildApp,
|
|
5
|
+
getAppDir,
|
|
6
|
+
requireAppInstalled,
|
|
7
|
+
requireAppReady
|
|
8
|
+
} from './utils';
|
|
4
9
|
import { JsSpawner } from 'alwaysai/lib/util';
|
|
5
10
|
import compose from 'docker-compose';
|
|
6
11
|
import { assign, merge } from 'lodash';
|
|
7
12
|
import { AppJsonFile } from 'alwaysai/lib/core/app';
|
|
8
13
|
import { AppConfig } from '@alwaysai/app-configuration-schemas';
|
|
9
|
-
import { restartApp } from './status';
|
|
14
|
+
import { isAppStarted, restartApp } from './status';
|
|
10
15
|
import { logger } from '../util/logger';
|
|
11
16
|
|
|
12
17
|
export async function readAppCfgFile(props: {
|
|
13
18
|
projectId: string;
|
|
14
19
|
}): Promise<AppConfig> {
|
|
15
20
|
const { projectId } = props;
|
|
16
|
-
|
|
17
|
-
throw new Error(`App ${projectId} is not present!`);
|
|
18
|
-
}
|
|
21
|
+
await requireAppInstalled({ projectId });
|
|
19
22
|
const appDir = getAppDir(projectId);
|
|
20
23
|
const appJson = AppJsonFile(appDir);
|
|
21
24
|
if (!appJson.exists()) {
|
|
@@ -37,9 +40,6 @@ export async function writeAppCfgFile(props: {
|
|
|
37
40
|
appCfg: AppConfig;
|
|
38
41
|
}) {
|
|
39
42
|
const { projectId, appCfg } = props;
|
|
40
|
-
if (!(await AgentConfigFile().isAppPresent({ projectId }))) {
|
|
41
|
-
throw new Error(`App ${projectId} is not present!`);
|
|
42
|
-
}
|
|
43
43
|
const appDir = getAppDir(projectId);
|
|
44
44
|
const appJson = AppJsonFile(appDir);
|
|
45
45
|
try {
|
|
@@ -65,25 +65,22 @@ export async function updateAppCfgFile(props: {
|
|
|
65
65
|
|
|
66
66
|
export async function updateAppCfg(props: {
|
|
67
67
|
projectId: string;
|
|
68
|
-
appReleaseHash: string;
|
|
69
68
|
newAppCfg: AppConfig;
|
|
70
69
|
}) {
|
|
71
|
-
const { projectId,
|
|
72
|
-
logger.info(`Updating app config for ${projectId}
|
|
70
|
+
const { projectId, newAppCfg } = props;
|
|
71
|
+
logger.info(`Updating app config for ${projectId}`);
|
|
73
72
|
const appDir = getAppDir(projectId);
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
throw new Error('Application is not installed!');
|
|
86
|
-
}
|
|
74
|
+
await requireAppReady({ projectId });
|
|
75
|
+
|
|
76
|
+
const appReleaseHash = await AgentConfigFile().getAppVersion({
|
|
77
|
+
projectId
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
await AgentConfigFile().setAppInstalling({
|
|
81
|
+
projectId,
|
|
82
|
+
version: appReleaseHash
|
|
83
|
+
});
|
|
87
84
|
|
|
88
85
|
await writeAppCfgFile({ projectId, appCfg: newAppCfg });
|
|
89
86
|
await buildApp({ appDir });
|
|
@@ -93,16 +90,21 @@ export async function updateAppCfg(props: {
|
|
|
93
90
|
version: appReleaseHash
|
|
94
91
|
});
|
|
95
92
|
|
|
96
|
-
await
|
|
93
|
+
if (await isAppStarted({ projectId })) {
|
|
94
|
+
await restartApp({ projectId });
|
|
95
|
+
}
|
|
97
96
|
|
|
98
|
-
logger.info(
|
|
97
|
+
logger.info(
|
|
98
|
+
`Updated app config and rebuilt ${projectId}: ${JSON.stringify(
|
|
99
|
+
newAppCfg,
|
|
100
|
+
null,
|
|
101
|
+
2
|
|
102
|
+
)}`
|
|
103
|
+
);
|
|
99
104
|
}
|
|
100
105
|
|
|
101
106
|
export async function readDockerCompose(props: { projectId: string }) {
|
|
102
107
|
const { projectId } = props;
|
|
103
|
-
if (!(await AgentConfigFile().isAppReady({ projectId }))) {
|
|
104
|
-
throw new Error(`App ${projectId} is not ready!`);
|
|
105
|
-
}
|
|
106
108
|
const appDir = getAppDir(projectId);
|
|
107
109
|
const spawner = JsSpawner({ path: appDir });
|
|
108
110
|
const composeContents = await spawner.readFile('docker-compose.yaml');
|
|
@@ -115,9 +117,6 @@ export async function writeDockerCompose(props: {
|
|
|
115
117
|
dockerCompose: any;
|
|
116
118
|
}) {
|
|
117
119
|
const { projectId, dockerCompose } = props;
|
|
118
|
-
if (!(await AgentConfigFile().isAppReady({ projectId }))) {
|
|
119
|
-
throw new Error(`App ${projectId} is not ready!`);
|
|
120
|
-
}
|
|
121
120
|
const appDir = getAppDir(projectId);
|
|
122
121
|
const spawner = JsSpawner({ path: appDir });
|
|
123
122
|
const composeOutput = stringify(dockerCompose);
|