@cogitator-ai/deploy 0.3.4 → 0.4.1
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 +81 -48
- package/dist/analyzer.d.ts +16 -5
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +49 -18
- package/dist/analyzer.js.map +1 -1
- package/dist/deployer.d.ts +0 -1
- package/dist/deployer.d.ts.map +1 -1
- package/dist/deployer.js +2 -10
- package/dist/deployer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/providers/artifacts.d.ts +3 -1
- package/dist/providers/artifacts.d.ts.map +1 -1
- package/dist/providers/artifacts.js +6 -1
- package/dist/providers/artifacts.js.map +1 -1
- package/dist/providers/docker.d.ts.map +1 -1
- package/dist/providers/docker.js +5 -7
- package/dist/providers/docker.js.map +1 -1
- package/dist/providers/fly.d.ts.map +1 -1
- package/dist/providers/fly.js +4 -8
- package/dist/providers/fly.js.map +1 -1
- package/dist/templates/docker-compose.d.ts.map +1 -1
- package/dist/templates/docker-compose.js +14 -11
- package/dist/templates/docker-compose.js.map +1 -1
- package/dist/templates/dockerfile.d.ts.map +1 -1
- package/dist/templates/dockerfile.js +2 -3
- package/dist/templates/dockerfile.js.map +1 -1
- package/dist/templates/fly-toml.d.ts.map +1 -1
- package/dist/templates/fly-toml.js +2 -2
- package/dist/templates/fly-toml.js.map +1 -1
- package/dist/templates/health.d.ts +6 -0
- package/dist/templates/health.d.ts.map +1 -0
- package/dist/templates/health.js +8 -0
- package/dist/templates/health.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
One-command deployment engine for Cogitator agents. Analyzes your project, generates a Dockerfile and target-specific artifacts, runs preflight checks and deploys to Docker or Fly.io.
|
|
4
4
|
|
|
5
|
+
Guide: [cogitator.app/docs/deployment/deploy-package](https://cogitator.app/docs/deployment/deploy-package)
|
|
6
|
+
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
7
9
|
```bash
|
|
@@ -31,6 +33,7 @@ const plan = await deployer.plan({
|
|
|
31
33
|
projectDir: process.cwd(),
|
|
32
34
|
target: 'docker',
|
|
33
35
|
noPush: true,
|
|
36
|
+
configOverrides: { port: 8080, secrets: ['OPENAI_API_KEY'] },
|
|
34
37
|
});
|
|
35
38
|
|
|
36
39
|
console.log(plan.config); // resolved DeployConfig (image, port, services, secrets, ...)
|
|
@@ -42,96 +45,123 @@ if (!result.success) throw new Error(result.error);
|
|
|
42
45
|
console.log(result.url); // https://my-app.fly.dev
|
|
43
46
|
```
|
|
44
47
|
|
|
45
|
-
| Method | Description
|
|
46
|
-
| ------------------------------------- |
|
|
47
|
-
| `plan(options)` | Analyze + preflight. Returns `config`, `preflight`, `warnings`, `analysis`, `provider`
|
|
48
|
-
| `deploy(options)` | `plan`, generate artifacts, deploy. Returns `DeployResult` (`
|
|
49
|
-
| `status(target, config, projectDir)` | `DeployStatus` (`running`, `url`, `instances`)
|
|
50
|
-
| `destroy(target, config, projectDir)` | Tears down the deployment; throws when it fails
|
|
51
|
-
| `availableTargets()` | Names of registered providers (`['docker', 'fly']` by default)
|
|
52
|
-
| `registerProvider(provider)` | Add a custom `DeployProvider`
|
|
48
|
+
| Method | Description |
|
|
49
|
+
| ------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
50
|
+
| `plan(options)` | Analyze + preflight. Returns `config`, `preflight`, `warnings`, `analysis`, `provider` |
|
|
51
|
+
| `deploy(options)` | `plan`, generate artifacts, deploy. Returns `DeployResult` (`url`, `endpoints`, `error`) |
|
|
52
|
+
| `status(target, config, projectDir)` | `DeployStatus` (`running`, `url`, `instances`, `uptime`) |
|
|
53
|
+
| `destroy(target, config, projectDir)` | Tears down the deployment; throws when it fails |
|
|
54
|
+
| `availableTargets()` | Names of registered providers (`['docker', 'fly']` by default) |
|
|
55
|
+
| `registerProvider(provider)` | Add a custom `DeployProvider` |
|
|
56
|
+
| `getProvider(target)` | The registered provider; throws for an unknown target |
|
|
57
|
+
|
|
58
|
+
`DeployOptions`: `projectDir`, `target`, `dryRun` (plan and generate, then return `{ success: true, url: '(dry run)' }` without writing artifacts or deploying), `noPush` (drop the registry) and `configOverrides` (a partial `DeployConfig`). `deploy()` does not throw on failed preflight checks: it returns `{ success: false, error }` listing each failed check and its fix.
|
|
59
|
+
|
|
60
|
+
`ProjectAnalyzer` (`analyze(projectDir, overrides?)`, `detectBuild(projectDir)`), `ArtifactGenerator`, `DockerProvider` and `FlyProvider` are exported for building your own pipeline.
|
|
53
61
|
|
|
54
62
|
## Configuration
|
|
55
63
|
|
|
56
|
-
|
|
64
|
+
Both `cogitator deploy` and the programmatic `Deployer` read the `deploy` section of the project's `cogitator.yml`. `configOverrides` win over it field by field (inside `services`, `env`, `health` and `resources` too), and both win over auto-detection:
|
|
57
65
|
|
|
58
66
|
```yaml
|
|
59
67
|
deploy:
|
|
60
|
-
target: fly # docker | fly
|
|
61
|
-
|
|
68
|
+
target: fly # docker | fly (default: docker)
|
|
69
|
+
server: express # express | fastify | hono | koa (default: detected)
|
|
70
|
+
port: 3000 # default: 3000
|
|
62
71
|
image: my-agent # Docker image / Fly app name (default: package.json name)
|
|
63
|
-
region: iad
|
|
64
|
-
instances: 2 # Fly.io only
|
|
72
|
+
region: iad # Fly.io, default: iad
|
|
73
|
+
instances: 2 # Fly.io only; docker runs one container
|
|
65
74
|
registry: ghcr.io/myorg
|
|
66
|
-
services:
|
|
75
|
+
services: # default: detected from the memory adapter
|
|
67
76
|
redis: true
|
|
68
77
|
postgres: true
|
|
69
78
|
env:
|
|
70
79
|
LOG_LEVEL: info
|
|
71
|
-
secrets:
|
|
80
|
+
secrets: # default: detected from llm.defaultModel
|
|
72
81
|
- OPENAI_API_KEY
|
|
73
|
-
health:
|
|
74
|
-
path: /health
|
|
82
|
+
health: # defaults shown
|
|
83
|
+
path: /cogitator/health
|
|
75
84
|
interval: 30s
|
|
76
85
|
timeout: 5s
|
|
77
|
-
resources:
|
|
86
|
+
resources: # Fly.io VM, default: 256mb, 1 shared CPU
|
|
78
87
|
memory: 512mb
|
|
79
88
|
cpu: 1
|
|
80
89
|
```
|
|
81
90
|
|
|
91
|
+
`health.path` defaults to the path the Express and Fastify adapters serve at their default `/cogitator` base path. Set it only when the adapter is mounted elsewhere (Hono, Koa and Tetsu answer wherever you mount them). Projects from `create-cogitator-app` already set it: the `api-server` template mounts the adapter at `/api` and writes `health.path: /api/health`.
|
|
92
|
+
|
|
82
93
|
Secrets are read from the current environment or the project's `.env` file. They are checked during preflight, passed through to the Docker Compose stack, and imported into Fly.io with `fly secrets import --stage`.
|
|
83
94
|
|
|
84
95
|
## Auto-Detection
|
|
85
96
|
|
|
86
|
-
| What | Source | Example
|
|
87
|
-
| ---------------- | ---------------------------------------- |
|
|
88
|
-
| Server adapter | `package.json` dependencies | `@cogitator-ai/express` → Express
|
|
89
|
-
| Image / app name | `package.json` `name` | `@acme/My Agent` → `my-agent`
|
|
90
|
-
| Package manager | Lockfile | `pnpm-lock.yaml` → `pnpm install --frozen-lockfile`, `package-lock.json` → `npm ci` |
|
|
91
|
-
| Start command | `scripts.start`, then `main` | `node dist/index.js` → `CMD ["node","dist/index.js"]`,
|
|
92
|
-
| Build step | `tsconfig.json` + `scripts.build` | Multi-stage build running `<pm> run build`
|
|
93
|
-
| Services | `cogitator.yml` / `.yaml` memory adapter | `adapter: postgres` → PostgreSQL service
|
|
94
|
-
| Required secrets | `llm.defaultModel` (+ `defaultProvider`) | `openai/gpt-6.1-sol` → `OPENAI_API_KEY`; Bedrock → both AWS keys
|
|
95
|
-
| Ollama Cloud | Model tag `:cloud` / `-cloud` | `gpt-oss:120b-cloud` → `OLLAMA_API_KEY`
|
|
97
|
+
| What | Source | Example |
|
|
98
|
+
| ---------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| Server adapter | `package.json` dependencies | `@cogitator-ai/express` → Express |
|
|
100
|
+
| Image / app name | `package.json` `name` | `@acme/My Agent` → `my-agent` (fallback `cogitator-app`) |
|
|
101
|
+
| Package manager | Lockfile | `pnpm-lock.yaml` → `pnpm install --frozen-lockfile`, `yarn.lock` → `yarn install --frozen-lockfile`, `package-lock.json` → `npm ci`, none → `npm install` |
|
|
102
|
+
| Start command | `scripts.start`, then `main` | `node dist/index.js` → `CMD ["node","dist/index.js"]`, any other script → `npm start`; without both, `node dist/server.js` (TypeScript) or `node src/server.js` |
|
|
103
|
+
| Build step | `tsconfig.json` + `scripts.build` | Multi-stage build running `<pm> run build` |
|
|
104
|
+
| Services | `cogitator.yml` / `.yaml` memory adapter | `adapter: postgres` → PostgreSQL service |
|
|
105
|
+
| Required secrets | `llm.defaultModel` (+ `defaultProvider`) | `openai/gpt-6.1-sol` → `OPENAI_API_KEY`; Bedrock → both AWS keys |
|
|
106
|
+
| Ollama Cloud | Model tag `:cloud` / `-cloud` | `gpt-oss:120b-cloud` → `OLLAMA_API_KEY` |
|
|
96
107
|
|
|
97
|
-
Problems found during analysis (invalid config, unparsable `package.json`, missing start script, local Ollama models on cloud targets) are returned as `plan.warnings` instead of being ignored.
|
|
108
|
+
Problems found during analysis (invalid config, unparsable `package.json`, missing start script, `tsconfig.json` without a `build` script, local Ollama models on cloud targets, `instances > 1` on Docker) are returned as `plan.warnings` instead of being ignored.
|
|
109
|
+
|
|
110
|
+
The image is based on `node:22-alpine`, sets `NODE_ENV=production` and `PORT`, exposes `port` and has a `HEALTHCHECK` on `health.path`.
|
|
98
111
|
|
|
99
112
|
## Deploy Targets
|
|
100
113
|
|
|
101
114
|
### Docker
|
|
102
115
|
|
|
103
|
-
Artifacts are written to `.cogitator/`: `Dockerfile`, `Dockerfile.dockerignore` and `docker-compose.prod.yml`. A root `.dockerignore` is created when the project has none, so `.env` and `node_modules` never enter the image.
|
|
116
|
+
Artifacts are written to `.cogitator/`: `Dockerfile`, `.dockerignore`, `Dockerfile.dockerignore` and `docker-compose.prod.yml`. A root `.dockerignore` is created when the project has none, so `.env` and `node_modules` never enter the image.
|
|
104
117
|
|
|
105
|
-
`deploy` builds and tags the image (`<registry>/<image>:latest`), pushes it when a registry is configured, then runs `docker compose up -d` for the app plus the Redis/PostgreSQL services it needs (health-gated, data in named volumes). `status` reports whether the `app` service is running; `destroy` runs `docker compose down` and keeps volumes.
|
|
118
|
+
`deploy` builds and tags the image (`<registry>/<image>:latest`), pushes it when a registry is configured, then runs `docker compose up -d` for the app plus the Redis/PostgreSQL services it needs (health-gated, data in named volumes). Each key appears once in the app's Compose `environment`: a `REDIS_URL` / `DATABASE_URL` in `env` replaces the bundled service URL, and one listed in `secrets` is read from your environment with the bundled URL as fallback. The result's `url` is `http://localhost:<port>`. `status` reports whether the `app` service is running; `destroy` runs `docker compose down` and keeps volumes.
|
|
106
119
|
|
|
107
120
|
Preflight checks: Docker installed, daemon running, Compose v2 available, registry credentials (read from the Docker config, credential helpers and stores), secrets.
|
|
108
121
|
|
|
109
122
|
### Fly.io
|
|
110
123
|
|
|
111
|
-
Generates `.cogitator/fly.toml` (your own `fly.toml` is never overwritten) with `[env]`, HTTP checks from `health`, VM size from `resources`, and `min_machines_running` from `instances
|
|
124
|
+
Generates `.cogitator/fly.toml` (your own `fly.toml` is never overwritten) with `[env]`, HTTP checks from `health`, VM size from `resources`, and `min_machines_running` from `instances` (machines auto-stop and auto-start). `deploy` creates the app when needed, stages secrets, runs `fly deploy --config .cogitator/fly.toml --dockerfile .cogitator/Dockerfile`, and scales to `instances`; the result lists `https://<app>.fly.dev`, its health URL and the A2A agent card (`/.well-known/agent.json`). `status` reads `fly status`; `destroy` runs `fly apps destroy`. Preflight checks: `flyctl` installed, `fly auth whoami`, secrets. Works with either `flyctl` or `fly` on `PATH`.
|
|
112
125
|
|
|
113
126
|
## Custom Providers
|
|
114
127
|
|
|
115
128
|
```typescript
|
|
116
|
-
import {
|
|
129
|
+
import {
|
|
130
|
+
ArtifactGenerator,
|
|
131
|
+
Deployer,
|
|
132
|
+
ProjectAnalyzer,
|
|
133
|
+
type DeployProvider,
|
|
134
|
+
} from '@cogitator-ai/deploy';
|
|
135
|
+
import type {
|
|
136
|
+
DeployConfig,
|
|
137
|
+
DeployResult,
|
|
138
|
+
DeployStatus,
|
|
139
|
+
GeneratedArtifacts,
|
|
140
|
+
PreflightResult,
|
|
141
|
+
} from '@cogitator-ai/types';
|
|
117
142
|
|
|
118
143
|
class KubernetesProvider implements DeployProvider {
|
|
119
144
|
readonly name = 'kubernetes';
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
async generate(config, projectDir) {
|
|
124
|
-
/* ... */
|
|
145
|
+
|
|
146
|
+
async preflight(config: DeployConfig, projectDir: string): Promise<PreflightResult> {
|
|
147
|
+
return { checks: [], passed: true };
|
|
125
148
|
}
|
|
126
|
-
async
|
|
127
|
-
|
|
149
|
+
async generate(config: DeployConfig, projectDir: string): Promise<GeneratedArtifacts> {
|
|
150
|
+
const build = new ProjectAnalyzer().detectBuild(projectDir);
|
|
151
|
+
return new ArtifactGenerator().generate(config, build);
|
|
128
152
|
}
|
|
129
|
-
async
|
|
130
|
-
|
|
153
|
+
async deploy(
|
|
154
|
+
config: DeployConfig,
|
|
155
|
+
artifacts: GeneratedArtifacts,
|
|
156
|
+
projectDir: string
|
|
157
|
+
): Promise<DeployResult> {
|
|
158
|
+
// write artifacts.files to artifacts.outputDir, apply manifests, ...
|
|
159
|
+
return { success: true, url: 'https://agents.example.com' };
|
|
131
160
|
}
|
|
132
|
-
async
|
|
133
|
-
|
|
161
|
+
async status(config: DeployConfig, projectDir: string): Promise<DeployStatus> {
|
|
162
|
+
return { running: true };
|
|
134
163
|
}
|
|
164
|
+
async destroy(config: DeployConfig, projectDir: string): Promise<void> {}
|
|
135
165
|
}
|
|
136
166
|
|
|
137
167
|
const deployer = new Deployer();
|
|
@@ -139,19 +169,22 @@ deployer.registerProvider(new KubernetesProvider());
|
|
|
139
169
|
await deployer.deploy({ projectDir: process.cwd(), target: 'kubernetes' });
|
|
140
170
|
```
|
|
141
171
|
|
|
172
|
+
`Deployer.deploy()` runs preflight, calls your provider's `generate(config, projectDir)` and hands the result to its `deploy()` (with `dryRun` it stops after `generate()`). Writing the files to disk is up to the provider. The example reuses the built-in Dockerfile: `ProjectAnalyzer.detectBuild(projectDir)` reports the TypeScript setup, package manager, lockfile, build script and start command that `ArtifactGenerator` needs.
|
|
173
|
+
|
|
142
174
|
All external commands are executed without a shell, so paths with spaces and user-supplied values are passed verbatim.
|
|
143
175
|
|
|
144
176
|
## Architecture
|
|
145
177
|
|
|
146
178
|
```
|
|
147
|
-
ProjectAnalyzer →
|
|
148
|
-
(detect config) (Dockerfile, etc.)
|
|
179
|
+
ProjectAnalyzer → DeployProvider.generate → DeployProvider.deploy → Result
|
|
180
|
+
(detect config) (Dockerfile, etc.) (docker/fly) (url, status)
|
|
149
181
|
```
|
|
150
182
|
|
|
151
183
|
## See Also
|
|
152
184
|
|
|
153
|
-
- [
|
|
154
|
-
- [
|
|
185
|
+
- [Deploy package guide](https://cogitator.app/docs/deployment/deploy-package)
|
|
186
|
+
- [Docker deployment](https://cogitator.app/docs/deployment/docker)
|
|
187
|
+
- [CLI reference](https://cogitator.app/docs/cli) — `cogitator deploy`
|
|
155
188
|
|
|
156
189
|
## License
|
|
157
190
|
|
package/dist/analyzer.d.ts
CHANGED
|
@@ -7,16 +7,19 @@ interface PackageJson {
|
|
|
7
7
|
dependencies?: Record<string, string>;
|
|
8
8
|
devDependencies?: Record<string, string>;
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
services: DeployServicesConfig;
|
|
13
|
-
secrets: string[];
|
|
14
|
-
warnings: string[];
|
|
10
|
+
/** How a project builds and starts: what the generated Dockerfile needs. */
|
|
11
|
+
export interface ProjectBuild {
|
|
15
12
|
hasTypeScript: boolean;
|
|
16
13
|
packageManager: PackageManager;
|
|
17
14
|
hasLockfile: boolean;
|
|
18
15
|
hasBuildScript: boolean;
|
|
19
16
|
startCommand: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface AnalyzerResult extends ProjectBuild {
|
|
19
|
+
server?: DeployServer;
|
|
20
|
+
services: DeployServicesConfig;
|
|
21
|
+
secrets: string[];
|
|
22
|
+
warnings: string[];
|
|
20
23
|
deployConfig: DeployConfig;
|
|
21
24
|
}
|
|
22
25
|
export declare class ProjectAnalyzer {
|
|
@@ -35,6 +38,14 @@ export declare class ProjectAnalyzer {
|
|
|
35
38
|
};
|
|
36
39
|
detectStartCommand(pkg: PackageJson, hasTypeScript: boolean): string[];
|
|
37
40
|
private loadProjectConfig;
|
|
41
|
+
/** How the project in `projectDir` builds and starts. */
|
|
42
|
+
detectBuild(projectDir: string): ProjectBuild;
|
|
43
|
+
private buildOf;
|
|
44
|
+
/**
|
|
45
|
+
* Reads the project in `projectDir` into a deploy config: what it detects,
|
|
46
|
+
* under the `deploy` section of the project's cogitator.yml, under
|
|
47
|
+
* `configOverrides`.
|
|
48
|
+
*/
|
|
38
49
|
analyze(projectDir: string, configOverrides?: Partial<DeployConfig>): AnalyzerResult;
|
|
39
50
|
}
|
|
40
51
|
export {};
|
package/dist/analyzer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACb,MAAM,qBAAqB,CAAC;AA4B7B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;CAC1C;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACb,MAAM,qBAAqB,CAAC;AA4B7B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;CAC1C;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;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAoED,qBAAa,eAAe;IAC1B,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS;IAQxD,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,GAAG,oBAAoB;IAQtF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAOhE,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;IAe1F,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;QACxC,cAAc,EAAE,cAAc,CAAC;QAC/B,WAAW,EAAE,OAAO,CAAC;KACtB;IAaD,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,EAAE;IAUtE,OAAO,CAAC,iBAAiB;IAezB,yDAAyD;IACzD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAI7C,OAAO,CAAC,OAAO;IAUf;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc;CAqDrF"}
|
package/dist/analyzer.js
CHANGED
|
@@ -27,6 +27,24 @@ function isStringRecord(value) {
|
|
|
27
27
|
!Array.isArray(value) &&
|
|
28
28
|
Object.values(value).every((v) => typeof v === 'string'));
|
|
29
29
|
}
|
|
30
|
+
function mergeSection(file, override) {
|
|
31
|
+
return file && override ? { ...file, ...override } : (override ?? file);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The deploy config the project asks for: the `deploy` section of its
|
|
35
|
+
* cogitator.yml under explicit overrides, merging the nested sections
|
|
36
|
+
* (services, env, health, resources) field by field.
|
|
37
|
+
*/
|
|
38
|
+
function mergeDeployConfig(file, overrides) {
|
|
39
|
+
return {
|
|
40
|
+
...file,
|
|
41
|
+
...overrides,
|
|
42
|
+
services: mergeSection(file?.services, overrides?.services),
|
|
43
|
+
env: mergeSection(file?.env, overrides?.env),
|
|
44
|
+
health: mergeSection(file?.health, overrides?.health),
|
|
45
|
+
resources: mergeSection(file?.resources, overrides?.resources),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
30
48
|
function readPackageJson(projectDir, warnings) {
|
|
31
49
|
const pkgPath = join(projectDir, 'package.json');
|
|
32
50
|
if (!existsSync(pkgPath))
|
|
@@ -127,50 +145,63 @@ export class ProjectAnalyzer {
|
|
|
127
145
|
return undefined;
|
|
128
146
|
}
|
|
129
147
|
}
|
|
148
|
+
/** How the project in `projectDir` builds and starts. */
|
|
149
|
+
detectBuild(projectDir) {
|
|
150
|
+
return this.buildOf(projectDir, readPackageJson(projectDir, []));
|
|
151
|
+
}
|
|
152
|
+
buildOf(projectDir, pkg) {
|
|
153
|
+
const hasTypeScript = existsSync(join(projectDir, 'tsconfig.json'));
|
|
154
|
+
return {
|
|
155
|
+
hasTypeScript,
|
|
156
|
+
...this.detectPackageManager(projectDir),
|
|
157
|
+
hasBuildScript: typeof pkg.scripts?.build === 'string',
|
|
158
|
+
startCommand: this.detectStartCommand(pkg, hasTypeScript),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Reads the project in `projectDir` into a deploy config: what it detects,
|
|
163
|
+
* under the `deploy` section of the project's cogitator.yml, under
|
|
164
|
+
* `configOverrides`.
|
|
165
|
+
*/
|
|
130
166
|
analyze(projectDir, configOverrides) {
|
|
131
167
|
const warnings = [];
|
|
132
168
|
const pkg = readPackageJson(projectDir, warnings);
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
const hasBuildScript =
|
|
169
|
+
const fullConfig = this.loadProjectConfig(projectDir, warnings);
|
|
170
|
+
const configured = mergeDeployConfig(fullConfig?.deploy, configOverrides);
|
|
171
|
+
const server = configured.server ?? this.detectServer(pkg);
|
|
172
|
+
const target = configured.target ?? 'docker';
|
|
173
|
+
const build = this.buildOf(projectDir, pkg);
|
|
174
|
+
const { hasTypeScript, hasBuildScript, startCommand } = build;
|
|
139
175
|
if (!pkg.scripts?.start && !pkg.main) {
|
|
140
176
|
warnings.push(`No "start" script or "main" in package.json — the container will run "${startCommand.join(' ')}"`);
|
|
141
177
|
}
|
|
142
178
|
if (hasTypeScript && !hasBuildScript) {
|
|
143
179
|
warnings.push('tsconfig.json found but package.json has no "build" script — skipping build step');
|
|
144
180
|
}
|
|
145
|
-
const fullConfig = this.loadProjectConfig(projectDir, warnings);
|
|
146
181
|
const model = fullConfig?.llm?.defaultModel ?? '';
|
|
147
182
|
const defaultProvider = fullConfig?.llm?.defaultProvider;
|
|
148
|
-
const services =
|
|
183
|
+
const services = configured.services ??
|
|
149
184
|
(fullConfig ? this.detectServices(fullConfig) : { redis: false, postgres: false });
|
|
150
|
-
const secrets =
|
|
185
|
+
const secrets = configured.secrets ?? (model ? this.detectSecrets(model, defaultProvider) : []);
|
|
151
186
|
if (model)
|
|
152
187
|
warnings.push(...this.getDeployWarnings(model, target, defaultProvider));
|
|
153
|
-
if (target === 'docker' && (
|
|
188
|
+
if (target === 'docker' && (configured.instances ?? 1) > 1) {
|
|
154
189
|
warnings.push('instances > 1 is not supported for the docker target; running one container');
|
|
155
190
|
}
|
|
156
|
-
const image =
|
|
191
|
+
const image = configured.image ?? sanitizeName(pkg.name ?? '');
|
|
157
192
|
return {
|
|
158
193
|
server,
|
|
159
194
|
services,
|
|
160
195
|
secrets,
|
|
161
196
|
warnings,
|
|
162
|
-
|
|
163
|
-
packageManager,
|
|
164
|
-
hasLockfile,
|
|
165
|
-
hasBuildScript,
|
|
166
|
-
startCommand,
|
|
197
|
+
...build,
|
|
167
198
|
deployConfig: {
|
|
168
|
-
...
|
|
199
|
+
...configured,
|
|
169
200
|
server,
|
|
170
201
|
image,
|
|
171
202
|
services,
|
|
172
203
|
secrets,
|
|
173
|
-
port:
|
|
204
|
+
port: configured.port ?? 3000,
|
|
174
205
|
},
|
|
175
206
|
};
|
|
176
207
|
}
|
package/dist/analyzer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,eAAe,GAAiC;IACpD,uBAAuB,EAAE,SAAS;IAClC,uBAAuB,EAAE,SAAS;IAClC,oBAAoB,EAAE,MAAM;IAC5B,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF,MAAM,gBAAgB,GAA6B;IACjD,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,KAAK,EAAE,CAAC,sBAAsB,CAAC;IAC/B,OAAO,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;IACvD,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,QAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9B,QAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9B,MAAM,EAAE,CAAC,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/deployer.d.ts
CHANGED
package/dist/deployer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,sFAAsF;AACtF,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAQ5D,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAyB;;IAOzC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIhD,+CAA+C;IAC/C,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc;IAUrD,OAAO,CAAC,aAAa;IAUf,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBjD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBrD,MAAM,CACV,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;IAMlB,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjG"}
|
package/dist/deployer.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DockerProvider } from './providers/docker.js';
|
|
2
2
|
import { FlyProvider } from './providers/fly.js';
|
|
3
3
|
import { ProjectAnalyzer } from './analyzer.js';
|
|
4
|
-
import { ArtifactGenerator } from './generator.js';
|
|
5
4
|
const BUILTIN_TARGETS = ['docker', 'fly'];
|
|
6
5
|
function isBuiltinTarget(target) {
|
|
7
6
|
return BUILTIN_TARGETS.some((t) => t === target);
|
|
@@ -9,7 +8,6 @@ function isBuiltinTarget(target) {
|
|
|
9
8
|
export class Deployer {
|
|
10
9
|
providers = new Map();
|
|
11
10
|
analyzer = new ProjectAnalyzer();
|
|
12
|
-
generator = new ArtifactGenerator();
|
|
13
11
|
constructor() {
|
|
14
12
|
this.registerProvider(new DockerProvider());
|
|
15
13
|
this.registerProvider(new FlyProvider());
|
|
@@ -43,7 +41,7 @@ export class Deployer {
|
|
|
43
41
|
return { config, preflight, provider, warnings: analysis.warnings, analysis };
|
|
44
42
|
}
|
|
45
43
|
async deploy(options) {
|
|
46
|
-
const { config, preflight, provider
|
|
44
|
+
const { config, preflight, provider } = await this.plan(options);
|
|
47
45
|
if (!preflight.passed) {
|
|
48
46
|
const failures = preflight.checks.filter((c) => !c.passed);
|
|
49
47
|
return {
|
|
@@ -51,13 +49,7 @@ export class Deployer {
|
|
|
51
49
|
error: `Preflight failed:\n${failures.map((f) => ` - ${f.message}${f.fix ? ` (${f.fix})` : ''}`).join('\n')}`,
|
|
52
50
|
};
|
|
53
51
|
}
|
|
54
|
-
const artifacts =
|
|
55
|
-
hasTypeScript: analysis.hasTypeScript,
|
|
56
|
-
packageManager: analysis.packageManager,
|
|
57
|
-
hasLockfile: analysis.hasLockfile,
|
|
58
|
-
hasBuildScript: analysis.hasBuildScript,
|
|
59
|
-
startCommand: analysis.startCommand,
|
|
60
|
-
});
|
|
52
|
+
const artifacts = await provider.generate(config, options.projectDir);
|
|
61
53
|
if (options.dryRun) {
|
|
62
54
|
return { success: true, url: '(dry run)' };
|
|
63
55
|
}
|
package/dist/deployer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAuB,MAAM,eAAe,CAAC;AAKrE,MAAM,eAAe,GAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEnE,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;AACnD,CAAC;AAkBD,MAAM,OAAO,QAAQ;IACX,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9C,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC;QACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB,CAAC,QAAwB;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,+CAA+C;IAC/C,gBAAgB;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,MAAwB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,iBAAiB,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,aAAa,CACnB,UAAkB,EAClB,MAAwB,EACxB,SAA4C;QAE5C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAsB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAC7C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,eAAe,CACxB,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAEvE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sBAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC/G,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAwB,EACxB,MAAoB,EACpB,UAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB,EAAE,MAAoB,EAAE,UAAkB;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;QACvE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ProjectAnalyzer } from './analyzer.js';
|
|
2
|
-
export type { AnalyzerResult, PackageManager } from './analyzer.js';
|
|
2
|
+
export type { AnalyzerResult, PackageManager, ProjectBuild } from './analyzer.js';
|
|
3
3
|
export { ArtifactGenerator } from './generator.js';
|
|
4
4
|
export type { GeneratorOptions } from './generator.js';
|
|
5
5
|
export { Deployer } from './deployer.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { GeneratedArtifacts, PreflightCheck } from '@cogitator-ai/types';
|
|
1
|
+
import type { DeployConfig, GeneratedArtifacts, PreflightCheck } from '@cogitator-ai/types';
|
|
2
|
+
/** Generate the deployment artifacts for the project in `projectDir`, built and started the way its package.json and lockfile say. */
|
|
3
|
+
export declare function generateProjectArtifacts(config: DeployConfig, projectDir: string): GeneratedArtifacts;
|
|
2
4
|
/**
|
|
3
5
|
* Write generated artifacts into the project's artifacts directory. A root
|
|
4
6
|
* `.dockerignore` is created when the project has none, so `.env` files and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/providers/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/providers/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM5F,sIAAsI;AACtI,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAEpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAcxF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,cAAc,EAAE,CAUjG"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { ProjectAnalyzer } from '../analyzer.js';
|
|
4
|
+
import { ArtifactGenerator, DOCKERIGNORE } from '../generator.js';
|
|
5
|
+
/** Generate the deployment artifacts for the project in `projectDir`, built and started the way its package.json and lockfile say. */
|
|
6
|
+
export function generateProjectArtifacts(config, projectDir) {
|
|
7
|
+
return new ArtifactGenerator().generate(config, new ProjectAnalyzer().detectBuild(projectDir));
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* Write generated artifacts into the project's artifacts directory. A root
|
|
6
11
|
* `.dockerignore` is created when the project has none, so `.env` files and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/providers/artifacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/providers/artifacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAElE,sIAAsI;AACtI,MAAM,UAAU,wBAAwB,CACtC,MAAoB,EACpB,UAAkB;IAElB,OAAO,IAAI,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,SAA6B;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACnC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA0B,EAAE,GAAsB;IAC7E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,WAAW,MAAM,EAAE;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,aAAa;YAC5D,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,sBAAsB,MAAM,UAAU;SAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/providers/docker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/providers/docker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAchD,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,IAAI,YAAY;IAEzB,OAAO,CAAC,WAAW;IAWb,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuD7E,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI/E,MAAM,CACV,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;IAyClB,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAkBvE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAYvE"}
|
package/dist/providers/docker.js
CHANGED
|
@@ -2,8 +2,9 @@ import { run, isCommandAvailable } from '../utils/exec.js';
|
|
|
2
2
|
import { resolveDeployEnv, sanitizeName } from '../utils/env.js';
|
|
3
3
|
import { isRegistryAuthenticated } from '../utils/registry-auth.js';
|
|
4
4
|
import { imageTag } from '../templates/docker-compose.js';
|
|
5
|
-
import { ARTIFACTS_DIR
|
|
6
|
-
import { secretChecks, writeArtifacts } from './artifacts.js';
|
|
5
|
+
import { ARTIFACTS_DIR } from '../generator.js';
|
|
6
|
+
import { generateProjectArtifacts, secretChecks, writeArtifacts } from './artifacts.js';
|
|
7
|
+
import { healthPath } from '../templates/health.js';
|
|
7
8
|
import { existsSync } from 'node:fs';
|
|
8
9
|
import { join } from 'node:path';
|
|
9
10
|
const PREFLIGHT_TIMEOUT_MS = 10_000;
|
|
@@ -69,9 +70,7 @@ export class DockerProvider {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
async generate(config, projectDir) {
|
|
72
|
-
return
|
|
73
|
-
hasTypeScript: existsSync(join(projectDir, 'tsconfig.json')),
|
|
74
|
-
});
|
|
73
|
+
return generateProjectArtifacts(config, projectDir);
|
|
75
74
|
}
|
|
76
75
|
async deploy(config, artifacts, projectDir) {
|
|
77
76
|
const outputDir = writeArtifacts(projectDir, artifacts);
|
|
@@ -95,14 +94,13 @@ export class DockerProvider {
|
|
|
95
94
|
return { success: false, error: `docker compose up failed: ${upResult.error}` };
|
|
96
95
|
}
|
|
97
96
|
const port = config.port ?? 3000;
|
|
98
|
-
const healthPath = config.health?.path ?? '/health';
|
|
99
97
|
const url = `http://localhost:${port}`;
|
|
100
98
|
return {
|
|
101
99
|
success: true,
|
|
102
100
|
url,
|
|
103
101
|
endpoints: {
|
|
104
102
|
api: url,
|
|
105
|
-
health: `${url}${healthPath
|
|
103
|
+
health: `${url}${healthPath(config)}`,
|
|
106
104
|
},
|
|
107
105
|
};
|
|
108
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/providers/docker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/providers/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly.d.ts","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fly.d.ts","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAahD,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAIhD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAaxC;AAED,qBAAa,WAAY,YAAW,cAAc;IAChD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,OAAO;IAIT,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAsC7E,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI/E,MAAM,CACV,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;IAyElB,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BvE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOvE"}
|
package/dist/providers/fly.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { run, isCommandAvailable } from '../utils/exec.js';
|
|
2
2
|
import { resolveDeployEnv } from '../utils/env.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { existsSync } from 'node:fs';
|
|
3
|
+
import { generateProjectArtifacts, secretChecks, writeArtifacts } from './artifacts.js';
|
|
4
|
+
import { healthPath } from '../templates/health.js';
|
|
6
5
|
import { join } from 'node:path';
|
|
7
6
|
const PREFLIGHT_TIMEOUT_MS = 15_000;
|
|
8
7
|
function isRecord(value) {
|
|
@@ -76,9 +75,7 @@ export class FlyProvider {
|
|
|
76
75
|
};
|
|
77
76
|
}
|
|
78
77
|
async generate(config, projectDir) {
|
|
79
|
-
return
|
|
80
|
-
hasTypeScript: existsSync(join(projectDir, 'tsconfig.json')),
|
|
81
|
-
});
|
|
78
|
+
return generateProjectArtifacts(config, projectDir);
|
|
82
79
|
}
|
|
83
80
|
async deploy(config, artifacts, projectDir) {
|
|
84
81
|
const outputDir = writeArtifacts(projectDir, artifacts);
|
|
@@ -134,14 +131,13 @@ export class FlyProvider {
|
|
|
134
131
|
}
|
|
135
132
|
}
|
|
136
133
|
const url = `https://${app}.fly.dev`;
|
|
137
|
-
const healthPath = config.health?.path ?? '/health';
|
|
138
134
|
return {
|
|
139
135
|
success: true,
|
|
140
136
|
url,
|
|
141
137
|
endpoints: {
|
|
142
138
|
api: url,
|
|
143
139
|
a2a: `${url}/.well-known/agent.json`,
|
|
144
|
-
health: `${url}${healthPath
|
|
140
|
+
health: `${url}${healthPath(config)}`,
|
|
145
141
|
},
|
|
146
142
|
};
|
|
147
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly.js","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAoC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fly.js","sourceRoot":"","sources":["../../src/providers/fly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-compose.d.ts","sourceRoot":"","sources":["../../src/templates/docker-compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,oBAAoB,6DAA6D,CAAC;AAC/F,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAMtD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAKrD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"docker-compose.d.ts","sourceRoot":"","sources":["../../src/templates/docker-compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,oBAAoB,6DAA6D,CAAC;AAC/F,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAMtD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAKrD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAsFlE"}
|
|
@@ -12,21 +12,23 @@ export function imageTag(config) {
|
|
|
12
12
|
export function generateDockerCompose(config) {
|
|
13
13
|
const port = config.port ?? 3000;
|
|
14
14
|
const lines = ['services:'];
|
|
15
|
-
const
|
|
16
|
-
` NODE_ENV: ${yamlString('production')}`,
|
|
17
|
-
` PORT: ${yamlString(String(port))}`,
|
|
18
|
-
];
|
|
15
|
+
const serviceUrls = new Map();
|
|
19
16
|
if (config.services?.redis)
|
|
20
|
-
|
|
21
|
-
if (config.services?.postgres)
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
serviceUrls.set('REDIS_URL', COMPOSE_REDIS_URL);
|
|
18
|
+
if (config.services?.postgres)
|
|
19
|
+
serviceUrls.set('DATABASE_URL', COMPOSE_DATABASE_URL);
|
|
20
|
+
const environment = new Map([
|
|
21
|
+
['NODE_ENV', yamlString('production')],
|
|
22
|
+
['PORT', yamlString(String(port))],
|
|
23
|
+
]);
|
|
24
|
+
for (const [key, url] of serviceUrls)
|
|
25
|
+
environment.set(key, yamlString(url));
|
|
24
26
|
for (const [key, value] of Object.entries(config.env ?? {})) {
|
|
25
|
-
environment.
|
|
27
|
+
environment.set(key, yamlString(value.replace(/\$/g, '$$$$')));
|
|
26
28
|
}
|
|
27
29
|
for (const secret of config.secrets ?? []) {
|
|
28
30
|
if (!(secret in (config.env ?? {}))) {
|
|
29
|
-
environment.
|
|
31
|
+
environment.set(secret, `\${${secret}:-${serviceUrls.get(secret) ?? ''}}`);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
const dependsOn = [];
|
|
@@ -43,7 +45,8 @@ export function generateDockerCompose(config) {
|
|
|
43
45
|
lines.push(' ports:');
|
|
44
46
|
lines.push(` - "${port}:${port}"`);
|
|
45
47
|
lines.push(' environment:');
|
|
46
|
-
|
|
48
|
+
for (const [key, value] of environment)
|
|
49
|
+
lines.push(` ${key}: ${value}`);
|
|
47
50
|
lines.push(' restart: unless-stopped');
|
|
48
51
|
if (dependsOn.length > 0) {
|
|
49
52
|
lines.push(' depends_on:');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker-compose.js","sourceRoot":"","sources":["../../src/templates/docker-compose.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,0DAA0D,CAAC;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAoB;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;IAC9C,OAAO,MAAM,CAAC,QAAQ;QACpB,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS;QAC1D,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,KAAK,GAAa,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"docker-compose.js","sourceRoot":"","sources":["../../src/templates/docker-compose.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,0DAA0D,CAAC;AAC/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAoB;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;IAC9C,OAAO,MAAM,CAAC,QAAQ;QACpB,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS;QAC1D,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,KAAK,GAAa,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK;QAAE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ;QAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;IAErF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiB;QAC1C,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KACnC,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,WAAW;QAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,MAAM,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK;QAAE,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,oCAAoC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEhE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
|
|
@@ -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;
|
|
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,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE/D,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;CACzB;AAED,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAyC3C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAyCrE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { healthPath } from './health.js';
|
|
1
2
|
export const NODE_IMAGE = 'node:22-alpine';
|
|
2
3
|
function installSteps(pm, hasLockfile) {
|
|
3
4
|
switch (pm) {
|
|
@@ -25,11 +26,9 @@ function installSteps(pm, hasLockfile) {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
function healthcheck(config, port) {
|
|
28
|
-
const path = config.health?.path ?? '/health';
|
|
29
29
|
const interval = config.health?.interval ?? '30s';
|
|
30
30
|
const timeout = config.health?.timeout ?? '5s';
|
|
31
|
-
|
|
32
|
-
return `HEALTHCHECK --interval=${interval} --timeout=${timeout} CMD wget -q --spider http://localhost:${port}${normalizedPath} || exit 1`;
|
|
31
|
+
return `HEALTHCHECK --interval=${interval} --timeout=${timeout} CMD wget -q --spider http://localhost:${port}${healthPath(config)} || exit 1`;
|
|
33
32
|
}
|
|
34
33
|
export function generateDockerfile(options) {
|
|
35
34
|
const { config, hasTypeScript } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/templates/dockerfile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/templates/dockerfile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAazC,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAS3C,SAAS,YAAY,CAAC,EAA4B,EAAE,WAAoB;IACtE,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,sCAAsC;gBAC5C,OAAO,EAAE,sCAAsC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxF,WAAW,EAAE,sCAAsC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,SAAS;gBACnG,KAAK,EAAE,oBAAoB;aAC5B,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,8CAA8C;gBACpD,OAAO,EAAE,sCAAsC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxF,WAAW,EAAE,sCAAsC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,eAAe;gBACzG,KAAK,EAAE,oBAAoB;aAC5B,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,IAAI,EAAE,yCAAyC;gBAC/C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB;gBACvD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,4BAA4B;gBACjF,KAAK,EAAE,mBAAmB;aAC3B,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,IAAY;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;IAC/C,OAAO,0BAA0B,QAAQ,cAAc,OAAO,0CAA0C,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;AAChJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IAC3D,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI;QAC3C,MAAM;QACN,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe;KACnD,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,gCAAgC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,QAAQ,UAAU;;EAE3B,KAAK,CAAC,IAAI;EACV,KAAK,CAAC,WAAW;;EAEjB,GAAG;SACI,IAAI;EACX,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;EACzB,GAAG;CACJ,CAAC;IACA,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;IAEzE,OAAO,QAAQ,UAAU;;EAEzB,KAAK,CAAC,IAAI;EACV,KAAK,CAAC,OAAO;;EAEb,KAAK;OACA,UAAU;;;EAGf,GAAG;SACI,IAAI;EACX,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;EACzB,GAAG;CACJ,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly-toml.d.ts","sourceRoot":"","sources":["../../src/templates/fly-toml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"fly-toml.d.ts","sourceRoot":"","sources":["../../src/templates/fly-toml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMpD;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAsC5D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { healthPath } from './health.js';
|
|
1
2
|
export function parseMemoryMb(memory) {
|
|
2
3
|
const gb = /^(\d+(?:\.\d+)?)\s*gb?$/i.exec(memory.trim());
|
|
3
4
|
if (gb)
|
|
@@ -16,7 +17,6 @@ export function generateFlyToml(config) {
|
|
|
16
17
|
const app = config.image ?? 'cogitator-app';
|
|
17
18
|
const memoryMb = parseMemoryMb(config.resources?.memory ?? '256mb');
|
|
18
19
|
const instances = Math.max(config.instances ?? 1, 0);
|
|
19
|
-
const healthPath = config.health?.path ?? '/health';
|
|
20
20
|
const envEntries = Object.entries({ NODE_ENV: 'production', PORT: String(port), ...config.env });
|
|
21
21
|
const envSection = envEntries.map(([key, value]) => ` ${key} = ${tomlString(value)}`).join('\n');
|
|
22
22
|
return `app = ${tomlString(app)}
|
|
@@ -40,7 +40,7 @@ ${envSection}
|
|
|
40
40
|
type = "http"
|
|
41
41
|
interval = ${tomlString(config.health?.interval ?? '30s')}
|
|
42
42
|
timeout = ${tomlString(config.health?.timeout ?? '5s')}
|
|
43
|
-
path = ${tomlString(healthPath
|
|
43
|
+
path = ${tomlString(healthPath(config))}
|
|
44
44
|
|
|
45
45
|
[[vm]]
|
|
46
46
|
memory = "${memoryMb}mb"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly-toml.js","sourceRoot":"","sources":["../../src/templates/fly-toml.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fly-toml.js","sourceRoot":"","sources":["../../src/templates/fly-toml.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,EAAE,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;IAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACjG,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,SAAS,UAAU,CAAC,GAAG,CAAC;mBACd,UAAU,CAAC,MAAM,CAAC;;;;;EAKnC,UAAU;;;oBAGQ,IAAI;;;;2BAIG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;;;aAI3C,IAAI;;iBAEA,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;gBAC7C,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;aAC7C,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;;;cAG7B,QAAQ;;WAEX,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { DeployConfig } from '@cogitator-ai/types';
|
|
2
|
+
/** Where the server adapters (express, fastify, hono, koa) answer health checks when mounted at their default `/cogitator` base path. */
|
|
3
|
+
export declare const DEFAULT_HEALTH_PATH = "/cogitator/health";
|
|
4
|
+
/** The health check path for `config`, always starting with a slash. */
|
|
5
|
+
export declare function healthPath(config: DeployConfig): string;
|
|
6
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/templates/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,yIAAyI;AACzI,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGvD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Where the server adapters (express, fastify, hono, koa) answer health checks when mounted at their default `/cogitator` base path. */
|
|
2
|
+
export const DEFAULT_HEALTH_PATH = '/cogitator/health';
|
|
3
|
+
/** The health check path for `config`, always starting with a slash. */
|
|
4
|
+
export function healthPath(config) {
|
|
5
|
+
const path = config.health?.path ?? DEFAULT_HEALTH_PATH;
|
|
6
|
+
return path.startsWith('/') ? path : `/${path}`;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/templates/health.ts"],"names":[],"mappings":"AAEA,yIAAyI;AACzI,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD,wEAAwE;AACxE,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,mBAAmB,CAAC;IACxD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/deploy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
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.
|
|
19
|
-
"@cogitator-ai/config": "0.
|
|
18
|
+
"@cogitator-ai/types": "0.30.0",
|
|
19
|
+
"@cogitator-ai/config": "0.11.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^22.20.4",
|