@alwaysai/device-agent 0.0.1-2.1-beta-provision

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/lib/application-control/backup.d.ts +8 -0
  2. package/lib/application-control/backup.d.ts.map +1 -0
  3. package/lib/application-control/backup.js +37 -0
  4. package/lib/application-control/backup.js.map +1 -0
  5. package/lib/application-control/config.d.ts +17 -0
  6. package/lib/application-control/config.d.ts.map +1 -0
  7. package/lib/application-control/config.js +62 -0
  8. package/lib/application-control/config.js.map +1 -0
  9. package/lib/application-control/environment-variables.d.ts +9 -0
  10. package/lib/application-control/environment-variables.d.ts.map +1 -0
  11. package/lib/application-control/environment-variables.js +73 -0
  12. package/lib/application-control/environment-variables.js.map +1 -0
  13. package/lib/application-control/index.d.ts +10 -0
  14. package/lib/application-control/index.d.ts.map +1 -0
  15. package/lib/application-control/index.js +32 -0
  16. package/lib/application-control/index.js.map +1 -0
  17. package/lib/application-control/install.d.ts +22 -0
  18. package/lib/application-control/install.d.ts.map +1 -0
  19. package/lib/application-control/install.js +156 -0
  20. package/lib/application-control/install.js.map +1 -0
  21. package/lib/application-control/models.d.ts +23 -0
  22. package/lib/application-control/models.d.ts.map +1 -0
  23. package/lib/application-control/models.js +154 -0
  24. package/lib/application-control/models.js.map +1 -0
  25. package/lib/application-control/status.d.ts +27 -0
  26. package/lib/application-control/status.d.ts.map +1 -0
  27. package/lib/application-control/status.js +153 -0
  28. package/lib/application-control/status.js.map +1 -0
  29. package/lib/application-control/types.d.ts +5 -0
  30. package/lib/application-control/types.d.ts.map +1 -0
  31. package/lib/application-control/types.js +3 -0
  32. package/lib/application-control/types.js.map +1 -0
  33. package/lib/application-control/utils.d.ts +14 -0
  34. package/lib/application-control/utils.d.ts.map +1 -0
  35. package/lib/application-control/utils.js +82 -0
  36. package/lib/application-control/utils.js.map +1 -0
  37. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +51 -0
  38. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -0
  39. package/lib/cloud-connection/device-agent-cloud-connection.js +490 -0
  40. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -0
  41. package/lib/cloud-connection/device-agent.d.ts +21 -0
  42. package/lib/cloud-connection/device-agent.d.ts.map +1 -0
  43. package/lib/cloud-connection/device-agent.js +65 -0
  44. package/lib/cloud-connection/device-agent.js.map +1 -0
  45. package/lib/device-control/device-control.d.ts +4 -0
  46. package/lib/device-control/device-control.d.ts.map +1 -0
  47. package/lib/device-control/device-control.js +20 -0
  48. package/lib/device-control/device-control.js.map +1 -0
  49. package/lib/docker/docker-cmd.d.ts +4 -0
  50. package/lib/docker/docker-cmd.d.ts.map +1 -0
  51. package/lib/docker/docker-cmd.js +16 -0
  52. package/lib/docker/docker-cmd.js.map +1 -0
  53. package/lib/docker/docker-compose-cmd.d.ts +5 -0
  54. package/lib/docker/docker-compose-cmd.d.ts.map +1 -0
  55. package/lib/docker/docker-compose-cmd.js +16 -0
  56. package/lib/docker/docker-compose-cmd.js.map +1 -0
  57. package/lib/endpoints.d.ts +3 -0
  58. package/lib/endpoints.d.ts.map +1 -0
  59. package/lib/endpoints.js +28 -0
  60. package/lib/endpoints.js.map +1 -0
  61. package/lib/environment.d.ts +7 -0
  62. package/lib/environment.d.ts.map +1 -0
  63. package/lib/environment.js +24 -0
  64. package/lib/environment.js.map +1 -0
  65. package/lib/index.d.ts +3 -0
  66. package/lib/index.d.ts.map +1 -0
  67. package/lib/index.js +26 -0
  68. package/lib/index.js.map +1 -0
  69. package/lib/infrastructure/agent-config.d.ts +73 -0
  70. package/lib/infrastructure/agent-config.d.ts.map +1 -0
  71. package/lib/infrastructure/agent-config.js +175 -0
  72. package/lib/infrastructure/agent-config.js.map +1 -0
  73. package/lib/infrastructure/agent-config.test.d.ts +2 -0
  74. package/lib/infrastructure/agent-config.test.d.ts.map +1 -0
  75. package/lib/infrastructure/agent-config.test.js +182 -0
  76. package/lib/infrastructure/agent-config.test.js.map +1 -0
  77. package/lib/infrastructure/certificates-and-tokens.d.ts +6 -0
  78. package/lib/infrastructure/certificates-and-tokens.d.ts.map +1 -0
  79. package/lib/infrastructure/certificates-and-tokens.js +37 -0
  80. package/lib/infrastructure/certificates-and-tokens.js.map +1 -0
  81. package/lib/infrastructure/urls.d.ts +2 -0
  82. package/lib/infrastructure/urls.d.ts.map +1 -0
  83. package/lib/infrastructure/urls.js +25 -0
  84. package/lib/infrastructure/urls.js.map +1 -0
  85. package/lib/root.d.ts +2 -0
  86. package/lib/root.d.ts.map +1 -0
  87. package/lib/root.js +12 -0
  88. package/lib/root.js.map +1 -0
  89. package/lib/subcommands/app/app.d.ts +59 -0
  90. package/lib/subcommands/app/app.d.ts.map +1 -0
  91. package/lib/subcommands/app/app.js +317 -0
  92. package/lib/subcommands/app/app.js.map +1 -0
  93. package/lib/subcommands/app/index.d.ts +2 -0
  94. package/lib/subcommands/app/index.d.ts.map +1 -0
  95. package/lib/subcommands/app/index.js +30 -0
  96. package/lib/subcommands/app/index.js.map +1 -0
  97. package/lib/subcommands/device/clean.d.ts +2 -0
  98. package/lib/subcommands/device/clean.d.ts.map +1 -0
  99. package/lib/subcommands/device/clean.js +20 -0
  100. package/lib/subcommands/device/clean.js.map +1 -0
  101. package/lib/subcommands/device/device.d.ts +6 -0
  102. package/lib/subcommands/device/device.d.ts.map +1 -0
  103. package/lib/subcommands/device/device.js +92 -0
  104. package/lib/subcommands/device/device.js.map +1 -0
  105. package/lib/subcommands/device/index.d.ts +2 -0
  106. package/lib/subcommands/device/index.d.ts.map +1 -0
  107. package/lib/subcommands/device/index.js +12 -0
  108. package/lib/subcommands/device/index.js.map +1 -0
  109. package/lib/subcommands/get-model-package.d.ts +5 -0
  110. package/lib/subcommands/get-model-package.d.ts.map +1 -0
  111. package/lib/subcommands/get-model-package.js +35 -0
  112. package/lib/subcommands/get-model-package.js.map +1 -0
  113. package/lib/subcommands/index.d.ts +9 -0
  114. package/lib/subcommands/index.d.ts.map +1 -0
  115. package/lib/subcommands/index.js +14 -0
  116. package/lib/subcommands/index.js.map +1 -0
  117. package/lib/subcommands/login.d.ts +6 -0
  118. package/lib/subcommands/login.d.ts.map +1 -0
  119. package/lib/subcommands/login.js +35 -0
  120. package/lib/subcommands/login.js.map +1 -0
  121. package/lib/util/clean-certs.d.ts +2 -0
  122. package/lib/util/clean-certs.d.ts.map +1 -0
  123. package/lib/util/clean-certs.js +16 -0
  124. package/lib/util/clean-certs.js.map +1 -0
  125. package/lib/util/copy-dir.d.ts +5 -0
  126. package/lib/util/copy-dir.d.ts.map +1 -0
  127. package/lib/util/copy-dir.js +16 -0
  128. package/lib/util/copy-dir.js.map +1 -0
  129. package/lib/util/directories.d.ts +23 -0
  130. package/lib/util/directories.d.ts.map +1 -0
  131. package/lib/util/directories.js +50 -0
  132. package/lib/util/directories.js.map +1 -0
  133. package/lib/util/get-device-id.d.ts +2 -0
  134. package/lib/util/get-device-id.d.ts.map +1 -0
  135. package/lib/util/get-device-id.js +24 -0
  136. package/lib/util/get-device-id.js.map +1 -0
  137. package/lib/util/http-client.d.ts +3 -0
  138. package/lib/util/http-client.d.ts.map +1 -0
  139. package/lib/util/http-client.js +30 -0
  140. package/lib/util/http-client.js.map +1 -0
  141. package/lib/util/logger.d.ts +4 -0
  142. package/lib/util/logger.d.ts.map +1 -0
  143. package/lib/util/logger.js +24 -0
  144. package/lib/util/logger.js.map +1 -0
  145. package/lib/util/run-in-dir.d.ts +2 -0
  146. package/lib/util/run-in-dir.d.ts.map +1 -0
  147. package/lib/util/run-in-dir.js +17 -0
  148. package/lib/util/run-in-dir.js.map +1 -0
  149. package/lib/util/sleep.d.ts +2 -0
  150. package/lib/util/sleep.d.ts.map +1 -0
  151. package/lib/util/sleep.js +9 -0
  152. package/lib/util/sleep.js.map +1 -0
  153. package/package.json +98 -0
  154. package/readme.md +219 -0
  155. package/src/application-control/backup.ts +36 -0
  156. package/src/application-control/config.ts +61 -0
  157. package/src/application-control/environment-variables.ts +74 -0
  158. package/src/application-control/index.ts +45 -0
  159. package/src/application-control/install.ts +206 -0
  160. package/src/application-control/models.ts +194 -0
  161. package/src/application-control/status.ts +187 -0
  162. package/src/application-control/types.ts +1 -0
  163. package/src/application-control/utils.ts +95 -0
  164. package/src/cloud-connection/device-agent-cloud-connection.ts +673 -0
  165. package/src/cloud-connection/device-agent.ts +120 -0
  166. package/src/device-control/device-control.ts +16 -0
  167. package/src/docker/docker-cmd.ts +12 -0
  168. package/src/docker/docker-compose-cmd.ts +12 -0
  169. package/src/endpoints.ts +24 -0
  170. package/src/environment.ts +28 -0
  171. package/src/index.ts +26 -0
  172. package/src/infrastructure/agent-config.test.ts +199 -0
  173. package/src/infrastructure/agent-config.ts +208 -0
  174. package/src/infrastructure/certificates-and-tokens.ts +47 -0
  175. package/src/infrastructure/urls.ts +21 -0
  176. package/src/root.ts +11 -0
  177. package/src/subcommands/app/app.ts +337 -0
  178. package/src/subcommands/app/index.ts +46 -0
  179. package/src/subcommands/device/clean.ts +16 -0
  180. package/src/subcommands/device/device.ts +126 -0
  181. package/src/subcommands/device/index.ts +9 -0
  182. package/src/subcommands/get-model-package.ts +33 -0
  183. package/src/subcommands/index.ts +11 -0
  184. package/src/subcommands/login.ts +33 -0
  185. package/src/util/clean-certs.ts +12 -0
  186. package/src/util/copy-dir.ts +12 -0
  187. package/src/util/directories.ts +82 -0
  188. package/src/util/get-device-id.ts +22 -0
  189. package/src/util/http-client.ts +35 -0
  190. package/src/util/logger.ts +28 -0
  191. package/src/util/run-in-dir.ts +15 -0
  192. package/src/util/sleep.ts +5 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInfoCliLeaf = exports.initCliLeaf = void 0;
4
+ const alwayscli_1 = require("@alwaysai/alwayscli");
5
+ const user_1 = require("alwaysai/lib/components/user");
6
+ const project_1 = require("alwaysai/lib/core/project");
7
+ const uuid_1 = require("uuid");
8
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
9
+ const fs_1 = require("fs");
10
+ const http_client_1 = require("../../util/http-client");
11
+ const directories_1 = require("../../util/directories");
12
+ const constants_1 = require("alwaysai/lib/constants");
13
+ const util_1 = require("alwaysai/lib/util");
14
+ const device_control_1 = require("../../device-control/device-control");
15
+ const certificates_and_tokens_1 = require("../../infrastructure/certificates-and-tokens");
16
+ const logger_1 = require("../../util/logger");
17
+ exports.initCliLeaf = (0, alwayscli_1.CliLeaf)({
18
+ name: "init",
19
+ description: "Initialize device",
20
+ namedInputs: {
21
+ name: (0, alwayscli_1.CliStringInput)({
22
+ description: "Device name",
23
+ required: true,
24
+ }),
25
+ description: (0, alwayscli_1.CliStringInput)({
26
+ description: "Device description",
27
+ required: false,
28
+ }),
29
+ },
30
+ async action(_, opts) {
31
+ const { name, description } = opts;
32
+ switch (true) {
33
+ case !(0, fs_1.existsSync)((0, directories_1.getPrivateKeyFilePath)()):
34
+ {
35
+ logger_1.logger.info("Initializing device");
36
+ await (0, user_1.checkUserIsLoggedInComponent)({ yes: true });
37
+ if (!(await (0, project_1.checkPaidPlan)())) {
38
+ throw new Error(`This action only supported for Enterprise alwaysAI accounts!`);
39
+ }
40
+ const { username } = await (0, infrastructure_1.CliAuthenticationClient)().getInfo();
41
+ const spawner = (0, util_1.JsSpawner)();
42
+ const device = {
43
+ deviceMode: "production",
44
+ hardwareId: (0, uuid_1.v4)(),
45
+ txId: (0, uuid_1.v4)(),
46
+ userName: username,
47
+ friendlyName: name,
48
+ };
49
+ //**NOTE: hardwareId currently is mocked. The real hardwareId will be used in future work
50
+ const response = await (0, http_client_1.microServiceHttpClient)("fleet-provision", "addDevice", "POST", JSON.stringify(device));
51
+ if (Object.hasOwn(response, "claimCertificate")) {
52
+ const ROOT_CERT_AWS = await (0, http_client_1.httpClient)("https://www.amazontrust.com/repository/AmazonRootCA1.pem", "GET");
53
+ await (0, certificates_and_tokens_1.writeCertificateAndToken)({ deviceUuid: response.deviceUuid });
54
+ const hardwareIdSpawner = (0, util_1.JsSpawner)({
55
+ path: constants_1.LOCAL_CERT_AND_KEY_DIR,
56
+ });
57
+ await (0, util_1.JsSpawner)().mkdirp(directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH);
58
+ await hardwareIdSpawner.writeFile("hardware-id.txt", device.hardwareId);
59
+ (0, util_1.JsSpawner)({ path: constants_1.LOCAL_CERT_AND_KEY_DIR }).writeFile(directories_1.AWS_ROOT_CERTIFICATE_FILE_NAME, ROOT_CERT_AWS);
60
+ const certSpawner = (0, util_1.JsSpawner)({
61
+ path: directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH,
62
+ });
63
+ for (const key in response.claimCertificate) {
64
+ await certSpawner.writeFile(key, response.claimCertificate[key]);
65
+ }
66
+ logger_1.logger.info(`Initialized device as ${response.deviceUuid}`);
67
+ }
68
+ else {
69
+ logger_1.logger.info("Device cannot be provisioned. Run 'device-agent device clean' and retry.");
70
+ }
71
+ }
72
+ break;
73
+ default: {
74
+ logger_1.logger.info("Device has been previously provisioned. Run 'device-agent device clean' to re-provision");
75
+ }
76
+ }
77
+ },
78
+ });
79
+ exports.getInfoCliLeaf = (0, alwayscli_1.CliLeaf)({
80
+ name: "get-info",
81
+ description: "Get device info",
82
+ namedInputs: {},
83
+ async action(_, opts) {
84
+ const deviceInfo = [
85
+ ["CPU Utilization", `${String(await (0, device_control_1.getCpuUtil)())} %`],
86
+ ["Disk Utilization", `${String(await (0, device_control_1.getDiskUtil)())} %`],
87
+ ["Memory Utilization", `${String(await (0, device_control_1.getMemUtil)())} %`],
88
+ ];
89
+ console.table(deviceInfo);
90
+ },
91
+ });
92
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../../src/subcommands/device/device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const deviceCliBranch: import("@alwaysai/alwayscli/lib/types").CliBranch;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/subcommands/device/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,mDAI1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deviceCliBranch = void 0;
4
+ const alwayscli_1 = require("@alwaysai/alwayscli");
5
+ const device_1 = require("./device");
6
+ const clean_1 = require("./clean");
7
+ exports.deviceCliBranch = (0, alwayscli_1.CliBranch)({
8
+ name: "device",
9
+ description: "Manage current device",
10
+ subcommands: [device_1.initCliLeaf, device_1.getInfoCliLeaf, clean_1.cleanCliLeaf],
11
+ });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/subcommands/device/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,qCAAuD;AACvD,mCAAuC;AAE1B,QAAA,eAAe,GAAG,IAAA,qBAAS,EAAC;IACvC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,CAAC,oBAAW,EAAE,uBAAc,EAAE,oBAAY,CAAC;CACzD,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const getModelPackageCliLeaf: import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<string, true>, {
2
+ version: import("@alwaysai/alwayscli").CliInput<number | undefined, boolean>;
3
+ path: import("@alwaysai/alwayscli").CliInput<string | undefined, false>;
4
+ }, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
5
+ //# sourceMappingURL=get-model-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-model-package.d.ts","sourceRoot":"","sources":["../../src/subcommands/get-model-package.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;4DA0BjC,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getModelPackageCliLeaf = void 0;
4
+ const alwayscli_1 = require("@alwaysai/alwayscli");
5
+ const app_1 = require("alwaysai/lib/core/app");
6
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
7
+ const util_1 = require("alwaysai/lib/util");
8
+ const logger_1 = require("../util/logger");
9
+ exports.getModelPackageCliLeaf = (0, alwayscli_1.CliLeaf)({
10
+ name: 'get-model-package',
11
+ description: 'Download and unpack a model package',
12
+ positionalInput: (0, alwayscli_1.CliStringInput)({
13
+ description: 'For example, "alwaysai/mobilenet_ssd"',
14
+ required: true,
15
+ placeholder: '<id>',
16
+ }),
17
+ namedInputs: {
18
+ version: (0, alwayscli_1.CliNumberInput)({
19
+ description: 'The version number of the model',
20
+ required: false,
21
+ }),
22
+ path: (0, alwayscli_1.CliStringInput)({
23
+ description: 'The output path to write model package to',
24
+ required: false,
25
+ }),
26
+ },
27
+ async action(id, opts) {
28
+ const path = opts.path || process.cwd();
29
+ const spawner = (0, util_1.JsSpawner)({ path });
30
+ const version = opts.version || (await (0, infrastructure_1.CliRpcClient)().getModelVersion({ id })).version;
31
+ await (0, app_1.appInstallModel)(spawner, id, version);
32
+ logger_1.logger.info(`Completed downloading ${id} to ${path}`);
33
+ },
34
+ });
35
+ //# sourceMappingURL=get-model-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-model-package.js","sourceRoot":"","sources":["../../src/subcommands/get-model-package.ts"],"names":[],"mappings":";;;AAAA,mDAA8E;AAC9E,+CAAwD;AACxD,gEAA2D;AAC3D,4CAA8C;AAC9C,2CAAwC;AAE3B,QAAA,sBAAsB,GAAG,IAAA,mBAAO,EAAC;IAC5C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,qCAAqC;IAClD,eAAe,EAAE,IAAA,0BAAc,EAAC;QAC9B,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,MAAM;KACpB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,IAAA,0BAAc,EAAC;YACtB,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,IAAA,0BAAc,EAAC;YACnB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAA,6BAAY,GAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,MAAM,IAAA,qBAAe,EAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5C,eAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const subcommands: (import("@alwaysai/alwayscli/lib/types").CliBranch | import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<undefined, false>, {
2
+ email: import("@alwaysai/alwayscli").CliInput<string, true>;
3
+ password: import("@alwaysai/alwayscli").CliInput<string, true>;
4
+ device: import("@alwaysai/alwayscli").CliInput<string | undefined, false>;
5
+ }, import("@alwaysai/alwayscli").CliInput<undefined, false>> | import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<string, true>, {
6
+ version: import("@alwaysai/alwayscli").CliInput<number | undefined, boolean>;
7
+ path: import("@alwaysai/alwayscli").CliInput<string | undefined, false>;
8
+ }, import("@alwaysai/alwayscli").CliInput<undefined, false>>)[];
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subcommands/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;;;;;;;+DAKvB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subcommands = void 0;
4
+ const app_1 = require("./app");
5
+ const device_1 = require("./device");
6
+ const login_1 = require("./login");
7
+ const get_model_package_1 = require("./get-model-package");
8
+ exports.subcommands = [
9
+ login_1.loginCliLeaf,
10
+ app_1.appCliBranch,
11
+ device_1.deviceCliBranch,
12
+ get_model_package_1.getModelPackageCliLeaf,
13
+ ];
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subcommands/index.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AACrC,qCAA2C;AAC3C,mCAAuC;AACvC,2DAA6D;AAEhD,QAAA,WAAW,GAAG;IACzB,oBAAY;IACZ,kBAAY;IACZ,wBAAe;IACf,0CAAsB;CACvB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const loginCliLeaf: import("@alwaysai/alwayscli/lib/types").CliLeaf<import("@alwaysai/alwayscli").CliInput<undefined, false>, {
2
+ email: import("@alwaysai/alwayscli").CliInput<string, true>;
3
+ password: import("@alwaysai/alwayscli").CliInput<string, true>;
4
+ device: import("@alwaysai/alwayscli").CliInput<string | undefined, false>;
5
+ }, import("@alwaysai/alwayscli").CliInput<undefined, false>>;
6
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;4DA4BvB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loginCliLeaf = void 0;
4
+ const alwayscli_1 = require("@alwaysai/alwayscli");
5
+ const user_1 = require("alwaysai/lib/components/user");
6
+ const certificates_and_tokens_1 = require("../infrastructure/certificates-and-tokens");
7
+ exports.loginCliLeaf = (0, alwayscli_1.CliLeaf)({
8
+ name: 'login',
9
+ description: 'Login to alwaysAI (this is meant for scripted environments)',
10
+ namedInputs: {
11
+ email: (0, alwayscli_1.CliStringInput)({
12
+ description: 'alwaysAI email',
13
+ required: true,
14
+ }),
15
+ password: (0, alwayscli_1.CliStringInput)({
16
+ description: 'Account password',
17
+ required: true,
18
+ }),
19
+ device: (0, alwayscli_1.CliStringInput)({
20
+ description: 'The device UUID',
21
+ required: false,
22
+ }),
23
+ },
24
+ async action(_, opts) {
25
+ const { email, password, device } = opts;
26
+ await (0, user_1.alwaysaiUserLoginYesComponent)({
27
+ alwaysaiUserEmail: email,
28
+ alwaysaiUserPassword: password,
29
+ });
30
+ if (device) {
31
+ await (0, certificates_and_tokens_1.writeCertificateAndToken)({ deviceUuid: device });
32
+ }
33
+ },
34
+ });
35
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/subcommands/login.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,uDAA6E;AAC7E,uFAAqF;AAExE,QAAA,YAAY,GAAG,IAAA,mBAAO,EAAC;IAClC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE;QACX,KAAK,EAAE,IAAA,0BAAc,EAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,IAAA,0BAAc,EAAC;YACvB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,EAAE,IAAA,0BAAc,EAAC;YACrB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAEzC,MAAM,IAAA,oCAA6B,EAAC;YAClC,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,QAAQ;SAC/B,CAAC,CAAC;QACH,IAAI,MAAM,EAAE;YACV,MAAM,IAAA,kDAAwB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SACxD;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const rmBootstrapCertsAndClose: () => Promise<never>;
2
+ //# sourceMappingURL=clean-certs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean-certs.d.ts","sourceRoot":"","sources":["../../src/util/clean-certs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,sBAMpC,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rmBootstrapCertsAndClose = void 0;
4
+ const util_1 = require("alwaysai/lib/util");
5
+ const logger_1 = require("../util/logger");
6
+ const constants_1 = require("alwaysai/lib/constants");
7
+ const directories_1 = require("../util/directories");
8
+ const rmBootstrapCertsAndClose = async () => {
9
+ const spawner = (0, util_1.JsSpawner)();
10
+ await spawner.rimraf(directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH);
11
+ await spawner.rimraf(constants_1.LOCAL_CERT_AND_KEY_DIR);
12
+ logger_1.logger.info("Could not provision device. Try again.");
13
+ process.exit();
14
+ };
15
+ exports.rmBootstrapCertsAndClose = rmBootstrapCertsAndClose;
16
+ //# sourceMappingURL=clean-certs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean-certs.js","sourceRoot":"","sources":["../../src/util/clean-certs.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,2CAAwC;AACxC,sDAAgE;AAChE,qDAAsE;AAE/D,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,MAAM,CAAC,6CAA+B,CAAC,CAAC;IACtD,MAAM,OAAO,CAAC,MAAM,CAAC,kCAAsB,CAAC,CAAC;IAC7C,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,wBAAwB,4BAMnC"}
@@ -0,0 +1,5 @@
1
+ export declare function copyDir(props: {
2
+ srcPath: string;
3
+ destPath: string;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=copy-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-dir.d.ts","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,iBASzE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyDir = void 0;
4
+ const util_1 = require("alwaysai/lib/util");
5
+ async function copyDir(props) {
6
+ const { srcPath, destPath } = props;
7
+ const src = (0, util_1.JsSpawner)({ path: srcPath });
8
+ const allFileNames = await src.readdir();
9
+ const dest = (0, util_1.JsSpawner)({ path: destPath });
10
+ await dest.mkdirp();
11
+ if (allFileNames.length) {
12
+ await dest.untar(await src.tar(...allFileNames));
13
+ }
14
+ }
15
+ exports.copyDir = copyDir;
16
+ //# sourceMappingURL=copy-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-dir.js","sourceRoot":"","sources":["../../src/util/copy-dir.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,OAAO,CAAC,KAA4C;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACpB,IAAI,YAAY,CAAC,MAAM,EAAE;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;KAClD;AACH,CAAC;AATD,0BASC"}
@@ -0,0 +1,23 @@
1
+ export declare const shortenSystemId: () => "prod" | "dev" | undefined;
2
+ export declare const BOOTSTRAP_DIR_NAME = "bootstrap-certificates";
3
+ export declare const BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_NAME: string;
4
+ export declare const BOOTSTRAP_DEVICE_CERTIFICATE_FILE_NAME: string;
5
+ export declare const BOOTSTRAP_CLAIM_ID_FILE_NAME: string;
6
+ export declare const AWS_ROOT_CERTIFICATE_FILE_NAME = "AmazonRootCA1.pem";
7
+ export declare const CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = "certificate-ownership-token.txt";
8
+ export declare const AGENT_CONFIG_FILE_NAME = "alwaysai.agent.json";
9
+ export declare const DEVICE_PRIVATE_KEY_FILE_NAME: string;
10
+ export declare const DEVICE_CERTIFICATE_FILE_NAME: string;
11
+ export declare const DEVICE_CLAIM_ID_FILE_NAME: string;
12
+ export declare function getPrivateKeyFilePath(): string;
13
+ export declare function getCertificateFilePath(): string;
14
+ export declare function getRootCertificateFilePath(): string;
15
+ export declare function getCredentialsFilePath(): string;
16
+ export declare const BOOTSTRAP_CERTIFICATES_DIR_PATH: string;
17
+ export declare const DEVICE_CLAIM_ID_FILE_PATH: string;
18
+ export declare const BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_PATH: string;
19
+ export declare const BOOTSTRAP_DEVICE_CERTIFICATE_FILE_PATH: string;
20
+ export declare const BOOTSTRAP_CLAIM_ID_FILE_PATH: string;
21
+ export declare const AWS_ROOT_CERTIFICATE_FILE_PATH: string;
22
+ export declare const AGENT_CONFIG_FILE_PATH: string;
23
+ //# sourceMappingURL=directories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directories.d.ts","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,kCAO3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,sCAAsC,QAAuD,CAAC;AAC3G,eAAO,MAAM,sCAAsC,QAAgD,CAAC;AACpG,eAAO,MAAM,4BAA4B,QAA+C,CAAC;AACzF,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAClE,eAAO,MAAM,qCAAqC,oCACf,CAAC;AACpC,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,QAAuD,CAAC;AACjG,eAAO,MAAM,4BAA4B,QAAgD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,QAA+C,CAAC;AAEtF,wBAAgB,qBAAqB,WAEpC;AAED,wBAAgB,sBAAsB,WAErC;AAED,wBAAgB,0BAA0B,WAEzC;AAED,wBAAgB,sBAAsB,WAErC;AAED,eAAO,MAAM,+BAA+B,QAG3C,CAAC;AACF,eAAO,MAAM,yBAAyB,QAGrC,CAAC;AAEF,eAAO,MAAM,sCAAsC,QAIlD,CAAC;AAEF,eAAO,MAAM,sCAAsC,QAIlD,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAIxC,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAGlC,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGENT_CONFIG_FILE_PATH = exports.AWS_ROOT_CERTIFICATE_FILE_PATH = exports.BOOTSTRAP_CLAIM_ID_FILE_PATH = exports.BOOTSTRAP_DEVICE_CERTIFICATE_FILE_PATH = exports.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_PATH = exports.DEVICE_CLAIM_ID_FILE_PATH = exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = exports.getCredentialsFilePath = exports.getRootCertificateFilePath = exports.getCertificateFilePath = exports.getPrivateKeyFilePath = exports.DEVICE_CLAIM_ID_FILE_NAME = exports.DEVICE_CERTIFICATE_FILE_NAME = exports.DEVICE_PRIVATE_KEY_FILE_NAME = exports.AGENT_CONFIG_FILE_NAME = exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = exports.AWS_ROOT_CERTIFICATE_FILE_NAME = exports.BOOTSTRAP_CLAIM_ID_FILE_NAME = exports.BOOTSTRAP_DEVICE_CERTIFICATE_FILE_NAME = exports.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_NAME = exports.BOOTSTRAP_DIR_NAME = exports.shortenSystemId = void 0;
4
+ const constants_1 = require("alwaysai/lib/constants");
5
+ const path_1 = require("path");
6
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
7
+ const shortenSystemId = () => {
8
+ const id = (0, infrastructure_1.getSystemId)();
9
+ if (id === "production") {
10
+ return "prod";
11
+ }
12
+ else if (id === "development") {
13
+ return "dev";
14
+ }
15
+ };
16
+ exports.shortenSystemId = shortenSystemId;
17
+ exports.BOOTSTRAP_DIR_NAME = "bootstrap-certificates";
18
+ exports.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_NAME = `aai-claim-private-key_${(0, exports.shortenSystemId)()}.pem.key`;
19
+ exports.BOOTSTRAP_DEVICE_CERTIFICATE_FILE_NAME = `aai-claim-cert_${(0, exports.shortenSystemId)()}.pem.crt`;
20
+ exports.BOOTSTRAP_CLAIM_ID_FILE_NAME = `aai-claim-cert-id_${(0, exports.shortenSystemId)()}.txt`;
21
+ exports.AWS_ROOT_CERTIFICATE_FILE_NAME = "AmazonRootCA1.pem";
22
+ exports.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME = "certificate-ownership-token.txt";
23
+ exports.AGENT_CONFIG_FILE_NAME = "alwaysai.agent.json";
24
+ exports.DEVICE_PRIVATE_KEY_FILE_NAME = `aai-claim-private-key_${(0, exports.shortenSystemId)()}.pem.key`;
25
+ exports.DEVICE_CERTIFICATE_FILE_NAME = `aai-claim-cert_${(0, exports.shortenSystemId)()}.pem.crt`;
26
+ exports.DEVICE_CLAIM_ID_FILE_NAME = `aai-claim-cert-id_${(0, exports.shortenSystemId)()}.txt`;
27
+ function getPrivateKeyFilePath() {
28
+ return (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_PRIVATE_KEY_FILE_NAME);
29
+ }
30
+ exports.getPrivateKeyFilePath = getPrivateKeyFilePath;
31
+ function getCertificateFilePath() {
32
+ return (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.DEVICE_CERTIFICATE_FILE_NAME);
33
+ }
34
+ exports.getCertificateFilePath = getCertificateFilePath;
35
+ function getRootCertificateFilePath() {
36
+ return (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.AWS_ROOT_CERTIFICATE_FILE_NAME);
37
+ }
38
+ exports.getRootCertificateFilePath = getRootCertificateFilePath;
39
+ function getCredentialsFilePath() {
40
+ return (0, path_1.join)(constants_1.LOCAL_AAI_CFG_DIR, constants_1.DEVICE_TOKEN_FILE_NAME);
41
+ }
42
+ exports.getCredentialsFilePath = getCredentialsFilePath;
43
+ exports.BOOTSTRAP_CERTIFICATES_DIR_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME);
44
+ exports.DEVICE_CLAIM_ID_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, constants_1.DEVICE_TOKEN_FILE_NAME);
45
+ exports.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, exports.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_NAME);
46
+ exports.BOOTSTRAP_DEVICE_CERTIFICATE_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, exports.BOOTSTRAP_DEVICE_CERTIFICATE_FILE_NAME);
47
+ exports.BOOTSTRAP_CLAIM_ID_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.BOOTSTRAP_DIR_NAME, exports.BOOTSTRAP_CLAIM_ID_FILE_NAME);
48
+ exports.AWS_ROOT_CERTIFICATE_FILE_PATH = (0, path_1.join)(constants_1.LOCAL_CERT_AND_KEY_DIR, exports.AWS_ROOT_CERTIFICATE_FILE_NAME);
49
+ exports.AGENT_CONFIG_FILE_PATH = (0, path_1.join)(constants_1.ALWAYSAI_CONFIG_DIR, exports.AGENT_CONFIG_FILE_NAME);
50
+ //# sourceMappingURL=directories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directories.js","sourceRoot":"","sources":["../../src/util/directories.ts"],"names":[],"mappings":";;;AAAA,sDAKgC;AAChC,+BAA4B;AAC5B,gEAA0D;AAEnD,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,GAAG,IAAA,4BAAW,GAAE,CAAC;IACzB,IAAI,EAAE,KAAK,YAAY,EAAE;QACvB,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,EAAE,KAAK,aAAa,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEW,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,sCAAsC,GAAG,yBAAyB,IAAA,uBAAe,GAAE,UAAU,CAAC;AAC9F,QAAA,sCAAsC,GAAG,kBAAkB,IAAA,uBAAe,GAAE,UAAU,CAAC;AACvF,QAAA,4BAA4B,GAAG,qBAAqB,IAAA,uBAAe,GAAE,MAAM,CAAC;AAC5E,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,qCAAqC,GAChD,iCAAiC,CAAC;AACvB,QAAA,sBAAsB,GAAG,qBAAqB,CAAC;AAC/C,QAAA,4BAA4B,GAAG,yBAAyB,IAAA,uBAAe,GAAE,UAAU,CAAC;AACpF,QAAA,4BAA4B,GAAG,kBAAkB,IAAA,uBAAe,GAAE,UAAU,CAAC;AAC7E,QAAA,yBAAyB,GAAG,qBAAqB,IAAA,uBAAe,GAAE,MAAM,CAAC;AAEtF,SAAgB,qBAAqB;IACnC,OAAO,IAAA,WAAI,EAAC,kCAAsB,EAAE,oCAA4B,CAAC,CAAC;AACpE,CAAC;AAFD,sDAEC;AAED,SAAgB,sBAAsB;IACpC,OAAO,IAAA,WAAI,EAAC,kCAAsB,EAAE,oCAA4B,CAAC,CAAC;AACpE,CAAC;AAFD,wDAEC;AAED,SAAgB,0BAA0B;IACxC,OAAO,IAAA,WAAI,EAAC,kCAAsB,EAAE,sCAA8B,CAAC,CAAC;AACtE,CAAC;AAFD,gEAEC;AAED,SAAgB,sBAAsB;IACpC,OAAO,IAAA,WAAI,EAAC,6BAAiB,EAAE,kCAAsB,CAAC,CAAC;AACzD,CAAC;AAFD,wDAEC;AAEY,QAAA,+BAA+B,GAAG,IAAA,WAAI,EACjD,kCAAsB,EACtB,0BAAkB,CACnB,CAAC;AACW,QAAA,yBAAyB,GAAG,IAAA,WAAI,EAC3C,kCAAsB,EACtB,kCAAsB,CACvB,CAAC;AAEW,QAAA,sCAAsC,GAAG,IAAA,WAAI,EACxD,kCAAsB,EACtB,0BAAkB,EAClB,8CAAsC,CACvC,CAAC;AAEW,QAAA,sCAAsC,GAAG,IAAA,WAAI,EACxD,kCAAsB,EACtB,0BAAkB,EAClB,8CAAsC,CACvC,CAAC;AAEW,QAAA,4BAA4B,GAAG,IAAA,WAAI,EAC9C,kCAAsB,EACtB,0BAAkB,EAClB,oCAA4B,CAC7B,CAAC;AAEW,QAAA,8BAA8B,GAAG,IAAA,WAAI,EAChD,kCAAsB,EACtB,sCAA8B,CAC/B,CAAC;AAEW,QAAA,sBAAsB,GAAG,IAAA,WAAI,EACxC,+BAAmB,EACnB,8BAAsB,CACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getDeviceId(): string;
2
+ //# sourceMappingURL=get-device-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-device-id.d.ts","sourceRoot":"","sources":["../../src/util/get-device-id.ts"],"names":[],"mappings":"AAKA,wBAAgB,WAAW,WAgB1B"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDeviceId = void 0;
4
+ const directories_1 = require("../util/directories");
5
+ const alwayscli_1 = require("@alwaysai/alwayscli");
6
+ const config_nodejs_1 = require("@alwaysai/config-nodejs");
7
+ const t = require("io-ts");
8
+ function getDeviceId() {
9
+ const path = (0, directories_1.getCredentialsFilePath)();
10
+ const codec = t.type({
11
+ deviceId: t.union([t.string, t.undefined]),
12
+ });
13
+ const credentialsJsonFile = (0, config_nodejs_1.ConfigFile)({
14
+ path,
15
+ codec,
16
+ });
17
+ const config = credentialsJsonFile.readIfExists();
18
+ if (!config || !config.deviceId) {
19
+ throw new alwayscli_1.CliTerseError('Invalid device credentials! Please ensure you are using the device agent on a valid device.');
20
+ }
21
+ return config.deviceId;
22
+ }
23
+ exports.getDeviceId = getDeviceId;
24
+ //# sourceMappingURL=get-device-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-device-id.js","sourceRoot":"","sources":["../../src/util/get-device-id.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAC7D,mDAAoD;AACpD,2DAAqD;AACrD,2BAA2B;AAE3B,SAAgB,WAAW;IACzB,MAAM,IAAI,GAAG,IAAA,oCAAsB,GAAE,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;KAC3C,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,IAAA,0BAAU,EAAC;QACrC,IAAI;QACJ,KAAK;KACN,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,EAAE,CAAC;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/B,MAAM,IAAI,yBAAa,CACrB,6FAA6F,CAC9F,CAAC;KACH;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAhBD,kCAgBC"}
@@ -0,0 +1,3 @@
1
+ export declare function httpClient(url: string, method: string, data?: string, headers?: object): Promise<any>;
2
+ export declare function microServiceHttpClient(service: string, path: string, method: string, data?: string): Promise<any>;
3
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/util/http-client.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,gBAcjB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,gBAMd"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.microServiceHttpClient = exports.httpClient = void 0;
4
+ const node_fetch_1 = require("node-fetch");
5
+ const endpoints_1 = require("../endpoints");
6
+ const infrastructure_1 = require("alwaysai/lib/infrastructure");
7
+ async function httpClient(url, method, data, headers) {
8
+ const options = Object.assign({ method }, (data ? { body: data } : {}));
9
+ try {
10
+ const response = await (0, node_fetch_1.default)(url, options);
11
+ const code = response.status;
12
+ const contentType = response.headers.get("content-type");
13
+ if (contentType === "application/json") {
14
+ return await response.json();
15
+ }
16
+ else if (contentType.includes("text/plain")) {
17
+ return await response.text();
18
+ }
19
+ }
20
+ catch (e) { }
21
+ }
22
+ exports.httpClient = httpClient;
23
+ async function microServiceHttpClient(service, path, method, data) {
24
+ const endpoint = (0, endpoints_1.serviceEndpointBuilder)(service, path);
25
+ const { getIdAuthorizationHeader } = (0, infrastructure_1.CliAuthenticationClient)();
26
+ const authorizationHeader = await getIdAuthorizationHeader();
27
+ return await httpClient(endpoint, method, data);
28
+ }
29
+ exports.microServiceHttpClient = microServiceHttpClient;
30
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/util/http-client.ts"],"names":[],"mappings":";;;AAAA,2CAA+B;AAC/B,4CAAsD;AACtD,gEAAsE;AAE/D,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,MAAc,EACd,IAAa,EACb,OAAgB;IAEhB,MAAM,OAAO,mBAAK,MAAM,IAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC;IAC5D,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE7B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,kBAAkB,EAAE;YACtC,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC9B;aAAM,IAAI,WAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAC9C,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC9B;KACF;IAAC,OAAO,CAAC,EAAE,GAAE;AAChB,CAAC;AAlBD,gCAkBC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,IAAY,EACZ,MAAc,EACd,IAAa;IAEb,MAAM,QAAQ,GAAG,IAAA,kCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAA,wCAAuB,GAAE,CAAC;IAC/D,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,EAAE,CAAC;IAC7D,OAAO,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAVD,wDAUC"}
@@ -0,0 +1,4 @@
1
+ import * as winston from "winston";
2
+ import "winston-daily-rotate-file";
3
+ export declare const logger: winston.Logger;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,2BAA2B,CAAC;AAiBnC,eAAO,MAAM,MAAM,gBASjB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = void 0;
4
+ const winston = require("winston");
5
+ require("winston-daily-rotate-file");
6
+ const path = require("path");
7
+ const constants_1 = require("alwaysai/lib/constants");
8
+ const environment_1 = require("../environment");
9
+ const LOG_LEVEL = environment_1.ALWAYSAI_LOG_LEVEL || "info";
10
+ const transports = environment_1.ALWAYSAI_LOG_TO_CONSOLE
11
+ ? [new winston.transports.Console({ level: LOG_LEVEL })]
12
+ : [
13
+ new winston.transports.DailyRotateFile({
14
+ filename: path.join(constants_1.AAI_DIR, "agent-logs", "agent-logs.txt"),
15
+ maxSize: "5m",
16
+ maxFiles: "2d",
17
+ }),
18
+ ];
19
+ exports.logger = winston.createLogger({
20
+ level: LOG_LEVEL,
21
+ format: winston.format.combine(winston.format.colorize(), winston.format.errors({ stack: true }), winston.format.splat(), winston.format.simple()),
22
+ transports,
23
+ });
24
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAmC;AACnC,6BAA6B;AAC7B,sDAAiD;AACjD,gDAA6E;AAE7E,MAAM,SAAS,GAAG,gCAAkB,IAAI,MAAM,CAAC;AAE/C,MAAM,UAAU,GAAG,qCAAuB;IACxC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;QACE,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC;YACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC5D,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;AAEO,QAAA,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;IACD,UAAU;CACX,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runInDir<T extends any[], R extends any>(func: (...args: T) => R, args: T, dir: string): Promise<R>;
2
+ //# sourceMappingURL=run-in-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-dir.d.ts","sourceRoot":"","sources":["../../src/util/run-in-dir.ts"],"names":[],"mappings":"AAAA,wBAAsB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EACvB,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,cAWZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runInDir = void 0;
4
+ async function runInDir(func, args, dir) {
5
+ const origCwd = process.cwd();
6
+ let out;
7
+ try {
8
+ process.chdir(dir);
9
+ out = await func(...args);
10
+ }
11
+ finally {
12
+ process.chdir(origCwd);
13
+ }
14
+ return out;
15
+ }
16
+ exports.runInDir = runInDir;
17
+ //# sourceMappingURL=run-in-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-dir.js","sourceRoot":"","sources":["../../src/util/run-in-dir.ts"],"names":[],"mappings":";;;AAAO,KAAK,UAAU,QAAQ,CAC5B,IAAuB,EACvB,IAAO,EACP,GAAW;IAEX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,GAAM,CAAC;IACX,IAAI;QACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3B;YAAS;QACR,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAdD,4BAcC"}
@@ -0,0 +1,2 @@
1
+ export default function sleep(ms: number): Promise<unknown>;
2
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/util/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,EAAE,MAAM,oBAIvC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function sleep(ms) {
4
+ return new Promise((resolve) => {
5
+ setTimeout(resolve, ms);
6
+ });
7
+ }
8
+ exports.default = sleep;
9
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/util/sleep.ts"],"names":[],"mappings":";;AAAA,SAAwB,KAAK,CAAC,EAAU;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,wBAIC"}