@alwaysai/device-agent 0.0.3 → 0.0.5

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 (210) 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 +34 -0
  4. package/lib/application-control/backup.js.map +1 -0
  5. package/lib/application-control/environment-variables.d.ts +9 -0
  6. package/lib/application-control/environment-variables.d.ts.map +1 -0
  7. package/lib/application-control/environment-variables.js +82 -0
  8. package/lib/application-control/environment-variables.js.map +1 -0
  9. package/lib/application-control/index.d.ts +9 -0
  10. package/lib/application-control/index.d.ts.map +1 -0
  11. package/lib/application-control/index.js +27 -0
  12. package/lib/application-control/index.js.map +1 -0
  13. package/lib/application-control/install.d.ts +16 -0
  14. package/lib/application-control/install.d.ts.map +1 -0
  15. package/lib/application-control/install.js +117 -0
  16. package/lib/application-control/install.js.map +1 -0
  17. package/lib/application-control/models.d.ts +8 -0
  18. package/lib/application-control/models.d.ts.map +1 -1
  19. package/lib/application-control/models.js +44 -11
  20. package/lib/application-control/models.js.map +1 -1
  21. package/lib/application-control/status.d.ts +26 -0
  22. package/lib/application-control/status.d.ts.map +1 -0
  23. package/lib/application-control/status.js +138 -0
  24. package/lib/application-control/status.js.map +1 -0
  25. package/lib/application-control/types.d.ts +5 -0
  26. package/lib/application-control/types.d.ts.map +1 -0
  27. package/lib/{util/spawner → application-control}/types.js +0 -0
  28. package/lib/{util/spawner → application-control}/types.js.map +1 -1
  29. package/lib/application-control/utils.d.ts +2 -9
  30. package/lib/application-control/utils.d.ts.map +1 -1
  31. package/lib/application-control/utils.js +14 -29
  32. package/lib/application-control/utils.js.map +1 -1
  33. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +16 -1
  34. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  35. package/lib/cloud-connection/device-agent-cloud-connection.js +239 -9
  36. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  37. package/lib/docker/docker-cmd.js +2 -2
  38. package/lib/docker/docker-cmd.js.map +1 -1
  39. package/lib/docker/docker-compose-cmd.js +2 -2
  40. package/lib/docker/docker-compose-cmd.js.map +1 -1
  41. package/lib/environment.d.ts +2 -0
  42. package/lib/environment.d.ts.map +1 -1
  43. package/lib/environment.js +3 -1
  44. package/lib/environment.js.map +1 -1
  45. package/lib/index.js +10 -8
  46. package/lib/index.js.map +1 -1
  47. package/lib/infrastructure/agent-config.d.ts +73 -0
  48. package/lib/infrastructure/agent-config.d.ts.map +1 -0
  49. package/lib/infrastructure/agent-config.js +186 -0
  50. package/lib/infrastructure/agent-config.js.map +1 -0
  51. package/lib/infrastructure/agent-config.test.d.ts +2 -0
  52. package/lib/infrastructure/agent-config.test.d.ts.map +1 -0
  53. package/lib/infrastructure/agent-config.test.js +135 -0
  54. package/lib/infrastructure/agent-config.test.js.map +1 -0
  55. package/lib/infrastructure/certificates-and-tokens.d.ts +6 -0
  56. package/lib/infrastructure/certificates-and-tokens.d.ts.map +1 -0
  57. package/lib/infrastructure/certificates-and-tokens.js +69 -0
  58. package/lib/infrastructure/certificates-and-tokens.js.map +1 -0
  59. package/lib/{util → infrastructure}/urls.d.ts +0 -0
  60. package/lib/infrastructure/urls.d.ts.map +1 -0
  61. package/lib/{util → infrastructure}/urls.js +3 -3
  62. package/lib/infrastructure/urls.js.map +1 -0
  63. package/lib/root.js +3 -3
  64. package/lib/root.js.map +1 -1
  65. package/lib/subcommands/app/app.d.ts +31 -14
  66. package/lib/subcommands/app/app.d.ts.map +1 -1
  67. package/lib/subcommands/app/app.js +117 -62
  68. package/lib/subcommands/app/app.js.map +1 -1
  69. package/lib/subcommands/app/index.d.ts.map +1 -1
  70. package/lib/subcommands/app/index.js +6 -1
  71. package/lib/subcommands/app/index.js.map +1 -1
  72. package/lib/subcommands/device/device.d.ts +6 -0
  73. package/lib/subcommands/device/device.d.ts.map +1 -0
  74. package/lib/subcommands/device/device.js +62 -0
  75. package/lib/subcommands/device/device.js.map +1 -0
  76. package/lib/subcommands/device/index.d.ts +2 -0
  77. package/lib/subcommands/device/index.d.ts.map +1 -0
  78. package/lib/subcommands/device/index.js +11 -0
  79. package/lib/subcommands/device/index.js.map +1 -0
  80. package/lib/subcommands/get-model-package.d.ts +5 -0
  81. package/lib/subcommands/get-model-package.d.ts.map +1 -0
  82. package/lib/subcommands/get-model-package.js +51 -0
  83. package/lib/subcommands/get-model-package.js.map +1 -0
  84. package/lib/subcommands/index.d.ts +8 -1
  85. package/lib/subcommands/index.d.ts.map +1 -1
  86. package/lib/subcommands/index.js +6 -6
  87. package/lib/subcommands/index.js.map +1 -1
  88. package/lib/subcommands/login.d.ts +3 -2
  89. package/lib/subcommands/login.d.ts.map +1 -1
  90. package/lib/subcommands/login.js +11 -4
  91. package/lib/subcommands/login.js.map +1 -1
  92. package/lib/util/copy-dir.js +3 -3
  93. package/lib/util/copy-dir.js.map +1 -1
  94. package/lib/util/directories.d.ts +1 -1
  95. package/lib/util/directories.d.ts.map +1 -1
  96. package/lib/util/directories.js +9 -14
  97. package/lib/util/directories.js.map +1 -1
  98. package/lib/util/get-device-id.d.ts +2 -0
  99. package/lib/util/get-device-id.d.ts.map +1 -0
  100. package/lib/util/get-device-id.js +24 -0
  101. package/lib/util/get-device-id.js.map +1 -0
  102. package/package.json +19 -14
  103. package/readme.md +176 -72
  104. package/src/application-control/backup.ts +32 -0
  105. package/src/application-control/environment-variables.ts +81 -0
  106. package/src/application-control/index.ts +40 -0
  107. package/src/application-control/install.ts +126 -0
  108. package/src/application-control/models.ts +51 -11
  109. package/src/application-control/status.ts +156 -0
  110. package/src/application-control/types.ts +1 -0
  111. package/src/application-control/utils.ts +12 -27
  112. package/src/cloud-connection/device-agent-cloud-connection.ts +280 -13
  113. package/src/docker/docker-cmd.ts +1 -1
  114. package/src/docker/docker-compose-cmd.ts +1 -1
  115. package/src/environment.ts +2 -0
  116. package/src/index.ts +10 -7
  117. package/src/infrastructure/agent-config.test.ts +143 -0
  118. package/src/infrastructure/agent-config.ts +217 -0
  119. package/src/infrastructure/certificates-and-tokens.ts +71 -0
  120. package/src/{util → infrastructure}/urls.ts +1 -1
  121. package/src/root.ts +3 -3
  122. package/src/subcommands/app/app.ts +135 -62
  123. package/src/subcommands/app/index.ts +11 -1
  124. package/src/subcommands/device/device.ts +63 -0
  125. package/src/subcommands/device/index.ts +8 -0
  126. package/src/subcommands/get-model-package.ts +60 -0
  127. package/src/subcommands/index.ts +5 -5
  128. package/src/subcommands/login.ts +11 -4
  129. package/src/util/copy-dir.ts +1 -1
  130. package/src/util/directories.ts +12 -17
  131. package/src/util/get-device-id.ts +22 -0
  132. package/lib/application-control/application-control.d.ts +0 -46
  133. package/lib/application-control/application-control.d.ts.map +0 -1
  134. package/lib/application-control/application-control.js +0 -234
  135. package/lib/application-control/application-control.js.map +0 -1
  136. package/lib/constants.d.ts +0 -17
  137. package/lib/constants.d.ts.map +0 -1
  138. package/lib/constants.js +0 -24
  139. package/lib/constants.js.map +0 -1
  140. package/lib/subcommands/device-control.d.ts +0 -2
  141. package/lib/subcommands/device-control.d.ts.map +0 -1
  142. package/lib/subcommands/device-control.js +0 -19
  143. package/lib/subcommands/device-control.js.map +0 -1
  144. package/lib/subcommands/test-app.d.ts +0 -2
  145. package/lib/subcommands/test-app.d.ts.map +0 -1
  146. package/lib/subcommands/test-app.js +0 -29
  147. package/lib/subcommands/test-app.js.map +0 -1
  148. package/lib/util/spawner/gnu-spawner.d.ts +0 -9
  149. package/lib/util/spawner/gnu-spawner.d.ts.map +0 -1
  150. package/lib/util/spawner/gnu-spawner.js +0 -102
  151. package/lib/util/spawner/gnu-spawner.js.map +0 -1
  152. package/lib/util/spawner/js-spawner.d.ts +0 -5
  153. package/lib/util/spawner/js-spawner.d.ts.map +0 -1
  154. package/lib/util/spawner/js-spawner.js +0 -89
  155. package/lib/util/spawner/js-spawner.js.map +0 -1
  156. package/lib/util/spawner/types.d.ts +0 -28
  157. package/lib/util/spawner/types.d.ts.map +0 -1
  158. package/lib/util/spawner-base/index.d.ts +0 -17
  159. package/lib/util/spawner-base/index.d.ts.map +0 -1
  160. package/lib/util/spawner-base/index.js +0 -30
  161. package/lib/util/spawner-base/index.js.map +0 -1
  162. package/lib/util/spawner-base/run-foreground-sync.d.ts +0 -3
  163. package/lib/util/spawner-base/run-foreground-sync.d.ts.map +0 -1
  164. package/lib/util/spawner-base/run-foreground-sync.js +0 -18
  165. package/lib/util/spawner-base/run-foreground-sync.js.map +0 -1
  166. package/lib/util/spawner-base/run-foreground.d.ts +0 -3
  167. package/lib/util/spawner-base/run-foreground.d.ts.map +0 -1
  168. package/lib/util/spawner-base/run-foreground.js +0 -49
  169. package/lib/util/spawner-base/run-foreground.js.map +0 -1
  170. package/lib/util/spawner-base/run-streaming.d.ts +0 -4
  171. package/lib/util/spawner-base/run-streaming.d.ts.map +0 -1
  172. package/lib/util/spawner-base/run-streaming.js +0 -35
  173. package/lib/util/spawner-base/run-streaming.js.map +0 -1
  174. package/lib/util/spawner-base/run.d.ts +0 -4
  175. package/lib/util/spawner-base/run.d.ts.map +0 -1
  176. package/lib/util/spawner-base/run.js +0 -56
  177. package/lib/util/spawner-base/run.js.map +0 -1
  178. package/lib/util/urls.d.ts.map +0 -1
  179. package/lib/util/urls.js.map +0 -1
  180. package/lib/web/index.html +0 -229
  181. package/lib/web/static/Karla.css +0 -18
  182. package/lib/web/static/bootstrap-4.3.1.min.css +0 -7
  183. package/lib/web/static/bootstrap-4.3.1.min.js +0 -7
  184. package/lib/web/static/favicon.ico +0 -0
  185. package/lib/web/static/jquery-3.3.1.slim.min.js +0 -2
  186. package/lib/web/static/popper-1.14.7.min.js +0 -5
  187. package/lib/web/web-interface.d.ts +0 -2
  188. package/lib/web/web-interface.d.ts.map +0 -1
  189. package/lib/web/web-interface.js +0 -74
  190. package/lib/web/web-interface.js.map +0 -1
  191. package/src/application-control/application-control.ts +0 -273
  192. package/src/constants.ts +0 -32
  193. package/src/subcommands/device-control.ts +0 -16
  194. package/src/subcommands/test-app.ts +0 -30
  195. package/src/util/spawner/gnu-spawner.ts +0 -114
  196. package/src/util/spawner/js-spawner.ts +0 -110
  197. package/src/util/spawner/types.ts +0 -28
  198. package/src/util/spawner-base/index.ts +0 -28
  199. package/src/util/spawner-base/run-foreground-sync.ts +0 -16
  200. package/src/util/spawner-base/run-foreground.ts +0 -49
  201. package/src/util/spawner-base/run-streaming.ts +0 -40
  202. package/src/util/spawner-base/run.ts +0 -60
  203. package/src/web/index.html +0 -229
  204. package/src/web/static/Karla.css +0 -18
  205. package/src/web/static/bootstrap-4.3.1.min.css +0 -7
  206. package/src/web/static/bootstrap-4.3.1.min.js +0 -7
  207. package/src/web/static/favicon.ico +0 -0
  208. package/src/web/static/jquery-3.3.1.slim.min.js +0 -2
  209. package/src/web/static/popper-1.14.7.min.js +0 -5
  210. package/src/web/web-interface.ts +0 -89
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-spawner.js","sourceRoot":"","sources":["../../../src/util/spawner/js-spawner.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /// <reference types="node" />
2
- export declare type Cmd = {
3
- exe: string;
4
- args?: string[];
5
- cwd?: string;
6
- tty?: boolean;
7
- input?: NodeJS.ReadableStream;
8
- superuser?: boolean;
9
- };
10
- export declare type Translate = (cmd: Cmd) => Cmd;
11
- export declare type Spawner = {
12
- run: (cmd: Cmd) => Promise<string>;
13
- runForegroundSync: (cmd: Cmd) => void;
14
- runForeground: (cmd: Cmd) => Promise<number | undefined | void>;
15
- runStreaming: (cmd: Cmd) => Promise<NodeJS.ReadableStream>;
16
- resolvePath: (...paths: (string | undefined)[]) => string;
17
- readdir: (path?: string) => Promise<string[]>;
18
- readFile: (path: string) => Promise<string>;
19
- writeFile: (path: string, data: string) => Promise<void>;
20
- mkdirp: (path?: string) => Promise<void>;
21
- rename: (oldPath: string, newPath: string) => Promise<void>;
22
- rimraf: (path?: string) => Promise<void>;
23
- sanatizedrimraf: (path?: string) => Promise<void>;
24
- tar: (...paths: string[]) => Promise<NodeJS.ReadableStream>;
25
- untar: (input: NodeJS.ReadableStream, cwd?: string) => Promise<void>;
26
- exists: (path: string) => Promise<boolean>;
27
- };
28
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/util/spawner/types.ts"],"names":[],"mappings":";AAAA,oBAAY,GAAG,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,oBAAY,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;AAE1C,oBAAY,OAAO,GAAG;IACpB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;IAChE,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC;IAC1D,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C,CAAC"}
@@ -1,17 +0,0 @@
1
- /// <reference types="node" />
2
- import { run } from './run';
3
- import { runForegroundSync } from './run-foreground-sync';
4
- import { runStreaming } from './run-streaming';
5
- import { Cmd } from '../spawner/types';
6
- export declare function SpawnerBase(translate: (cmd: Cmd) => Cmd): {
7
- run(cmd: Cmd): Promise<string>;
8
- runForeground(cmd: Cmd): Promise<number | void | undefined>;
9
- runForegroundSync(cmd: Cmd): void;
10
- runStreaming(cmd: Cmd): Promise<NodeJS.ReadableStream>;
11
- };
12
- export declare const spawnerBase: {
13
- run: typeof run;
14
- runForegroundSync: typeof runForegroundSync;
15
- runStreaming: typeof runStreaming;
16
- };
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/spawner-base/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,wBAAgB,WAAW,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG;aAE3C,GAAG;uBAGO,GAAG;2BAGC,GAAG;sBAGR,GAAG;EAIxB;AAED,eAAO,MAAM,WAAW;;;;CAIvB,CAAC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.spawnerBase = exports.SpawnerBase = void 0;
4
- const run_1 = require("./run");
5
- const run_foreground_sync_1 = require("./run-foreground-sync");
6
- const run_foreground_1 = require("./run-foreground");
7
- const run_streaming_1 = require("./run-streaming");
8
- function SpawnerBase(translate) {
9
- return {
10
- run(cmd) {
11
- return (0, run_1.run)(translate(cmd));
12
- },
13
- runForeground(cmd) {
14
- return (0, run_foreground_1.runForeground)(translate(cmd));
15
- },
16
- runForegroundSync(cmd) {
17
- return (0, run_foreground_sync_1.runForegroundSync)(translate(cmd));
18
- },
19
- runStreaming(cmd) {
20
- return (0, run_streaming_1.runStreaming)(translate(cmd));
21
- },
22
- };
23
- }
24
- exports.SpawnerBase = SpawnerBase;
25
- exports.spawnerBase = {
26
- run: run_1.run,
27
- runForegroundSync: run_foreground_sync_1.runForegroundSync,
28
- runStreaming: run_streaming_1.runStreaming,
29
- };
30
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/spawner-base/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,+DAA0D;AAC1D,qDAAiD;AACjD,mDAA+C;AAG/C,SAAgB,WAAW,CAAC,SAA4B;IACtD,OAAO;QACL,GAAG,CAAC,GAAQ;YACV,OAAO,IAAA,SAAG,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,aAAa,CAAC,GAAQ;YACpB,OAAO,IAAA,8BAAa,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,iBAAiB,CAAC,GAAQ;YACxB,OAAO,IAAA,uCAAiB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,YAAY,CAAC,GAAQ;YACnB,OAAO,IAAA,4BAAY,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC;AAfD,kCAeC;AAEY,QAAA,WAAW,GAAG;IACzB,GAAG,EAAH,SAAG;IACH,iBAAiB,EAAjB,uCAAiB;IACjB,YAAY,EAAZ,4BAAY;CACb,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Cmd } from '../spawner/types';
2
- export declare function runForegroundSync(cmd: Cmd): void;
3
- //# sourceMappingURL=run-foreground-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-foreground-sync.d.ts","sourceRoot":"","sources":["../../../src/util/spawner-base/run-foreground-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,QAUzC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runForegroundSync = void 0;
4
- const child_process_1 = require("child_process");
5
- const winston = require('winston');
6
- function runForegroundSync(cmd) {
7
- const optString = cmd.args ? cmd.args.join(' ') : '';
8
- winston.debug(`${cmd.exe} ${optString}`);
9
- const out = (0, child_process_1.spawnSync)(cmd.exe, cmd.args || [], {
10
- cwd: cmd.cwd,
11
- stdio: 'inherit',
12
- });
13
- if (out.error) {
14
- throw out.error;
15
- }
16
- }
17
- exports.runForegroundSync = runForegroundSync;
18
- //# sourceMappingURL=run-foreground-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-foreground-sync.js","sourceRoot":"","sources":["../../../src/util/spawner-base/run-foreground-sync.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAInC,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAA,yBAAS,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;QAC7C,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,KAAK,EAAE;QACb,MAAM,GAAG,CAAC,KAAK,CAAC;KACjB;AACH,CAAC;AAVD,8CAUC"}
@@ -1,3 +0,0 @@
1
- import { Cmd } from '../spawner/types';
2
- export declare function runForeground(cmd: Cmd): Promise<number | void | undefined>;
3
- //# sourceMappingURL=run-foreground.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-foreground.d.ts","sourceRoot":"","sources":["../../../src/util/spawner-base/run-foreground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAMvC,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,sCAyC3C"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runForeground = void 0;
4
- const child_process_1 = require("child_process");
5
- const signalExit = require("signal-exit");
6
- const rKill = require("tree-kill");
7
- const alwayscli_1 = require("@alwaysai/alwayscli");
8
- const environment_1 = require("../../environment");
9
- async function runForeground(cmd) {
10
- const childProcess = (0, child_process_1.spawn)(cmd.exe, cmd.args || [], {
11
- cwd: cmd.cwd,
12
- stdio: 'inherit',
13
- });
14
- // Kill child when parent exits
15
- signalExit(() => {
16
- if (environment_1.ALWAYSAI_OS_PLATFORM === 'darwin') {
17
- childProcess.kill('SIGINT');
18
- // ensures the main process gets killed by the correct signal - this will only activate with a ctrl + c
19
- // when it hits the siginit it will then activate the on exit signal and finish
20
- process.on('SIGINT', () => {
21
- if (childProcess.pid !== undefined) {
22
- rKill(childProcess.pid, 'SIGINT', (error) => {
23
- if (error) {
24
- throw new alwayscli_1.CliTerseError(`Failed to kill child process {error.name} {error.message}`);
25
- }
26
- });
27
- }
28
- });
29
- }
30
- else {
31
- childProcess.kill();
32
- }
33
- });
34
- return await new Promise((resolve, reject) => {
35
- childProcess.on('error', err => {
36
- reject(err);
37
- });
38
- childProcess.on('exit', code => {
39
- if (code) {
40
- resolve(code);
41
- }
42
- else {
43
- resolve();
44
- }
45
- });
46
- });
47
- }
48
- exports.runForeground = runForeground;
49
- //# sourceMappingURL=run-foreground.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-foreground.js","sourceRoot":"","sources":["../../../src/util/spawner-base/run-foreground.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAEtC,0CAA2C;AAC3C,mCAAoC;AACpC,mDAAoD;AACpD,mDAAyD;AAElD,KAAK,UAAU,aAAa,CAAC,GAAQ;IAC1C,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;QAClD,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,kCAAoB,KAAK,QAAQ,EAAE;YACrC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,uGAAuG;YACvG,+EAA+E;YAC/E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACxB,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE;oBAClC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,KAAyB,EAAE,EAAE;wBAC9D,IAAI,KAAK,EAAE;4BACT,MAAM,IAAI,yBAAa,CACrB,2DAA2D,CAC5D,CAAC;yBACH;oBACH,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,YAAY,CAAC,IAAI,EAAE,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtE,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC7B,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAzCD,sCAyCC"}
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- import { Cmd } from '../spawner/types';
3
- export declare function runStreaming(cmd: Cmd): Promise<NodeJS.ReadableStream>;
4
- //# sourceMappingURL=run-streaming.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-streaming.d.ts","sourceRoot":"","sources":["../../../src/util/spawner-base/run-streaming.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,kCAiCpC"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runStreaming = void 0;
4
- const child_process_1 = require("child_process");
5
- const signalExit = require("signal-exit");
6
- function runStreaming(cmd) {
7
- return new Promise((resolve, reject) => {
8
- const child = (0, child_process_1.spawn)(cmd.exe, cmd.args || [], {
9
- cwd: cmd.cwd,
10
- });
11
- signalExit(() => {
12
- child.kill();
13
- });
14
- if (cmd.input) {
15
- cmd.input.pipe(child.stdin);
16
- }
17
- const errChunks = [];
18
- function stderrChunkHandler(chunk) {
19
- errChunks.push(chunk);
20
- }
21
- child.stderr.on('data', stderrChunkHandler);
22
- child.on('error', (err) => {
23
- if (err && !err.stderr) {
24
- err.stderr = Buffer.concat(errChunks).toString();
25
- }
26
- reject(err);
27
- });
28
- child.stdout.once('readable', () => {
29
- resolve(child.stdout);
30
- child.stderr.removeListener('data', stderrChunkHandler);
31
- });
32
- });
33
- }
34
- exports.runStreaming = runStreaming;
35
- //# sourceMappingURL=run-streaming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-streaming.js","sourceRoot":"","sources":["../../../src/util/spawner-base/run-streaming.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAEtC,0CAA2C;AAI3C,SAAgB,YAAY,CAAC,GAAQ;IACnC,OAAO,IAAI,OAAO,CAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;YAC3C,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,KAAK,EAAE;YACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,SAAS,kBAAkB,CAAC,KAAa;YACvC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAE5C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;aAClD;YACD,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAjCD,oCAiCC"}
@@ -1,4 +0,0 @@
1
- import { Cmd } from '../spawner/types';
2
- export declare const PROCESS_EXITED_WITH_NON_ZERO_STATUS_CODE = "Process exited with non-zero status code";
3
- export declare function run(cmd: Cmd): Promise<string>;
4
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/util/spawner-base/run.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,eAAO,MAAM,wCAAwC,6CACT,CAAC;AAE7C,wBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,mBAiDjC"}
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.run = exports.PROCESS_EXITED_WITH_NON_ZERO_STATUS_CODE = void 0;
4
- const child_process_1 = require("child_process");
5
- const signalExit = require("signal-exit");
6
- const alwayscli_1 = require("@alwaysai/alwayscli");
7
- exports.PROCESS_EXITED_WITH_NON_ZERO_STATUS_CODE = 'Process exited with non-zero status code';
8
- async function run(cmd) {
9
- return new Promise((resolve, reject) => {
10
- const optString = cmd.args ? cmd.args.join(' ') : '';
11
- const child = (0, child_process_1.spawn)(cmd.exe, cmd.args || [], { cwd: cmd.cwd });
12
- signalExit(() => {
13
- child.kill();
14
- });
15
- if (cmd.input) {
16
- cmd.input.pipe(child.stdin);
17
- }
18
- // TODO: Limit buffer size
19
- const outChunks = [];
20
- const allChunks = []; // stderr and stdout
21
- child.stdout.on('data', chunk => {
22
- outChunks.push(chunk);
23
- allChunks.push(chunk);
24
- });
25
- child.stderr.on('data', chunk => {
26
- allChunks.push(chunk);
27
- });
28
- child.on('error', err => {
29
- reject(err);
30
- });
31
- child.on('close', code => {
32
- if (code === 0) {
33
- const str = Buffer.concat(outChunks).toString('utf8');
34
- if (str.endsWith('\n')) {
35
- resolve(str.slice(0, -1));
36
- }
37
- else {
38
- resolve(str);
39
- }
40
- }
41
- else if (code !== null) {
42
- let message = `${exports.PROCESS_EXITED_WITH_NON_ZERO_STATUS_CODE} ${code.toString()}`;
43
- message += '\n\n';
44
- message += `$ ${cmd.exe} ${cmd.args ? cmd.args.join(' ') : ''}`;
45
- message += '\n\n';
46
- message += Buffer.concat(allChunks).toString('utf8');
47
- reject(new alwayscli_1.CliTerseError(message));
48
- }
49
- else {
50
- reject(new alwayscli_1.CliTerseError('Close code is undefined!'));
51
- }
52
- });
53
- });
54
- }
55
- exports.run = run;
56
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/util/spawner-base/run.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AACtC,0CAA2C;AAE3C,mDAAoD;AAIvC,QAAA,wCAAwC,GACnD,0CAA0C,CAAC;AAEtC,KAAK,UAAU,GAAG,CAAC,GAAQ;IAChC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/D,UAAU,CAAC,GAAG,EAAE;YACd,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,KAAK,EAAE;YACb,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,0BAA0B;QAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAa,EAAE,CAAC,CAAC,oBAAoB;QAEpD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAC9B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAC9B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,CAAC;iBACd;aACF;iBAAM,IAAI,IAAI,KAAK,IAAI,EAAE;gBACxB,IAAI,OAAO,GAAG,GAAG,gDAAwC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC/E,OAAO,IAAI,MAAM,CAAC;gBAClB,OAAO,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChE,OAAO,IAAI,MAAM,CAAC;gBAClB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,yBAAa,CAAC,OAAO,CAAC,CAAC,CAAC;aACpC;iBAAM;gBACL,MAAM,CAAC,IAAI,yBAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;aACvD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAjDD,kBAiDC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/util/urls.ts"],"names":[],"mappings":"AAGA,wBAAgB,qBAAqB,WAiBpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/util/urls.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,mDAAoD;AAEpD,SAAgB,qBAAqB;IACnC,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,QAAQ,IAAA,sBAAW,GAAE,EAAE;QACrB,KAAK,OAAO,CAAC;QACb,KAAK,aAAa;YAChB,kBAAkB,GAAG,gDAAgD,CAAC;YACtE,MAAM;QACR,KAAK,IAAI;YACP,kBAAkB,GAAG,gDAAgD,CAAC;YACtE,MAAM;QACR,KAAK,YAAY;YACf,kBAAkB,GAAG,gDAAgD,CAAC;YACtE,MAAM;QACR;YACE,MAAM,IAAI,yBAAa,CAAC,sCAAsC,IAAA,sBAAW,GAAE,GAAG,CAAC,CAAC;KACnF;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAjBD,sDAiBC"}
@@ -1,229 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6
- <meta name="description" content="">
7
- <meta name="author" content="">
8
- <link rel="icon" href="static/favicon.ico">
9
- <title>alwaysAI Device Agent</title>
10
-
11
- <script src="/socket.io/socket.io.js"></script>
12
-
13
- <!-- Bootstrap CSS
14
- ================================================== -->
15
- <script src="static/jquery-3.3.1.slim.min.js"
16
- integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous">
17
- </script>
18
- <script src="static/popper-1.14.7.min.js"
19
- integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
20
- </script>
21
- <link rel="stylesheet" href="static/bootstrap-4.3.1.min.css"
22
- integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
23
- <script src="static/bootstrap-4.3.1.min.js"
24
- integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
25
- </script>
26
- <!--link href="static/bootstrap/css/bootstrap.min.css" rel="stylesheet"-->
27
-
28
- <!-- Own styles
29
- ================================================== -->
30
- <link href="static/Karla.css" rel="stylesheet">
31
- <style>
32
- body {
33
- background-color: #f1f2f3;
34
- }
35
-
36
- .container {
37
- max-width: 1024px;
38
- }
39
-
40
- .navbar-light .navbar-nav .nav-link,
41
- .navbar-light .navbar-nav .nav-link:hover {
42
- font-family: Karla;
43
- font-size: 14px;
44
- color: #000000;
45
- }
46
-
47
- .navbar-brand img {
48
- width: 120px
49
- }
50
-
51
- .dash-sub-title h1 {
52
- font-size: 16px;
53
- margin: 24px 0 8px 0;
54
- }
55
-
56
- .dash-sub-title h2 {
57
- font-size: 14px;
58
- margin: 8px 0 8px 0;
59
- }
60
-
61
- .card {
62
- height: 480px;
63
- }
64
-
65
- .card-scroller {
66
- overflow: scroll;
67
- height: 420px;
68
- }
69
- h5 {
70
- border-bottom: solid 1px #d2d2d2;
71
- }
72
-
73
- ::-webkit-scrollbar {
74
- -webkit-appearance: none;
75
- width: 7px;
76
- }
77
-
78
- ::-webkit-scrollbar-thumb {
79
- border-radius: 4px;
80
- background-color: rgba(0, 0, 0, .5);
81
- -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
82
- }
83
-
84
- .alwaysai-logos-svg-horizontal-logo-red-black {
85
- width: 121px;
86
- height: 33px;
87
- background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI5MXB0IiBoZWlnaHQ9IjI1cHQiIHZpZXdCb3g9IjAgMCA5MSAyNSIgdmVyc2lvbj0iMS4xIj48ZyBpZD0ic3VyZmFjZTEiPjxwYXRoIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDpyZ2IoOTQuOTAxOTYxJSwxOC44MjM1MjklLDIyLjc0NTA5OCUpO2ZpbGwtb3BhY2l0eToxOyIgZD0iTSAyMC44MDQ2ODggMTIuNDYwOTM4IEwgMTQuMjMwNDY5IDAuOTY0ODQ0IEwgMS4xMTcxODggMjMuODgyODEyIEwgNi4zMDQ2ODggMjMuODgyODEyIEMgOS40NDE0MDYgMTguMjgxMjUgMTQuNjYwMTU2IDE0LjE3MTg3NSAyMC44MDQ2ODggMTIuNDYwOTM4IE0gOC4xNTYyNSAyMS44MjQyMTkgQyA5LjkzNzUgMjAuNTgyMDMxIDEyLjA2MjUgMTkuOTM3NSAxNC4yMzA0NjkgMTkuOTgwNDY5IEMgMTcuNDQ1MzEyIDE5Ljk4MDQ2OSAyMC42NjQwNjIgMjEuMjgxMjUgMjIuMTUyMzQ0IDIzLjg4MjgxMiBMIDI3LjMzOTg0NCAyMy44ODI4MTIgTCAyNS43ODEyNSAyMS4xNTYyNSBDIDIyLjQyNTc4MSAxNS4yOTI5NjkgMTQuMzAwNzgxIDE0LjcxNDg0NCA4LjE1NjI1IDIxLjgyNDIxOSBaIE0gOC4xNTYyNSAyMS44MjQyMTkgIi8+PHBhdGggc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigxMC45ODAzOTIlLDExLjc2NDcwNiUsMTIuOTQxMTc2JSk7ZmlsbC1vcGFjaXR5OjE7IiBkPSJNIDc1LjcxMDkzOCAxMC40MDYyNSBMIDc1LjA1ODU5NCAxMS4wODk4NDQgQyA3NC42NTIzNDQgMTAuNjIxMDk0IDc0LjA4MjAzMSAxMC4zMzU5MzggNzMuNDcyNjU2IDEwLjI4OTA2MiBDIDczLjE1NjI1IDEwLjI4NTE1NiA3Mi44NTU0NjkgMTAuNDAyMzQ0IDcyLjYyODkwNiAxMC42MTcxODggQyA3Mi40MDYyNSAxMC44MTI1IDcyLjI3NzM0NCAxMS4wOTM3NSA3Mi4yNzczNDQgMTEuMzg2NzE5IEMgNzIuMjgxMjUgMTEuNjYwMTU2IDcyLjM4NjcxOSAxMS45MjE4NzUgNzIuNTY2NDA2IDEyLjEyNSBDIDcyLjkxNzk2OSAxMi40ODA0NjkgNzMuMzI4MTI1IDEyLjc2NTYyNSA3My43ODEyNSAxMi45Njg3NSBDIDc0LjM3MTA5NCAxMy4yMzQzNzUgNzQuODk0NTMxIDEzLjYyMTA5NCA3NS4zMjAzMTIgMTQuMTA5Mzc1IEMgNzUuNTgyMDMxIDE0LjQ2ODc1IDc1LjcyMjY1NiAxNC45MTAxNTYgNzUuNzE4NzUgMTUuMzU5Mzc1IEMgNzUuNzMwNDY5IDE1Ljk4NDM3NSA3NS40ODQzNzUgMTYuNTg1OTM4IDc1LjAzNTE1NiAxNy4wMTk1MzEgQyA3NC41ODU5MzggMTcuNDY4NzUgNzMuOTY4NzUgMTcuNzE0ODQ0IDczLjMzNTkzOCAxNy42OTkyMTkgQyA3Mi44ODI4MTIgMTcuNjk5MjE5IDcyLjQzNzUgMTcuNTk3NjU2IDcyLjAzNTE1NiAxNy4zOTg0MzggQyA3MS42MzI4MTIgMTcuMjA3MDMxIDcxLjI4MTI1IDE2LjkyNTc4MSA3MS4wMDc4MTIgMTYuNTcwMzEyIEwgNzEuNjQ0NTMxIDE1LjgzOTg0NCBDIDcyLjAzOTA2MiAxNi4zNjMyODEgNzIuNjQwNjI1IDE2LjY4NzUgNzMuMjg5MDYyIDE2LjcyMjY1NiBDIDczLjY3MTg3NSAxNi43MzQzNzUgNzQuMDQ2ODc1IDE2LjU5Mzc1IDc0LjMyODEyNSAxNi4zMzIwMzEgQyA3NC41OTc2NTYgMTYuMDk3NjU2IDc0Ljc1MzkwNiAxNS43NTc4MTIgNzQuNzUzOTA2IDE1LjQwMjM0NCBDIDc0Ljc1NzgxMiAxNS4xMTcxODggNzQuNjU2MjUgMTQuODM1OTM4IDc0LjQ3MjY1NiAxNC42MjEwOTQgQyA3NC4wOTc2NTYgMTQuMjY1NjI1IDczLjY2Nzk2OSAxMy45ODA0NjkgNzMuMTk1MzEyIDEzLjc3MzQzOCBDIDcyLjYzNjcxOSAxMy41MTk1MzEgNzIuMTQ0NTMxIDEzLjE0NDUzMSA3MS43NDYwOTQgMTIuNjcxODc1IEMgNzEuNDkyMTg4IDEyLjMxMjUgNzEuMzU1NDY5IDExLjg3ODkwNiA3MS4zNjMyODEgMTEuNDM3NSBDIDcxLjM0NzY1NiAxMC44NzEwOTQgNzEuNTcwMzEyIDEwLjMyNDIxOSA3MS45NzI2NTYgOS45MzM1OTQgQyA3Mi4zOTA2MjUgOS41MzEyNSA3Mi45NDkyMTkgOS4zMTI1IDczLjUyMzQzOCA5LjMzMjAzMSBDIDc0LjM2MzI4MSA5LjM4NjcxOSA3NS4xNTIzNDQgOS43NzM0MzggNzUuNzEwOTM4IDEwLjQwNjI1IE0gNjIuOTQxNDA2IDkuNTM1MTU2IEwgNjQuMDE1NjI1IDkuNTM1MTU2IEwgNjYuNzI2NTYyIDE1LjY2Nzk2OSBMIDY5LjM1NTQ2OSA5LjUzNTE1NiBMIDcwLjQzMzU5NCA5LjUzNTE1NiBMIDY1LjczMDQ2OSAyMC40MDIzNDQgTCA2NC42NjAxNTYgMjAuNDAyMzQ0IEwgNjYuMTc5Njg4IDE2Ljg5NDUzMSBaIE0gNTcuNDQ1MzEyIDEwLjMyMDMxMiBDIDU2LjMyMDMxMiAxMC4zMDg1OTQgNTUuMjgxMjUgMTAuOTI1NzgxIDU0Ljc0MjE4OCAxMS45MjE4NzUgQyA1NC4xNzU3ODEgMTIuOTE3OTY5IDU0LjE3NTc4MSAxNC4xNDQ1MzEgNTQuNzQyMTg4IDE1LjE0MDYyNSBDIDU1LjAxNTYyNSAxNS42MzI4MTIgNTUuNDEwMTU2IDE2LjA0Njg3NSA1NS44OTQ1MzEgMTYuMzM1OTM4IEMgNTYuMzU5Mzc1IDE2LjYxNzE4OCA1Ni44OTQ1MzEgMTYuNzYxNzE5IDU3LjQ0MTQwNiAxNi43NjE3MTkgQyA1Ny45OTIxODggMTYuNzYxNzE5IDU4LjUzOTA2MiAxNi42MTcxODggNTkuMDE5NTMxIDE2LjMzNTkzOCBDIDU5LjUwMzkwNiAxNi4wNzAzMTIgNTkuODk4NDM4IDE1LjY3MTg3NSA2MC4xNjc5NjkgMTUuMTg3NSBDIDYwLjQ0MTQwNiAxNC42OTE0MDYgNjAuNTc4MTI1IDE0LjEyODkwNiA2MC41NzAzMTIgMTMuNTU4NTk0IEMgNjAuNTkzNzUgMTIuNjk1MzEyIDYwLjI2OTUzMSAxMS44NjMyODEgNTkuNjY3OTY5IDExLjI1IEMgNTkuMDg5ODQ0IDEwLjYzNjcxOSA1OC4yODUxNTYgMTAuMzAwNzgxIDU3LjQ0NTMxMiAxMC4zMjAzMTIgWiBNIDYxLjUwNzgxMiA5LjUzNTE1NiBMIDYxLjUwNzgxMiAxNy40OTIxODggTCA2MC41MDc4MTIgMTcuNDkyMTg4IEwgNjAuNTA3ODEyIDE2LjEyNSBDIDYwLjExNzE4OCAxNi42MTcxODggNTkuNjI4OTA2IDE3LjAxOTUzMSA1OS4wNzQyMTkgMTcuMzA0Njg4IEMgNTcuNTIzNDM4IDE4LjA1MDc4MSA1NS42NzU3ODEgMTcuNzE0ODQ0IDU0LjQ4MDQ2OSAxNi40NzI2NTYgQyA1My42OTkyMTkgMTUuNjgzNTk0IDUzLjI3MzQzOCAxNC42MDU0NjkgNTMuMjkyOTY5IDEzLjQ5MjE4OCBDIDUzLjI3NzM0NCAxMi4zODY3MTkgNTMuNzEwOTM4IDExLjMyODEyNSA1NC40OTIxODggMTAuNTU0Njg4IEMgNTUuMjM4MjgxIDkuNzYxNzE5IDU2LjI4MTI1IDkuMzE2NDA2IDU3LjM2NzE4OCA5LjMzMjAzMSBDIDU3Ljk3NjU2MiA5LjMyMDMxMiA1OC41ODIwMzEgOS40NjQ4NDQgNTkuMTI1IDkuNzQ2MDk0IEMgNTkuNjc1NzgxIDEwLjA1MDc4MSA2MC4xNDg0MzggMTAuNDgwNDY5IDYwLjUwNzgxMiAxMSBMIDYwLjUwNzgxMiA5LjUzNTE1NiBaIE0gNDAuMjUgOS41MzUxNTYgTCA0MS4yOTI5NjkgOS41MzUxNTYgTCA0My43MDcwMzEgMTUuMzEyNSBMIDQ2LjIzODI4MSA5LjUzNTE1NiBMIDQ2LjQxNzk2OSA5LjUzNTE1NiBMIDQ4Ljk0MTQwNiAxNS4zMTI1IEwgNTEuMzk0NTMxIDkuNTM1MTU2IEwgNTIuNDUzMTI1IDkuNTM1MTU2IEwgNDkuMDM1MTU2IDE3LjQ5MjE4OCBMIDQ4LjgzOTg0NCAxNy40OTIxODggTCA0Ni4zMzIwMzEgMTEuNzk2ODc1IEwgNDMuODAwNzgxIDE3LjQ5MjE4OCBMIDQzLjYxMzI4MSAxNy40OTIxODggWiBNIDM4LjE5NTMxMiA2LjQ2NDg0NCBMIDM5LjIxMDkzOCA2LjQ2NDg0NCBMIDM5LjIxMDkzOCAxNy40OTIxODggTCAzOC4xOTUzMTIgMTcuNDkyMTg4IFogTSAzMi4wMDM5MDYgMTAuMzIwMzEyIEMgMzAuODc4OTA2IDEwLjMwODU5NCAyOS44MzU5MzggMTAuOTI1NzgxIDI5LjI5Njg3NSAxMS45MjE4NzUgQyAyOC43MzA0NjkgMTIuOTE3OTY5IDI4LjczNDM3NSAxNC4xNDQ1MzEgMjkuMzAwNzgxIDE1LjE0MDYyNSBDIDI5LjU3MDMxMiAxNS42MzI4MTIgMjkuOTY4NzUgMTYuMDQ2ODc1IDMwLjQ0OTIxOSAxNi4zMzU5MzggQyAzMC45MTc5NjkgMTYuNjE3MTg4IDMxLjQ1MzEyNSAxNi43NjE3MTkgMzEuOTk2MDk0IDE2Ljc2MTcxOSBDIDMyLjU1MDc4MSAxNi43NjE3MTkgMzMuMDkzNzUgMTYuNjE3MTg4IDMzLjU3ODEyNSAxNi4zMzU5MzggQyAzNC4wNTg1OTQgMTYuMDcwMzEyIDM0LjQ1NzAzMSAxNS42NzE4NzUgMzQuNzIyNjU2IDE1LjE4NzUgQyAzNC45OTYwOTQgMTQuNjkxNDA2IDM1LjEzNjcxOSAxNC4xMjg5MDYgMzUuMTI4OTA2IDEzLjU1ODU5NCBDIDM1LjE0ODQzOCAxMi42OTUzMTIgMzQuODI0MjE5IDExLjg2MzI4MSAzNC4yMjY1NjIgMTEuMjQ2MDk0IEMgMzMuNjQ0NTMxIDEwLjYzNjcxOSAzMi44Mzk4NDQgMTAuMzAwNzgxIDMyLjAwMzkwNiAxMC4zMjAzMTIgWiBNIDM2LjA2MjUgOS41MzUxNTYgTCAzNi4wNjI1IDE3LjQ5MjE4OCBMIDM1LjA2MjUgMTcuNDkyMTg4IEwgMzUuMDYyNSAxNi4xMjUgQyAzNC42NzU3ODEgMTYuNjE3MTg4IDM0LjE4NzUgMTcuMDE5NTMxIDMzLjYzMjgxMiAxNy4zMDQ2ODggQyAzMi4wODIwMzEgMTguMDUwNzgxIDMwLjIzMDQ2OSAxNy43MTQ4NDQgMjkuMDM1MTU2IDE2LjQ3MjY1NiBDIDI4LjI1NzgxMiAxNS42ODM1OTQgMjcuODI4MTI1IDE0LjYwNTQ2OSAyNy44NTE1NjIgMTMuNDkyMTg4IEMgMjcuODM1OTM4IDEyLjM4NjcxOSAyOC4yNjU2MjUgMTEuMzI4MTI1IDI5LjA0Njg3NSAxMC41NTQ2ODggQyAyOS43OTY4NzUgOS43NjE3MTkgMzAuODM5ODQ0IDkuMzE2NDA2IDMxLjkyNTc4MSA5LjMzMjAzMSBDIDMyLjUzNTE1NiA5LjMyMDMxMiAzMy4xMzY3MTkgOS40NjQ4NDQgMzMuNjc5Njg4IDkuNzQ2MDk0IEMgMzQuMjMwNDY5IDEwLjA1MDc4MSAzNC43MDMxMjUgMTAuNDgwNDY5IDM1LjA2MjUgMTEgTCAzNS4wNjI1IDkuNTM1MTU2IFogTSAzNi4wNjI1IDkuNTM1MTU2ICIvPjxwYXRoIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDpyZ2IoOTQuOTAxOTYxJSwxOC44MjM1MjklLDIyLjc0NTA5OCUpO2ZpbGwtb3BhY2l0eToxOyIgZD0iTSA4My4zMzIwMzEgMTIuNTI3MzQ0IEwgODEuOTU3MDMxIDkuNTcwMzEyIEwgODAuNTY2NDA2IDEyLjUyNzM0NCBaIE0gODQuMDI3MzQ0IDE0LjA0Mjk2OSBMIDc5Ljg2MzI4MSAxNC4wNDI5NjkgTCA3OC4yMzgyODEgMTcuNDkyMTg4IEwgNzYuNTMxMjUgMTcuNDkyMTg4IEwgODEuNjc1NzgxIDYuNTAzOTA2IEwgODIuMjQ2MDk0IDYuNTAzOTA2IEwgODcuMzI0MjE5IDE3LjQ5MjE4OCBMIDg1LjY2MDE1NiAxNy40OTIxODggWiBNIDg0LjAyNzM0NCAxNC4wNDI5NjkgIi8+PHBhdGggc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYig5NC45MDE5NjElLDE4LjgyMzUyOSUsMjIuNzQ1MDk4JSk7ZmlsbC1vcGFjaXR5OjE7IiBkPSJNIDg4LjE0NDUzMSA2LjUwMzkwNiBMIDg5LjY4MzU5NCA2LjUwMzkwNiBMIDg5LjY4MzU5NCAxNy40OTIxODggTCA4OC4xNDQ1MzEgMTcuNDkyMTg4IFogTSA4OC4xNDQ1MzEgNi41MDM5MDYgIi8+PC9nPjwvc3ZnPg==);
88
- }
89
- </style>
90
- </head>
91
-
92
- <body class="tos-bg">
93
-
94
- <nav class="navbar navbar-expand-lg navbar-light bg-light">
95
- <a class="navbar-brand" href="http://alwaysai.co/" target="_blank"><div class="alwaysai-logos-svg-horizontal-logo-red-black"></div>
96
- </a>
97
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText"
98
- aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
99
- <span class="navbar-toggler-icon"></span>
100
- </button>
101
- <div class="collapse navbar-collapse" id="navbarText">
102
- <span class="navbar-nav mr-auto"></span>
103
-
104
- <ul class="navbar-nav ">
105
-
106
- <li class="nav-item">
107
- <a class="nav-link" href="https://alwaysai.co/docs/" target="_blank">Documentation</a>
108
- </li>
109
- <li class="nav-item">
110
- <a class="nav-link" href="https://alwaysai.co/support" target="_blank">Support</a>
111
- </li>
112
- </ul>
113
- </div>
114
- </nav>
115
- <div class="container" min-width= "1024px" width="100%">
116
- <div class="card-deck">
117
-
118
- <div class="card">
119
- <div class="card-body">
120
- <h5 class="card-title">Device Status</h5>
121
- <div class="row" style="justify-content: center; align-items: center;">
122
- <div class="card col-sm" style="background-color: #add8e6; height: fit-content; align-items: center;">
123
- <h6 class="card-title">CPU %</h6>
124
- <p id="cpu_value" style="font-size: 40px;">0%</p>
125
- </div>
126
- <div class="card col-sm" style="background-color: #add8e6; height: fit-content; align-items: center;">
127
- <h6 class="card-title">Memory %</h6>
128
- <p id="memory_value" style="font-size: 40px;">0%</p></div>
129
- <div class="card col-sm" style="background-color: #add8e6; height: fit-content; align-items: center;">
130
- <h6 class="card-title">Disk %</h6>
131
- <p id="disk_value" style="font-size: 40px;">0%</p></div>
132
- </div>
133
- </div>
134
- </div>
135
-
136
- <div class="card">
137
- <div class="card-body">
138
- <h5 class="card-title">Applications</h5>
139
- <div class="row">
140
- <div id="projects"></div>
141
- </div>
142
- </div>
143
- </div>
144
-
145
- </div>
146
- </div>
147
- </html>
148
-
149
- <script>
150
- const socket = io();
151
- function start(projectId) {
152
- socket.emit('start-app', {projectId});
153
- }
154
-
155
- function stop(projectId) {
156
- socket.emit('stop-app', {projectId});
157
- }
158
-
159
- function restart(projectId) {
160
- socket.emit('restart-app', {projectId});
161
- }
162
-
163
- document.addEventListener("DOMContentLoaded", function(event) {
164
-
165
- const device_info_elem = document.getElementById("device-info");
166
- const apps_info_elem = document.getElementById("apps-info");
167
- const cpu_value = document.getElementById("cpu_value");
168
- const memory_value = document.getElementById("memory_value");
169
- const disk_value = document.getElementById("disk_value");
170
- const projects = document.getElementById("projects");
171
-
172
- //const socket = io.connect('http://' + document.domain + ':' + location.port, {
173
- // reconnection: true,
174
- // transports: ["websocket"],
175
- //});
176
-
177
- socket.on('connect', () => {
178
- console.log('Connected');
179
- running = true;
180
- });
181
-
182
- socket.on('disconnect', () => {
183
- console.log('Disconnected');
184
- });
185
-
186
- socket.on('connect_error', (error) => {
187
- console.log('Connect error! ' + error);
188
- });
189
-
190
- socket.on('connect_timeout', (error) => {
191
- console.log('Connect timeout! ' + error);
192
- });
193
-
194
- socket.on('error', (error) => {
195
- console.log('Error! ' + error);
196
- });
197
-
198
- socket.on('device-info-rsp', (msg) => {
199
- console.log('Received device-info-rsp');
200
- console.log(msg);
201
- cpu_value.innerHTML = msg.cpuUtil.toFixed(1) + "%"
202
- memory_value.innerHTML = msg.memUtil.toFixed(1) + "%"
203
- disk_value.innerHTML = msg.diskUtil.toFixed(1) + "%"
204
- });
205
-
206
- socket.on('apps-info-rsp', (msg) => {
207
- console.log('Received apps-info-rsp');
208
- console.log(msg);
209
- projects.innerHTML = msg.apps.map(app => {
210
- return (
211
- `<div class="col-sm" style="background-color: #add8e6;">
212
- <h6>Project Info:</h6>
213
- <p id="app_id">ID: ${app.projectId}</p>
214
- <p id="app_status">Status: ${app.status}</p>
215
- <button onclick=start("${app.projectId}") type="button" class="btn btn-outline-success">Start</button>
216
- <button onclick=stop("${app.projectId}") type="button" class="btn btn-outline-danger">Stop</button>
217
- <button onclick=restart("${app.projectId}") type="button" class="btn btn-outline-info">Restart</button>
218
- </div>`
219
- )
220
- })
221
- });
222
-
223
- // Update device and app state periodically (5 seconds)
224
- setInterval(() => {
225
- socket.emit('device-info-req');
226
- socket.emit('apps-info-req');
227
- }, 1000)
228
- });
229
- </script>
@@ -1,18 +0,0 @@
1
- /* latin-ext */
2
- @font-face {
3
- font-family: 'Karla';
4
- font-style: normal;
5
- font-weight: 400;
6
- font-display: swap;
7
- src: local('Karla'), local('Karla-Regular'), url(https://fonts.gstatic.com/s/karla/v8/qkBbXvYC6trAT7RbLtyG5Q.woff2) format('woff2');
8
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
9
- }
10
- /* latin */
11
- @font-face {
12
- font-family: 'Karla';
13
- font-style: normal;
14
- font-weight: 400;
15
- font-display: swap;
16
- src: local('Karla'), local('Karla-Regular'), url(https://fonts.gstatic.com/s/karla/v8/qkBbXvYC6trAT7RVLtw.woff2) format('woff2');
17
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
18
- }