@alwaysai/device-agent 0.0.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.
Files changed (151) hide show
  1. package/lib/application-control/application-control.d.ts +41 -0
  2. package/lib/application-control/application-control.d.ts.map +1 -0
  3. package/lib/application-control/application-control.js +197 -0
  4. package/lib/application-control/application-control.js.map +1 -0
  5. package/lib/application-control/models.d.ts +12 -0
  6. package/lib/application-control/models.d.ts.map +1 -0
  7. package/lib/application-control/models.js +44 -0
  8. package/lib/application-control/models.js.map +1 -0
  9. package/lib/application-control/utils.d.ts +16 -0
  10. package/lib/application-control/utils.d.ts.map +1 -0
  11. package/lib/application-control/utils.js +62 -0
  12. package/lib/application-control/utils.js.map +1 -0
  13. package/lib/constants.d.ts +15 -0
  14. package/lib/constants.d.ts.map +1 -0
  15. package/lib/constants.js +22 -0
  16. package/lib/constants.js.map +1 -0
  17. package/lib/device-control/device-control.d.ts +4 -0
  18. package/lib/device-control/device-control.d.ts.map +1 -0
  19. package/lib/device-control/device-control.js +20 -0
  20. package/lib/device-control/device-control.js.map +1 -0
  21. package/lib/docker/docker-cmd.d.ts +4 -0
  22. package/lib/docker/docker-cmd.d.ts.map +1 -0
  23. package/lib/docker/docker-cmd.js +16 -0
  24. package/lib/docker/docker-cmd.js.map +1 -0
  25. package/lib/docker/docker-compose-cmd.d.ts +5 -0
  26. package/lib/docker/docker-compose-cmd.d.ts.map +1 -0
  27. package/lib/docker/docker-compose-cmd.js +16 -0
  28. package/lib/docker/docker-compose-cmd.js.map +1 -0
  29. package/lib/environment.d.ts +4 -0
  30. package/lib/environment.d.ts.map +1 -0
  31. package/lib/environment.js +21 -0
  32. package/lib/environment.js.map +1 -0
  33. package/lib/index.d.ts +3 -0
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +19 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/root.d.ts +2 -0
  38. package/lib/root.d.ts.map +1 -0
  39. package/lib/root.js +18 -0
  40. package/lib/root.js.map +1 -0
  41. package/lib/subcommands/app/app.d.ts +36 -0
  42. package/lib/subcommands/app/app.d.ts.map +1 -0
  43. package/lib/subcommands/app/app.js +218 -0
  44. package/lib/subcommands/app/app.js.map +1 -0
  45. package/lib/subcommands/app/index.d.ts +2 -0
  46. package/lib/subcommands/app/index.d.ts.map +1 -0
  47. package/lib/subcommands/app/index.js +23 -0
  48. package/lib/subcommands/app/index.js.map +1 -0
  49. package/lib/subcommands/device-control.d.ts +2 -0
  50. package/lib/subcommands/device-control.d.ts.map +1 -0
  51. package/lib/subcommands/device-control.js +19 -0
  52. package/lib/subcommands/device-control.js.map +1 -0
  53. package/lib/subcommands/index.d.ts +2 -0
  54. package/lib/subcommands/index.d.ts.map +1 -0
  55. package/lib/subcommands/index.js +14 -0
  56. package/lib/subcommands/index.js.map +1 -0
  57. package/lib/subcommands/login.d.ts +5 -0
  58. package/lib/subcommands/login.d.ts.map +1 -0
  59. package/lib/subcommands/login.js +27 -0
  60. package/lib/subcommands/login.js.map +1 -0
  61. package/lib/subcommands/test-app.d.ts +5 -0
  62. package/lib/subcommands/test-app.d.ts.map +1 -0
  63. package/lib/subcommands/test-app.js +33 -0
  64. package/lib/subcommands/test-app.js.map +1 -0
  65. package/lib/util/copy-dir.d.ts +5 -0
  66. package/lib/util/copy-dir.d.ts.map +1 -0
  67. package/lib/util/copy-dir.js +14 -0
  68. package/lib/util/copy-dir.js.map +1 -0
  69. package/lib/util/run-cli-cmd.d.ts +5 -0
  70. package/lib/util/run-cli-cmd.d.ts.map +1 -0
  71. package/lib/util/run-cli-cmd.js +24 -0
  72. package/lib/util/run-cli-cmd.js.map +1 -0
  73. package/lib/util/spawner/gnu-spawner.d.ts +9 -0
  74. package/lib/util/spawner/gnu-spawner.d.ts.map +1 -0
  75. package/lib/util/spawner/gnu-spawner.js +102 -0
  76. package/lib/util/spawner/gnu-spawner.js.map +1 -0
  77. package/lib/util/spawner/js-spawner.d.ts +5 -0
  78. package/lib/util/spawner/js-spawner.d.ts.map +1 -0
  79. package/lib/util/spawner/js-spawner.js +89 -0
  80. package/lib/util/spawner/js-spawner.js.map +1 -0
  81. package/lib/util/spawner/types.d.ts +28 -0
  82. package/lib/util/spawner/types.d.ts.map +1 -0
  83. package/lib/util/spawner/types.js +3 -0
  84. package/lib/util/spawner/types.js.map +1 -0
  85. package/lib/util/spawner-base/index.d.ts +17 -0
  86. package/lib/util/spawner-base/index.d.ts.map +1 -0
  87. package/lib/util/spawner-base/index.js +30 -0
  88. package/lib/util/spawner-base/index.js.map +1 -0
  89. package/lib/util/spawner-base/run-foreground-sync.d.ts +3 -0
  90. package/lib/util/spawner-base/run-foreground-sync.d.ts.map +1 -0
  91. package/lib/util/spawner-base/run-foreground-sync.js +18 -0
  92. package/lib/util/spawner-base/run-foreground-sync.js.map +1 -0
  93. package/lib/util/spawner-base/run-foreground.d.ts +3 -0
  94. package/lib/util/spawner-base/run-foreground.d.ts.map +1 -0
  95. package/lib/util/spawner-base/run-foreground.js +49 -0
  96. package/lib/util/spawner-base/run-foreground.js.map +1 -0
  97. package/lib/util/spawner-base/run-streaming.d.ts +4 -0
  98. package/lib/util/spawner-base/run-streaming.d.ts.map +1 -0
  99. package/lib/util/spawner-base/run-streaming.js +35 -0
  100. package/lib/util/spawner-base/run-streaming.js.map +1 -0
  101. package/lib/util/spawner-base/run.d.ts +4 -0
  102. package/lib/util/spawner-base/run.d.ts.map +1 -0
  103. package/lib/util/spawner-base/run.js +56 -0
  104. package/lib/util/spawner-base/run.js.map +1 -0
  105. package/lib/web/index.html +229 -0
  106. package/lib/web/static/Karla.css +18 -0
  107. package/lib/web/static/bootstrap-4.3.1.min.css +7 -0
  108. package/lib/web/static/bootstrap-4.3.1.min.js +7 -0
  109. package/lib/web/static/favicon.ico +0 -0
  110. package/lib/web/static/jquery-3.3.1.slim.min.js +2 -0
  111. package/lib/web/static/popper-1.14.7.min.js +5 -0
  112. package/lib/web/web-interface.d.ts +2 -0
  113. package/lib/web/web-interface.d.ts.map +1 -0
  114. package/lib/web/web-interface.js +74 -0
  115. package/lib/web/web-interface.js.map +1 -0
  116. package/package.json +89 -0
  117. package/readme.md +104 -0
  118. package/src/application-control/application-control.ts +233 -0
  119. package/src/application-control/models.ts +40 -0
  120. package/src/application-control/utils.ts +64 -0
  121. package/src/constants.ts +29 -0
  122. package/src/device-control/device-control.ts +16 -0
  123. package/src/docker/docker-cmd.ts +12 -0
  124. package/src/docker/docker-compose-cmd.ts +12 -0
  125. package/src/environment.ts +20 -0
  126. package/src/index.ts +18 -0
  127. package/src/root.ts +18 -0
  128. package/src/subcommands/app/app.ts +216 -0
  129. package/src/subcommands/app/index.ts +32 -0
  130. package/src/subcommands/device-control.ts +16 -0
  131. package/src/subcommands/index.ts +11 -0
  132. package/src/subcommands/login.ts +24 -0
  133. package/src/subcommands/test-app.ts +30 -0
  134. package/src/util/copy-dir.ts +10 -0
  135. package/src/util/run-cli-cmd.ts +18 -0
  136. package/src/util/spawner/gnu-spawner.ts +114 -0
  137. package/src/util/spawner/js-spawner.ts +110 -0
  138. package/src/util/spawner/types.ts +28 -0
  139. package/src/util/spawner-base/index.ts +28 -0
  140. package/src/util/spawner-base/run-foreground-sync.ts +16 -0
  141. package/src/util/spawner-base/run-foreground.ts +49 -0
  142. package/src/util/spawner-base/run-streaming.ts +40 -0
  143. package/src/util/spawner-base/run.ts +60 -0
  144. package/src/web/index.html +229 -0
  145. package/src/web/static/Karla.css +18 -0
  146. package/src/web/static/bootstrap-4.3.1.min.css +7 -0
  147. package/src/web/static/bootstrap-4.3.1.min.js +7 -0
  148. package/src/web/static/favicon.ico +0 -0
  149. package/src/web/static/jquery-3.3.1.slim.min.js +2 -0
  150. package/src/web/static/popper-1.14.7.min.js +5 -0
  151. package/src/web/web-interface.ts +89 -0
@@ -0,0 +1,41 @@
1
+ /// <reference types="node" />
2
+ export declare type AppDetails = {
3
+ projectId: string;
4
+ version: string;
5
+ };
6
+ export declare function getInstalledApps(): Promise<AppDetails[]>;
7
+ export declare function rollbackApp(props: {
8
+ projectId: string;
9
+ }): Promise<void>;
10
+ export declare function installApp(props: {
11
+ projectId: string;
12
+ appPkg: NodeJS.ReadableStream;
13
+ version: string;
14
+ }): Promise<void>;
15
+ export declare type ServiceState = 'Stopped' | 'Up' | 'Restarting';
16
+ export declare type ServiceStatus = {
17
+ name: string;
18
+ state: ServiceState;
19
+ };
20
+ export declare type AppStatus = {
21
+ appDetails: AppDetails;
22
+ services: ServiceStatus[];
23
+ };
24
+ export declare function getAppStatus(props: {
25
+ projectId: string;
26
+ }): Promise<AppStatus>;
27
+ export declare function getAppLogs(props: {
28
+ projectId: string;
29
+ services?: string[];
30
+ }): Promise<NodeJS.ReadableStream>;
31
+ export declare function startApp(props: {
32
+ projectId: string;
33
+ dockerLoginToken?: string;
34
+ }): Promise<void>;
35
+ export declare function stopApp(props: {
36
+ projectId: string;
37
+ }): Promise<void>;
38
+ export declare function uninstallApp(props: {
39
+ projectId: string;
40
+ }): Promise<void>;
41
+ //# sourceMappingURL=application-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-control.d.ts","sourceRoot":"","sources":["../../src/application-control/application-control.ts"],"names":[],"mappings":";AAkBA,oBAAY,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAc9D;AAUD,wBAAsB,WAAW,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAW7D;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB;AAED,oBAAY,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,YAAY,CAAC;AAC3D,oBAAY,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAClE,oBAAY,SAAS,GAAG;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE9E,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CA8CnF;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAyBjC;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhB;AAED,wBAAsB,OAAO,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzE;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9E"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uninstallApp = exports.stopApp = exports.startApp = exports.getAppLogs = exports.getAppStatus = exports.installApp = exports.rollbackApp = exports.getInstalledApps = void 0;
4
+ const docker_compose_1 = require("docker-compose");
5
+ const rimraf = require("rimraf");
6
+ const fs = require("fs");
7
+ const docker_cmd_1 = require("../docker/docker-cmd");
8
+ const js_spawner_1 = require("../util/spawner/js-spawner");
9
+ const copy_dir_1 = require("../util/copy-dir");
10
+ const utils_1 = require("./utils");
11
+ const BACKUP_EXT = '.bak';
12
+ async function getInstalledApps() {
13
+ const projectIds = fs.readdirSync(utils_1.APP_ROOT).filter(file => {
14
+ const isDir = fs.statSync(`${utils_1.APP_ROOT}/${file}`).isDirectory();
15
+ const isBak = `${utils_1.APP_ROOT}/${file}`.includes(BACKUP_EXT);
16
+ return isDir && !isBak;
17
+ });
18
+ const appDetails = [];
19
+ for (const projectId of projectIds) {
20
+ const appDir = (0, utils_1.getAppDir)(projectId);
21
+ const version = await (0, utils_1.getAppVersion)({ appDir });
22
+ appDetails.push({ projectId, version });
23
+ }
24
+ return appDetails;
25
+ }
26
+ exports.getInstalledApps = getInstalledApps;
27
+ async function createAppBackup(props) {
28
+ const { projectId } = props;
29
+ const appDir = (0, utils_1.getAppDir)(projectId);
30
+ const backupAppDir = `${appDir}${BACKUP_EXT}`;
31
+ await (0, copy_dir_1.copyDir)({ srcPath: appDir, destPath: backupAppDir });
32
+ console.log(`Backed up app ${projectId} to ${backupAppDir}`);
33
+ }
34
+ async function rollbackApp(props) {
35
+ const { projectId } = props;
36
+ const appDir = (0, utils_1.getAppDir)(projectId);
37
+ const backupAppDir = `${appDir}${BACKUP_EXT}`;
38
+ if (!fs.existsSync(backupAppDir)) {
39
+ throw new Error(`Backup doesn't exist for ${projectId}`);
40
+ }
41
+ rimraf.sync(appDir);
42
+ await (0, copy_dir_1.copyDir)({ srcPath: `${appDir}${BACKUP_EXT}`, destPath: appDir });
43
+ await (0, utils_1.buildApp)({ appDir });
44
+ console.log(`Rolled back app ${projectId} to previous version`);
45
+ }
46
+ exports.rollbackApp = rollbackApp;
47
+ async function installApp(props) {
48
+ const { projectId, appPkg, version } = props;
49
+ console.log(`Installing ${projectId}`);
50
+ const appDir = (0, utils_1.getAppDir)(projectId);
51
+ const spawner = (0, js_spawner_1.JsSpawner)();
52
+ // TODO Check valid projectId
53
+ // Check if app is installed
54
+ if (await (0, utils_1.isAppInstalled)({ appDir })) {
55
+ console.log('Application is already installed, updating');
56
+ await createAppBackup({ projectId });
57
+ await spawner.rimraf(appDir);
58
+ }
59
+ // Create app directory
60
+ await spawner.mkdirp(appDir);
61
+ // Unpack app package and move to install dir
62
+ await spawner.untar(appPkg, appDir);
63
+ console.log(`Unpacked application to ${appDir}`);
64
+ await (0, utils_1.setAppVersion)({ appDir, version });
65
+ await (0, utils_1.buildApp)({ appDir });
66
+ console.log(`Installed ${projectId} to ${appDir}`);
67
+ }
68
+ exports.installApp = installApp;
69
+ async function getAppStatus(props) {
70
+ const { projectId } = props;
71
+ const appDir = (0, utils_1.getAppDir)(projectId);
72
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
73
+ throw new Error('Application is not installed');
74
+ }
75
+ // Check if app is running
76
+ const output = await docker_compose_1.default.ps({ cwd: appDir });
77
+ if (output.exitCode !== 0) {
78
+ throw new Error(`Failed to get application status! stdout=${output.out} stderr=${output.err}`);
79
+ }
80
+ const appDetails = { projectId, version: await (0, utils_1.getAppVersion)({ appDir }) };
81
+ const services = [];
82
+ if (output.data.services.length === 0) {
83
+ // If the app has never been started (or has an empty docker-compose.yaml)
84
+ // the list will be empty.
85
+ services.push({ name: '', state: 'Stopped' });
86
+ }
87
+ else {
88
+ for (const service of output.data.services) {
89
+ // Container name has the format:
90
+ // <projectId>_name_<number>
91
+ const matchProjectId = new RegExp(`^${projectId}`);
92
+ const name = service.name
93
+ .replace(matchProjectId, '')
94
+ .replace(/\d+$/, '')
95
+ .replace(/_/g, '');
96
+ let state;
97
+ if (service.state.includes('Up')) {
98
+ state = 'Up';
99
+ }
100
+ else if (service.state.includes('Stopped') || service.state.includes('Exit')) {
101
+ state = 'Stopped';
102
+ }
103
+ else if (service.state.includes('Restarting')) {
104
+ state = 'Restarting';
105
+ }
106
+ else {
107
+ throw new Error(`Unknown state for service! (${service.state})`);
108
+ }
109
+ services.push({ name, state });
110
+ }
111
+ }
112
+ return { appDetails, services };
113
+ }
114
+ exports.getAppStatus = getAppStatus;
115
+ async function getAppLogs(props) {
116
+ const { projectId, services } = props;
117
+ const appDir = (0, utils_1.getAppDir)(projectId);
118
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
119
+ throw new Error('Application is not installed');
120
+ }
121
+ const serviceList = services
122
+ ? services
123
+ : await (async function () {
124
+ const appStatus = await getAppStatus({ projectId });
125
+ const services = [];
126
+ for (const service of appStatus.services) {
127
+ services.push(service.name);
128
+ }
129
+ return services;
130
+ })();
131
+ // Use direct command with spawner in order to get a readable stream
132
+ return await (0, js_spawner_1.JsSpawner)().runStreaming({
133
+ exe: 'docker-compose',
134
+ args: ['logs', '-f', ...serviceList],
135
+ cwd: appDir,
136
+ });
137
+ }
138
+ exports.getAppLogs = getAppLogs;
139
+ async function startApp(props) {
140
+ const { projectId, dockerLoginToken } = props;
141
+ const appDir = (0, utils_1.getAppDir)(projectId);
142
+ // Check if app is installed
143
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
144
+ throw new Error('Application is not installed');
145
+ }
146
+ if (dockerLoginToken !== undefined) {
147
+ const result = await (0, docker_cmd_1.runDockerLogin)({ token: dockerLoginToken });
148
+ console.log(result);
149
+ }
150
+ // TODO: Check if app is running
151
+ // Start app
152
+ const upOut = await docker_compose_1.default.upAll({ cwd: appDir });
153
+ console.log(upOut);
154
+ if (upOut.exitCode !== 0) {
155
+ throw new Error(`Failed to start application! stdout=${upOut.out} stderr=${upOut.err}`);
156
+ }
157
+ console.log('Started', projectId);
158
+ }
159
+ exports.startApp = startApp;
160
+ async function stopApp(props) {
161
+ const { projectId } = props;
162
+ const appDir = (0, utils_1.getAppDir)(projectId);
163
+ // Check if app is installed
164
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
165
+ console.log('Application is not installed');
166
+ return;
167
+ }
168
+ // TODO: Check if app is running
169
+ // Stop app
170
+ const output = await docker_compose_1.default.down({ cwd: appDir });
171
+ console.log(output);
172
+ if (output.exitCode !== 0) {
173
+ throw new Error(`Failed to stop application! stdout=${output.out} stderr=${output.err}`);
174
+ }
175
+ console.log('Stopped', projectId);
176
+ }
177
+ exports.stopApp = stopApp;
178
+ async function uninstallApp(props) {
179
+ const { projectId } = props;
180
+ const appDir = (0, utils_1.getAppDir)(projectId);
181
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
182
+ console.log(`Application ${projectId} not installed`);
183
+ return;
184
+ }
185
+ try {
186
+ await stopApp({ projectId });
187
+ }
188
+ catch (_a) {
189
+ console.log('Failed to stop app, may be left running...');
190
+ }
191
+ // Delete application directory and backup
192
+ rimraf.sync(appDir);
193
+ rimraf.sync(`${appDir}${BACKUP_EXT}`);
194
+ console.log('Uninstalled', projectId);
195
+ }
196
+ exports.uninstallApp = uninstallApp;
197
+ //# sourceMappingURL=application-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-control.js","sourceRoot":"","sources":["../../src/application-control/application-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare function addModel(props: {
2
+ projectId: string;
3
+ modelId: string;
4
+ }): Promise<void>;
5
+ export declare function removeModel(props: {
6
+ projectId: string;
7
+ modelId: string;
8
+ }): Promise<void>;
9
+ export declare function updateModels(props: {
10
+ projectId: string;
11
+ }): Promise<void>;
12
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":"AAGA,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBAW3E;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBAU9E;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAW9D"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateModels = exports.removeModel = exports.addModel = void 0;
4
+ const run_cli_cmd_1 = require("../util/run-cli-cmd");
5
+ const utils_1 = require("./utils");
6
+ async function addModel(props) {
7
+ const { projectId, modelId } = props;
8
+ const appDir = (0, utils_1.getAppDir)(projectId);
9
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
10
+ throw new Error('Application is not installed');
11
+ }
12
+ await (0, run_cli_cmd_1.runCliCmd)({
13
+ cmd: ['app', 'models', 'add', modelId],
14
+ cwd: appDir,
15
+ });
16
+ await (0, utils_1.buildApp)({ appDir });
17
+ }
18
+ exports.addModel = addModel;
19
+ async function removeModel(props) {
20
+ const { projectId, modelId } = props;
21
+ const appDir = (0, utils_1.getAppDir)(projectId);
22
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
23
+ throw new Error('Application is not installed');
24
+ }
25
+ await (0, run_cli_cmd_1.runCliCmd)({
26
+ cmd: ['app', 'models', 'remove', modelId],
27
+ cwd: appDir,
28
+ });
29
+ }
30
+ exports.removeModel = removeModel;
31
+ async function updateModels(props) {
32
+ const { projectId } = props;
33
+ const appDir = (0, utils_1.getAppDir)(projectId);
34
+ if (!(await (0, utils_1.isAppInstalled)({ appDir }))) {
35
+ throw new Error('Application is not installed');
36
+ }
37
+ await (0, run_cli_cmd_1.runCliCmd)({
38
+ cmd: ['app', 'models', 'update'],
39
+ cwd: appDir,
40
+ });
41
+ await (0, utils_1.buildApp)({ appDir });
42
+ }
43
+ exports.updateModels = updateModels;
44
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/application-control/models.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAChD,mCAA8D;AAEvD,KAAK,UAAU,QAAQ,CAAC,KAA6C;IAC1E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,IAAA,sBAAc,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;QACtC,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAXD,4BAWC;AAEM,KAAK,UAAU,WAAW,CAAC,KAA6C;IAC7E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,IAAA,sBAAc,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;QACzC,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;AACL,CAAC;AAVD,kCAUC;AAEM,KAAK,UAAU,YAAY,CAAC,KAA4B;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,IAAA,sBAAc,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IACD,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAChC,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,gBAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAXD,oCAWC"}
@@ -0,0 +1,16 @@
1
+ export declare const APP_ROOT: string;
2
+ export declare function getAppDir(projectId: string): string;
3
+ export declare function isAppInstalled(props: {
4
+ appDir: string;
5
+ }): Promise<boolean>;
6
+ export declare function setAppVersion(props: {
7
+ appDir: string;
8
+ version: string;
9
+ }): Promise<void>;
10
+ export declare function getAppVersion(props: {
11
+ appDir: string;
12
+ }): Promise<any>;
13
+ export declare function buildApp(props: {
14
+ appDir: string;
15
+ }): Promise<void>;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QAA8C,CAAC;AAIpE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBAM7E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,gBAK5D;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,iBAuBvD"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildApp = exports.getAppVersion = exports.setAppVersion = exports.isAppInstalled = exports.getAppDir = exports.APP_ROOT = void 0;
4
+ const docker_compose_1 = require("docker-compose");
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const js_spawner_1 = require("../util/spawner/js-spawner");
8
+ const constants_1 = require("../constants");
9
+ const run_cli_cmd_1 = require("../util/run-cli-cmd");
10
+ exports.APP_ROOT = path.join(constants_1.DOT_ALWAYSAI_DIR, 'applications');
11
+ const RELEASE_FILENAME = 'alwaysai.release.json';
12
+ const DOCKER_COMPOSE_FILENAME = 'docker-compose.yaml';
13
+ function getAppDir(projectId) {
14
+ return path.join(exports.APP_ROOT, projectId);
15
+ }
16
+ exports.getAppDir = getAppDir;
17
+ async function isAppInstalled(props) {
18
+ const { appDir } = props;
19
+ // TODO: Could do more sophisticated check
20
+ if (fs.existsSync(appDir)) {
21
+ return true;
22
+ }
23
+ return false;
24
+ }
25
+ exports.isAppInstalled = isAppInstalled;
26
+ async function setAppVersion(props) {
27
+ const { appDir, version } = props;
28
+ // TODO: Switch to node-config
29
+ const versionPath = path.join(appDir, RELEASE_FILENAME);
30
+ const versionData = { version };
31
+ await (0, js_spawner_1.JsSpawner)().writeFile(versionPath, JSON.stringify(versionData, null, 2));
32
+ }
33
+ exports.setAppVersion = setAppVersion;
34
+ async function getAppVersion(props) {
35
+ const { appDir } = props;
36
+ const versionPath = path.join(appDir, RELEASE_FILENAME);
37
+ const releaseData = JSON.parse(await (0, js_spawner_1.JsSpawner)().readFile(versionPath));
38
+ return releaseData.version;
39
+ }
40
+ exports.getAppVersion = getAppVersion;
41
+ async function buildApp(props) {
42
+ const { appDir } = props;
43
+ await (0, run_cli_cmd_1.runCliCmd)({
44
+ cmd: ['app', 'configure', '--yes', '--protocol', 'docker:'],
45
+ cwd: appDir,
46
+ });
47
+ await (0, run_cli_cmd_1.runCliCmd)({ cmd: ['app', 'install', '--yes', '--clean', '--pull'], cwd: appDir });
48
+ // Build standalone image and docker-compose
49
+ if (!fs.existsSync(path.join(appDir, DOCKER_COMPOSE_FILENAME))) {
50
+ await (0, run_cli_cmd_1.runCliCmd)({
51
+ cmd: ['app', 'deploy', '--yes', '--generateDockerCompose'],
52
+ cwd: appDir,
53
+ });
54
+ }
55
+ const buildOut = await docker_compose_1.default.buildAll({ cwd: appDir });
56
+ console.log(buildOut);
57
+ if (buildOut.exitCode !== 0) {
58
+ throw new Error(`Failed to build application! stdout=${buildOut.out} stderr=${buildOut.err}`);
59
+ }
60
+ }
61
+ exports.buildApp = buildApp;
62
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/application-control/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAqC;AACrC,6BAA6B;AAC7B,yBAAyB;AAEzB,2DAAuD;AACvD,4CAAgD;AAChD,qDAAgD;AAEnC,QAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,4BAAgB,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAQ,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,cAAc,CAAC,KAAyB;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,0CAA0C;IAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,wCAOC;AAEM,KAAK,UAAU,aAAa,CAAC,KAA0C;IAC5E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClC,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,CAAC;IAChC,MAAM,IAAA,sBAAS,GAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAND,sCAMC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAyB;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,sBAAS,GAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AALD,sCAKC;AAEM,KAAK,UAAU,QAAQ,CAAC,KAAyB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,IAAA,uBAAS,EAAC;QACd,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC;QAC3D,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IACH,MAAM,IAAA,uBAAS,EAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE;QAC9D,MAAM,IAAA,uBAAS,EAAC;YACd,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,CAAC;YAC1D,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;KACJ;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,GAAG,WAAW,QAAQ,CAAC,GAAG,EAAE,CAC7E,CAAC;KACH;AACH,CAAC;AAvBD,4BAuBC"}
@@ -0,0 +1,15 @@
1
+ export declare const ALWAYSAI_CLI_EXECUTABLE_NAME = "aai-agent";
2
+ export declare const DOT_ALWAYSAI_DIR: string;
3
+ export declare const AAI_DIR: any;
4
+ export declare const DEVICE_TOKEN_FILE_NAME = "alwaysai.credentials.json";
5
+ export declare const DEVICE_CONFIG_FILE_NAME = "alwaysai.config.json";
6
+ export declare const DEVICE_TOKEN_DIR_LINUX: string;
7
+ export declare const DEVICE_CERT_AND_KEY_DIR_LINUX: string;
8
+ export declare const DEVICE_CERTIFICATE_FILE_NAME = "alwaysai.certificate.pem.crt";
9
+ export declare const DEVICE_PRIVATE_KEY_FILE_NAME = "alwaysai.private.pem.key";
10
+ export declare const DEVICE_PUBLIC_KEY_FILE_NAME = "alwaysai.public.pem.key";
11
+ export declare const DEVICE_ROOT_CERT_FILE_NAME = "alwaysai.root.pem";
12
+ export declare const SUPPORTED_JETPACK_VERSION = 4.4;
13
+ export declare const JETPACK_IMAGE_LINK = "https://developer.nvidia.com/jetson-nano-sd-card-image-44";
14
+ export declare const PLEASE_REPORT_THIS_ERROR_MESSAGE = "Please report this error message to support@alwaysai.co";
15
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAC7D,eAAO,MAAM,OAAO,KAAuC,CAAC;AAE5D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAE9D,eAAO,MAAM,sBAAsB,QAAyC,CAAC;AAC7E,eAAO,MAAM,6BAA6B,QAGzC,CAAC;AAEF,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AACvE,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AACrE,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,kBAAkB,8DAC8B,CAAC;AAE9D,eAAO,MAAM,gCAAgC,4DACc,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PLEASE_REPORT_THIS_ERROR_MESSAGE = exports.JETPACK_IMAGE_LINK = exports.SUPPORTED_JETPACK_VERSION = exports.DEVICE_ROOT_CERT_FILE_NAME = exports.DEVICE_PUBLIC_KEY_FILE_NAME = exports.DEVICE_PRIVATE_KEY_FILE_NAME = exports.DEVICE_CERTIFICATE_FILE_NAME = exports.DEVICE_CERT_AND_KEY_DIR_LINUX = exports.DEVICE_TOKEN_DIR_LINUX = exports.DEVICE_CONFIG_FILE_NAME = exports.DEVICE_TOKEN_FILE_NAME = exports.AAI_DIR = exports.DOT_ALWAYSAI_DIR = exports.ALWAYSAI_CLI_EXECUTABLE_NAME = void 0;
4
+ const path_1 = require("path");
5
+ const os_1 = require("os");
6
+ const os = require('os');
7
+ const path = require('path');
8
+ exports.ALWAYSAI_CLI_EXECUTABLE_NAME = 'aai-agent';
9
+ exports.DOT_ALWAYSAI_DIR = (0, path_1.join)((0, os_1.homedir)(), '.alwaysai');
10
+ exports.AAI_DIR = path.join(os.homedir(), '.alwaysai');
11
+ exports.DEVICE_TOKEN_FILE_NAME = 'alwaysai.credentials.json';
12
+ exports.DEVICE_CONFIG_FILE_NAME = 'alwaysai.config.json';
13
+ exports.DEVICE_TOKEN_DIR_LINUX = path_1.posix.join('~', '.config', 'alwaysai');
14
+ exports.DEVICE_CERT_AND_KEY_DIR_LINUX = path_1.posix.join(exports.DEVICE_TOKEN_DIR_LINUX, 'certificates');
15
+ exports.DEVICE_CERTIFICATE_FILE_NAME = 'alwaysai.certificate.pem.crt';
16
+ exports.DEVICE_PRIVATE_KEY_FILE_NAME = 'alwaysai.private.pem.key';
17
+ exports.DEVICE_PUBLIC_KEY_FILE_NAME = 'alwaysai.public.pem.key';
18
+ exports.DEVICE_ROOT_CERT_FILE_NAME = 'alwaysai.root.pem';
19
+ exports.SUPPORTED_JETPACK_VERSION = 4.4;
20
+ exports.JETPACK_IMAGE_LINK = 'https://developer.nvidia.com/jetson-nano-sd-card-image-44';
21
+ exports.PLEASE_REPORT_THIS_ERROR_MESSAGE = 'Please report this error message to support@alwaysai.co';
22
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAC5C,2BAA6B;AAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhB,QAAA,4BAA4B,GAAG,WAAW,CAAC;AAC3C,QAAA,gBAAgB,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,WAAW,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAE/C,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,uBAAuB,GAAG,sBAAsB,CAAC;AAEjD,QAAA,sBAAsB,GAAG,YAAK,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChE,QAAA,6BAA6B,GAAG,YAAK,CAAC,IAAI,CACrD,8BAAsB,EACtB,cAAc,CACf,CAAC;AAEW,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,4BAA4B,GAAG,0BAA0B,CAAC;AAC1D,QAAA,2BAA2B,GAAG,yBAAyB,CAAC;AACxD,QAAA,0BAA0B,GAAG,mBAAmB,CAAC;AAEjD,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAChC,QAAA,kBAAkB,GAC7B,2DAA2D,CAAC;AAEjD,QAAA,gCAAgC,GAC3C,yDAAyD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getCpuUtil(): Promise<number>;
2
+ export declare function getDiskUtil(): Promise<number>;
3
+ export declare function getMemUtil(): Promise<number>;
4
+ //# sourceMappingURL=device-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMemUtil = exports.getDiskUtil = exports.getCpuUtil = void 0;
4
+ const osu = require('node-os-utils');
5
+ async function getCpuUtil() {
6
+ const cpuUsage = await osu.cpu.usage();
7
+ return cpuUsage;
8
+ }
9
+ exports.getCpuUtil = getCpuUtil;
10
+ async function getDiskUtil() {
11
+ const driveInfo = await osu.drive.info();
12
+ return parseFloat(driveInfo.usedPercentage);
13
+ }
14
+ exports.getDiskUtil = getDiskUtil;
15
+ async function getMemUtil() {
16
+ const memInfo = await osu.mem.info();
17
+ return 100.0 - memInfo.freeMemPercentage;
18
+ }
19
+ exports.getMemUtil = getMemUtil;
20
+ //# sourceMappingURL=device-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":";;;AAAA,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,KAAK,UAAU,UAAU;IAC9B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAHD,gCAGC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC9C,CAAC;AAHD,kCAGC;AAEM,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAC3C,CAAC;AAHD,gCAGC"}
@@ -0,0 +1,4 @@
1
+ export declare function runDockerLogin(props: {
2
+ token: string;
3
+ }): Promise<string>;
4
+ //# sourceMappingURL=docker-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-cmd.d.ts","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,mBAS5D"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runDockerLogin = void 0;
4
+ const js_spawner_1 = require("../util/spawner/js-spawner");
5
+ async function runDockerLogin(props) {
6
+ const { token } = props;
7
+ const spawner = (0, js_spawner_1.JsSpawner)();
8
+ const server = '994534263224.dkr.ecr.us-west-2.amazonaws.com';
9
+ const output = await spawner.run({
10
+ exe: 'docker',
11
+ args: ['login', '--username', 'AWS', '--password', token, server],
12
+ });
13
+ return output;
14
+ }
15
+ exports.runDockerLogin = runDockerLogin;
16
+ //# sourceMappingURL=docker-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-cmd.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEhD,KAAK,UAAU,cAAc,CAAC,KAAwB;IAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,8CAA8C,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,wCASC"}
@@ -0,0 +1,5 @@
1
+ export declare function runDockerComposeCmd(props: {
2
+ args: string[];
3
+ dir: string;
4
+ }): Promise<string>;
5
+ //# sourceMappingURL=docker-compose-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose-cmd.d.ts","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,mBAS/E"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runDockerComposeCmd = void 0;
4
+ const js_spawner_1 = require("../util/spawner/js-spawner");
5
+ async function runDockerComposeCmd(props) {
6
+ const { args, dir } = props;
7
+ const spawner = (0, js_spawner_1.JsSpawner)();
8
+ const output = await spawner.run({
9
+ exe: 'docker-compose',
10
+ args,
11
+ cwd: dir,
12
+ });
13
+ return output;
14
+ }
15
+ exports.runDockerComposeCmd = runDockerComposeCmd;
16
+ //# sourceMappingURL=docker-compose-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEhD,KAAK,UAAU,mBAAmB,CAAC,KAAsC;IAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,sBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,gBAAgB;QACrB,IAAI;QACJ,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,kDASC"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ export declare const ALWAYSAI_OS_PLATFORM: NodeJS.Platform;
3
+ export declare const ALWAYSAI_SHOW_HIDDEN: boolean;
4
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";AAEA,eAAO,MAAM,oBAAoB,iBAAoD,CAAC;AACtF,eAAO,MAAM,oBAAoB,SAAiD,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ALWAYSAI_SHOW_HIDDEN = exports.ALWAYSAI_OS_PLATFORM = void 0;
4
+ const os_1 = require("os");
5
+ exports.ALWAYSAI_OS_PLATFORM = parseOsPlatform(process.env.ALWAYSAI_OS_PLATFORM);
6
+ exports.ALWAYSAI_SHOW_HIDDEN = parseBoolean(process.env.ALWAYSAI_SHOW_HIDDEN);
7
+ function parseOsPlatform(str) {
8
+ switch (str) {
9
+ case 'win32':
10
+ case 'darwin':
11
+ case 'linux': {
12
+ return str;
13
+ }
14
+ default:
15
+ return (0, os_1.platform)();
16
+ }
17
+ }
18
+ function parseBoolean(str) {
19
+ return str === '1';
20
+ }
21
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAEjB,QAAA,oBAAoB,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzE,QAAA,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAEnF,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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/lib/index.js ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ // This file is the entry point for when this package is run as a CLI. Though
4
+ // this file is not executable, the above "shebang" line is necessary as an
5
+ // indicator to npm that this file is a Node.js script, not a shell script e.g.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const alwayscli_1 = require("@alwaysai/alwayscli");
8
+ const root_1 = require("./root");
9
+ const web_interface_1 = require("./web/web-interface");
10
+ if (module === require.main) {
11
+ console.log('Starting alwaysAI Device Agent');
12
+ if (process.env.ALWAYSAI_DEVICE_AGENT_MODE === 'cli') {
13
+ (0, alwayscli_1.runCliAndExit)(root_1.root, {});
14
+ }
15
+ else {
16
+ (0, web_interface_1.runWebInterface)();
17
+ }
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;;AAE/E,mDAAoD;AACpD,iCAA8B;AAC9B,uDAAsD;AAEtD,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,KAAK,EAAE;QACpD,IAAA,yBAAa,EAAC,WAAI,EAAE,EAAE,CAAC,CAAC;KACzB;SAAM;QACL,IAAA,+BAAe,GAAE,CAAC;KACnB;CACF"}
package/lib/root.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const root: import("@alwaysai/alwayscli/lib/types").CliBranch;
2
+ //# sourceMappingURL=root.d.ts.map