@vertesia/cli 1.3.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 +15 -3
  42. package/lib/iam/commands.d.ts.map +1 -1
  43. package/lib/iam/commands.js +27 -9
  44. package/lib/iam/commands.js.map +1 -1
  45. package/lib/iam/index.d.ts +1 -1
  46. package/lib/iam/index.d.ts.map +1 -1
  47. package/lib/iam/index.js +2 -3
  48. package/lib/iam/index.js.map +1 -1
  49. package/lib/index.js +157 -122
  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 +21 -24
  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
@@ -1,21 +1,21 @@
1
- import { validateWorkflow as validate } from "@vertesia/workflow/vars";
1
+ import { validateWorkflow as validate } from '@vertesia/workflow/vars';
2
2
  export class ValidationError extends Error {
3
3
  constructor(message) {
4
- super("Invalid workflow definition: " + message);
5
- this.name = "ValidationError";
4
+ super(`Invalid workflow definition: ${message}`);
5
+ this.name = 'ValidationError';
6
6
  }
7
7
  }
8
8
  export function validateWorkflow(spec) {
9
9
  const errors = validate(spec);
10
10
  if (errors && errors.length > 0) {
11
- console.log("");
12
- console.log("# ");
13
- console.log("# The workflow has validation errors:");
14
- console.log("# ");
15
- console.log("");
16
- console.log(errors.map((v, i) => `${i + 1}. ${v}`).join("\n"));
17
- console.log("");
18
- throw new ValidationError("Exiting because of validation errors.");
11
+ console.log('');
12
+ console.log('# ');
13
+ console.log('# The workflow has validation errors:');
14
+ console.log('# ');
15
+ console.log('');
16
+ console.log(errors.map((v, i) => `${i + 1}. ${v}`).join('\n'));
17
+ console.log('');
18
+ throw new ValidationError('Exiting because of validation errors.');
19
19
  }
20
20
  return spec;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,+BAA+B,GAAG,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/workflows/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACvE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAqB;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,uCAAuC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@vertesia/cli",
3
- "version": "1.3.0",
3
+ "version": "1.4.0-dev.20260615.042549Z",
4
4
  "description": "The Vertesia command-line interface (CLI) provides a set of commands to manage and interact with the Vertesia Platform.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "vertesia": "./bin/app.js",
8
- "docker-credential-vertesia": "./bin/docker-credential-vertesia.js"
7
+ "vertesia": "./bin/app.js"
9
8
  },
10
9
  "main": "./lib/index.js",
11
10
  "types": "./lib/index.d.ts",
@@ -28,39 +27,37 @@
28
27
  ],
29
28
  "dependencies": {
30
29
  "ansi-colors": "^4.1.3",
31
- "ansi-escapes": "^6.2.0",
30
+ "ansi-escapes": "^7.3.0",
32
31
  "boxen": "^8.0.1",
33
- "chalk": "^5.4.1",
34
- "cli-spinners": "^2.9.1",
32
+ "chalk": "^5.6.2",
33
+ "cli-spinners": "^3.4.0",
35
34
  "cli-table3": "^0.6.5",
36
- "commander": "^14.0.2",
35
+ "commander": "^15.0.0",
37
36
  "enquirer": "^2.4.1",
38
37
  "figures": "^6.1.0",
39
- "glob": "^11.1.0",
38
+ "glob": "^13.0.6",
40
39
  "gradient-string": "^3.0.0",
41
- "json-schema-to-typescript": "^15.0.4",
42
40
  "jsonwebtoken": "^9.0.3",
43
- "log-symbols": "^7.0.0",
44
- "log-update": "^6.1.0",
45
- "mime": "^4.0.4",
46
- "open": "^10.1.0",
47
- "ora": "^8.2.0",
41
+ "log-symbols": "^7.0.1",
42
+ "log-update": "^8.0.0",
43
+ "mime": "^4.1.0",
44
+ "open": "^11.0.0",
45
+ "ora": "^9.4.0",
48
46
  "readline": "^1.3.0",
49
47
  "seedrandom": "^3.0.5",
50
48
  "signal-exit": "^4.1.0",
51
- "typescript": "^6.0.2",
52
- "@vertesia/memory-cli": "1.3.0",
53
- "@vertesia/common": "1.3.0",
54
- "@vertesia/client": "1.3.0",
49
+ "typescript": "^6.0.3",
50
+ "@vertesia/common": "1.4.0-dev.20260615.042549Z",
51
+ "@vertesia/workflow": "1.4.0-dev.20260615.042549Z",
55
52
  "@llumiverse/common": "1.3.0",
56
- "@vertesia/memory-commands": "1.3.0",
57
- "@vertesia/workflow": "1.3.0"
53
+ "@vertesia/client": "1.4.0-dev.20260615.042549Z"
54
+ },
55
+ "optionalDependencies": {
56
+ "@napi-rs/keyring": "^1.3.0"
58
57
  },
59
58
  "devDependencies": {
60
- "@eslint/js": "^10.0.1",
61
59
  "@types/jsonwebtoken": "^9.0.10",
62
- "eslint": "^10.0.2",
63
- "typescript-eslint": "^8.58.1"
60
+ "@vertesia/tsconfig": "0.1.0"
64
61
  },
65
62
  "repository": {
66
63
  "type": "git",
@@ -68,7 +65,7 @@
68
65
  "directory": "packages/cli"
69
66
  },
70
67
  "scripts": {
71
- "lint": "eslint './src/**/*.{jsx,js,tsx,ts}'",
68
+ "lint": "biome lint src",
72
69
  "build": "tsc --build",
73
70
  "clean": "rm -rf ./lib ./tsconfig.tsbuildinfo && tsc --build"
74
71
  }
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import '../lib/agent/docker-credential.js'
@@ -1,16 +0,0 @@
1
- import { InteractionRefWithSchema } from "@vertesia/common";
2
- import { InteractionVersion, InteractionsExportOptions } from "./InteractionVersion.js";
3
- export declare class InteractionBucket {
4
- name: string;
5
- versions: InteractionVersion[];
6
- constructor(name: string);
7
- add(version: InteractionVersion): this;
8
- writeIndex(dir: string, opts: InteractionsExportOptions): void;
9
- build(dir: string, opts: InteractionsExportOptions): void;
10
- }
11
- export declare class CodeBuilder {
12
- buckets: Record<string, InteractionBucket>;
13
- add(interaction: InteractionRefWithSchema): void;
14
- build(interactions: InteractionRefWithSchema[], opts: InteractionsExportOptions): void;
15
- }
16
- //# sourceMappingURL=CodeBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeBuilder.d.ts","sourceRoot":"","sources":["../../src/codegen/CodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAIxF,qBAAa,iBAAiB;IAIP,IAAI,EAAE,MAAM;IAF/B,QAAQ,EAAE,kBAAkB,EAAE,CAAM;gBAEjB,IAAI,EAAE,MAAM;IAG/B,GAAG,CAAC,OAAO,EAAE,kBAAkB;IAK/B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;IAyCvD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;CASrD;AAED,qBAAa,WAAW;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAM;IAEhD,GAAG,CAAC,WAAW,EAAE,wBAAwB;IAWzC,KAAK,CAAC,YAAY,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,yBAAyB;CAoBlF"}
@@ -1,99 +0,0 @@
1
- import { join, resolve } from "path";
2
- import { makeDir, writeFile } from "../utils/stdio.js";
3
- import { InteractionVersion } from "./InteractionVersion.js";
4
- import { processTemplate } from "./template.js";
5
- export class InteractionBucket {
6
- name;
7
- versions = [];
8
- constructor(name) {
9
- this.name = name;
10
- }
11
- add(version) {
12
- this.versions.push(version);
13
- return this;
14
- }
15
- writeIndex(dir, opts) {
16
- let version;
17
- const exportVersion = opts.exportVersion ? parseInt(opts.exportVersion) : undefined;
18
- if (exportVersion) {
19
- version = this.versions.find(version => exportVersion === version.interaction.version);
20
- if (!version) {
21
- console.error(`No export version ${exportVersion} found for interaction ${this.name}. Using default export version`);
22
- }
23
- }
24
- if (!version) {
25
- // default index export the default
26
- let draft;
27
- let latest;
28
- let latestFallback;
29
- for (const version of this.versions) {
30
- if (version.isDraft) {
31
- draft = version;
32
- }
33
- else if (version.isLatest) {
34
- latest = version;
35
- }
36
- else {
37
- if (latestFallback) {
38
- if (latestFallback.interaction.version < version.interaction.version) {
39
- latestFallback = version;
40
- }
41
- }
42
- else {
43
- latestFallback = version;
44
- }
45
- }
46
- }
47
- version = latest || latestFallback || draft;
48
- }
49
- if (version) {
50
- const file = join(dir, 'index.ts');
51
- writeFile(file, processTemplate('index', {
52
- versionName: version.versionName
53
- }));
54
- }
55
- else {
56
- console.error('No default version found for interaction', this.name);
57
- }
58
- }
59
- build(dir, opts) {
60
- console.log('Generating interaction', this.name);
61
- dir = join(dir, this.name);
62
- makeDir(dir);
63
- for (const version of this.versions) {
64
- version.build(dir, opts);
65
- }
66
- this.writeIndex(dir, opts);
67
- }
68
- }
69
- export class CodeBuilder {
70
- buckets = {};
71
- add(interaction) {
72
- const version = new InteractionVersion(interaction);
73
- const name = version.className;
74
- const bucket = this.buckets[name];
75
- if (bucket) {
76
- bucket.add(version);
77
- }
78
- else {
79
- this.buckets[name] = new InteractionBucket(name).add(version);
80
- }
81
- }
82
- build(interactions, opts) {
83
- if (interactions.length === 0) {
84
- console.log("Nothing to export");
85
- return;
86
- }
87
- const dir = resolve(opts.dir);
88
- // create dir if not exists
89
- makeDir(dir);
90
- for (const interaction of interactions) {
91
- this.add(interaction);
92
- }
93
- console.log("Generating code in", dir);
94
- for (const bucket of Object.values(this.buckets)) {
95
- bucket.build(dir, opts);
96
- }
97
- }
98
- }
99
- //# sourceMappingURL=CodeBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeBuilder.js","sourceRoot":"","sources":["../../src/codegen/CodeBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { InteractionRefWithSchema } from "@vertesia/common";
2
- export interface InteractionsExportOptions {
3
- dir: string;
4
- project: string;
5
- exportVersion?: string;
6
- }
7
- export interface InteractionTemplateVars extends Record<string, string> {
8
- id: string;
9
- doc: string;
10
- className: string;
11
- projectId: string;
12
- inputType: string;
13
- outputType: string;
14
- types: string;
15
- date: string;
16
- }
17
- export declare function processInteractionTemplate(vars: InteractionTemplateVars): string;
18
- export declare class InteractionVersion {
19
- interaction: InteractionRefWithSchema;
20
- isDraft: boolean;
21
- className: string;
22
- constructor(interaction: InteractionRefWithSchema);
23
- get isLatest(): boolean;
24
- get versionName(): string;
25
- get fileName(): string;
26
- build(dir: string, opts: InteractionsExportOptions): Promise<string>;
27
- genCode(opts: InteractionsExportOptions): Promise<string>;
28
- }
29
- //# sourceMappingURL=InteractionVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractionVersion.d.ts","sourceRoot":"","sources":["../../src/codegen/InteractionVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAyC,MAAM,kBAAkB,CAAC;AAOnG,MAAM,WAAW,yBAAyB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,uBAAuB,UAEvE;AAED,qBAAa,kBAAkB;IAKR,WAAW,EAAE,wBAAwB;IAHxD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;gBAEC,WAAW,EAAE,wBAAwB;IAKxD,IAAI,QAAQ,YAIX;IAED,IAAI,WAAW,WAEd;IACD,IAAI,QAAQ,WAEX;IAEK,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;IAMlD,OAAO,CAAC,IAAI,EAAE,yBAAyB;CA8ChD"}
@@ -1,80 +0,0 @@
1
- import { InteractionStatus, mergePromptsSchema } from "@vertesia/common";
2
- import { compile as compileSchema } from 'json-schema-to-typescript';
3
- import { join } from 'path';
4
- import { writeFile } from "../utils/stdio.js";
5
- import { processTemplate } from "./template.js";
6
- import { textToPascalCase } from "./utils.js";
7
- export function processInteractionTemplate(vars) {
8
- return processTemplate('interaction', { ...vars, date: new Date().toISOString() });
9
- }
10
- export class InteractionVersion {
11
- interaction;
12
- isDraft;
13
- className;
14
- constructor(interaction) {
15
- this.interaction = interaction;
16
- this.isDraft = interaction.status === InteractionStatus.draft;
17
- this.className = textToPascalCase(interaction.name || '__Unknown');
18
- }
19
- get isLatest() {
20
- //TODO we no more support the latest version
21
- return false;
22
- //return this.interaction.latest;
23
- }
24
- get versionName() {
25
- return this.isDraft ? 'draft' : `v${this.interaction.version}`;
26
- }
27
- get fileName() {
28
- return `${this.versionName}.ts`;
29
- }
30
- async build(dir, opts) {
31
- const file = join(dir, this.fileName);
32
- writeFile(file, await this.genCode(opts));
33
- return file;
34
- }
35
- async genCode(opts) {
36
- const interaction = this.interaction;
37
- const className = this.className;
38
- const inputSchema = mergePromptsSchema(interaction);
39
- const outputSchema = interaction.result_schema;
40
- const out = [];
41
- const types = [];
42
- let inputTypeName = "any";
43
- let outputTypeName = "any";
44
- if (inputSchema) {
45
- inputTypeName = className + 'Props';
46
- const schemaType = await compileSchema(inputSchema, inputTypeName, {
47
- bannerComment: '',
48
- style: {
49
- tabWidth: 4,
50
- },
51
- additionalProperties: false
52
- });
53
- types.push(`/**\n * ${interaction.name} input type\n */`, schemaType);
54
- }
55
- if (outputSchema) {
56
- outputTypeName = className + 'Result';
57
- const schemaType = await compileSchema(outputSchema, outputTypeName, {
58
- bannerComment: '',
59
- style: {
60
- tabWidth: 4,
61
- },
62
- additionalProperties: false
63
- });
64
- types.push(`/**\n * ${interaction.name} result type\n */`, schemaType);
65
- }
66
- const vars = {
67
- className: className,
68
- id: interaction.id,
69
- projectId: opts.project,
70
- inputType: inputTypeName,
71
- outputType: outputTypeName,
72
- doc: interaction.description ? `${interaction.name}\n${interaction.description}` : interaction.name,
73
- date: new Date().toISOString(),
74
- types: types.join('\n')
75
- };
76
- out.push(processInteractionTemplate(vars));
77
- return out.join('\n');
78
- }
79
- }
80
- //# sourceMappingURL=InteractionVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractionVersion.js","sourceRoot":"","sources":["../../src/codegen/InteractionVersion.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export default function runExport(program: Command, interactionName: string | undefined, options: Record<string, any>): Promise<void>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAA8B,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA2B1H"}
@@ -1,30 +0,0 @@
1
- import { getClient } from "../client.js";
2
- import { CodeBuilder } from "./CodeBuilder.js";
3
- export default async function runExport(program, interactionName, options) {
4
- const client = await getClient(program);
5
- const project = await client.getProject();
6
- if (!project) {
7
- console.error('No project id specified');
8
- process.exit(1);
9
- }
10
- const tags = options.tags ? options.tags.split(/\s*,\s*/) : undefined;
11
- const versions = options.versions ? options.versions.split(/\s*,\s*/) : ["draft"];
12
- const payload = {
13
- name: interactionName,
14
- tags: tags,
15
- versions: options.all ? [] : versions,
16
- };
17
- try {
18
- const interactions = await client.interactions.export(payload);
19
- new CodeBuilder().build(interactions, {
20
- dir: options.dir,
21
- project: project.id,
22
- exportVersion: options.export || undefined,
23
- });
24
- }
25
- catch (error) {
26
- console.error('Failed to export interactions:', error.message || error);
27
- process.exit(1);
28
- }
29
- }
30
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB,EAAE,eAAmC,EAAE,OAA4B;IACvH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAElF,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;KACxC,CAAA;IACD,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;YAClC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,EAAE;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;SAC7C,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function expandVariables(template: string, vars: Record<string, string>): string;
2
- export declare function processTemplate(name: string, vars: Record<string, string>): string;
3
- //# sourceMappingURL=template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"AAOA,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAS7E;AAWD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAGzE"}
@@ -1,28 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- import { packageDir } from '../package.js';
3
- const EXPR_RX = /\{\{\s*[a-zA-Z_][a-zA-Z_0-9]*\s*\}\}/g;
4
- const TEMPLATES = {};
5
- export function expandVariables(template, vars) {
6
- return template.replace(EXPR_RX, (match) => {
7
- const key = match.substring(2, match.length - 2).trim();
8
- if (key in vars) {
9
- return vars[key] || '';
10
- }
11
- else {
12
- return match;
13
- }
14
- });
15
- }
16
- function loadTemplate(name) {
17
- let content = TEMPLATES[name];
18
- if (!content) {
19
- content = readFileSync(`${packageDir}/templates/${name}.tpl`, 'utf8');
20
- TEMPLATES[name] = content;
21
- }
22
- return content;
23
- }
24
- export function processTemplate(name, vars) {
25
- const content = loadTemplate(name);
26
- return expandVariables(content, vars);
27
- }
28
- //# sourceMappingURL=template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,OAAO,GAAG,uCAAuC,CAAA;AAEvD,MAAM,SAAS,GAA2B,EAAE,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,IAA4B;IAC1E,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,YAAY,CAAC,GAAG,UAAU,cAAc,IAAI,MAAM,EAAE,MAAM,CAAC,CAAA;QACrE,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAA4B;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function textToPascalCase(text: string): string;
2
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/codegen/utils.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
@@ -1,4 +0,0 @@
1
- export function textToPascalCase(text) {
2
- return text.trim().split(/\W/).map(w => w ? w[0].toUpperCase() + w.substring(1) : '').join('');
3
- }
4
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/codegen/utils.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClG,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function genTestData(program: Command, interactionId: string, options: Record<string, any>): Promise<void>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datagen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA+EtG"}
@@ -1,81 +0,0 @@
1
- import { resolve } from "path";
2
- import { getClient } from "../client.js";
3
- import { Spinner, restoreCursorOnExit } from "../utils/console.js";
4
- import { writeJsonFile } from "../utils/stdio.js";
5
- import { ConfigModes } from "@vertesia/common";
6
- function convertConfigMode(raw_config_mode) {
7
- const configStr = typeof raw_config_mode === 'string' ? raw_config_mode.toUpperCase() : "";
8
- return Object.values(ConfigModes).includes(configStr) ? configStr : undefined;
9
- }
10
- export async function genTestData(program, interactionId, options) {
11
- const count = options.count ? parseInt(options.count) : 1;
12
- const message = options.message || undefined;
13
- const output = options.output || undefined;
14
- const spinner = new Spinner('dots');
15
- spinner.prefix = "Generating data. Please be patient ";
16
- // Create abort controller for handling interruption
17
- const abortController = new AbortController();
18
- const { signal } = abortController;
19
- // Set up cleanup function
20
- const cleanup = () => {
21
- spinner.done(false);
22
- console.log("\nData generation interrupted");
23
- process.exit(0);
24
- };
25
- // Set up signal handlers
26
- const handleSignal = () => {
27
- abortController.abort();
28
- cleanup();
29
- };
30
- process.on('SIGINT', handleSignal);
31
- process.on('SIGTERM', handleSignal);
32
- spinner.start();
33
- //TODO: Support for other modalities, like images
34
- const model_options = {
35
- _option_id: "text-fallback",
36
- temperature: typeof options.temperature === 'string' ? parseFloat(options.temperature) : undefined,
37
- max_tokens: typeof options.maxTokens === 'string' ? parseInt(options.maxTokens) : undefined,
38
- top_p: typeof options.topP === 'string' ? parseFloat(options.topP) : undefined,
39
- top_k: typeof options.topK === 'string' ? parseInt(options.topK) : undefined,
40
- presence_penalty: typeof options.presencePenalty === 'string' ? parseFloat(options.presencePenalty) : undefined,
41
- frequency_penalty: typeof options.frequencyPenalty === 'string' ? parseFloat(options.frequencyPenalty) : undefined,
42
- stop_sequence: options.stopSequence ? options.stopSequence.trim().split(/\s*,\s*/) : undefined,
43
- };
44
- const client = await getClient(program);
45
- client.interactions.generateTestData(interactionId, {
46
- count,
47
- message,
48
- config: {
49
- environment: options.env,
50
- model: options.model || undefined,
51
- model_options: model_options,
52
- configMode: convertConfigMode(options.configMode),
53
- }
54
- // Pass abort signal if the API supports it
55
- // signal
56
- }).then((result) => {
57
- // Remove signal handlers
58
- process.off('SIGINT', handleSignal);
59
- process.off('SIGTERM', handleSignal);
60
- spinner.done();
61
- if (output) {
62
- const file = resolve(output);
63
- writeJsonFile(file, result);
64
- console.log('Data saved in: ', output);
65
- }
66
- console.log();
67
- console.log(result);
68
- }).catch(err => {
69
- // Remove signal handlers
70
- process.off('SIGINT', handleSignal);
71
- process.off('SIGTERM', handleSignal);
72
- // Don't show error if aborted
73
- if (signal.aborted) {
74
- return;
75
- }
76
- spinner.done(false);
77
- console.log('Failed to generate data:', err.message);
78
- });
79
- }
80
- restoreCursorOnExit();
81
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datagen/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function getPublishMemoryAction(program: Command): (file: string, name: string) => Promise<string>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,IACrC,MAAM,MAAM,EAAE,MAAM,MAAM,qBAI3C"}
@@ -1,15 +0,0 @@
1
- import { NodeStreamSource } from "@vertesia/client/node";
2
- import { createReadStream } from "fs";
3
- import { getClient } from "../client.js";
4
- export function getPublishMemoryAction(program) {
5
- return async (file, name) => {
6
- const client = await getClient(program);
7
- return publishMemory(client, file, name);
8
- };
9
- }
10
- async function publishMemory(client, file, name) {
11
- const stream = createReadStream(file);
12
- const path = await client.files.uploadMemoryPack(new NodeStreamSource(stream, name, "application/gzip"));
13
- return path;
14
- }
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,OAAO,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAA;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,IAAY,EAAE,IAAY;IAC3E,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,EACxE,IAAI,EACJ,kBAAkB,CACrB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1,11 +0,0 @@
1
- export declare enum PublishMode {
2
- Push = 1,
3
- Deploy = 2,
4
- PushAndDeploy = 3
5
- }
6
- export declare function publish(version: string, mode: PublishMode): Promise<void>;
7
- export declare function build(contextDir?: string): Promise<void>;
8
- export declare function release(version: string): Promise<void>;
9
- export declare function run(version?: string): void;
10
- export declare function listVersions(): Promise<void>;
11
- //# sourceMappingURL=commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/worker/commands.ts"],"names":[],"mappings":"AAYA,oBAAY,WAAW;IACnB,IAAI,IAAI;IACR,MAAM,IAAI;IACV,aAAa,IAAI;CACpB;AA0CD,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,iBAiB/D;AAED,wBAAsB,KAAK,CAAC,UAAU,SAAM,iBAgB3C;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,iBAU5C;AAED,wBAAgB,GAAG,CAAC,OAAO,GAAE,MAAuB,QAmBnD;AAED,wBAAsB,YAAY,kBAmCjC"}