@cogitator-ai/deploy 0.5.0 → 0.6.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.
package/README.md CHANGED
@@ -126,23 +126,23 @@ A local Ollama model on the docker target reaches the Ollama of the host: the Co
126
126
 
127
127
  ## Auto-Detection
128
128
 
129
- | What | Source | Example |
130
- | ---------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
131
- | Kind and server | `package.json` dependencies | `@cogitator-ai/express` → Express server, `@cogitator-ai/channels` → worker |
132
- | Image / app name | `package.json` `name` | `@acme/My Agent` → `my-agent` (fallback `cogitator-app`) |
133
- | Package manager | Lockfile, `packageManager`, `pnpm-workspace.yaml` | `pnpm-lock.yaml` → `pnpm install --frozen-lockfile`, Yarn 1 → `yarn install --frozen-lockfile`, Yarn Berry → `yarn install --immutable`, `bun.lock` → `bun install`, `package-lock.json` → `npm ci` |
134
- | Install files | Files next to `package.json` | `pnpm-workspace.yaml`, `.npmrc`, `patches/`, `.yarnrc.yml`, `.yarn/`, `bunfig.toml` are copied before the install step |
135
- | Runtime | Bun lockfile, `packageManager: bun@…`, `@cogitator-ai/tetsu` | `oven/bun:1-alpine` image, `bun run start` |
136
- | Start command | `scripts.start`, then `main` | `node dist/index.js` → `CMD ["node","dist/index.js"]`, any other script → `npm start` (`yarn start`, `bun run start`) |
137
- | Build step | `tsconfig.json` + `scripts.build` | Multi-stage build running `<pm> run build` |
138
- | Services | Config file memory adapter | `adapter: postgres` → PostgreSQL service |
139
- | Volumes | Config file `memory.sqlite.path` | `./data/memory.db` → volume on `/app/data` |
140
- | Required secrets | Provider of the model, `requireEnv()`, `.env.example` | `openai/gpt-6.1-sol` → `OPENAI_API_KEY`, Bedrock → `AWS_REGION` and both AWS keys |
141
- | Ollama Cloud | Model tag `:cloud` / `-cloud` | `gpt-oss:120b-cloud` → `OLLAMA_API_KEY` |
129
+ | What | Source | Example |
130
+ | ---------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
131
+ | Kind and server | `package.json` dependencies | `@cogitator-ai/express` → Express server, `@cogitator-ai/channels` → worker |
132
+ | Image / app name | `package.json` `name` | `@acme/My Agent` → `my-agent` (fallback `cogitator-app`) |
133
+ | Package manager | Lockfile, `packageManager`, `pnpm-workspace.yaml` | `pnpm-lock.yaml` → `pnpm install --frozen-lockfile`, Yarn 1 → `yarn install --frozen-lockfile`, Yarn Berry → `yarn install --immutable`, `bun.lock` → `bun install`, `package-lock.json` → `npm ci` |
134
+ | Install files | Files next to `package.json` | `pnpm-workspace.yaml`, `.npmrc`, `patches/`, `.yarnrc.yml`, `.yarn/`, `bunfig.toml` are copied before the install step |
135
+ | Runtime | Start command, Bun lockfile, `@cogitator-ai/tetsu` | `bun ...` start → `oven/bun:1-alpine` image, otherwise `node:24-alpine` (with Bun added for a Bun-managed Node app) |
136
+ | Start command | `scripts.start`, then `main` | `node dist/index.js` → `CMD ["node","dist/index.js"]`, any other script → `npm start` (`yarn start`, `bun run start`) |
137
+ | Build step | `tsconfig.json` + `scripts.build` | Multi-stage build running `<pm> run build` |
138
+ | Services | Config file memory adapter | `adapter: postgres` → PostgreSQL service |
139
+ | Volumes | Config file `memory.sqlite.path` | `./data/memory.db` → volume on `/app/data` |
140
+ | Required secrets | Provider of the model, `requireEnv()`, `.env.example` | `openai/gpt-6.1-sol` → `OPENAI_API_KEY`, Bedrock → `AWS_REGION` and both AWS keys |
141
+ | Ollama Cloud | Model tag `:cloud` / `-cloud` | `gpt-oss:120b-cloud` → `OLLAMA_API_KEY` |
142
142
 
143
143
  Preflight starts with the project checks every target shares: `package.json` exists (a `cogitator wizard` assistant has none, it runs with `cogitator up` or `cogitator daemon start`), the project is a server or a worker, the `start` script does not load a `.env` file with `--env-file` (`.env` stays out of the image, use `--env-file-if-exists`), and secrets were found. Other problems (invalid config, unparsable `package.json`, missing start script, `tsconfig.json` without a `build` script, a server without a known health path, local Ollama, Redis or Postgres on Fly, `instances > 1` on Docker) are returned as `plan.warnings`.
144
144
 
145
- The image is based on `node:22-alpine` (`oven/bun:1-alpine` for Bun) and sets `NODE_ENV=production`. A server also gets `PORT`, `EXPOSE` and a `HEALTHCHECK` on its health path.
145
+ The image is a production build in three stages. `base` is `node:24-alpine`, or `oven/bun:1-alpine` when the start command runs `bun`. `builder` adds the native toolchain (`python3`, `make`, `g++`), installs from the lockfile with the package manager's cache in a BuildKit cache mount, runs the build and drops the dev dependencies. `runtime` copies the result, runs as the image's unprivileged user (`node` or `bun`) under `tini`, so signals reach the app and child processes are reaped, and sets `NODE_ENV=production`. A server also gets `PORT`, `EXPOSE` and a `HEALTHCHECK` on its health path. A Node app whose package manager is Bun builds on the Node image with Bun copied in and `node-gyp` installed, so native dependencies such as `better-sqlite3` compile. A `start` script of the form `node [flags] dist/index.js` becomes the `CMD` directly, without its `--env-file` flags: the container gets its environment from the deployment. `file:` and `link:` dependencies are copied in before the install step. A Yarn Berry project on Plug'n'Play (Yarn's default linker) installs its package archives into the image's `.yarn/cache`, keeps only the production ones, and starts with the PnP resolver loaded through `NODE_OPTIONS` (`.pnp.cjs`, and `.pnp.loader.mjs` for ES modules).
146
146
 
147
147
  ## Deploy Targets
148
148
 
@@ -1,4 +1,5 @@
1
1
  import type { DeployConfig, DeployKind, DeployServer, DeployServicesConfig, DeployTarget, PreflightCheck } from '@cogitator-ai/types';
2
+ import type { PlugAndPlay } from './templates/dockerfile.js';
2
3
  /**
3
4
  * The package manager a project installs with. `yarn` is Yarn 1 (classic),
4
5
  * `yarn-berry` is Yarn 2 and later, which take different install flags.
@@ -6,11 +7,15 @@ import type { DeployConfig, DeployKind, DeployServer, DeployServicesConfig, Depl
6
7
  export type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'yarn-berry' | 'bun';
7
8
  interface PackageJson {
8
9
  name?: string;
10
+ type?: string;
9
11
  main?: string;
10
12
  packageManager?: string;
11
13
  scripts?: Record<string, string>;
12
14
  dependencies?: Record<string, string>;
13
15
  devDependencies?: Record<string, string>;
16
+ optionalDependencies?: Record<string, string>;
17
+ overrides?: Record<string, unknown>;
18
+ resolutions?: Record<string, unknown>;
14
19
  patchedDependencies?: Record<string, string>;
15
20
  }
16
21
  /** How a project builds and starts: what the generated Dockerfile needs. */
@@ -24,6 +29,8 @@ export interface ProjectBuild {
24
29
  installFiles: string[];
25
30
  /** Version of the package manager from the `packageManager` field, e.g. `4.5.0` */
26
31
  packageManagerVersion?: string;
32
+ /** Set when Yarn installs with Plug'n'Play: no node_modules, a resolver the app has to load. */
33
+ plugAndPlay?: PlugAndPlay;
27
34
  }
28
35
  export interface AnalyzerResult extends ProjectBuild {
29
36
  server?: DeployServer;
@@ -41,6 +48,19 @@ export interface AnalyzeOptions {
41
48
  /** Environment the deployment takes its secrets from, the project's `.env` under the process environment by default */
42
49
  env?: NodeJS.ProcessEnv;
43
50
  }
51
+ /**
52
+ * Relative paths of the local packages the install reads (`file:` and `link:`
53
+ * specs in dependencies, overrides and resolutions, and in the overrides of
54
+ * pnpm-workspace.yaml), so the image copies them before it installs.
55
+ */
56
+ export declare function localDependencySpecs(projectDir: string, pkg: PackageJson): string[];
57
+ /**
58
+ * `start` as argv when it is `node` or `bun` with flags and one script, such as
59
+ * `node --env-file-if-exists=.env dist/index.js`, and undefined for anything a
60
+ * shell would have to interpret. Flags that load `.env` are dropped: the image
61
+ * gets its environment from the deployment.
62
+ */
63
+ export declare function directCommand(start: string): string[] | undefined;
44
64
  export declare class ProjectAnalyzer {
45
65
  detectServer(pkg: PackageJson): DeployServer | undefined;
46
66
  /**
@@ -67,6 +87,11 @@ export declare class ProjectAnalyzer {
67
87
  packageManager: PackageManager;
68
88
  hasLockfile: boolean;
69
89
  };
90
+ /**
91
+ * The command a container runs: the start script itself when it is a plain
92
+ * `node` or `bun` call, so the runtime is PID 1's direct child and gets
93
+ * signals without a package manager in between, else the package manager.
94
+ */
70
95
  detectStartCommand(pkg: PackageJson, hasTypeScript: boolean, packageManager?: PackageManager): string[];
71
96
  /** How the project in `projectDir` builds and starts. */
72
97
  detectBuild(projectDir: string): ProjectBuild;
@@ -97,6 +122,12 @@ export declare class ProjectAnalyzer {
97
122
  /** `llm.providers` of the config file with every `${VAR}` reference left empty: the values written in it. */
98
123
  private literalProviders;
99
124
  private installFiles;
125
+ /**
126
+ * Plug'n'Play settings of a Yarn 2+ project, `undefined` when it installs
127
+ * node_modules. PnP is Yarn's default linker, and Yarn writes the ESM loader
128
+ * when it is asked to or when a workspace is an ES module.
129
+ */
130
+ detectPlugAndPlay(projectDir: string, pkg: PackageJson): PlugAndPlay | undefined;
100
131
  private buildOf;
101
132
  }
102
133
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,YAAY,EAGZ,cAAc,EACf,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgC7D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;AAE5E,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qGAAqG;IACrG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mFAAmF;IACnF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gGAAgG;IAChG,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uHAAuH;IACvH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAwLD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CA8BnF;AAOD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CASjE;AAED,qBAAa,eAAe;IAC1B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAOxD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS;IAMtF,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,GAAG,oBAAoB;IAQtF;;;;;OAKG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,MAAM,EACxB,GAAG,GAAE,MAAM,CAAC,UAAe,EAC3B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,EAAE;IAaX,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKrC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAgB1F,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,WAA6C,GACjD;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE;IAiC3D;;;;OAIG;IACH,kBAAkB,CAChB,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,OAAO,EACtB,cAAc,GAAE,cAAsB,GACrC,MAAM,EAAE;IAeX,yDAAyD;IACzD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAI7C;;;;OAIG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EACvC,OAAO,GAAE,cAAmB,GAC3B,cAAc;IAyIjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;IAIlB,kGAAkG;IAClG,OAAO,CAAC,uBAAuB;IAa/B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,SAAS;IAYjB,6GAA6G;IAC7G,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IAmBpB;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAsBhF,OAAO,CAAC,OAAO;CAkBhB"}
package/dist/analyzer.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { parse as parseYaml } from 'yaml';
1
2
  import { isLLMProvider, resolveModelRoute } from '@cogitator-ai/types';
2
3
  import { findConfigFile, loadConfig, loadYamlConfig, OLLAMA_DEFAULT_PORT, PROVIDER_ENV, preferredEnvName, providerEnvNames, resolveOllamaHost, } from '@cogitator-ai/config';
3
4
  import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
@@ -80,6 +81,7 @@ function readPackageJson(projectDir, warnings) {
80
81
  };
81
82
  return {
82
83
  name: typeof raw.name === 'string' ? raw.name : undefined,
84
+ type: typeof raw.type === 'string' ? raw.type : undefined,
83
85
  main: typeof raw.main === 'string' ? raw.main : undefined,
84
86
  packageManager: typeof raw.packageManager === 'string' ? raw.packageManager : undefined,
85
87
  scripts: isStringRecord(raw.scripts) ? raw.scripts : undefined,
@@ -177,6 +179,75 @@ function providerField(providers, provider, field) {
177
179
  const value = section[field];
178
180
  return typeof value === 'string' && value.trim() !== '' ? value : undefined;
179
181
  }
182
+ /** The first directory of a relative path inside the project, undefined for anything else. */
183
+ function topDirectory(path) {
184
+ if (isAbsolute(path))
185
+ return undefined;
186
+ const first = posix.normalize(path.replace(/\\/g, '/')).split('/')[0];
187
+ return first && first !== '..' && first !== '.' ? first : undefined;
188
+ }
189
+ const LOCAL_SPEC = /^(?:file|link):(.+)$/;
190
+ /**
191
+ * Relative paths of the local packages the install reads (`file:` and `link:`
192
+ * specs in dependencies, overrides and resolutions, and in the overrides of
193
+ * pnpm-workspace.yaml), so the image copies them before it installs.
194
+ */
195
+ export function localDependencySpecs(projectDir, pkg) {
196
+ const specs = [];
197
+ const collect = (value) => {
198
+ if (typeof value === 'string') {
199
+ const match = LOCAL_SPEC.exec(value.trim());
200
+ if (match)
201
+ specs.push(match[1]);
202
+ }
203
+ else if (typeof value === 'object' && value !== null) {
204
+ for (const nested of Object.values(value))
205
+ collect(nested);
206
+ }
207
+ };
208
+ for (const field of [
209
+ pkg.dependencies,
210
+ pkg.devDependencies,
211
+ pkg.optionalDependencies,
212
+ pkg.overrides,
213
+ pkg.resolutions,
214
+ ]) {
215
+ collect(field);
216
+ }
217
+ const workspace = join(projectDir, 'pnpm-workspace.yaml');
218
+ if (existsSync(workspace)) {
219
+ try {
220
+ const parsed = parseYaml(readFileSync(workspace, 'utf-8'));
221
+ if (typeof parsed === 'object' && parsed !== null && 'overrides' in parsed)
222
+ collect(parsed.overrides);
223
+ }
224
+ catch {
225
+ return specs;
226
+ }
227
+ }
228
+ return specs;
229
+ }
230
+ /** `.env` never reaches the image (.dockerignore), so a flag that loads it only logs that it is missing. */
231
+ const DOTENV_FLAG = /^--env-file(?:-if-exists)?(?:=|$)/;
232
+ const PLAIN_WORD = /^[^\s&|;<>$`"'*?()]+$/;
233
+ /**
234
+ * `start` as argv when it is `node` or `bun` with flags and one script, such as
235
+ * `node --env-file-if-exists=.env dist/index.js`, and undefined for anything a
236
+ * shell would have to interpret. Flags that load `.env` are dropped: the image
237
+ * gets its environment from the deployment.
238
+ */
239
+ export function directCommand(start) {
240
+ const words = start.split(/\s+/);
241
+ const [runtime, ...rest] = words;
242
+ if (runtime !== 'node' && runtime !== 'bun')
243
+ return undefined;
244
+ if (rest.length === 0 || !rest.every((word) => PLAIN_WORD.test(word)))
245
+ return undefined;
246
+ const script = rest[rest.length - 1];
247
+ if (script.startsWith('-') || rest.slice(0, -1).some((word) => !word.startsWith('--')))
248
+ return undefined;
249
+ return [runtime, ...rest.filter((word) => !DOTENV_FLAG.test(word))];
250
+ }
180
251
  export class ProjectAnalyzer {
181
252
  detectServer(pkg) {
182
253
  for (const [pkgName, server] of Object.entries(SERVER_PACKAGES)) {
@@ -267,16 +338,23 @@ export class ProjectAnalyzer {
267
338
  }
268
339
  return { packageManager: 'npm', hasLockfile: false };
269
340
  }
341
+ /**
342
+ * The command a container runs: the start script itself when it is a plain
343
+ * `node` or `bun` call, so the runtime is PID 1's direct child and gets
344
+ * signals without a package manager in between, else the package manager.
345
+ */
270
346
  detectStartCommand(pkg, hasTypeScript, packageManager = 'npm') {
271
347
  const bun = packageManager === 'bun';
272
348
  const start = pkg.scripts?.start?.trim();
273
349
  if (start) {
350
+ const direct = directCommand(start);
351
+ if (direct)
352
+ return direct;
274
353
  if (bun)
275
354
  return ['bun', 'run', 'start'];
276
355
  if (packageManager === 'yarn-berry')
277
356
  return ['yarn', 'start'];
278
- const nodeScript = /^node\s+([^\s&|;<>$`"']+)$/.exec(start);
279
- return nodeScript ? ['node', nodeScript[1]] : ['npm', 'start'];
357
+ return ['npm', 'start'];
280
358
  }
281
359
  const runtime = bun ? 'bun' : 'node';
282
360
  if (pkg.main)
@@ -554,20 +632,49 @@ export class ProjectAnalyzer {
554
632
  'yarn-berry': ['yarn.lock', '.yarnrc.yml', '.yarn'],
555
633
  bun: ['bun.lock', 'bun.lockb', 'bunfig.toml'],
556
634
  };
635
+ const isDir = (dir) => dir !== undefined;
557
636
  const patchDirs = Object.values(pkg.patchedDependencies ?? {})
558
- .filter((path) => !isAbsolute(path))
559
- .map((path) => posix.normalize(path.replace(/\\/g, '/')).split('/')[0])
560
- .filter((first) => first && first !== '..' && first !== '.');
561
- return unique([...candidates[pm], '.npmrc', 'patches', ...patchDirs])
637
+ .map(topDirectory)
638
+ .filter(isDir);
639
+ const localDirs = localDependencySpecs(projectDir, pkg).map(topDirectory).filter(isDir);
640
+ return unique([...candidates[pm], '.npmrc', 'patches', ...patchDirs, ...localDirs])
562
641
  .filter((file) => existsSync(join(projectDir, file)))
563
642
  .map((file) => (statSync(join(projectDir, file)).isDirectory() ? `${file}/` : file));
564
643
  }
644
+ /**
645
+ * Plug'n'Play settings of a Yarn 2+ project, `undefined` when it installs
646
+ * node_modules. PnP is Yarn's default linker, and Yarn writes the ESM loader
647
+ * when it is asked to or when a workspace is an ES module.
648
+ */
649
+ detectPlugAndPlay(projectDir, pkg) {
650
+ const rcPath = join(projectDir, '.yarnrc.yml');
651
+ let rc = {};
652
+ if (existsSync(rcPath)) {
653
+ try {
654
+ const parsed = parseYaml(readFileSync(rcPath, 'utf-8'));
655
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
656
+ rc = parsed;
657
+ }
658
+ catch {
659
+ rc = {};
660
+ }
661
+ }
662
+ const linker = typeof rc.nodeLinker === 'string' ? rc.nodeLinker : 'pnp';
663
+ if (linker !== 'pnp')
664
+ return undefined;
665
+ return {
666
+ esmLoader: rc.pnpEnableEsmLoader === true ||
667
+ pkg.type === 'module' ||
668
+ existsSync(join(projectDir, '.pnp.loader.mjs')),
669
+ };
670
+ }
565
671
  buildOf(projectDir, pkg) {
566
672
  const hasTypeScript = existsSync(join(projectDir, 'tsconfig.json'));
567
673
  const pm = this.detectPackageManager(projectDir, pkg);
568
674
  const declared = parsePackageManagerField(pkg.packageManager);
569
675
  const binary = pm.packageManager === 'yarn-berry' ? 'yarn' : pm.packageManager;
570
676
  const version = declared?.name === binary ? declared.version : undefined;
677
+ const plugAndPlay = pm.packageManager === 'yarn-berry' ? this.detectPlugAndPlay(projectDir, pkg) : undefined;
571
678
  return {
572
679
  hasTypeScript,
573
680
  ...pm,
@@ -575,6 +682,7 @@ export class ProjectAnalyzer {
575
682
  startCommand: this.detectStartCommand(pkg, hasTypeScript, pm.packageManager),
576
683
  installFiles: this.installFiles(projectDir, pkg, pm.packageManager),
577
684
  ...(version ? { packageManagerVersion: version } : {}),
685
+ ...(plugAndPlay && { plugAndPlay }),
578
686
  };
579
687
  }
580
688
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DeployConfig, GeneratedArtifacts } from '@cogitator-ai/types';
2
- import { type DockerfilePackageManager } from './templates/dockerfile.js';
2
+ import { type DockerfilePackageManager, type PlugAndPlay } from './templates/dockerfile.js';
3
3
  export interface GeneratorOptions {
4
4
  hasTypeScript: boolean;
5
5
  packageManager?: DockerfilePackageManager;
@@ -10,9 +10,11 @@ export interface GeneratorOptions {
10
10
  installFiles?: string[];
11
11
  /** Version from the `packageManager` field of package.json */
12
12
  packageManagerVersion?: string;
13
+ /** Yarn Plug'n'Play: the packages live in .yarn/cache and the app loads .pnp.cjs */
14
+ plugAndPlay?: PlugAndPlay;
13
15
  }
14
16
  export declare const ARTIFACTS_DIR = ".cogitator";
15
- export declare const DOCKERIGNORE = "node_modules\ndist\n.git\n.gitignore\n.env\n.env.*\n*.md\n.cogitator\n";
17
+ export declare const DOCKERIGNORE = "node_modules\n.pnp.cjs\n.pnp.loader.mjs\n.yarn/cache\n.yarn/unplugged\n.yarn/install-state.gz\ndist\n.git\n.gitignore\n.env\n.env.*\n*.md\n.cogitator\n";
16
18
  /** The `.dockerignore` of `config`: the defaults, and the volume directories, whose local data must not ship in the image. */
17
19
  export declare function dockerignoreFor(config: DeployConfig): string;
18
20
  export declare class ArtifactGenerator {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAsB,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAK9F,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,eAAO,MAAM,YAAY,2EAQxB,CAAC;AAEF,8HAA8H;AAC9H,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAG5D;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,kBAAkB;CA6B9E"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,eAAO,MAAM,YAAY,4JAaxB,CAAC;AAEF,8HAA8H;AAC9H,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAG5D;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,kBAAkB;CA6B9E"}
package/dist/generator.js CHANGED
@@ -1,9 +1,14 @@
1
- import { generateDockerfile } from './templates/dockerfile.js';
1
+ import { generateDockerfile, } from './templates/dockerfile.js';
2
2
  import { generateDockerCompose } from './templates/docker-compose.js';
3
3
  import { generateFlyToml } from './templates/fly-toml.js';
4
4
  import { projectVolumePaths } from './volumes.js';
5
5
  export const ARTIFACTS_DIR = '.cogitator';
6
6
  export const DOCKERIGNORE = `node_modules
7
+ .pnp.cjs
8
+ .pnp.loader.mjs
9
+ .yarn/cache
10
+ .yarn/unplugged
11
+ .yarn/install-state.gz
7
12
  dist
8
13
  .git
9
14
  .gitignore
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAiC,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAclD,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;CAQ3B,CAAC;AAEF,8HAA8H;AAC9H,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;AACtF,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,QAAQ,CAAC,MAAoB,EAAE,OAAyB;QACtD,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;SACpD,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAEvE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,GAGnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAgBlD,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;CAa3B,CAAC;AAEF,8HAA8H;AAC9H,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;AACtF,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,QAAQ,CAAC,MAAoB,EAAE,OAAyB;QACtD,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;SACpD,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAEvE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAC7C,CAAC;CACF"}
@@ -4,6 +4,11 @@ import type { DeployConfig } from '@cogitator-ai/types';
4
4
  * `yarn-berry` is Yarn 2 and later.
5
5
  */
6
6
  export type DockerfilePackageManager = 'pnpm' | 'npm' | 'yarn' | 'yarn-berry' | 'bun';
7
+ /** How a Yarn Plug'n'Play project resolves its packages at runtime. */
8
+ export interface PlugAndPlay {
9
+ /** Whether Yarn writes `.pnp.loader.mjs`, which ES modules need to resolve packages. */
10
+ esmLoader: boolean;
11
+ }
7
12
  export interface DockerfileOptions {
8
13
  config: DeployConfig;
9
14
  hasTypeScript: boolean;
@@ -15,8 +20,23 @@ export interface DockerfileOptions {
15
20
  installFiles?: string[];
16
21
  /** Version from the `packageManager` field of package.json */
17
22
  packageManagerVersion?: string;
23
+ /**
24
+ * Yarn Plug'n'Play: the package archives are installed into the project's
25
+ * .yarn/cache so they ship in the image (the global cache is a build cache
26
+ * mount), and the app starts with the PnP resolver loaded.
27
+ */
28
+ plugAndPlay?: PlugAndPlay;
18
29
  }
19
- export declare const NODE_IMAGE = "node:22-alpine";
30
+ export declare const NODE_IMAGE = "node:24-alpine";
20
31
  export declare const BUN_IMAGE = "oven/bun:1-alpine";
32
+ /**
33
+ * A production image: dependencies installed from the lockfile with the
34
+ * package manager's cache kept between builds, TypeScript built in a builder
35
+ * stage that then drops its dev dependencies, and a runtime stage that runs as
36
+ * the image's unprivileged user under tini, so signals reach the app and child
37
+ * processes (MCP servers, sandboxes) are reaped. The image follows what runs
38
+ * the app: Bun's image for `bun` start commands, Node's otherwise, with Bun
39
+ * and node-gyp added for a Node app whose package manager is Bun.
40
+ */
21
41
  export declare function generateDockerfile(options: DockerfileOptions): string;
22
42
  //# sourceMappingURL=dockerfile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/templates/dockerfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,SAAS,sBAAsB,CAAC;AAgG7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAmDrE"}
1
+ {"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/templates/dockerfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC;AAEtF,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,wFAAwF;IACxF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,SAAS,sBAAsB,CAAC;AA6H7C;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA+ErE"}
@@ -1,5 +1,5 @@
1
1
  import { healthPath, servesHttp } from './health.js';
2
- export const NODE_IMAGE = 'node:22-alpine';
2
+ export const NODE_IMAGE = 'node:24-alpine';
3
3
  export const BUN_IMAGE = 'oven/bun:1-alpine';
4
4
  const DEFAULT_INSTALL_FILES = {
5
5
  pnpm: ['pnpm-lock.yaml*'],
@@ -8,6 +8,14 @@ const DEFAULT_INSTALL_FILES = {
8
8
  'yarn-berry': ['yarn.lock*', '.yarnrc.yml*'],
9
9
  bun: ['bun.lock*'],
10
10
  };
11
+ /** Where each package manager keeps its download cache, mounted as a BuildKit cache across builds. */
12
+ const CACHE_DIRS = {
13
+ pnpm: '/root/.local/share/pnpm/store',
14
+ npm: '/root/.npm',
15
+ yarn: '/usr/local/share/.cache/yarn',
16
+ 'yarn-berry': '/root/.yarn/berry/cache',
17
+ bun: '/root/.bun/install/cache',
18
+ };
11
19
  function copyInstallFiles(pm, files) {
12
20
  if (!files)
13
21
  return [`COPY package.json ${DEFAULT_INSTALL_FILES[pm].join(' ')} ./`];
@@ -18,49 +26,65 @@ function copyInstallFiles(pm, files) {
18
26
  ...directories.map((dir) => `COPY ${dir} ./${dir}`),
19
27
  ];
20
28
  }
29
+ function cached(pm, command) {
30
+ return `RUN --mount=type=cache,id=${pm},target=${CACHE_DIRS[pm]} ${command}`;
31
+ }
21
32
  function installSteps(options, pm) {
22
33
  const locked = options.hasLockfile ?? true;
23
34
  const copy = copyInstallFiles(pm, options.installFiles);
24
35
  switch (pm) {
25
- case 'pnpm':
36
+ case 'pnpm': {
37
+ const frozen = locked ? ' --frozen-lockfile' : '';
26
38
  return {
27
39
  copy,
28
- install: `RUN corepack enable && pnpm install${locked ? ' --frozen-lockfile' : ''}`,
29
- installProd: `RUN corepack enable && pnpm install${locked ? ' --frozen-lockfile' : ''} --prod`,
40
+ install: cached(pm, `pnpm install${frozen}`),
41
+ installProd: cached(pm, `pnpm install${frozen} --prod`),
42
+ prune: cached(pm, 'pnpm prune --prod --ignore-scripts'),
30
43
  build: 'RUN pnpm run build',
31
44
  };
32
- case 'yarn':
45
+ }
46
+ case 'yarn': {
47
+ const frozen = locked ? ' --frozen-lockfile' : '';
33
48
  return {
34
49
  copy,
35
- install: `RUN corepack enable && yarn install${locked ? ' --frozen-lockfile' : ''}`,
36
- installProd: `RUN corepack enable && yarn install${locked ? ' --frozen-lockfile' : ''} --production`,
50
+ install: cached(pm, `yarn install${frozen}`),
51
+ installProd: cached(pm, `yarn install${frozen} --production`),
52
+ prune: cached(pm, `yarn install${frozen} --production --ignore-scripts --prefer-offline`),
37
53
  build: 'RUN yarn run build',
38
54
  };
55
+ }
39
56
  case 'yarn-berry': {
40
- const install = `RUN corepack enable && yarn install${locked ? ' --immutable' : ''}`;
57
+ const local = options.plugAndPlay ? 'YARN_ENABLE_GLOBAL_CACHE=false ' : '';
58
+ const install = cached(pm, `${local}yarn install${locked ? ' --immutable' : ''}`);
41
59
  const focusable = Number.parseInt(options.packageManagerVersion ?? '', 10) >= 4;
60
+ const focus = cached(pm, `${local}yarn workspaces focus --all --production`);
61
+ const prune = options.plugAndPlay
62
+ ? cached(pm, `rm -rf .yarn/cache && ${local}yarn workspaces focus --all --production`)
63
+ : focus;
42
64
  return {
43
65
  copy,
44
66
  install,
45
- installProd: focusable
46
- ? 'RUN corepack enable && yarn workspaces focus --all --production'
47
- : install,
67
+ installProd: focusable ? focus : install,
68
+ ...(focusable && { prune }),
48
69
  build: 'RUN yarn run build',
49
- runtimeSetup: 'RUN corepack enable',
50
70
  };
51
71
  }
52
- case 'bun':
72
+ case 'bun': {
73
+ const frozen = locked ? ' --frozen-lockfile' : '';
53
74
  return {
54
75
  copy,
55
- install: `RUN bun install${locked ? ' --frozen-lockfile' : ''}`,
56
- installProd: `RUN bun install${locked ? ' --frozen-lockfile' : ''} --production`,
76
+ install: cached(pm, `bun install${frozen}`),
77
+ installProd: cached(pm, `bun install${frozen} --production`),
78
+ prune: cached(pm, `rm -rf node_modules && bun install${frozen} --production`),
57
79
  build: 'RUN bun run build',
58
80
  };
81
+ }
59
82
  case 'npm':
60
83
  return {
61
84
  copy,
62
- install: locked ? 'RUN npm ci' : 'RUN npm install',
63
- installProd: locked ? 'RUN npm ci --omit=dev' : 'RUN npm install --omit=dev',
85
+ install: cached(pm, locked ? 'npm ci' : 'npm install'),
86
+ installProd: cached(pm, locked ? 'npm ci --omit=dev' : 'npm install --omit=dev'),
87
+ prune: cached(pm, 'npm prune --omit=dev'),
64
88
  build: 'RUN npm run build',
65
89
  };
66
90
  }
@@ -81,11 +105,23 @@ function healthcheck(config, port) {
81
105
  function lines(...entries) {
82
106
  return entries.filter((entry) => typeof entry === 'string').join('\n') + '\n';
83
107
  }
108
+ /**
109
+ * A production image: dependencies installed from the lockfile with the
110
+ * package manager's cache kept between builds, TypeScript built in a builder
111
+ * stage that then drops its dev dependencies, and a runtime stage that runs as
112
+ * the image's unprivileged user under tini, so signals reach the app and child
113
+ * processes (MCP servers, sandboxes) are reaped. The image follows what runs
114
+ * the app: Bun's image for `bun` start commands, Node's otherwise, with Bun
115
+ * and node-gyp added for a Node app whose package manager is Bun.
116
+ */
84
117
  export function generateDockerfile(options) {
85
118
  const { config, hasTypeScript } = options;
86
119
  const pm = options.packageManager ?? 'pnpm';
87
- const image = pm === 'bun' ? BUN_IMAGE : NODE_IMAGE;
88
- const runtime = pm === 'bun' ? 'bun' : 'node';
120
+ const bun = options.startCommand ? options.startCommand[0] === 'bun' : pm === 'bun';
121
+ const image = bun ? BUN_IMAGE : NODE_IMAGE;
122
+ const user = bun ? 'bun' : 'node';
123
+ const runtime = bun ? 'bun' : 'node';
124
+ const bunOnNode = pm === 'bun' && !bun;
89
125
  const steps = installSteps(options, pm);
90
126
  const startCommand = options.startCommand ?? [
91
127
  runtime,
@@ -93,22 +129,43 @@ export function generateDockerfile(options) {
93
129
  ];
94
130
  const http = servesHttp(config);
95
131
  const port = config.port ?? 3000;
132
+ const pnpResolver = options.plugAndPlay && pm === 'yarn-berry' && !bun && startCommand[0] !== 'yarn'
133
+ ? `NODE_OPTIONS="--require /app/.pnp.cjs${options.plugAndPlay.esmLoader ? ' --experimental-loader file:///app/.pnp.loader.mjs' : ''}"`
134
+ : undefined;
96
135
  const env = [
97
136
  'ENV NODE_ENV=production',
98
137
  http ? `PORT=${port}` : undefined,
99
138
  startCommand[0] === 'npm' ? 'NPM_CONFIG_UPDATE_NOTIFIER=false' : undefined,
139
+ pnpResolver,
100
140
  ]
101
141
  .filter((entry) => entry !== undefined)
102
142
  .join(' ');
103
- const runtimeTail = [
143
+ const corepack = pm === 'pnpm' || pm === 'yarn' || pm === 'yarn-berry';
144
+ const base = [
145
+ `FROM ${image} AS base`,
146
+ 'WORKDIR /app',
147
+ corepack ? 'RUN corepack enable' : undefined,
148
+ bunOnNode ? `COPY --from=${BUN_IMAGE} /usr/local/bin/bun /usr/local/bin/bun` : undefined,
149
+ ];
150
+ const runtimeStage = (copy) => [
151
+ 'FROM base AS runtime',
152
+ 'RUN apk add --no-cache tini && chown ' + user + ':' + user + ' /app',
104
153
  env,
154
+ ...copy,
155
+ `USER ${user}`,
105
156
  http ? `EXPOSE ${port}` : undefined,
106
157
  http ? healthcheck(config, port) : undefined,
158
+ 'ENTRYPOINT ["/sbin/tini", "--"]',
107
159
  `CMD ${JSON.stringify(startCommand)}`,
108
160
  ];
109
161
  if (!hasTypeScript) {
110
- return lines(`FROM ${image}`, 'WORKDIR /app', ...steps.copy, steps.installProd, 'COPY . .', ...runtimeTail);
162
+ return lines('# syntax=docker/dockerfile:1', ...base, '', 'FROM base AS deps', ...steps.copy, steps.installProd, '', ...runtimeStage([
163
+ `COPY --from=deps --chown=${user}:${user} /app ./`,
164
+ `COPY --chown=${user}:${user} . .`,
165
+ ]));
111
166
  }
112
- return lines(`FROM ${image} AS builder`, 'WORKDIR /app', ...steps.copy, steps.install, 'COPY . .', options.hasBuildScript === false ? undefined : steps.build, '', `FROM ${image} AS runtime`, 'WORKDIR /app', steps.runtimeSetup, 'COPY --from=builder /app ./', ...runtimeTail);
167
+ return lines('# syntax=docker/dockerfile:1', ...base, '', 'FROM base AS builder', bunOnNode
168
+ ? 'RUN apk add --no-cache python3 make g++ && npm install -g node-gyp'
169
+ : 'RUN apk add --no-cache python3 make g++', ...steps.copy, steps.install, 'COPY . .', options.hasBuildScript === false ? undefined : steps.build, steps.prune, '', ...runtimeStage([`COPY --from=builder --chown=${user}:${user} /app ./`]));
113
170
  }
114
171
  //# sourceMappingURL=dockerfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/templates/dockerfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/templates/dockerfile.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.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "One-command deployment for Cogitator agents",
5
5
  "keywords": [
6
6
  "cogitator",
@@ -24,8 +24,9 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@cogitator-ai/types": "0.36.0",
28
- "@cogitator-ai/config": "0.12.0"
27
+ "@cogitator-ai/types": "0.37.0",
28
+ "@cogitator-ai/config": "0.12.1",
29
+ "yaml": "^2.9.1"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@types/node": "^22.20.4",