@cogitator-ai/deploy 0.1.8 → 0.2.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 (52) hide show
  1. package/README.md +84 -47
  2. package/dist/analyzer.d.ts +17 -3
  3. package/dist/analyzer.d.ts.map +1 -1
  4. package/dist/analyzer.js +118 -34
  5. package/dist/analyzer.js.map +1 -1
  6. package/dist/deployer.d.ts +12 -4
  7. package/dist/deployer.d.ts.map +1 -1
  8. package/dist/deployer.js +26 -13
  9. package/dist/deployer.js.map +1 -1
  10. package/dist/generator.d.ts +7 -0
  11. package/dist/generator.d.ts.map +1 -1
  12. package/dist/generator.js +6 -7
  13. package/dist/generator.js.map +1 -1
  14. package/dist/index.d.ts +2 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/providers/artifacts.d.ts +9 -0
  17. package/dist/providers/artifacts.d.ts.map +1 -0
  18. package/dist/providers/artifacts.js +32 -0
  19. package/dist/providers/artifacts.js.map +1 -0
  20. package/dist/providers/docker.d.ts +5 -4
  21. package/dist/providers/docker.d.ts.map +1 -1
  22. package/dist/providers/docker.js +82 -48
  23. package/dist/providers/docker.js.map +1 -1
  24. package/dist/providers/fly.d.ts +9 -2
  25. package/dist/providers/fly.d.ts.map +1 -1
  26. package/dist/providers/fly.js +120 -59
  27. package/dist/providers/fly.js.map +1 -1
  28. package/dist/templates/docker-compose.d.ts +3 -0
  29. package/dist/templates/docker-compose.d.ts.map +1 -1
  30. package/dist/templates/docker-compose.js +38 -10
  31. package/dist/templates/docker-compose.js.map +1 -1
  32. package/dist/templates/dockerfile.d.ts +8 -3
  33. package/dist/templates/dockerfile.d.ts.map +1 -1
  34. package/dist/templates/dockerfile.js +59 -17
  35. package/dist/templates/dockerfile.js.map +1 -1
  36. package/dist/templates/fly-toml.d.ts +1 -0
  37. package/dist/templates/fly-toml.d.ts.map +1 -1
  38. package/dist/templates/fly-toml.js +21 -12
  39. package/dist/templates/fly-toml.js.map +1 -1
  40. package/dist/utils/env.d.ts +7 -0
  41. package/dist/utils/env.d.ts.map +1 -0
  42. package/dist/utils/env.js +21 -0
  43. package/dist/utils/env.js.map +1 -0
  44. package/dist/utils/exec.d.ts +15 -3
  45. package/dist/utils/exec.d.ts.map +1 -1
  46. package/dist/utils/exec.js +50 -14
  47. package/dist/utils/exec.js.map +1 -1
  48. package/dist/utils/registry-auth.d.ts +7 -0
  49. package/dist/utils/registry-auth.d.ts.map +1 -0
  50. package/dist/utils/registry-auth.js +71 -0
  51. package/dist/utils/registry-auth.js.map +1 -0
  52. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,QAAQ,GAAG,eAAe;IACpE,MAAM,OAAO,GAAG,KAAK;SAClB,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvB,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC"}
@@ -1,9 +1,21 @@
1
- import { type ExecSyncOptions } from 'node:child_process';
2
1
  export interface ExecResult {
3
2
  success: boolean;
4
3
  output: string;
5
4
  error?: string;
6
5
  }
7
- export declare function exec(command: string, options?: ExecSyncOptions): ExecResult;
8
- export declare function isCommandAvailable(command: string, timeoutMs?: number): boolean;
6
+ export interface RunOptions {
7
+ cwd?: string;
8
+ timeout?: number;
9
+ input?: string;
10
+ env?: NodeJS.ProcessEnv;
11
+ }
12
+ /**
13
+ * Run a command without a shell. Arguments are passed verbatim, so paths with
14
+ * spaces and user-provided values cannot be interpreted by a shell.
15
+ */
16
+ export declare function run(command: string, args: readonly string[], options?: RunOptions): ExecResult;
17
+ /**
18
+ * Check whether an executable is resolvable on PATH without spawning a process.
19
+ */
20
+ export declare function isCommandAvailable(command: string, pathEnv?: string): boolean;
9
21
  //# sourceMappingURL=exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,UAAU,CAgB3E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAG9E"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAWD;;;GAGG;AACH,wBAAgB,GAAG,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,UAAe,GACvB,UAAU,CAeZ;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAyB,GAAG,OAAO,CAc7F"}
@@ -1,24 +1,60 @@
1
- import { execSync } from 'node:child_process';
2
- export function exec(command, options) {
1
+ import { execFileSync } from 'node:child_process';
2
+ import { accessSync, constants, statSync } from 'node:fs';
3
+ import { delimiter, join } from 'node:path';
4
+ function errorText(err) {
5
+ if (typeof err !== 'object' || err === null)
6
+ return String(err);
7
+ const stderr = 'stderr' in err ? err.stderr : undefined;
8
+ const text = typeof stderr === 'string' ? stderr : Buffer.isBuffer(stderr) ? stderr.toString('utf-8') : '';
9
+ if (text.trim())
10
+ return text.trim();
11
+ return err instanceof Error ? err.message : String(err);
12
+ }
13
+ /**
14
+ * Run a command without a shell. Arguments are passed verbatim, so paths with
15
+ * spaces and user-provided values cannot be interpreted by a shell.
16
+ */
17
+ export function run(command, args, options = {}) {
3
18
  try {
4
- const output = execSync(command, {
5
- stdio: 'pipe',
6
- ...options,
19
+ const output = execFileSync(command, [...args], {
20
+ cwd: options.cwd,
21
+ timeout: options.timeout,
22
+ input: options.input,
23
+ env: options.env,
7
24
  encoding: 'utf-8',
25
+ stdio: ['pipe', 'pipe', 'pipe'],
26
+ maxBuffer: 64 * 1024 * 1024,
8
27
  });
9
28
  return { success: true, output: output.trim() };
10
29
  }
11
30
  catch (err) {
12
- const error = err;
13
- return {
14
- success: false,
15
- output: '',
16
- error: error.stderr?.trim() ?? error.message,
17
- };
31
+ return { success: false, output: '', error: errorText(err) };
18
32
  }
19
33
  }
20
- export function isCommandAvailable(command, timeoutMs = 2_000) {
21
- const check = process.platform === 'win32' ? `where ${command}` : `which ${command}`;
22
- return exec(check, { timeout: timeoutMs }).success;
34
+ function executableCandidates(command) {
35
+ if (process.platform !== 'win32')
36
+ return [command];
37
+ const extensions = (process.env.PATHEXT ?? '.EXE;.CMD;.BAT;.COM').split(';').filter(Boolean);
38
+ return [command, ...extensions.map((ext) => `${command}${ext.toLowerCase()}`)];
39
+ }
40
+ /**
41
+ * Check whether an executable is resolvable on PATH without spawning a process.
42
+ */
43
+ export function isCommandAvailable(command, pathEnv = process.env.PATH ?? '') {
44
+ const mode = process.platform === 'win32' ? constants.F_OK : constants.X_OK;
45
+ for (const dir of pathEnv.split(delimiter).filter(Boolean)) {
46
+ for (const candidate of executableCandidates(command)) {
47
+ try {
48
+ const full = join(dir, candidate);
49
+ accessSync(full, mode);
50
+ if (statSync(full).isFile())
51
+ return true;
52
+ }
53
+ catch {
54
+ continue;
55
+ }
56
+ }
57
+ }
58
+ return false;
23
59
  }
24
60
  //# sourceMappingURL=exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAC;AAQpE,MAAM,UAAU,IAAI,CAAC,OAAe,EAAE,OAAyB;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE;YAC/B,KAAK,EAAE,MAAM;YACb,GAAG,OAAO;YACV,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAkC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC;IACrF,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function registryHost(registry: string): string;
2
+ /**
3
+ * Determine whether Docker has stored credentials for the registry, by reading
4
+ * the Docker CLI config (`auths`, `credHelpers`, `credsStore`).
5
+ */
6
+ export declare function isRegistryAuthenticated(registry: string, dockerConfigDir?: string): boolean;
7
+ //# sourceMappingURL=registry-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-auth.d.ts","sourceRoot":"","sources":["../../src/utils/registry-auth.ts"],"names":[],"mappings":"AAOA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKrD;AAyBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,eAAe,SAA0D,GACxE,OAAO,CAoCT"}
@@ -0,0 +1,71 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { run } from './exec.js';
5
+ const DOCKER_HUB_KEYS = ['https://index.docker.io/v1/', 'index.docker.io', 'docker.io'];
6
+ export function registryHost(registry) {
7
+ const withoutScheme = registry.replace(/^https?:\/\//, '');
8
+ const first = withoutScheme.split('/')[0] ?? '';
9
+ const looksLikeHost = first.includes('.') || first.includes(':') || first === 'localhost';
10
+ return looksLikeHost ? first : 'docker.io';
11
+ }
12
+ function isRecord(value) {
13
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ }
15
+ function hostMatches(key, host) {
16
+ const normalized = key.replace(/^https?:\/\//, '').replace(/\/.*$/, '');
17
+ if (host === 'docker.io') {
18
+ return DOCKER_HUB_KEYS.includes(key) || DOCKER_HUB_KEYS.includes(normalized);
19
+ }
20
+ return normalized === host;
21
+ }
22
+ function helperHasCredentials(helper, host) {
23
+ const result = run(`docker-credential-${helper}`, ['list'], { timeout: 5_000 });
24
+ if (!result.success)
25
+ return false;
26
+ try {
27
+ const parsed = JSON.parse(result.output);
28
+ return isRecord(parsed) && Object.keys(parsed).some((key) => hostMatches(key, host));
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Determine whether Docker has stored credentials for the registry, by reading
36
+ * the Docker CLI config (`auths`, `credHelpers`, `credsStore`).
37
+ */
38
+ export function isRegistryAuthenticated(registry, dockerConfigDir = process.env.DOCKER_CONFIG ?? join(homedir(), '.docker')) {
39
+ const configPath = join(dockerConfigDir, 'config.json');
40
+ if (!existsSync(configPath))
41
+ return false;
42
+ let config;
43
+ try {
44
+ config = JSON.parse(readFileSync(configPath, 'utf-8'));
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ if (!isRecord(config))
50
+ return false;
51
+ const host = registryHost(registry);
52
+ const auths = isRecord(config.auths) ? config.auths : {};
53
+ const authKeys = Object.keys(auths).filter((key) => hostMatches(key, host));
54
+ const credHelpers = isRecord(config.credHelpers) ? config.credHelpers : {};
55
+ const helperKey = Object.keys(credHelpers).find((key) => hostMatches(key, host));
56
+ if (helperKey) {
57
+ const helper = credHelpers[helperKey];
58
+ return typeof helper === 'string' && helperHasCredentials(helper, host);
59
+ }
60
+ const inlineAuth = authKeys.some((key) => {
61
+ const entry = auths[key];
62
+ return (isRecord(entry) && (typeof entry.auth === 'string' || typeof entry.identitytoken === 'string'));
63
+ });
64
+ if (inlineAuth)
65
+ return true;
66
+ if (typeof config.credsStore === 'string') {
67
+ return helperHasCredentials(config.credsStore, host);
68
+ }
69
+ return false;
70
+ }
71
+ //# sourceMappingURL=registry-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-auth.js","sourceRoot":"","sources":["../../src/utils/registry-auth.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/deploy",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "description": "One-command deployment for Cogitator agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,8 +15,8 @@
15
15
  "dist"
16
16
  ],
17
17
  "dependencies": {
18
- "@cogitator-ai/types": "0.22.2",
19
- "@cogitator-ai/config": "0.5.5"
18
+ "@cogitator-ai/types": "0.23.0",
19
+ "@cogitator-ai/config": "0.6.0"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "^22.0.0",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "license": "MIT",
39
39
  "scripts": {
40
- "build": "tsc",
40
+ "build": "tsc && tsx ../../scripts/fix-esm-imports.ts .",
41
41
  "dev": "tsc --watch",
42
42
  "clean": "rm -rf dist",
43
43
  "typecheck": "tsc --noEmit",