@vertesia/cli 0.24.0-dev.202601221707

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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/bin/app.js +3 -0
  4. package/bin/docker-credential-vertesia.js +3 -0
  5. package/lib/apps/commands.d.ts +11 -0
  6. package/lib/apps/commands.d.ts.map +1 -0
  7. package/lib/apps/commands.js +246 -0
  8. package/lib/apps/commands.js.map +1 -0
  9. package/lib/apps/index.d.ts +3 -0
  10. package/lib/apps/index.d.ts.map +1 -0
  11. package/lib/apps/index.js +104 -0
  12. package/lib/apps/index.js.map +1 -0
  13. package/lib/artifacts/commands.d.ts +6 -0
  14. package/lib/artifacts/commands.d.ts.map +1 -0
  15. package/lib/artifacts/commands.js +75 -0
  16. package/lib/artifacts/commands.js.map +1 -0
  17. package/lib/artifacts/index.d.ts +3 -0
  18. package/lib/artifacts/index.d.ts.map +1 -0
  19. package/lib/artifacts/index.js +33 -0
  20. package/lib/artifacts/index.js.map +1 -0
  21. package/lib/client.d.ts +12 -0
  22. package/lib/client.d.ts.map +1 -0
  23. package/lib/client.js +44 -0
  24. package/lib/client.js.map +1 -0
  25. package/lib/codegen/CodeBuilder.d.ts +16 -0
  26. package/lib/codegen/CodeBuilder.d.ts.map +1 -0
  27. package/lib/codegen/CodeBuilder.js +115 -0
  28. package/lib/codegen/CodeBuilder.js.map +1 -0
  29. package/lib/codegen/InteractionVersion.d.ts +29 -0
  30. package/lib/codegen/InteractionVersion.d.ts.map +1 -0
  31. package/lib/codegen/InteractionVersion.js +94 -0
  32. package/lib/codegen/InteractionVersion.js.map +1 -0
  33. package/lib/codegen/index.d.ts +3 -0
  34. package/lib/codegen/index.d.ts.map +1 -0
  35. package/lib/codegen/index.js +30 -0
  36. package/lib/codegen/index.js.map +1 -0
  37. package/lib/codegen/template.d.ts +3 -0
  38. package/lib/codegen/template.d.ts.map +1 -0
  39. package/lib/codegen/template.js +28 -0
  40. package/lib/codegen/template.js.map +1 -0
  41. package/lib/codegen/utils.d.ts +2 -0
  42. package/lib/codegen/utils.d.ts.map +1 -0
  43. package/lib/codegen/utils.js +4 -0
  44. package/lib/codegen/utils.js.map +1 -0
  45. package/lib/datagen/index.d.ts +3 -0
  46. package/lib/datagen/index.d.ts.map +1 -0
  47. package/lib/datagen/index.js +81 -0
  48. package/lib/datagen/index.js.map +1 -0
  49. package/lib/envs/index.d.ts +3 -0
  50. package/lib/envs/index.d.ts.map +1 -0
  51. package/lib/envs/index.js +23 -0
  52. package/lib/envs/index.js.map +1 -0
  53. package/lib/index.d.ts +2 -0
  54. package/lib/index.d.ts.map +1 -0
  55. package/lib/index.js +181 -0
  56. package/lib/index.js.map +1 -0
  57. package/lib/interactions/index.d.ts +3 -0
  58. package/lib/interactions/index.d.ts.map +1 -0
  59. package/lib/interactions/index.js +35 -0
  60. package/lib/interactions/index.js.map +1 -0
  61. package/lib/memory/index.d.ts +3 -0
  62. package/lib/memory/index.d.ts.map +1 -0
  63. package/lib/memory/index.js +15 -0
  64. package/lib/memory/index.js.map +1 -0
  65. package/lib/objects/commands.d.ts +15 -0
  66. package/lib/objects/commands.d.ts.map +1 -0
  67. package/lib/objects/commands.js +273 -0
  68. package/lib/objects/commands.js.map +1 -0
  69. package/lib/objects/index.d.ts +3 -0
  70. package/lib/objects/index.d.ts.map +1 -0
  71. package/lib/objects/index.js +43 -0
  72. package/lib/objects/index.js.map +1 -0
  73. package/lib/package.d.ts +8 -0
  74. package/lib/package.d.ts.map +1 -0
  75. package/lib/package.js +63 -0
  76. package/lib/package.js.map +1 -0
  77. package/lib/profiles/commands.d.ts +20 -0
  78. package/lib/profiles/commands.d.ts.map +1 -0
  79. package/lib/profiles/commands.js +207 -0
  80. package/lib/profiles/commands.js.map +1 -0
  81. package/lib/profiles/index.d.ts +65 -0
  82. package/lib/profiles/index.d.ts.map +1 -0
  83. package/lib/profiles/index.js +324 -0
  84. package/lib/profiles/index.js.map +1 -0
  85. package/lib/profiles/server/cors.d.ts +3 -0
  86. package/lib/profiles/server/cors.d.ts.map +1 -0
  87. package/lib/profiles/server/cors.js +22 -0
  88. package/lib/profiles/server/cors.js.map +1 -0
  89. package/lib/profiles/server/index.d.ts +12 -0
  90. package/lib/profiles/server/index.d.ts.map +1 -0
  91. package/lib/profiles/server/index.js +134 -0
  92. package/lib/profiles/server/index.js.map +1 -0
  93. package/lib/profiles/server/server.d.ts +4 -0
  94. package/lib/profiles/server/server.d.ts.map +1 -0
  95. package/lib/profiles/server/server.js +32 -0
  96. package/lib/profiles/server/server.js.map +1 -0
  97. package/lib/projects/index.d.ts +3 -0
  98. package/lib/projects/index.d.ts.map +1 -0
  99. package/lib/projects/index.js +17 -0
  100. package/lib/projects/index.js.map +1 -0
  101. package/lib/run/executor.d.ts +22 -0
  102. package/lib/run/executor.d.ts.map +1 -0
  103. package/lib/run/executor.js +182 -0
  104. package/lib/run/executor.js.map +1 -0
  105. package/lib/run/index.d.ts +3 -0
  106. package/lib/run/index.d.ts.map +1 -0
  107. package/lib/run/index.js +192 -0
  108. package/lib/run/index.js.map +1 -0
  109. package/lib/runs/index.d.ts +3 -0
  110. package/lib/runs/index.d.ts.map +1 -0
  111. package/lib/runs/index.js +48 -0
  112. package/lib/runs/index.js.map +1 -0
  113. package/lib/utils/console.d.ts +42 -0
  114. package/lib/utils/console.d.ts.map +1 -0
  115. package/lib/utils/console.js +256 -0
  116. package/lib/utils/console.js.map +1 -0
  117. package/lib/utils/stdio.d.ts +7 -0
  118. package/lib/utils/stdio.d.ts.map +1 -0
  119. package/lib/utils/stdio.js +35 -0
  120. package/lib/utils/stdio.js.map +1 -0
  121. package/lib/worker/commands.d.ts +11 -0
  122. package/lib/worker/commands.d.ts.map +1 -0
  123. package/lib/worker/commands.js +173 -0
  124. package/lib/worker/commands.js.map +1 -0
  125. package/lib/worker/connect.d.ts +7 -0
  126. package/lib/worker/connect.d.ts.map +1 -0
  127. package/lib/worker/connect.js +68 -0
  128. package/lib/worker/connect.js.map +1 -0
  129. package/lib/worker/docker-credential.d.ts +2 -0
  130. package/lib/worker/docker-credential.d.ts.map +1 -0
  131. package/lib/worker/docker-credential.js +50 -0
  132. package/lib/worker/docker-credential.js.map +1 -0
  133. package/lib/worker/docker.d.ts +10 -0
  134. package/lib/worker/docker.d.ts.map +1 -0
  135. package/lib/worker/docker.js +93 -0
  136. package/lib/worker/docker.js.map +1 -0
  137. package/lib/worker/index.d.ts +3 -0
  138. package/lib/worker/index.d.ts.map +1 -0
  139. package/lib/worker/index.js +90 -0
  140. package/lib/worker/index.js.map +1 -0
  141. package/lib/worker/project.d.ts +58 -0
  142. package/lib/worker/project.d.ts.map +1 -0
  143. package/lib/worker/project.js +148 -0
  144. package/lib/worker/project.js.map +1 -0
  145. package/lib/worker/refresh.d.ts +6 -0
  146. package/lib/worker/refresh.d.ts.map +1 -0
  147. package/lib/worker/refresh.js +47 -0
  148. package/lib/worker/refresh.js.map +1 -0
  149. package/lib/worker/registry.d.ts +7 -0
  150. package/lib/worker/registry.d.ts.map +1 -0
  151. package/lib/worker/registry.js +47 -0
  152. package/lib/worker/registry.js.map +1 -0
  153. package/lib/worker/version.d.ts +2 -0
  154. package/lib/worker/version.d.ts.map +1 -0
  155. package/lib/worker/version.js +4 -0
  156. package/lib/worker/version.js.map +1 -0
  157. package/lib/workflows/commands.d.ts +14 -0
  158. package/lib/workflows/commands.d.ts.map +1 -0
  159. package/lib/workflows/commands.js +243 -0
  160. package/lib/workflows/commands.js.map +1 -0
  161. package/lib/workflows/index.d.ts +3 -0
  162. package/lib/workflows/index.d.ts.map +1 -0
  163. package/lib/workflows/index.js +117 -0
  164. package/lib/workflows/index.js.map +1 -0
  165. package/lib/workflows/json-loader.d.ts +3 -0
  166. package/lib/workflows/json-loader.d.ts.map +1 -0
  167. package/lib/workflows/json-loader.js +16 -0
  168. package/lib/workflows/json-loader.js.map +1 -0
  169. package/lib/workflows/streams.d.ts +2 -0
  170. package/lib/workflows/streams.d.ts.map +1 -0
  171. package/lib/workflows/streams.js +423 -0
  172. package/lib/workflows/streams.js.map +1 -0
  173. package/lib/workflows/ts-loader.d.ts +3 -0
  174. package/lib/workflows/ts-loader.d.ts.map +1 -0
  175. package/lib/workflows/ts-loader.js +94 -0
  176. package/lib/workflows/ts-loader.js.map +1 -0
  177. package/lib/workflows/validation.d.ts +6 -0
  178. package/lib/workflows/validation.d.ts.map +1 -0
  179. package/lib/workflows/validation.js +22 -0
  180. package/lib/workflows/validation.js.map +1 -0
  181. package/package.json +73 -0
  182. package/templates/index.tpl +4 -0
  183. package/templates/interaction.tpl +16 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Bogdan Stefanescu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Vertesia CLI
2
+
3
+ This is a command line application that can be used to access your Vertesia projects.
4
+ It was designed to fulfil the following main use cases:
5
+
6
+ * List and switch between your Vertesia projects
7
+ * List the existing interactions and execution environments
8
+ * Run interactions once or multiple times over a set of different data inputs.
9
+ * Generate data inputs to run the interactions against.
10
+ * Search through the history of runs to inspect detailed results.
11
+
12
+ ## Requirements
13
+
14
+ A TTY terminal and Node.js version 18 or higher is required.
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm -g install @vertesia/cli
20
+ ```
21
+
22
+ ## Basic Usage
23
+
24
+ ```bash
25
+ vertesia help
26
+ ```
27
+
28
+ ## Documentation
29
+
30
+ See https://docs.vertesiahq.com/cli
31
+
32
+ ## License
33
+
34
+ Apache-2.0
package/bin/app.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import '../lib/index.js'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import '../lib/agent/docker-credential.js'
@@ -0,0 +1,11 @@
1
+ import { Command } from "commander";
2
+ export declare function listApps(program: Command, _options: Record<string, any>): Promise<void>;
3
+ export declare function getApp(program: Command, appId: string, _options: Record<string, any>): Promise<void>;
4
+ export declare function createApp(program: Command, options: Record<string, any>): Promise<void>;
5
+ export declare function updateApp(program: Command, appId: string, options: Record<string, any>): Promise<void>;
6
+ export declare function installApp(program: Command, appId: string, options: Record<string, any>): Promise<void>;
7
+ export declare function deleteAppInstallation(program: Command, installationId: string, _options: Record<string, any>): Promise<void>;
8
+ export declare function listInstalledApps(program: Command, options: Record<string, any>): Promise<void>;
9
+ export declare function getAppInstallation(program: Command, appName: string, _options: Record<string, any>): Promise<void>;
10
+ export declare function updateAppInstallationSettings(program: Command, appId: string, options: Record<string, any>): Promise<void>;
11
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/apps/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAiB7E;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAY1F;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA0D7E;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAgC5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA6B7F;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAKlH;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAoBrF;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAyCxG;AAED,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAoChH"}
@@ -0,0 +1,246 @@
1
+ import { AccessControlPrincipalType, AccessControlResourceType, ProjectRoles } from "@vertesia/common";
2
+ import colors from "ansi-colors";
3
+ import { readFile } from "fs/promises";
4
+ import { getClient } from "../client.js";
5
+ export async function listApps(program, _options) {
6
+ const client = await getClient(program);
7
+ const apps = await client.apps.list();
8
+ if (apps.length === 0) {
9
+ console.log("No apps found.");
10
+ return;
11
+ }
12
+ console.log(`Found ${apps.length} app(s):\n`);
13
+ apps.forEach(app => {
14
+ console.log(`${colors.bold(app.name)} [${app.id}]`);
15
+ if (app.description) {
16
+ console.log(` ${colors.dim(app.description)}`);
17
+ }
18
+ console.log();
19
+ });
20
+ }
21
+ export async function getApp(program, appId, _options) {
22
+ const client = await getClient(program);
23
+ const apps = await client.apps.list();
24
+ const app = apps.find(a => a.id === appId || a.name === appId);
25
+ if (!app) {
26
+ console.log(`No app found with ID or name: ${appId}`);
27
+ return;
28
+ }
29
+ console.log(JSON.stringify(app, null, 2));
30
+ }
31
+ export async function createApp(program, options) {
32
+ const client = await getClient(program);
33
+ let manifest;
34
+ if (options.manifestFile) {
35
+ try {
36
+ const content = await readFile(options.manifestFile, 'utf-8');
37
+ manifest = JSON.parse(content);
38
+ }
39
+ catch (err) {
40
+ if (err.code === 'ENOENT') {
41
+ console.error(`${colors.red('✗')} File not found: ${options.manifestFile}`);
42
+ process.exit(1);
43
+ }
44
+ throw err;
45
+ }
46
+ }
47
+ else if (options.manifest) {
48
+ try {
49
+ manifest = JSON.parse(options.manifest);
50
+ }
51
+ catch (err) {
52
+ console.error(`${colors.red('✗')} Invalid JSON in manifest option`);
53
+ process.exit(1);
54
+ }
55
+ }
56
+ else {
57
+ console.error(`${colors.red('✗')} Either --manifest or --manifest-file must be provided`);
58
+ process.exit(1);
59
+ }
60
+ const result = await client.apps.create(manifest);
61
+ console.log(`${colors.green('✓')} App created successfully`);
62
+ console.log(` ID: ${result.id}`);
63
+ console.log(` Name: ${result.name}`);
64
+ // If --install flag is set, install the app and grant permissions
65
+ if (options.install) {
66
+ console.log();
67
+ // Install the app
68
+ const installation = await client.apps.install(result.id);
69
+ console.log(`${colors.green('✓')} App installed successfully`);
70
+ console.log(` Installation ID: ${installation.id}`);
71
+ // Get current user ID from JWT
72
+ const jwt = await client.getDecodedJWT();
73
+ if (jwt && jwt.sub) {
74
+ // Grant app_member role to the current user
75
+ await client.iam.aces.create({
76
+ principal: jwt.sub,
77
+ principal_type: AccessControlPrincipalType.user,
78
+ resource: installation.id,
79
+ resource_type: AccessControlResourceType.app,
80
+ role: ProjectRoles.app_member,
81
+ });
82
+ console.log(`${colors.green('✓')} Permissions granted to ${jwt.email || jwt.sub}`);
83
+ }
84
+ }
85
+ }
86
+ export async function updateApp(program, appId, options) {
87
+ const client = await getClient(program);
88
+ let manifest;
89
+ if (options.manifestFile) {
90
+ try {
91
+ const content = await readFile(options.manifestFile, 'utf-8');
92
+ manifest = JSON.parse(content);
93
+ }
94
+ catch (err) {
95
+ if (err.code === 'ENOENT') {
96
+ console.error(`${colors.red('✗')} File not found: ${options.manifestFile}`);
97
+ process.exit(1);
98
+ }
99
+ throw err;
100
+ }
101
+ }
102
+ else if (options.manifest) {
103
+ try {
104
+ manifest = JSON.parse(options.manifest);
105
+ }
106
+ catch (err) {
107
+ console.error(`${colors.red('✗')} Invalid JSON in manifest option`);
108
+ process.exit(1);
109
+ }
110
+ }
111
+ else {
112
+ console.error(`${colors.red('✗')} Either --manifest or --manifest-file must be provided`);
113
+ process.exit(1);
114
+ }
115
+ const result = await client.apps.update(appId, manifest);
116
+ console.log(`${colors.green('✓')} App updated successfully`);
117
+ console.log(` ID: ${result.id}`);
118
+ console.log(` Name: ${result.name}`);
119
+ }
120
+ export async function installApp(program, appId, options) {
121
+ const client = await getClient(program);
122
+ let settings;
123
+ if (options.settingsFile) {
124
+ try {
125
+ const content = await readFile(options.settingsFile, 'utf-8');
126
+ settings = JSON.parse(content);
127
+ }
128
+ catch (err) {
129
+ if (err.code === 'ENOENT') {
130
+ console.error(`${colors.red('✗')} File not found: ${options.settingsFile}`);
131
+ process.exit(1);
132
+ }
133
+ throw err;
134
+ }
135
+ }
136
+ else if (options.settings) {
137
+ try {
138
+ settings = JSON.parse(options.settings);
139
+ }
140
+ catch (err) {
141
+ console.error(`${colors.red('✗')} Invalid JSON in settings option`);
142
+ process.exit(1);
143
+ }
144
+ }
145
+ const result = await client.apps.install(appId, settings);
146
+ console.log(`${colors.green('✓')} App installed successfully`);
147
+ console.log(` Installation ID: ${result.id}`);
148
+ console.log(` App Manifest ID: ${result.manifest}`);
149
+ }
150
+ export async function deleteAppInstallation(program, installationId, _options) {
151
+ const client = await getClient(program);
152
+ await client.apps.uninstall(installationId);
153
+ console.log(`${colors.green('✓')} App uninstalled successfully`);
154
+ }
155
+ export async function listInstalledApps(program, options) {
156
+ const client = await getClient(program);
157
+ const kind = options.kind;
158
+ const apps = await client.apps.getInstalledApps(kind);
159
+ if (apps.length === 0) {
160
+ console.log("No installed apps found that you have access to.");
161
+ return;
162
+ }
163
+ console.log(`Found ${apps.length} installed app(s):\n`);
164
+ apps.forEach(app => {
165
+ console.log(`${colors.bold(app.manifest.name)} [${app.manifest.id}]`);
166
+ console.log(` Installation ID: ${app.id}`);
167
+ if (app.manifest.description) {
168
+ console.log(` ${colors.dim(app.manifest.description)}`);
169
+ }
170
+ console.log();
171
+ });
172
+ }
173
+ export async function getAppInstallation(program, appName, _options) {
174
+ const client = await getClient(program);
175
+ const installation = await client.apps.getAppInstallationByName(appName);
176
+ if (!installation) {
177
+ console.log(`${colors.yellow('⚠')} App "${appName}" is not installed in this project.`);
178
+ return;
179
+ }
180
+ const permissions = await client.iam.aces.list({
181
+ level: 'resource',
182
+ resource: installation.id,
183
+ });
184
+ // Fetch user or group details for each permission
185
+ const enrichedPermissions = await Promise.all(permissions.map(async (perm) => {
186
+ let principalDetails;
187
+ try {
188
+ if (perm.principal_type === 'user') {
189
+ principalDetails = await client.users.get(perm.principal);
190
+ }
191
+ else if (perm.principal_type === 'group') {
192
+ principalDetails = await client.iam.groups.get(perm.principal);
193
+ }
194
+ }
195
+ catch (err) {
196
+ // If we can't fetch details, just use the ID
197
+ principalDetails = null;
198
+ }
199
+ return {
200
+ ...perm,
201
+ principal_details: principalDetails
202
+ };
203
+ }));
204
+ console.log(JSON.stringify({
205
+ ...installation,
206
+ permissions: enrichedPermissions
207
+ }, null, 2));
208
+ }
209
+ export async function updateAppInstallationSettings(program, appId, options) {
210
+ const client = await getClient(program);
211
+ let settings;
212
+ if (options.settingsFile) {
213
+ try {
214
+ const content = await readFile(options.settingsFile, 'utf-8');
215
+ settings = JSON.parse(content);
216
+ }
217
+ catch (err) {
218
+ if (err.code === 'ENOENT') {
219
+ console.error(`${colors.red('✗')} File not found: ${options.settingsFile}`);
220
+ process.exit(1);
221
+ }
222
+ throw err;
223
+ }
224
+ }
225
+ else if (options.settings) {
226
+ try {
227
+ settings = JSON.parse(options.settings);
228
+ }
229
+ catch (err) {
230
+ console.error(`${colors.red('✗')} Invalid JSON in settings option`);
231
+ process.exit(1);
232
+ }
233
+ }
234
+ else {
235
+ console.error(`${colors.red('✗')} Either --settings or --settings-file must be provided`);
236
+ process.exit(1);
237
+ }
238
+ const result = await client.apps.updateInstallationSettings({
239
+ app_id: appId,
240
+ settings
241
+ });
242
+ console.log(`${colors.green('✓')} App settings updated successfully`);
243
+ console.log(` Installation ID: ${result.id}`);
244
+ console.log(` App Name: ${result.manifest.name}`);
245
+ }
246
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/apps/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerAppsCommand(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apps/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA8EnD"}
@@ -0,0 +1,104 @@
1
+ import { createApp, deleteAppInstallation, getApp, getAppInstallation, installApp, listApps, listInstalledApps, updateApp, updateAppInstallationSettings } from "./commands.js";
2
+ const exampleManifest = {
3
+ name: "my-app",
4
+ title: "My App",
5
+ description: "A sample app",
6
+ publisher: "your-org",
7
+ visibility: 'private',
8
+ status: "beta",
9
+ ui: {
10
+ src: "/plugins/my-app",
11
+ isolation: "shadow"
12
+ },
13
+ tool_collections: [
14
+ {
15
+ url: "https://example.com/tools",
16
+ type: "vertesia_sdk"
17
+ },
18
+ {
19
+ url: "https://example.com/mcp-server",
20
+ type: "mcp",
21
+ name: "example-mcp-server",
22
+ description: "Example MCP server for testing",
23
+ namespace: "example",
24
+ auth: "oauth"
25
+ }
26
+ ],
27
+ settings_schema: {
28
+ type: "object",
29
+ properties: {
30
+ apiKey: { type: "string" }
31
+ }
32
+ }
33
+ };
34
+ export function registerAppsCommand(program) {
35
+ const apps = program.command("apps")
36
+ .description("Manage applications and app installations");
37
+ apps.command("list")
38
+ .description("List all available app manifests")
39
+ .action(async (options) => {
40
+ await listApps(program, options);
41
+ });
42
+ apps.command("get <appId>")
43
+ .description("Get an app manifest by ID or name")
44
+ .action(async (appId, options) => {
45
+ await getApp(program, appId, options);
46
+ });
47
+ apps.command("create")
48
+ .description('Create a new app manifest')
49
+ .option('-m, --manifest <json>', 'Manifest as JSON string')
50
+ .option('-f, --manifest-file <file>', 'Manifest from a JSON file')
51
+ .option('-i, --install', 'Install the app after creation and grant permissions to the creator')
52
+ .addHelpText('after', `
53
+ Example manifest.json:
54
+
55
+ ${JSON.stringify(exampleManifest, null, 2)}
56
+ `)
57
+ .action(async (options) => {
58
+ await createApp(program, options);
59
+ });
60
+ apps.command("update <appId>")
61
+ .description('Update an existing app manifest')
62
+ .option('-m, --manifest <json>', 'Manifest as JSON string')
63
+ .option('-f, --manifest-file <file>', 'Manifest from a JSON file')
64
+ .addHelpText('after', `
65
+ Example manifest.json:
66
+
67
+ ${JSON.stringify(exampleManifest, null, 2)}
68
+ `)
69
+ .action(async (appId, options) => {
70
+ await updateApp(program, appId, options);
71
+ });
72
+ apps.command("install <appId>")
73
+ .description("Install an app in the current project")
74
+ .option('-s, --settings <json>', 'Settings as JSON string')
75
+ .option('-f, --settings-file <file>', 'Settings from a JSON file')
76
+ .action(async (appId, options) => {
77
+ await installApp(program, appId, options);
78
+ });
79
+ apps.command("uninstall <installationId>")
80
+ .alias("remove")
81
+ .description("Uninstall an app from the current project")
82
+ .action(async (installationId, options) => {
83
+ await deleteAppInstallation(program, installationId, options);
84
+ });
85
+ apps.command("list-installed")
86
+ .description("List installed apps you have access to in the current project")
87
+ .option('-k, --kind <kind>', 'Filter by installation kind (e.g., agent, tool)')
88
+ .action(async (options) => {
89
+ await listInstalledApps(program, options);
90
+ });
91
+ apps.command("get-installation <appName>")
92
+ .description("Get an app installation by name")
93
+ .action(async (appName, options) => {
94
+ await getAppInstallation(program, appName, options);
95
+ });
96
+ apps.command("settings <appId>")
97
+ .description("Update app installation settings")
98
+ .option('-s, --settings <json>', 'Settings as JSON string')
99
+ .option('-f, --settings-file <file>', 'Settings from a JSON file')
100
+ .action(async (appId, options) => {
101
+ await updateAppInstallationSettings(program, appId, options);
102
+ });
103
+ }
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apps/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from "commander";
2
+ export declare function uploadArtifact(program: Command, file: string | undefined, options: Record<string, any>): Promise<void>;
3
+ export declare function downloadArtifact(program: Command, name: string, options: Record<string, any>): Promise<void>;
4
+ export declare function listArtifacts(program: Command, options: Record<string, any>): Promise<void>;
5
+ export declare function getArtifactUrl(program: Command, name: string, options: Record<string, any>): Promise<void>;
6
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/artifacts/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAuB5G;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAgBlG;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAWjF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAMhG"}
@@ -0,0 +1,75 @@
1
+ import { createReadStream, createWriteStream } from "fs";
2
+ import { basename } from "path";
3
+ import { pipeline } from "stream/promises";
4
+ import { Readable } from "stream";
5
+ import { NodeStreamSource } from "@vertesia/client/node";
6
+ import { getClient } from "../client.js";
7
+ // Artifact storage prefix - matches the client's ARTIFACTS_PREFIX
8
+ const ARTIFACTS_PREFIX = "agents";
9
+ /**
10
+ * Get run ID from options or environment variable
11
+ */
12
+ function getRunId(options) {
13
+ const runId = options.runId || process.env.VERTESIA_RUN_ID;
14
+ if (!runId) {
15
+ console.error("Error: Run ID not specified. Use --run-id or set VERTESIA_RUN_ID env var");
16
+ process.exit(1);
17
+ }
18
+ return runId;
19
+ }
20
+ export async function uploadArtifact(program, file, options) {
21
+ const client = await getClient(program);
22
+ const runId = getRunId(options);
23
+ let stream;
24
+ let name;
25
+ if (!file || file === '-') {
26
+ // Read from stdin
27
+ if (!options.name) {
28
+ console.error("Error: --name is required when uploading from stdin");
29
+ process.exit(1);
30
+ }
31
+ stream = process.stdin;
32
+ name = options.name;
33
+ }
34
+ else {
35
+ stream = createReadStream(file);
36
+ name = options.name || basename(file);
37
+ }
38
+ const source = new NodeStreamSource(stream, name, options.mime);
39
+ const result = await client.files.uploadArtifact(runId, name, source);
40
+ console.log(`Uploaded artifact: ${result}`);
41
+ }
42
+ export async function downloadArtifact(program, name, options) {
43
+ const client = await getClient(program);
44
+ const runId = getRunId(options);
45
+ const stream = await client.files.downloadArtifact(runId, name);
46
+ if (options.output) {
47
+ const nodeStream = Readable.fromWeb(stream);
48
+ const writeStream = createWriteStream(options.output);
49
+ await pipeline(nodeStream, writeStream);
50
+ console.log(`Downloaded to: ${options.output}`);
51
+ }
52
+ else {
53
+ // Stream to stdout
54
+ const nodeStream = Readable.fromWeb(stream);
55
+ await pipeline(nodeStream, process.stdout);
56
+ }
57
+ }
58
+ export async function listArtifacts(program, options) {
59
+ const client = await getClient(program);
60
+ const runId = getRunId(options);
61
+ const artifacts = await client.files.listArtifacts(runId);
62
+ // Show filenames only, strip the agents/{runId}/ prefix
63
+ const prefix = `${ARTIFACTS_PREFIX}/${runId}/`;
64
+ artifacts.forEach(a => {
65
+ const filename = a.startsWith(prefix) ? a.slice(prefix.length) : a;
66
+ console.log(filename);
67
+ });
68
+ }
69
+ export async function getArtifactUrl(program, name, options) {
70
+ const client = await getClient(program);
71
+ const runId = getRunId(options);
72
+ const { url } = await client.files.getArtifactDownloadUrl(runId, name);
73
+ console.log(url);
74
+ }
75
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/artifacts/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerArtifactsCommand(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QAkCxD"}
@@ -0,0 +1,33 @@
1
+ import { downloadArtifact, getArtifactUrl, listArtifacts, uploadArtifact } from "./commands.js";
2
+ export function registerArtifactsCommand(program) {
3
+ const artifacts = program.command("artifacts")
4
+ .description("Manage agent artifacts. Run ID can be inferred from VERTESIA_RUN_ID env var.");
5
+ artifacts.command("upload [file]")
6
+ .description("Upload an artifact to the current agent run. Use '-' or omit file to read from stdin.")
7
+ .option("--run-id [runId]", "Run ID (defaults to VERTESIA_RUN_ID env var)")
8
+ .option("--name [name]", "Artifact name (required for stdin, defaults to filename otherwise)")
9
+ .option("--mime [mimeType]", "MIME type of the file")
10
+ .action(async (file, options) => {
11
+ await uploadArtifact(program, file, options);
12
+ });
13
+ artifacts.command("download <name>")
14
+ .description("Download an artifact from an agent run")
15
+ .option("--run-id [runId]", "Run ID (defaults to VERTESIA_RUN_ID env var)")
16
+ .option("-o, --output [path]", "Output file path (defaults to stdout)")
17
+ .action(async (name, options) => {
18
+ await downloadArtifact(program, name, options);
19
+ });
20
+ artifacts.command("list")
21
+ .description("List artifacts for an agent run")
22
+ .option("--run-id [runId]", "Run ID (defaults to VERTESIA_RUN_ID env var)")
23
+ .action(async (options) => {
24
+ await listArtifacts(program, options);
25
+ });
26
+ artifacts.command("url <name>")
27
+ .description("Get download URL for an artifact")
28
+ .option("--run-id [runId]", "Run ID (defaults to VERTESIA_RUN_ID env var)")
29
+ .action(async (name, options) => {
30
+ await getArtifactUrl(program, name, options);
31
+ });
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/artifacts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;SACzC,WAAW,CAAC,8EAA8E,CAAC,CAAC;IAEjG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7B,WAAW,CAAC,uFAAuF,CAAC;SACpG,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;SAC1E,MAAM,CAAC,eAAe,EAAE,oEAAoE,CAAC;SAC7F,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAA4B,EAAE,EAAE;QACrE,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEP,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC/B,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;SAC1E,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA4B,EAAE,EAAE;QACzD,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEP,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SACpB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC3C,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEP,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;SAC1B,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAA4B,EAAE,EAAE;QACzD,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { VertesiaClient } from "@vertesia/client";
2
+ import { Command } from "commander";
3
+ /**
4
+ * Get the Vertesia client instance.
5
+ * Supports initialization from:
6
+ * 1. VERTESIA_TOKEN env var (contains embedded endpoint URLs)
7
+ * 2. Profile configuration
8
+ * 3. Individual env vars (VERTESIA_APIKEY, VERTESIA_SERVER_URL, etc.)
9
+ * 4. Legacy env vars (COMPOSABLE_PROMPTS_* - deprecated)
10
+ */
11
+ export declare function getClient(_program?: Command): Promise<VertesiaClient>;
12
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAK3E"}