@vertesia/cli 0.45.3 → 0.47.0

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 (61) hide show
  1. package/lib/agent/commands.d.ts +11 -0
  2. package/lib/agent/commands.d.ts.map +1 -0
  3. package/lib/agent/commands.js +168 -0
  4. package/lib/agent/commands.js.map +1 -0
  5. package/lib/agent/connect.d.ts +1 -2
  6. package/lib/agent/connect.d.ts.map +1 -1
  7. package/lib/agent/connect.js +4 -8
  8. package/lib/agent/connect.js.map +1 -1
  9. package/lib/agent/docker-credential.js +9 -4
  10. package/lib/agent/docker-credential.js.map +1 -1
  11. package/lib/agent/docker.d.ts +2 -0
  12. package/lib/agent/docker.d.ts.map +1 -1
  13. package/lib/agent/docker.js +39 -5
  14. package/lib/agent/docker.js.map +1 -1
  15. package/lib/agent/index.d.ts.map +1 -1
  16. package/lib/agent/index.js +51 -18
  17. package/lib/agent/index.js.map +1 -1
  18. package/lib/agent/project.d.ts +13 -6
  19. package/lib/agent/project.d.ts.map +1 -1
  20. package/lib/agent/project.js +21 -26
  21. package/lib/agent/project.js.map +1 -1
  22. package/lib/agent/refresh.d.ts +6 -0
  23. package/lib/agent/refresh.d.ts.map +1 -0
  24. package/lib/agent/refresh.js +27 -0
  25. package/lib/agent/refresh.js.map +1 -0
  26. package/lib/agent/registry.d.ts +3 -1
  27. package/lib/agent/registry.d.ts.map +1 -1
  28. package/lib/agent/registry.js +6 -2
  29. package/lib/agent/registry.js.map +1 -1
  30. package/lib/agent/version.d.ts +2 -0
  31. package/lib/agent/version.d.ts.map +1 -0
  32. package/lib/agent/version.js +4 -0
  33. package/lib/agent/version.js.map +1 -0
  34. package/lib/client.d.ts +2 -2
  35. package/lib/client.d.ts.map +1 -1
  36. package/lib/client.js +2 -2
  37. package/lib/client.js.map +1 -1
  38. package/lib/memory/index.js.map +1 -1
  39. package/lib/objects/commands.d.ts +2 -2
  40. package/lib/objects/commands.d.ts.map +1 -1
  41. package/lib/objects/commands.js.map +1 -1
  42. package/lib/profiles/index.d.ts +1 -0
  43. package/lib/profiles/index.d.ts.map +1 -1
  44. package/lib/profiles/index.js +17 -0
  45. package/lib/profiles/index.js.map +1 -1
  46. package/lib/run/executor.d.ts +3 -3
  47. package/lib/run/executor.d.ts.map +1 -1
  48. package/lib/run/executor.js.map +1 -1
  49. package/package.json +4 -4
  50. package/lib/agent/Version.d.ts +0 -12
  51. package/lib/agent/Version.d.ts.map +0 -1
  52. package/lib/agent/Version.js +0 -39
  53. package/lib/agent/Version.js.map +0 -1
  54. package/lib/agent/build.d.ts +0 -8
  55. package/lib/agent/build.d.ts.map +0 -1
  56. package/lib/agent/build.js +0 -8
  57. package/lib/agent/build.js.map +0 -1
  58. package/lib/agent/deploy.d.ts +0 -8
  59. package/lib/agent/deploy.d.ts.map +0 -1
  60. package/lib/agent/deploy.js +0 -51
  61. package/lib/agent/deploy.js.map +0 -1
@@ -0,0 +1,11 @@
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(): 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/agent/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,kBAW1B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,iBAU5C;AAED,wBAAgB,GAAG,CAAC,OAAO,GAAE,MAAuB,QAmBnD;AAED,wBAAsB,YAAY,kBAmCjC"}
@@ -0,0 +1,168 @@
1
+ import colors from "ansi-colors";
2
+ import fs from "fs";
3
+ import os from "os";
4
+ import { join } from "path";
5
+ import { getClient } from "../client.js";
6
+ import { config, getCloudTypeFromConfigUrl } from "../profiles/index.js";
7
+ import { runDocker, runDockerWithAgentConfig, runDockerWithOutput } from "./docker.js";
8
+ import { AgentProject } from './project.js';
9
+ import { tryRrefreshProjectToken } from './refresh.js';
10
+ import { updateNpmrc } from "./registry.js";
11
+ import { validateVersion } from './version.js';
12
+ export var PublishMode;
13
+ (function (PublishMode) {
14
+ PublishMode[PublishMode["Push"] = 1] = "Push";
15
+ PublishMode[PublishMode["Deploy"] = 2] = "Deploy";
16
+ PublishMode[PublishMode["PushAndDeploy"] = 3] = "PushAndDeploy";
17
+ })(PublishMode || (PublishMode = {}));
18
+ function shoudlDeploy(mode) {
19
+ return mode & PublishMode.Deploy;
20
+ }
21
+ function shouldPush(mode) {
22
+ return mode & PublishMode.Push;
23
+ }
24
+ // we need to build for the linux/amd64 platform (this is the platform used in Vertesia k8s)
25
+ const TARGET_PLATFORM = "linux/amd64";
26
+ const LATEST_VERSION = "latest";
27
+ async function pushImage(project, version) {
28
+ // we need to frefresh the profile token if needed since
29
+ // the docker credentials helper are connecting to studio.
30
+ // this will refresh the profile token if needed by asking the user to reconnect
31
+ await tryRrefreshProjectToken(project);
32
+ const localTag = project.getLocalDockerTag(version);
33
+ const remoteTag = project.getVertesiaDockerTag(version);
34
+ // push the image to the registry
35
+ console.log(`Pushing docker image ${remoteTag}`);
36
+ runDocker(['tag', localTag, remoteTag]);
37
+ runDockerWithAgentConfig(['push', remoteTag]);
38
+ }
39
+ async function triggerDeploy(profile, project, version) {
40
+ const environment = getCloudTypeFromConfigUrl(profile.config_url);
41
+ const client = getClient();
42
+ const agentId = project.getAgentId();
43
+ console.log(`Deploy agent ${agentId}:${version} to ${environment}`);
44
+ await client.store.agents.deploy({
45
+ environment,
46
+ agentId: project.getAgentId(),
47
+ version,
48
+ });
49
+ }
50
+ export async function publish(version, mode) {
51
+ if (!validateVersion(version)) {
52
+ console.log("Invalid version format: " + version + ". Use major.minor.patch[-modifier] format.");
53
+ process.exit(1);
54
+ }
55
+ if (!config.current) {
56
+ console.log("No active profile is defined.");
57
+ process.exit(1);
58
+ }
59
+ const profile = config.current;
60
+ const project = new AgentProject();
61
+ if (shouldPush(mode)) {
62
+ await pushImage(project, version);
63
+ }
64
+ if (shoudlDeploy(mode)) {
65
+ await triggerDeploy(profile, project, version);
66
+ }
67
+ }
68
+ export async function build() {
69
+ const project = new AgentProject();
70
+ const refreshResult = await tryRrefreshProjectToken(project);
71
+ if (refreshResult) {
72
+ await updateNpmrc(project, refreshResult.profile);
73
+ }
74
+ const tag = project.getLocalDockerTag(LATEST_VERSION);
75
+ console.log(`Building docker image: ${tag}`);
76
+ runDocker(['buildx', 'build', '--platform', TARGET_PLATFORM, '-t', tag, '.']);
77
+ }
78
+ export async function release(version) {
79
+ if (!validateVersion(version)) {
80
+ console.log("Invalid version format: " + version + ". Use major.minor.patch[-modifier] format.");
81
+ process.exit(1);
82
+ }
83
+ const project = new AgentProject();
84
+ const latestTag = project.getLocalDockerTag(LATEST_VERSION);
85
+ const versionTag = project.getLocalDockerTag(version);
86
+ runDocker(['tag', latestTag, versionTag]);
87
+ }
88
+ export function run(version = LATEST_VERSION) {
89
+ if (version !== LATEST_VERSION && !validateVersion(version)) {
90
+ console.log("Invalid version format: " + version + ". Use major.minor.patch[-modifier] format.");
91
+ process.exit(1);
92
+ }
93
+ const project = new AgentProject();
94
+ const tag = project.getLocalDockerTag(version);
95
+ // we need to inject the .env file into the container
96
+ // and to get the google credentials needed by the worker
97
+ // TODO: the google credentials will only work with vertesia users ...
98
+ // we need to specify the target palftorm to force qemu emulation for user on other platforms
99
+ const args = ['run', '--platform', TARGET_PLATFORM, '--env-file', '.env'];
100
+ const googleCredsFile = getGoogleCreddentialsFile();
101
+ if (googleCredsFile) {
102
+ args.push('-v', `${googleCredsFile}:/tmp/google-credentials.json`);
103
+ args.push('-e', 'GOOGLE_APPLICATION_CREDENTIALS=/tmp/google-credentials.json');
104
+ }
105
+ args.push(tag);
106
+ runDocker(args);
107
+ }
108
+ export async function listVersions() {
109
+ const project = new AgentProject();
110
+ if (!project.packageJson.vertesia?.image) {
111
+ console.error("Invalid package.json. Missing vertesia.image configuration.");
112
+ process.exit(1);
113
+ }
114
+ const out = runDockerWithOutput(["images", "--format", "{{.Repository}}:{{.Tag}}"]);
115
+ const lines = out.trim().split('\n');
116
+ const localTagPrefix = project.getLocalDockerTag("");
117
+ const remoteTagPrefix = project.getVertesiaDockerTag("");
118
+ const localTags = {};
119
+ const remoteTags = {};
120
+ const versions = new Set();
121
+ for (const line of lines) {
122
+ const i = line.indexOf(':');
123
+ if (i > 0) {
124
+ const name = line.substring(0, i);
125
+ const version = line.substring(i + 1);
126
+ if (line.startsWith(localTagPrefix)) {
127
+ localTags[version] = { version, name };
128
+ versions.add(version);
129
+ }
130
+ else if (line.startsWith(remoteTagPrefix)) {
131
+ remoteTags[version] = { version, name };
132
+ versions.add(version);
133
+ } // else igonre
134
+ }
135
+ }
136
+ versions.delete(LATEST_VERSION);
137
+ printVersion(LATEST_VERSION, localTags[LATEST_VERSION], remoteTags[LATEST_VERSION]);
138
+ // sort desc
139
+ Array.from(versions).sort((a, b) => b.localeCompare(a)).forEach(v => {
140
+ printVersion(v, localTags[v], remoteTags[v]);
141
+ });
142
+ }
143
+ function printVersion(version, local, remote) {
144
+ if (!local && !remote)
145
+ return;
146
+ const isLatest = version === LATEST_VERSION;
147
+ console.log(colors.bold(isLatest ? version : `v${version}`));
148
+ console.log(`\t${colors.green("Local tag:")} ${local ? local.name + ':' + version : 'N/A'}`);
149
+ if (remote) {
150
+ console.log(`\t${colors.green("published to:")} ${remote.name}:${version}`);
151
+ }
152
+ else if (isLatest) {
153
+ console.log(colors.dim("\tcannot be published"));
154
+ }
155
+ else {
156
+ console.log(colors.dim("\tnot published"));
157
+ }
158
+ }
159
+ function getGoogleCreddentialsFile() {
160
+ const file = join(os.homedir(), '.config/gcloud/application_default_credentials.json');
161
+ if (fs.existsSync(file)) {
162
+ return file;
163
+ }
164
+ else {
165
+ return null;
166
+ }
167
+ }
168
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/agent/commands.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import { Command } from "commander";
2
- export declare function connectToProject(program: Command): Promise<void>;
1
+ export declare function connectToProject(): Promise<void>;
3
2
  //# sourceMappingURL=connect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/agent/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,iBAqCtD"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/agent/connect.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,kBAiCrC"}
@@ -2,18 +2,14 @@ import enquirer from "enquirer";
2
2
  import { createProfile, updateProfile } from "../profiles/commands.js";
3
3
  import { config, shouldRefreshProfileToken } from "../profiles/index.js";
4
4
  import { AgentProject } from "./project.js";
5
- import { createOrUpdateNpmRegistry } from "./registry.js";
5
+ import { updateNpmrc } from "./registry.js";
6
6
  const { prompt } = enquirer;
7
- export async function connectToProject(program) {
7
+ export async function connectToProject() {
8
8
  const project = new AgentProject();
9
9
  const pkg = project.packageJson;
10
10
  let profileName = pkg.vertesia.profile;
11
- const updateNpmrc = async (profile) => {
12
- config.use(profile);
13
- await createOrUpdateNpmRegistry(program, project.npmrcFile);
14
- };
15
11
  const onAuthenticationDone = async (result) => {
16
- await updateNpmrc(result.profile);
12
+ await updateNpmrc(project, result.profile);
17
13
  };
18
14
  try {
19
15
  if (!profileName) {
@@ -33,7 +29,7 @@ export async function connectToProject(program) {
33
29
  await updateProfile(profileName, onAuthenticationDone);
34
30
  }
35
31
  else {
36
- await updateNpmrc(profileName);
32
+ await updateNpmrc(project, profileName);
37
33
  }
38
34
  }
39
35
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/agent/connect.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IACnD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,IAAI,WAAW,GAAuB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC3D,MAAM,WAAW,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpB,MAAM,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAA;IACD,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAoB,EAAE,EAAE;QACxD,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAA;IACD,IAAI,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,uBAAuB;gBACvB,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,yBAAyB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;YAAS,CAAC;QACP,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACvC,oBAAoB;YACpB,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;YACnC,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAwB,MAAM,MAAM,CAAC;YAC7C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC5B,OAAO,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,IAAI,UAAU,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe;QAC1C,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,qBAAqB;AAC3C,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/agent/connect.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,IAAI,WAAW,GAAuB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC3D,MAAM,oBAAoB,GAAG,KAAK,EAAE,MAAoB,EAAE,EAAE;QACxD,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAA;IACD,IAAI,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,uBAAuB;gBACvB,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,yBAAyB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,MAAM,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;YAAS,CAAC;QACP,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACvC,oBAAoB;YACpB,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;YACnC,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAwB,MAAM,MAAM,CAAC;YAC7C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC5B,OAAO,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,IAAI,UAAU,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe;QAC1C,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,qBAAqB;AAC3C,CAAC"}
@@ -7,13 +7,19 @@ function handleNoOp() {
7
7
  }
8
8
  // Function to handle the `get` command
9
9
  async function handleGet(serverUrl) {
10
- console.log(">>>>>>>>> get token for push", serverUrl, process.cwd());
11
- process.exit(1); //TODO
10
+ // we support us-docker.pkg.dev for now
11
+ if (!serverUrl.endsWith("-docker.pkg.dev")) {
12
+ process.exit(0); // ignore
13
+ }
12
14
  try {
13
15
  const credentials = await getDockerCredentials(serverUrl);
16
+ if (process.env.DEBUG_DOCKER_CREDS) {
17
+ fs.writeFileSync("./docker-creds-helper.log", "Get token for registry " + serverUrl + " => " + JSON.stringify(credentials, null, 2), "utf8");
18
+ }
14
19
  process.stdout.write(JSON.stringify(credentials));
15
20
  }
16
21
  catch (error) {
22
+ fs.writeFileSync("./docker-creds-helper-error.log", "Get token for registry " + serverUrl + " => " + JSON.stringify(error, null, 2), "utf8");
17
23
  console.error("Error fetching credentials:", error.message);
18
24
  process.exit(1);
19
25
  }
@@ -28,8 +34,7 @@ function main() {
28
34
  switch (command) {
29
35
  case "get":
30
36
  const stdin = fs.readFileSync(0, "utf-8");
31
- const { ServerURL } = JSON.parse(stdin);
32
- handleGet(ServerURL);
37
+ handleGet(stdin.trim());
33
38
  break;
34
39
  case "store":
35
40
  case "erase":
@@ -1 +1 @@
1
- {"version":3,"file":"docker-credential.js","sourceRoot":"","sources":["../../src/agent/docker-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,+DAA+D;AAC/D,SAAS,UAAU;IACf,+CAA+C;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,uCAAuC;AACvC,KAAK,UAAU,SAAS,CAAC,SAAiB;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;IACvB,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAGD,gCAAgC;AAChC,SAAS,IAAI;IACT,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,KAAK;YACN,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM;QAEV,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,UAAU,EAAE,CAAC;YACb,MAAM;QAEV;YACI,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"docker-credential.js","sourceRoot":"","sources":["../../src/agent/docker-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,+DAA+D;AAC/D,SAAS,UAAU;IACf,+CAA+C;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,uCAAuC;AACvC,KAAK,UAAU,SAAS,CAAC,SAAiB;IACtC,uCAAuC;IACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAC9B,CAAC;IACD,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACjC,EAAE,CAAC,aAAa,CAAC,2BAA2B,EAAE,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjJ,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,EAAE,CAAC,aAAa,CAAC,iCAAiC,EAAE,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7I,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAGD,gCAAgC;AAChC,SAAS,IAAI;IACT,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,KAAK;YACN,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,MAAM;QAEV,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,UAAU,EAAE,CAAC;YACb,MAAM;QAEV;YACI,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -4,5 +4,7 @@ export declare function getDockerCredentials(serverUrl: string): Promise<{
4
4
  Username: string;
5
5
  Secret: string;
6
6
  }>;
7
+ export declare function runDockerWithAgentConfig(args: string[]): import("child_process").SpawnSyncReturns<Buffer<ArrayBufferLike>>;
7
8
  export declare function runDocker(args: string[]): import("child_process").SpawnSyncReturns<Buffer<ArrayBufferLike>>;
9
+ export declare function runDockerWithOutput(args: string[]): string;
8
10
  //# sourceMappingURL=docker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/agent/docker.ts"],"names":[],"mappings":"AAUA,wBAAgB,mBAAmB,WAMlC;AAgBD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM;;;;GAO3D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,qEAYvC"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/agent/docker.ts"],"names":[],"mappings":"AAUA,wBAAgB,mBAAmB,WAMlC;AAeD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM;;;;GAO3D;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,qEAOtD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,qEAqBvC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAqBjD"}
@@ -16,8 +16,7 @@ async function getGoogleToken(pkgDir) {
16
16
  const project = new AgentProject(pkgDir);
17
17
  const pkg = project.packageJson;
18
18
  if (!pkg.vertesia.profile) {
19
- console.log('Profile not found in package.json');
20
- process.exit(1);
19
+ throw new Error("Profile entry not found in package.json");
21
20
  }
22
21
  config.use(pkg.vertesia.profile); // will exit if profile not found
23
22
  const client = getClient();
@@ -28,21 +27,56 @@ export async function getDockerCredentials(serverUrl) {
28
27
  const token = await getGoogleToken();
29
28
  return {
30
29
  ServerURL: serverUrl,
31
- Username: "_json_key",
30
+ Username: "oauth2accesstoken",
32
31
  Secret: token,
33
32
  };
34
33
  }
35
- export function runDocker(args) {
34
+ export function runDockerWithAgentConfig(args) {
36
35
  const config = join(process.cwd(), LOCAL_DOCKER_CONFIG_DIR);
37
36
  const baseArgs = [];
38
37
  if (existsSync(config)) {
39
38
  baseArgs.push("--config", config);
40
39
  }
41
- return spawnSync('docker', baseArgs.concat(args), {
40
+ return runDocker(baseArgs.concat(args));
41
+ }
42
+ export function runDocker(args) {
43
+ const r = spawnSync('docker', args, {
42
44
  stdio: 'inherit',
43
45
  env: {
46
+ ...process.env,
47
+ DOCKER_BUILDKIT: "1"
48
+ }
49
+ });
50
+ // check for errors
51
+ if (r.error) {
52
+ console.error(`Failed to execute command "docker ${args.join(' ')}":`, r.error);
53
+ process.exit(2);
54
+ }
55
+ // Check for non-zero exit code
56
+ if (r.status !== 0) {
57
+ console.error(`Command "docker ${args.join(' ')}" failed with exit code ${r.status}`);
58
+ process.exit(r.status);
59
+ }
60
+ return r;
61
+ }
62
+ export function runDockerWithOutput(args) {
63
+ const r = spawnSync('docker', args, {
64
+ encoding: 'utf-8',
65
+ env: {
66
+ ...process.env,
44
67
  DOCKER_BUILDKIT: "1"
45
68
  }
46
69
  });
70
+ // check for errors
71
+ if (r.error) {
72
+ console.error(`Failed to execute command "docker ${args.join(' ')}":`, r.error);
73
+ process.exit(2);
74
+ }
75
+ // Check for non-zero exit code
76
+ if (r.status !== 0) {
77
+ console.error(`Command "docker ${args.join(' ')}" failed with exit code ${r.status}\n${r.stderr}`);
78
+ process.exit(r.status);
79
+ }
80
+ return r.stdout.trim();
47
81
  }
48
82
  //# sourceMappingURL=docker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/agent/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,MAAM,UAAU,mBAAmB;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,aAAa,EAAE;YACX,4BAA4B,EAAE,UAAU;SAC3C;KACJ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAGD,KAAK,UAAU,cAAc,CAAC,MAAe;IACzC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;IACnE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IAChD,OAAO,CAAC,CAAC,KAAK,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IACxD,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,OAAO;QACH,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,KAAK;KAChB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC9C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE;YACD,eAAe,EAAE,GAAG;SACvB;KACJ,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/agent/docker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAgDpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAmFpD"}
@@ -1,6 +1,5 @@
1
- import { build } from "./build.js";
1
+ import { build, listVersions, publish, PublishMode, release, run } from "./commands.js";
2
2
  import { connectToProject } from "./connect.js";
3
- import { deploy } from "./deploy.js";
4
3
  import { getGooglePrincipal, getGoogleToken } from "./registry.js";
5
4
  export function registerAgentCommand(program) {
6
5
  const agent = program.command("agent");
@@ -10,27 +9,61 @@ export function registerAgentCommand(program) {
10
9
  if (pkgDir) {
11
10
  process.chdir(pkgDir);
12
11
  }
13
- await connectToProject(program);
12
+ await connectToProject();
14
13
  });
15
- agent.command("deploy [pkgDir]")
14
+ agent.command("publish <version>")
16
15
  .description("Deploy a custom workflow worker. The user will be asked for a target image version.")
17
- .option("-p, --profile [profile]", "The profile name to use. If not specified the one from the package.json will be used.")
18
- .option("--version [version]", "Deploy the given version of the local docker image. Do not build another image.")
19
- .option("--latest", "Use the latest version of the local docker image. A shortcut to '--version latest'. If neither --latest nor --version is specified then a new image will be built.")
20
- .action(async (pkgDir, options = {}) => {
21
- if (pkgDir) {
22
- process.chdir(pkgDir);
16
+ .option("-d, --dir [project_dir]", "Use this as the current directory.")
17
+ .option("--push-only", "If used the docker image will be push only. The deoloyment will not be triggered.")
18
+ .option("--deploy-only", "If used the docker is assumed to be already pushed and only the deploy will be triggered.")
19
+ //.option("-p, --profile [profile]", "The profile name to use. If not specified the one from the package.json will be used.")
20
+ .action(async (version, options = {}) => {
21
+ if (options.dir) {
22
+ process.chdir(options.dir);
23
+ }
24
+ let mode;
25
+ if (options.pushOnly) {
26
+ mode = PublishMode.Push;
23
27
  }
24
- await deploy(program, options);
28
+ else if (options.deployOnly) {
29
+ mode = PublishMode.Deploy;
30
+ }
31
+ else {
32
+ mode = PublishMode.PushAndDeploy;
33
+ }
34
+ await publish(version, mode);
25
35
  });
26
- agent.command("build [pkgDir]")
27
- .description("Build a local docker image.")
28
- .option("-v, --version [version]", "The version to use for the image. By default 'latest' is used.")
29
- .action(async (pkgDir, options = {}) => {
30
- if (pkgDir) {
31
- process.chdir(pkgDir);
36
+ agent.command("build")
37
+ .description("Build a local docker image using 'latest' as version.")
38
+ .option("-d, --dir [project_dir]", "Use this as the current directory.")
39
+ .action(async (options) => {
40
+ if (options.dir) {
41
+ process.chdir(options.dir);
42
+ }
43
+ await build();
44
+ });
45
+ agent.command("release [version]")
46
+ .description("Promote the latest version to a named version (tag it).")
47
+ .option("-d, --dir [project_dir]", "Use this as the current directory.")
48
+ .action(async (version, options) => {
49
+ if (options.dir) {
50
+ process.chdir(options.dir);
32
51
  }
33
- await build(options);
52
+ await release(version);
53
+ });
54
+ agent.command("run [version]")
55
+ .description("Run the docker image identified by the given version or the 'latest' version if no version is given.")
56
+ .option("-d, --dir [project_dir]", "Use this as the current directory.")
57
+ .action(async (version, options) => {
58
+ if (options.dir) {
59
+ process.chdir(options.dir);
60
+ }
61
+ await run(version);
62
+ });
63
+ agent.command("versions")
64
+ .description("List existing versions.")
65
+ .action(async (_options) => {
66
+ await listVersions();
34
67
  });
35
68
  agent.command("gtoken")
36
69
  .description("Get a google cloud token for the current vertesia project.")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC5B,WAAW,CAAC,2GAA2G,CAAC;SACxH,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;SAC3B,WAAW,CAAC,qFAAqF,CAAC;SAClG,MAAM,CAAC,yBAAyB,EAAE,uFAAuF,CAAC;SAC1H,MAAM,CAAC,qBAAqB,EAAE,iFAAiF,CAAC;SAChH,MAAM,CAAC,UAAU,EAAE,oKAAoK,CAAC;SACxL,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC1B,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,yBAAyB,EAAE,gEAAgE,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChE,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;SAClB,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,uFAAuF,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChD,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;SACtB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,eAAe,EAAE,uFAAuF,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChD,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AAEX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC5B,WAAW,CAAC,2GAA2G,CAAC;SACxH,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7B,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,gBAAgB,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;SAC7B,WAAW,CAAC,qFAAqF,CAAC;SAClG,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;SACvE,MAAM,CAAC,aAAa,EAAE,mFAAmF,CAAC;SAC1G,MAAM,CAAC,eAAe,EAAE,2FAA2F,CAAC;QACrH,6HAA6H;SAC5H,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,UAA+B,EAAE,EAAE,EAAE;QACjE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAiB,CAAC;QACtB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,IAAI,GAAG,WAAW,CAAC,MAAM,CAAA;QAC7B,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC3C,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;SAC7B,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA4B,EAAE,EAAE;QAC5D,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;SACzB,WAAW,CAAC,sGAAsG,CAAC;SACnH,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAA4B,EAAE,EAAE;QAC5D,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;SACpB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,QAA6B,EAAE,EAAE;QAC5C,MAAM,YAAY,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;SAClB,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,uFAAuF,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChD,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEP,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;SACtB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,eAAe,EAAE,uFAAuF,CAAC;SAChH,MAAM,CAAC,KAAK,EAAE,UAA+B,EAAE,EAAE,EAAE;QAChD,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AAEX,CAAC"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Manage docker images:
3
+ * - build the latest image: vertesia agent build => agent_org/agent_name:latest
4
+ * - promote the latest build to a version => vertesia agent release 1.0.0 => agent_org/agent_name:1.0.0
5
+ * - list available versions => vertesia agent versions --remote
6
+ * - publish a specific image version => vertesia agent publish 1.0.0
7
+ */
1
8
  export interface AgentConfig {
2
9
  profile?: string;
3
10
  pm?: string;
@@ -5,7 +12,6 @@ export interface AgentConfig {
5
12
  repository: string;
6
13
  organization: string;
7
14
  name: string;
8
- version?: string;
9
15
  };
10
16
  }
11
17
  export interface AgentPackageJson {
@@ -24,8 +30,9 @@ export declare class PackageJson implements AgentPackageJson {
24
30
  get pm(): any;
25
31
  get profile(): any;
26
32
  set proffile(value: string);
27
- getLocalDockerTag(version?: string): string;
28
- getVertesiaDockerTag(version?: string): string;
33
+ getAgentId(): string;
34
+ getLocalDockerTag(version: string): string;
35
+ getVertesiaDockerTag(version: string): string;
29
36
  get latestPublishedVersion(): string;
30
37
  set latestPublishedVersion(version: string);
31
38
  get vertesia(): any;
@@ -40,12 +47,12 @@ export declare class AgentProject {
40
47
  get npmrcFile(): string;
41
48
  get dockerConfigFile(): string;
42
49
  get packageJson(): PackageJson;
50
+ getAgentId(): string;
51
+ getVertesiaDockerTag(version: string): string;
52
+ getLocalDockerTag(version: string): string;
43
53
  /**
44
54
  * Build the project sources using the configured package manager.
45
55
  */
46
56
  buildSources(): void;
47
- buildDockerImage(version?: string): string;
48
- buildAndTagVertesiaImage(version: string): string;
49
- buildAndPushDockerImage(version: string): string;
50
57
  }
51
58
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/agent/project.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAA;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,WAAY,YAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;gBAA9C,IAAI,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAMjE,IAAI,IAAI,IAIQ,MAAM,CAFrB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,OAAO,IAIQ,MAAM,CAFxB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAExB;IAED,IAAI,EAAE,QAEL;IAED,IAAI,OAAO,QAEV;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEzB;IAED,iBAAiB,CAAC,OAAO,GAAE,MAAiB;IAS5C,oBAAoB,CAAC,OAAO,GAAE,MAAiB;IAU/C,IAAI,sBAAsB,IAIU,MAAM,CAFzC;IAED,IAAI,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAEzC;IAED,IAAI,QAAQ,IAIQ,GAAG,CAFtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAEtB;IAED,IAAI;CAGP;AAED,qBAAa,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEP,MAAM,CAAC,EAAE,MAAM;IAkB3B,IAAI,SAAS,WAEZ;IAED,IAAI,gBAAgB,WAEnB;IAED,IAAI,WAAW,gBAMd;IAED;;OAEG;IACH,YAAY;IAQZ,gBAAgB,CAAC,OAAO,GAAE,MAAiB;IAM3C,wBAAwB,CAAC,OAAO,EAAE,MAAM;IAOxC,uBAAuB,CAAC,OAAO,EAAE,MAAM;CAK1C"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/agent/project.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;KAChB,CAAA;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,WAAY,YAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;gBAA9C,IAAI,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAMjE,IAAI,IAAI,IAIQ,MAAM,CAFrB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,OAAO,IAIQ,MAAM,CAFxB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAExB;IAED,IAAI,EAAE,QAEL;IAED,IAAI,OAAO,QAEV;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEzB;IAED,UAAU;IASV,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAKjC,oBAAoB,CAAC,OAAO,EAAE,MAAM;IASpC,IAAI,sBAAsB,IAIU,MAAM,CAFzC;IAED,IAAI,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAEzC;IAED,IAAI,QAAQ,IAIQ,GAAG,CAFtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAEtB;IAED,IAAI;CAGP;AAED,qBAAa,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,WAAW,CAAC;gBAEP,MAAM,CAAC,EAAE,MAAM;IAkB3B,IAAI,SAAS,WAEZ;IAED,IAAI,gBAAgB,WAEnB;IAED,IAAI,WAAW,gBAMd;IAED,UAAU;IAIV,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAIpC,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAIjC;;OAEG;IACH,YAAY;CAQf"}