@vertesia/cli 1.2.0 → 1.4.0-dev.20260615.042549Z

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 (218) hide show
  1. package/lib/agent-context.d.ts +8 -2
  2. package/lib/agent-context.d.ts.map +1 -1
  3. package/lib/agent-context.js +9 -13
  4. package/lib/agent-context.js.map +1 -1
  5. package/lib/agents/index.d.ts +3 -0
  6. package/lib/agents/index.d.ts.map +1 -0
  7. package/lib/agents/index.js +555 -0
  8. package/lib/agents/index.js.map +1 -0
  9. package/lib/apps/commands.d.ts +25 -10
  10. package/lib/apps/commands.d.ts.map +1 -1
  11. package/lib/apps/commands.js +34 -26
  12. package/lib/apps/commands.js.map +1 -1
  13. package/lib/apps/index.d.ts +1 -1
  14. package/lib/apps/index.d.ts.map +1 -1
  15. package/lib/apps/index.js +40 -41
  16. package/lib/apps/index.js.map +1 -1
  17. package/lib/artifacts/commands.d.ts +13 -5
  18. package/lib/artifacts/commands.d.ts.map +1 -1
  19. package/lib/artifacts/commands.js +10 -10
  20. package/lib/artifacts/commands.js.map +1 -1
  21. package/lib/artifacts/index.d.ts +1 -1
  22. package/lib/artifacts/index.d.ts.map +1 -1
  23. package/lib/artifacts/index.js +22 -17
  24. package/lib/artifacts/index.js.map +1 -1
  25. package/lib/client.d.ts +2 -2
  26. package/lib/client.d.ts.map +1 -1
  27. package/lib/client.js +45 -21
  28. package/lib/client.js.map +1 -1
  29. package/lib/data/commands.d.ts +16 -3
  30. package/lib/data/commands.d.ts.map +1 -1
  31. package/lib/data/commands.js +36 -43
  32. package/lib/data/commands.js.map +1 -1
  33. package/lib/data/index.d.ts +1 -1
  34. package/lib/data/index.d.ts.map +1 -1
  35. package/lib/data/index.js +14 -15
  36. package/lib/data/index.js.map +1 -1
  37. package/lib/envs/index.d.ts +2 -2
  38. package/lib/envs/index.d.ts.map +1 -1
  39. package/lib/envs/index.js +12 -10
  40. package/lib/envs/index.js.map +1 -1
  41. package/lib/iam/commands.d.ts +18 -0
  42. package/lib/iam/commands.d.ts.map +1 -0
  43. package/lib/iam/commands.js +67 -0
  44. package/lib/iam/commands.js.map +1 -0
  45. package/lib/iam/index.d.ts +3 -0
  46. package/lib/iam/index.d.ts.map +1 -0
  47. package/lib/iam/index.js +34 -0
  48. package/lib/iam/index.js.map +1 -0
  49. package/lib/index.js +158 -121
  50. package/lib/index.js.map +1 -1
  51. package/lib/interactions/index.d.ts +2 -2
  52. package/lib/interactions/index.d.ts.map +1 -1
  53. package/lib/interactions/index.js +20 -14
  54. package/lib/interactions/index.js.map +1 -1
  55. package/lib/objects/commands.d.ts +49 -14
  56. package/lib/objects/commands.d.ts.map +1 -1
  57. package/lib/objects/commands.js +185 -32
  58. package/lib/objects/commands.js.map +1 -1
  59. package/lib/objects/index.d.ts +1 -1
  60. package/lib/objects/index.d.ts.map +1 -1
  61. package/lib/objects/index.js +46 -13
  62. package/lib/objects/index.js.map +1 -1
  63. package/lib/package.d.ts +7 -3
  64. package/lib/package.d.ts.map +1 -1
  65. package/lib/package.js +25 -13
  66. package/lib/package.js.map +1 -1
  67. package/lib/profiles/auth.d.ts +14 -0
  68. package/lib/profiles/auth.d.ts.map +1 -0
  69. package/lib/profiles/auth.js +65 -0
  70. package/lib/profiles/auth.js.map +1 -0
  71. package/lib/profiles/commands.d.ts +15 -4
  72. package/lib/profiles/commands.d.ts.map +1 -1
  73. package/lib/profiles/commands.js +384 -57
  74. package/lib/profiles/commands.js.map +1 -1
  75. package/lib/profiles/git.d.ts +9 -0
  76. package/lib/profiles/git.d.ts.map +1 -0
  77. package/lib/profiles/git.js +211 -0
  78. package/lib/profiles/git.js.map +1 -0
  79. package/lib/profiles/index.d.ts +17 -7
  80. package/lib/profiles/index.d.ts.map +1 -1
  81. package/lib/profiles/index.js +215 -66
  82. package/lib/profiles/index.js.map +1 -1
  83. package/lib/profiles/keyring.d.ts +23 -0
  84. package/lib/profiles/keyring.d.ts.map +1 -0
  85. package/lib/profiles/keyring.js +111 -0
  86. package/lib/profiles/keyring.js.map +1 -0
  87. package/lib/profiles/oauth.d.ts +17 -0
  88. package/lib/profiles/oauth.d.ts.map +1 -0
  89. package/lib/profiles/oauth.js +414 -0
  90. package/lib/profiles/oauth.js.map +1 -0
  91. package/lib/profiles/server/cors.d.ts +1 -1
  92. package/lib/profiles/server/cors.d.ts.map +1 -1
  93. package/lib/profiles/server/cors.js +1 -1
  94. package/lib/profiles/server/cors.js.map +1 -1
  95. package/lib/profiles/server/index.d.ts +9 -1
  96. package/lib/profiles/server/index.d.ts.map +1 -1
  97. package/lib/profiles/server/index.js +111 -47
  98. package/lib/profiles/server/index.js.map +1 -1
  99. package/lib/profiles/server/server.d.ts +1 -1
  100. package/lib/profiles/server/server.d.ts.map +1 -1
  101. package/lib/profiles/server/server.js +10 -13
  102. package/lib/profiles/server/server.js.map +1 -1
  103. package/lib/projects/index.d.ts +2 -1
  104. package/lib/projects/index.d.ts.map +1 -1
  105. package/lib/projects/index.js +53 -5
  106. package/lib/projects/index.js.map +1 -1
  107. package/lib/run/executor.d.ts +11 -7
  108. package/lib/run/executor.d.ts.map +1 -1
  109. package/lib/run/executor.js +30 -23
  110. package/lib/run/executor.js.map +1 -1
  111. package/lib/run/index.d.ts +14 -2
  112. package/lib/run/index.d.ts.map +1 -1
  113. package/lib/run/index.js +14 -12
  114. package/lib/run/index.js.map +1 -1
  115. package/lib/runs/index.d.ts +18 -2
  116. package/lib/runs/index.d.ts.map +1 -1
  117. package/lib/runs/index.js +9 -7
  118. package/lib/runs/index.js.map +1 -1
  119. package/lib/utils/console.d.ts +1 -1
  120. package/lib/utils/console.d.ts.map +1 -1
  121. package/lib/utils/console.js +24 -33
  122. package/lib/utils/console.js.map +1 -1
  123. package/lib/utils/options.d.ts +8 -0
  124. package/lib/utils/options.d.ts.map +1 -0
  125. package/lib/utils/options.js +19 -0
  126. package/lib/utils/options.js.map +1 -0
  127. package/lib/utils/stdio.js +3 -2
  128. package/lib/utils/stdio.js.map +1 -1
  129. package/lib/workflows/commands.d.ts +44 -13
  130. package/lib/workflows/commands.d.ts.map +1 -1
  131. package/lib/workflows/commands.js +69 -50
  132. package/lib/workflows/commands.js.map +1 -1
  133. package/lib/workflows/index.d.ts +1 -1
  134. package/lib/workflows/index.d.ts.map +1 -1
  135. package/lib/workflows/index.js +56 -56
  136. package/lib/workflows/index.js.map +1 -1
  137. package/lib/workflows/json-loader.d.ts +1 -1
  138. package/lib/workflows/json-loader.d.ts.map +1 -1
  139. package/lib/workflows/json-loader.js +5 -4
  140. package/lib/workflows/json-loader.js.map +1 -1
  141. package/lib/workflows/streams.d.ts +8 -1
  142. package/lib/workflows/streams.d.ts.map +1 -1
  143. package/lib/workflows/streams.js +107 -84
  144. package/lib/workflows/streams.js.map +1 -1
  145. package/lib/workflows/ts-loader.d.ts +1 -1
  146. package/lib/workflows/ts-loader.d.ts.map +1 -1
  147. package/lib/workflows/ts-loader.js +21 -20
  148. package/lib/workflows/ts-loader.js.map +1 -1
  149. package/lib/workflows/validation.d.ts +1 -1
  150. package/lib/workflows/validation.d.ts.map +1 -1
  151. package/lib/workflows/validation.js +11 -11
  152. package/lib/workflows/validation.js.map +1 -1
  153. package/package.json +22 -25
  154. package/bin/docker-credential-vertesia.js +0 -3
  155. package/lib/codegen/CodeBuilder.d.ts +0 -16
  156. package/lib/codegen/CodeBuilder.d.ts.map +0 -1
  157. package/lib/codegen/CodeBuilder.js +0 -99
  158. package/lib/codegen/CodeBuilder.js.map +0 -1
  159. package/lib/codegen/InteractionVersion.d.ts +0 -29
  160. package/lib/codegen/InteractionVersion.d.ts.map +0 -1
  161. package/lib/codegen/InteractionVersion.js +0 -80
  162. package/lib/codegen/InteractionVersion.js.map +0 -1
  163. package/lib/codegen/index.d.ts +0 -3
  164. package/lib/codegen/index.d.ts.map +0 -1
  165. package/lib/codegen/index.js +0 -30
  166. package/lib/codegen/index.js.map +0 -1
  167. package/lib/codegen/template.d.ts +0 -3
  168. package/lib/codegen/template.d.ts.map +0 -1
  169. package/lib/codegen/template.js +0 -28
  170. package/lib/codegen/template.js.map +0 -1
  171. package/lib/codegen/utils.d.ts +0 -2
  172. package/lib/codegen/utils.d.ts.map +0 -1
  173. package/lib/codegen/utils.js +0 -4
  174. package/lib/codegen/utils.js.map +0 -1
  175. package/lib/datagen/index.d.ts +0 -3
  176. package/lib/datagen/index.d.ts.map +0 -1
  177. package/lib/datagen/index.js +0 -81
  178. package/lib/datagen/index.js.map +0 -1
  179. package/lib/memory/index.d.ts +0 -3
  180. package/lib/memory/index.d.ts.map +0 -1
  181. package/lib/memory/index.js +0 -15
  182. package/lib/memory/index.js.map +0 -1
  183. package/lib/worker/commands.d.ts +0 -11
  184. package/lib/worker/commands.d.ts.map +0 -1
  185. package/lib/worker/commands.js +0 -173
  186. package/lib/worker/commands.js.map +0 -1
  187. package/lib/worker/connect.d.ts +0 -7
  188. package/lib/worker/connect.d.ts.map +0 -1
  189. package/lib/worker/connect.js +0 -68
  190. package/lib/worker/connect.js.map +0 -1
  191. package/lib/worker/docker-credential.d.ts +0 -2
  192. package/lib/worker/docker-credential.d.ts.map +0 -1
  193. package/lib/worker/docker-credential.js +0 -51
  194. package/lib/worker/docker-credential.js.map +0 -1
  195. package/lib/worker/docker.d.ts +0 -10
  196. package/lib/worker/docker.d.ts.map +0 -1
  197. package/lib/worker/docker.js +0 -93
  198. package/lib/worker/docker.js.map +0 -1
  199. package/lib/worker/index.d.ts +0 -3
  200. package/lib/worker/index.d.ts.map +0 -1
  201. package/lib/worker/index.js +0 -90
  202. package/lib/worker/index.js.map +0 -1
  203. package/lib/worker/project.d.ts +0 -58
  204. package/lib/worker/project.d.ts.map +0 -1
  205. package/lib/worker/project.js +0 -125
  206. package/lib/worker/project.js.map +0 -1
  207. package/lib/worker/refresh.d.ts +0 -6
  208. package/lib/worker/refresh.d.ts.map +0 -1
  209. package/lib/worker/refresh.js +0 -47
  210. package/lib/worker/refresh.js.map +0 -1
  211. package/lib/worker/registry.d.ts +0 -7
  212. package/lib/worker/registry.d.ts.map +0 -1
  213. package/lib/worker/registry.js +0 -47
  214. package/lib/worker/registry.js.map +0 -1
  215. package/lib/worker/version.d.ts +0 -2
  216. package/lib/worker/version.d.ts.map +0 -1
  217. package/lib/worker/version.js +0 -4
  218. package/lib/worker/version.js.map +0 -1
package/lib/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { VertesiaClient } from "@vertesia/client";
2
- import { Command } from "commander";
1
+ import { VertesiaClient } from '@vertesia/client';
2
+ import type { Command } from 'commander';
3
3
  /**
4
4
  * Get the Vertesia client instance.
5
5
  * Supports initialization from:
@@ -1 +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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAK3E"}
package/lib/client.js CHANGED
@@ -1,5 +1,7 @@
1
- import { VertesiaClient } from "@vertesia/client";
2
- import { config } from "./profiles/index.js";
1
+ import { VertesiaClient } from '@vertesia/client';
2
+ import { ensureProfileAccessToken } from './profiles/auth.js';
3
+ import { config } from './profiles/index.js';
4
+ import { isKeyringAvailable } from './profiles/keyring.js';
3
5
  let _client;
4
6
  /**
5
7
  * Get the Vertesia client instance.
@@ -16,29 +18,51 @@ export async function getClient(_program) {
16
18
  return _client;
17
19
  }
18
20
  async function createClient(profile) {
19
- // Priority 1: VERTESIA_TOKEN (contains embedded endpoint URLs, used by agent sandboxes)
20
21
  const token = process.env.VERTESIA_TOKEN;
21
- if (token) {
22
- return VertesiaClient.fromAuthToken(token);
23
- }
24
- // Priority 2: Profile config or individual env vars
25
- // Support both new VERTESIA_* and legacy COMPOSABLE_PROMPTS_* env vars
22
+ const preferProfileEndpoints = Boolean(profile && config.explicitProfile);
23
+ // Endpoint env vars are useful for localhost development, but an explicit
24
+ // --profile must not be silently redirected by inherited local env vars.
26
25
  const env = {
27
- apikey: profile?.apikey
28
- || process.env.VERTESIA_APIKEY
29
- || process.env.COMPOSABLE_PROMPTS_APIKEY,
30
- serverUrl: profile?.studio_server_url
31
- || process.env.VERTESIA_SERVER_URL
32
- || process.env.COMPOSABLE_PROMPTS_SERVER_URL,
33
- storeUrl: profile?.zeno_server_url
34
- || process.env.VERTESIA_STORE_URL
35
- || process.env.ZENO_SERVER_URL,
36
- projectId: profile?.project
37
- || process.env.VERTESIA_PROJECT_ID
38
- || process.env.COMPOSABLE_PROMPTS_PROJECT_ID
39
- || undefined,
26
+ apikey: process.env.VERTESIA_APIKEY || process.env.COMPOSABLE_PROMPTS_APIKEY,
27
+ serverUrl: preferProfileEndpoints
28
+ ? profile?.studio_server_url
29
+ : process.env.VERTESIA_SERVER_URL || process.env.COMPOSABLE_PROMPTS_SERVER_URL,
30
+ storeUrl: preferProfileEndpoints
31
+ ? profile?.zeno_server_url
32
+ : process.env.VERTESIA_STORE_URL || process.env.ZENO_SERVER_URL,
33
+ projectId: process.env.VERTESIA_PROJECT_ID ||
34
+ process.env.COMPOSABLE_PROMPTS_PROJECT_ID ||
35
+ profile?.project ||
36
+ undefined,
40
37
  sessionTags: profile?.session_tags ? profile.session_tags.split(/\s*,\s*/) : 'cli',
41
38
  };
39
+ if (!env.serverUrl && profile?.studio_server_url) {
40
+ env.serverUrl = profile.studio_server_url;
41
+ }
42
+ if (!env.storeUrl && profile?.zeno_server_url) {
43
+ env.storeUrl = profile.zeno_server_url;
44
+ }
45
+ // VERTESIA_TOKEN contains endpoint URLs, but explicit endpoint env vars
46
+ // should win so the same token can be used against a local server.
47
+ if (token) {
48
+ const endpoints = env.serverUrl && env.storeUrl
49
+ ? {
50
+ studio: env.serverUrl,
51
+ store: env.storeUrl,
52
+ token: process.env.VERTESIA_TOKEN_SERVER_URL,
53
+ }
54
+ : undefined;
55
+ return VertesiaClient.fromAuthToken(token, undefined, endpoints);
56
+ }
57
+ if (!env.apikey && profile) {
58
+ env.apikey = await ensureProfileAccessToken(profile);
59
+ if (!env.apikey && !profile.apikey) {
60
+ if (!isKeyringAvailable()) {
61
+ throw new Error('No keyring-backed auth token is available for the selected profile on this system. Use VERTESIA_APIKEY or VERTESIA_TOKEN instead.');
62
+ }
63
+ throw new Error('No auth token is stored for the selected profile. Run `vertesia auth refresh` to authenticate again.');
64
+ }
65
+ }
42
66
  return new VertesiaClient(env);
43
67
  }
44
68
  //# sourceMappingURL=client.js.map
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAGtD,IAAI,OAAmC,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAA4B;IACpD,wFAAwF;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,oDAAoD;IACpD,uEAAuE;IACvE,MAAM,GAAG,GAAG;QACR,MAAM,EAAE,OAAO,EAAE,MAAM;eAChB,OAAO,CAAC,GAAG,CAAC,eAAe;eAC3B,OAAO,CAAC,GAAG,CAAC,yBAAyB;QAC5C,SAAS,EAAE,OAAO,EAAE,iBAAiB;eAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB;eAC/B,OAAO,CAAC,GAAG,CAAC,6BAA8B;QACjD,QAAQ,EAAE,OAAO,EAAE,eAAe;eAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB;eAC9B,OAAO,CAAC,GAAG,CAAC,eAAgB;QACnC,SAAS,EAAE,OAAO,EAAE,OAAO;eACpB,OAAO,CAAC,GAAG,CAAC,mBAAmB;eAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B;eACzC,SAAS;QAChB,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;KACrF,CAAC;IAEF,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
- import { Command } from "commander";
2
- export declare function listDataStores(program: Command, options: Record<string, any>): Promise<void>;
3
- export declare function importData(program: Command, storeId: string, tableName: string, input: string | undefined, options: Record<string, any>): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ import { type CliOptions } from '../utils/options.js';
3
+ type ImportDataOptions = CliOptions<{
4
+ json?: boolean;
5
+ mode?: string;
6
+ format?: string;
7
+ name?: string;
8
+ prefix?: string;
9
+ mime?: string;
10
+ message?: string;
11
+ }>;
12
+ export declare function listDataStores(program: Command, options: CliOptions<{
13
+ json?: boolean;
14
+ }>): Promise<void>;
15
+ export declare function importData(program: Command, storeId: string, tableName: string, input: string | undefined, options: ImportDataOptions): Promise<void>;
16
+ export {};
4
17
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/data/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAsBlF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA0B7I"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/data/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAKvE,KAAK,iBAAiB,GAAG,UAAU,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,iBAe7F;AAED,wBAAsB,UAAU,CAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,iBAAiB,iBA2B7B"}
@@ -1,12 +1,13 @@
1
- import { NodeStreamSource } from "@vertesia/client/node";
2
- import mime from "mime";
3
- import { randomUUID } from "node:crypto";
4
- import { basename, resolve } from "node:path";
5
- import { createReadStream } from "node:fs";
6
- import { getArtifactStorageId } from "../agent-context.js";
7
- import { getClient } from "../client.js";
8
- const IMPORT_MODES = new Set(["append", "replace"]);
9
- const IMPORT_FORMATS = new Set(["csv", "json", "parquet"]);
1
+ import { randomUUID } from 'node:crypto';
2
+ import { createReadStream } from 'node:fs';
3
+ import { basename, resolve } from 'node:path';
4
+ import { NodeStreamSource } from '@vertesia/client/node';
5
+ import mime from 'mime';
6
+ import { getArtifactStorageId } from '../agent-context.js';
7
+ import { getClient } from '../client.js';
8
+ import { getStringOption } from '../utils/options.js';
9
+ const IMPORT_MODES = new Set(['append', 'replace']);
10
+ const IMPORT_FORMATS = new Set(['csv', 'json', 'parquet']);
10
11
  export async function listDataStores(program, options) {
11
12
  const client = await getClient(program);
12
13
  const stores = await client.data.list();
@@ -14,16 +15,9 @@ export async function listDataStores(program, options) {
14
15
  console.log(JSON.stringify(stores, null, 2));
15
16
  return;
16
17
  }
17
- console.log("id\tname\tstatus\ttables\trows\tbytes");
18
+ console.log('id\tname\tstatus\ttables\trows\tbytes');
18
19
  stores.forEach((store) => {
19
- console.log([
20
- store.id,
21
- store.name,
22
- store.status,
23
- store.table_count,
24
- store.total_rows,
25
- store.storage_bytes,
26
- ].join("\t"));
20
+ console.log([store.id, store.name, store.status, store.table_count, store.total_rows, store.storage_bytes].join('\t'));
27
21
  });
28
22
  }
29
23
  export async function importData(program, storeId, tableName, input, options) {
@@ -49,8 +43,8 @@ export async function importData(program, storeId, tableName, input, options) {
49
43
  }
50
44
  }
51
45
  function normalizeMode(rawMode) {
52
- if (typeof rawMode !== "string" || rawMode.trim() === "") {
53
- return "append";
46
+ if (typeof rawMode !== 'string' || rawMode.trim() === '') {
47
+ return 'append';
54
48
  }
55
49
  const mode = rawMode.trim().toLowerCase();
56
50
  if (!IMPORT_MODES.has(mode)) {
@@ -60,7 +54,7 @@ function normalizeMode(rawMode) {
60
54
  return mode;
61
55
  }
62
56
  function normalizeFormat(rawFormat, fallbackName) {
63
- if (typeof rawFormat === "string" && rawFormat.trim() !== "") {
57
+ if (typeof rawFormat === 'string' && rawFormat.trim() !== '') {
64
58
  const format = rawFormat.trim().toLowerCase();
65
59
  if (IMPORT_FORMATS.has(format)) {
66
60
  return format;
@@ -72,38 +66,38 @@ function normalizeFormat(rawFormat, fallbackName) {
72
66
  if (inferred) {
73
67
  return inferred;
74
68
  }
75
- console.error("Error: Could not infer import format. Pass --format csv|json|parquet.");
69
+ console.error('Error: Could not infer import format. Pass --format csv|json|parquet.');
76
70
  process.exit(1);
77
71
  }
78
72
  function inferFormatFromName(name) {
79
73
  if (!name)
80
74
  return undefined;
81
75
  const lower = name.toLowerCase();
82
- if (lower.endsWith(".csv"))
83
- return "csv";
84
- if (lower.endsWith(".json") || lower.endsWith(".jsonl") || lower.endsWith(".ndjson"))
85
- return "json";
86
- if (lower.endsWith(".parquet"))
87
- return "parquet";
76
+ if (lower.endsWith('.csv'))
77
+ return 'csv';
78
+ if (lower.endsWith('.json') || lower.endsWith('.jsonl') || lower.endsWith('.ndjson'))
79
+ return 'json';
80
+ if (lower.endsWith('.parquet'))
81
+ return 'parquet';
88
82
  return undefined;
89
83
  }
90
84
  async function resolveImportSource(client, input, options) {
91
- const normalizedInput = typeof input === "string" && input.trim() !== "" ? input.trim() : "-";
92
- if (normalizedInput.startsWith("gs://") || normalizedInput.startsWith("s3://")) {
85
+ const normalizedInput = typeof input === 'string' && input.trim() !== '' ? input.trim() : '-';
86
+ if (normalizedInput.startsWith('gs://') || normalizedInput.startsWith('s3://')) {
93
87
  return {
94
88
  original: normalizedInput,
95
89
  tableData: {
96
- source: "gcs",
90
+ source: 'gcs',
97
91
  uri: normalizedInput,
98
92
  format: normalizeFormat(options.format, normalizedInput),
99
93
  },
100
94
  };
101
95
  }
102
- if (normalizedInput.startsWith("http://") || normalizedInput.startsWith("https://")) {
96
+ if (normalizedInput.startsWith('http://') || normalizedInput.startsWith('https://')) {
103
97
  return {
104
98
  original: normalizedInput,
105
99
  tableData: {
106
- source: "url",
100
+ source: 'url',
107
101
  uri: normalizedInput,
108
102
  format: normalizeFormat(options.format, normalizedInput),
109
103
  },
@@ -112,8 +106,8 @@ async function resolveImportSource(client, input, options) {
112
106
  const uploadName = resolveUploadName(normalizedInput, options.name);
113
107
  const format = normalizeFormat(options.format, uploadName);
114
108
  const uploadPath = buildImportUploadPath(uploadName, options);
115
- const mimeType = options.mime || mime.getType(uploadName) || "application/octet-stream";
116
- const source = normalizedInput === "-"
109
+ const mimeType = getStringOption(options.mime) || mime.getType(uploadName) || 'application/octet-stream';
110
+ const source = normalizedInput === '-'
117
111
  ? new NodeStreamSource(process.stdin, uploadName, mimeType, uploadPath)
118
112
  : new NodeStreamSource(createReadStream(resolve(normalizedInput)), uploadName, mimeType, uploadPath);
119
113
  const uploadedUri = await client.files.uploadFile(source);
@@ -121,30 +115,29 @@ async function resolveImportSource(client, input, options) {
121
115
  original: normalizedInput,
122
116
  uploadedUri,
123
117
  tableData: {
124
- source: "gcs",
118
+ source: 'gcs',
125
119
  uri: uploadedUri,
126
120
  format,
127
121
  },
128
122
  };
129
123
  }
130
124
  function resolveUploadName(input, explicitName) {
131
- if (typeof explicitName === "string" && explicitName.trim() !== "") {
125
+ if (typeof explicitName === 'string' && explicitName.trim() !== '') {
132
126
  return basename(explicitName.trim());
133
127
  }
134
- if (input === "-") {
135
- console.error("Error: --name is required when importing from stdin.");
128
+ if (input === '-') {
129
+ console.error('Error: --name is required when importing from stdin.');
136
130
  process.exit(1);
137
131
  }
138
132
  return basename(input);
139
133
  }
140
134
  function buildImportUploadPath(name, options) {
141
- const prefix = typeof options.prefix === "string" && options.prefix.trim() !== ""
142
- ? options.prefix.trim().replace(/^\/+|\/+$/g, "")
143
- : `imports/${getArtifactStorageId(options)}`;
135
+ const optionPrefix = getStringOption(options.prefix);
136
+ const prefix = optionPrefix ? optionPrefix.replace(/^\/+|\/+$/g, '') : `imports/${getArtifactStorageId(options)}`;
144
137
  return `${prefix}/${Date.now()}-${randomUUID()}-${name}`;
145
138
  }
146
139
  function buildImportMessage(tableName, original, explicitMessage) {
147
- if (typeof explicitMessage === "string" && explicitMessage.trim() !== "") {
140
+ if (typeof explicitMessage === 'string' && explicitMessage.trim() !== '') {
148
141
  return explicitMessage.trim();
149
142
  }
150
143
  return `Import ${original} into ${tableName} via vertesia CLI`;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/data/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/data/commands.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { Command } from "commander";
1
+ import type { Command } from 'commander';
2
2
  export declare function registerDataCommand(program: Command): void;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAuBnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAwBnD"}
package/lib/data/index.js CHANGED
@@ -1,22 +1,21 @@
1
- import { importData, listDataStores } from "./commands.js";
1
+ import { importData, listDataStores } from './commands.js';
2
2
  export function registerDataCommand(program) {
3
- const data = program.command("data")
4
- .description("Manage analytical data stores and imports");
5
- data.command("list")
6
- .description("List data stores in the current project")
7
- .option("--json", "Output full JSON instead of tab-separated text")
3
+ const data = program.command('data').description('Manage analytical data stores and imports');
4
+ data.command('list')
5
+ .description('List data stores in the current project')
6
+ .option('--json', 'Output full JSON instead of tab-separated text')
8
7
  .action(async (options) => {
9
8
  await listDataStores(program, options);
10
9
  });
11
- data.command("import <storeId> <tableName> [input]")
12
- .description("Import local files, stdin, or remote URIs directly into a data store table")
13
- .option("--mode [mode]", "Import mode: append or replace", "append")
14
- .option("--format [format]", "Input format: csv, json, or parquet. Inferred from filename when omitted.")
15
- .option("--message [message]", "Version history message for the import")
16
- .option("--name [name]", "Uploaded filename to use when reading from stdin or overriding a local filename")
17
- .option("--mime [mimeType]", "MIME type for uploads from local files or stdin")
18
- .option("--prefix [pathPrefix]", "Custom staging prefix in project storage for uploaded local files")
19
- .option("--json", "Output full JSON instead of a short summary")
10
+ data.command('import <storeId> <tableName> [input]')
11
+ .description('Import local files, stdin, or remote URIs directly into a data store table')
12
+ .option('--mode [mode]', 'Import mode: append or replace', 'append')
13
+ .option('--format [format]', 'Input format: csv, json, or parquet. Inferred from filename when omitted.')
14
+ .option('--message [message]', 'Version history message for the import')
15
+ .option('--name [name]', 'Uploaded filename to use when reading from stdin or overriding a local filename')
16
+ .option('--mime [mimeType]', 'MIME type for uploads from local files or stdin')
17
+ .option('--prefix [pathPrefix]', 'Custom staging prefix in project storage for uploaded local files')
18
+ .option('--json', 'Output full JSON instead of a short summary')
20
19
  .action(async (storeId, tableName, input, options) => {
21
20
  await importData(program, storeId, tableName, input, options);
22
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;SAC/B,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC3C,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEP,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC;SAC/C,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,eAAe,EAAE,gCAAgC,EAAE,QAAQ,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,2EAA2E,CAAC;SACxG,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,iFAAiF,CAAC;SAC1G,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,uBAAuB,EAAE,mEAAmE,CAAC;SACpG,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,SAAiB,EAAE,KAAyB,EAAE,OAA4B,EAAE,EAAE;QAC1G,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAE9F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SAClE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QAC/C,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEP,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC;SAC/C,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,eAAe,EAAE,gCAAgC,EAAE,QAAQ,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,2EAA2E,CAAC;SACxG,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,iFAAiF,CAAC;SAC1G,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,uBAAuB,EAAE,mEAAmE,CAAC;SACpG,MAAM,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SAC/D,MAAM,CACH,KAAK,EAAE,OAAe,EAAE,SAAiB,EAAE,KAAyB,EAAE,OAAgC,EAAE,EAAE;QACtG,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC,CACJ,CAAC;AACV,CAAC"}
@@ -1,3 +1,3 @@
1
- import { Command } from "commander";
2
- export declare function listEnvironments(program: Command, envId: string | undefined, options: Record<string, any>): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ export declare function listEnvironments(program: Command, envId: string | undefined, options: Record<string, unknown>): Promise<void>;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAW/G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAWnH"}
package/lib/envs/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { getClient } from "../client.js";
2
- import colors from "ansi-colors";
1
+ import colors from 'ansi-colors';
2
+ import { getClient } from '../client.js';
3
3
  export async function listEnvironments(program, envId, options) {
4
4
  const client = await getClient(program);
5
5
  if (envId) {
@@ -8,16 +8,18 @@ export async function listEnvironments(program, envId, options) {
8
8
  }
9
9
  else {
10
10
  const environments = await client.environments.list();
11
- environments.map(env => {
12
- console.log(env.name + ` [${env.id}]`);
13
- });
11
+ for (const env of environments) {
12
+ console.log(`${env.name} [${env.id}]`);
13
+ }
14
14
  }
15
15
  }
16
16
  function printEnv(env, _options) {
17
- console.log(colors.bold(env.name) + " [" + env.id + "]");
18
- console.log(colors.bold("Provider:"), env.provider);
19
- console.log(colors.bold("Description:"), env.description || 'n/a');
20
- console.log(colors.bold("Default Model:"), env.default_model);
21
- console.log(colors.bold("Enabled Models:"), env.enabled_models && env.enabled_models.length > 0 ? env.enabled_models.map(model => model.name).join(", ") : "n/a");
17
+ console.log(`${colors.bold(env.name)} [${env.id}]`);
18
+ console.log(colors.bold('Provider:'), env.provider);
19
+ console.log(colors.bold('Description:'), env.description || 'n/a');
20
+ console.log(colors.bold('Default Model:'), env.default_model);
21
+ console.log(colors.bold('Enabled Models:'), env.enabled_models && env.enabled_models.length > 0
22
+ ? env.enabled_models.map((model) => model.name).join(', ')
23
+ : 'n/a');
22
24
  }
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE,KAAyB,EAAE,OAA4B;IAC5G,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACtD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAyB,EAAE,QAA6B;IACtE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envs/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE,KAAyB,EAAE,OAAgC;IAChH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAyB,EAAE,QAAiC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CACP,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAC9B,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1D,CAAC,CAAC,KAAK,CACd,CAAC;AACN,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AccessControlPrincipalType, AccessControlResourceType, ProjectRoles } from '@vertesia/common';
2
+ import type { Command } from 'commander';
3
+ import { type CliOptions } from '../utils/options.js';
4
+ type CreateAceOptions = CliOptions<{
5
+ principal?: string;
6
+ principalType?: AccessControlPrincipalType;
7
+ resource?: string;
8
+ resourceType?: AccessControlResourceType;
9
+ role?: ProjectRoles;
10
+ principalProps?: string;
11
+ resourceProps?: string;
12
+ }>;
13
+ export declare function listAces(program: Command, _options: Record<string, unknown>): Promise<void>;
14
+ export declare function createAce(program: Command, options: CreateAceOptions): Promise<void>;
15
+ export declare function deleteAce(program: Command, aceId: string): Promise<void>;
16
+ export declare function listRoles(program: Command): Promise<void>;
17
+ export {};
18
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/iam/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,qBAAqB,CAAC;AAEvE,KAAK,gBAAgB,GAAG,UAAU,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC,CAAC;AAEH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAcjF;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,iBAyB1E;AAmBD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAI9D;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,iBAQ/C"}
@@ -0,0 +1,67 @@
1
+ import colors from 'ansi-colors';
2
+ import { getClient } from '../client.js';
3
+ import { getStringOption } from '../utils/options.js';
4
+ export async function listAces(program, _options) {
5
+ const client = await getClient(program);
6
+ const aces = await client.iam.aces.listProjectAces();
7
+ if (aces.length === 0) {
8
+ console.log('No access control entries found.');
9
+ return;
10
+ }
11
+ console.log(colors.bold('Principal\tType\tRole\tResource\tResource Type'));
12
+ for (const ace of aces) {
13
+ console.log(`${ace.principal}\t${ace.principal_type}\t${ace.role}\t${ace.resource}\t${ace.resource_type}`);
14
+ }
15
+ console.log(`\n${colors.gray(`${aces.length} entries`)}`);
16
+ }
17
+ export async function createAce(program, options) {
18
+ const client = await getClient(program);
19
+ const conditions = {};
20
+ const principalProps = getStringOption(options.principalProps);
21
+ const resourceProps = getStringOption(options.resourceProps);
22
+ if (principalProps) {
23
+ conditions.principal_props = JSON.parse(principalProps);
24
+ }
25
+ if (resourceProps) {
26
+ conditions.resource_props = JSON.parse(resourceProps);
27
+ }
28
+ const hasConditions = Object.keys(conditions).length > 0;
29
+ const ace = await client.iam.aces.create({
30
+ principal: requireStringOption(options.principal, '--principal'),
31
+ principal_type: requireEnumOption(options.principalType, '--principal-type'),
32
+ resource: requireStringOption(options.resource, '--resource'),
33
+ resource_type: requireEnumOption(options.resourceType, '--resource-type'),
34
+ role: requireEnumOption(options.role, '--role'),
35
+ conditions: hasConditions ? conditions : undefined,
36
+ });
37
+ console.log(`${colors.green('✓')} ACE created: ${ace.id}`);
38
+ }
39
+ function requireStringOption(value, name) {
40
+ const option = getStringOption(value);
41
+ if (!option) {
42
+ console.error(`${colors.red('✗')} ${name} is required`);
43
+ process.exit(1);
44
+ }
45
+ return option;
46
+ }
47
+ function requireEnumOption(value, name) {
48
+ if (!value) {
49
+ console.error(`${colors.red('✗')} ${name} is required`);
50
+ process.exit(1);
51
+ }
52
+ return value;
53
+ }
54
+ export async function deleteAce(program, aceId) {
55
+ const client = await getClient(program);
56
+ await client.iam.aces.delete(aceId);
57
+ console.log(`${colors.green('✓')} ACE deleted: ${aceId}`);
58
+ }
59
+ export async function listRoles(program) {
60
+ const client = await getClient(program);
61
+ const roles = await client.iam.roles.list();
62
+ console.log(colors.bold('Role\tPermissions'));
63
+ for (const role of roles) {
64
+ console.log(`${role.name}\t${role.permissions.join(', ')}`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/iam/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerIamCommand(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iam/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAqClD"}
@@ -0,0 +1,34 @@
1
+ import { createAce, deleteAce, listAces, listRoles } from './commands.js';
2
+ export function registerIamCommand(program) {
3
+ const iam = program.command('iam').description('Manage access control entries and roles');
4
+ // --- ACEs ---
5
+ iam.command('list')
6
+ .description('List all access control entries for the current project')
7
+ .action(async (options) => {
8
+ await listAces(program, options);
9
+ });
10
+ iam.command('create')
11
+ .description('Create an access control entry')
12
+ .requiredOption('--principal <value>', 'Principal ID or display name (for principal_set)')
13
+ .requiredOption('--principal-type <type>', 'Principal type: user, group, apikey, principal_set')
14
+ .requiredOption('--resource <value>', 'Resource ID or display name (for content_set)')
15
+ .requiredOption('--resource-type <type>', 'Resource type: project, account, application, content_set')
16
+ .requiredOption('--role <role>', 'Role: owner, admin, developer, reader, member, etc.')
17
+ .option('--principal-props <json>', 'Principal conditions JSON (for principal_set)')
18
+ .option('--resource-props <json>', 'Resource conditions JSON (for content_set)')
19
+ .action(async (options) => {
20
+ await createAce(program, options);
21
+ });
22
+ iam.command('delete <aceId>')
23
+ .description('Delete an access control entry')
24
+ .action(async (aceId) => {
25
+ await deleteAce(program, aceId);
26
+ });
27
+ // --- Roles ---
28
+ iam.command('roles')
29
+ .description('List available roles and their permissions')
30
+ .action(async () => {
31
+ await listRoles(program);
32
+ });
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/iam/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1E,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAE1F,eAAe;IAEf,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;SACd,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QAC/C,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEP,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;SAChB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,cAAc,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;SACzF,cAAc,CAAC,yBAAyB,EAAE,oDAAoD,CAAC;SAC/F,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;SACrF,cAAc,CAAC,wBAAwB,EAAE,2DAA2D,CAAC;SACrG,cAAc,CAAC,eAAe,EAAE,qDAAqD,CAAC;SACtF,MAAM,CAAC,0BAA0B,EAAE,+CAA+C,CAAC;SACnF,MAAM,CAAC,yBAAyB,EAAE,4CAA4C,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QAC/C,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEP,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC;SACxB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC5B,MAAM,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEP,gBAAgB;IAEhB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACX,CAAC"}