@alwaysai/device-agent 0.1.0 → 0.1.2
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 +205 -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/passthrough-handler.d.ts.map +1 -1
- package/lib/cloud-connection/passthrough-handler.js +6 -3
- package/lib/cloud-connection/passthrough-handler.js.map +1 -1
- 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 +222 -153
- 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/passthrough-handler.ts +10 -3
- 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);
|