@specific.dev/cli 0.1.94 → 0.1.96
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/dist/admin/404/index.html +1 -1
- package/dist/admin/404.html +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
- package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/__next._full.txt +1 -1
- package/dist/admin/__next._head.txt +1 -1
- package/dist/admin/__next._index.txt +1 -1
- package/dist/admin/__next._tree.txt +1 -1
- package/dist/admin/_not-found/__next._full.txt +1 -1
- package/dist/admin/_not-found/__next._head.txt +1 -1
- package/dist/admin/_not-found/__next._index.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/admin/_not-found/__next._not-found.txt +1 -1
- package/dist/admin/_not-found/__next._tree.txt +1 -1
- package/dist/admin/_not-found/index.html +1 -1
- package/dist/admin/_not-found/index.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
- package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/databases/__next._full.txt +1 -1
- package/dist/admin/databases/__next._head.txt +1 -1
- package/dist/admin/databases/__next._index.txt +1 -1
- package/dist/admin/databases/__next._tree.txt +1 -1
- package/dist/admin/databases/index.html +1 -1
- package/dist/admin/databases/index.txt +1 -1
- package/dist/admin/fullscreen/__next._full.txt +1 -1
- package/dist/admin/fullscreen/__next._head.txt +1 -1
- package/dist/admin/fullscreen/__next._index.txt +1 -1
- package/dist/admin/fullscreen/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
- package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
- package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
- package/dist/admin/fullscreen/databases/index.html +1 -1
- package/dist/admin/fullscreen/databases/index.txt +1 -1
- package/dist/admin/fullscreen/index.html +1 -1
- package/dist/admin/fullscreen/index.txt +1 -1
- package/dist/admin/index.html +1 -1
- package/dist/admin/index.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
- package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/mail/__next._full.txt +1 -1
- package/dist/admin/mail/__next._head.txt +1 -1
- package/dist/admin/mail/__next._index.txt +1 -1
- package/dist/admin/mail/__next._tree.txt +1 -1
- package/dist/admin/mail/index.html +1 -1
- package/dist/admin/mail/index.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
- package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
- package/dist/admin/workflows/__next._full.txt +1 -1
- package/dist/admin/workflows/__next._head.txt +1 -1
- package/dist/admin/workflows/__next._index.txt +1 -1
- package/dist/admin/workflows/__next._tree.txt +1 -1
- package/dist/admin/workflows/index.html +1 -1
- package/dist/admin/workflows/index.txt +1 -1
- package/dist/cli.js +7 -5
- package/dist/docs/builds.md +29 -1
- package/package.json +1 -1
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → uKDjSl2HSBPY6-t1jz4rd}/_buildManifest.js +0 -0
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → uKDjSl2HSBPY6-t1jz4rd}/_clientMiddlewareManifest.json +0 -0
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → uKDjSl2HSBPY6-t1jz4rd}/_ssgManifest.js +0 -0
package/dist/cli.js
CHANGED
|
@@ -369214,8 +369214,10 @@ async function startPostgres(pg, port, dataDir, onProgress) {
|
|
|
369214
369214
|
const password = "postgres";
|
|
369215
369215
|
const libraryEnv = getLibraryEnv(binary);
|
|
369216
369216
|
const env2 = { ...process.env, ...libraryEnv };
|
|
369217
|
-
const
|
|
369218
|
-
|
|
369217
|
+
const pgConfPath = path5.join(dbDataPath, "postgresql.conf");
|
|
369218
|
+
const dataValid = fs5.existsSync(pgConfPath);
|
|
369219
|
+
if (!dataValid) {
|
|
369220
|
+
fs5.rmSync(dbDataPath, { recursive: true, force: true });
|
|
369219
369221
|
fs5.mkdirSync(dbDataPath, { recursive: true });
|
|
369220
369222
|
await runCommand(
|
|
369221
369223
|
binary.executables["initdb"],
|
|
@@ -373032,7 +373034,7 @@ function trackEvent(event, properties) {
|
|
|
373032
373034
|
event,
|
|
373033
373035
|
properties: {
|
|
373034
373036
|
...properties,
|
|
373035
|
-
cli_version: "0.1.
|
|
373037
|
+
cli_version: "0.1.96",
|
|
373036
373038
|
platform: process.platform,
|
|
373037
373039
|
node_version: process.version,
|
|
373038
373040
|
project_id: getProjectId()
|
|
@@ -376510,7 +376512,7 @@ function compareVersions(a, b) {
|
|
|
376510
376512
|
return 0;
|
|
376511
376513
|
}
|
|
376512
376514
|
async function checkForUpdate() {
|
|
376513
|
-
const currentVersion = "0.1.
|
|
376515
|
+
const currentVersion = "0.1.96";
|
|
376514
376516
|
const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
|
|
376515
376517
|
if (!response.ok) {
|
|
376516
376518
|
throw new Error(`Failed to check for updates: HTTP ${response.status}`);
|
|
@@ -376709,7 +376711,7 @@ function updateCommand() {
|
|
|
376709
376711
|
var program = new Command();
|
|
376710
376712
|
var env = "production";
|
|
376711
376713
|
var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
|
|
376712
|
-
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.
|
|
376714
|
+
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.96").enablePositionalOptions();
|
|
376713
376715
|
program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").action((options2) => initCommand(options2));
|
|
376714
376716
|
program.command("docs [topic]").description("Fetch LLM-optimized documentation").action(docsCommand);
|
|
376715
376717
|
program.command("check").description("Validate specific.hcl configuration").action(checkCommand);
|
package/dist/docs/builds.md
CHANGED
|
@@ -21,7 +21,7 @@ One of the following is required (mutually exclusive):
|
|
|
21
21
|
- `command` - Build command to run after dependencies are installed (e.g., `npm run build`, `go build -o api`). Only valid with `base`, not with `dockerfile`.
|
|
22
22
|
- `root` - Working directory for build commands, relative to `specific.hcl`. Defaults to `"."`. Sets the `WORKDIR` in the generated Dockerfile. Services that reference this build inherit its root. Dependency detection (e.g., `package.json`) also looks in this directory.
|
|
23
23
|
- `context` - Docker build context scope, relative to `specific.hcl`. Defaults to `"."`. Controls what files are available to `COPY` in the Dockerfile and what's included in the deployment tarball. Use this when you need to include files outside of `root` (e.g., shared libraries in a monorepo).
|
|
24
|
-
- `env` - Environment variables available during the build. Supports string literals
|
|
24
|
+
- `env` - Environment variables available during the build. Supports string literals, `service.<name>.public_url` references, and string interpolation with `${service.<name>.public_url}`. These are passed as Docker build args.
|
|
25
25
|
|
|
26
26
|
## Automatic dependency installation
|
|
27
27
|
|
|
@@ -77,6 +77,21 @@ Supported reference types:
|
|
|
77
77
|
|
|
78
78
|
- String literals (e.g., `"production"`)
|
|
79
79
|
- `service.<name>.public_url` - The public domain of another service
|
|
80
|
+
- String interpolation with `${service.<name>.public_url}` (e.g., `"https://${service.api.public_url}/v1"`)
|
|
81
|
+
|
|
82
|
+
Since `public_url` does not include a scheme, use interpolation to compose full URLs:
|
|
83
|
+
|
|
84
|
+
```hcl
|
|
85
|
+
build "web" {
|
|
86
|
+
base = "node"
|
|
87
|
+
command = "npm run build"
|
|
88
|
+
|
|
89
|
+
env = {
|
|
90
|
+
NEXT_PUBLIC_API_URL = "https://${service.api.public_url}/v1"
|
|
91
|
+
NODE_ENV = "production"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
80
95
|
|
|
81
96
|
## Monorepo support
|
|
82
97
|
|
|
@@ -176,6 +191,19 @@ build "spa" {
|
|
|
176
191
|
}
|
|
177
192
|
```
|
|
178
193
|
|
|
194
|
+
For compiled languages (Go, Rust, Java), a `dev` block is almost always needed — without it, the build is skipped in development and no binary is produced. Use a tool that rebuilds on file changes:
|
|
195
|
+
|
|
196
|
+
```hcl
|
|
197
|
+
build "api" {
|
|
198
|
+
base = "go"
|
|
199
|
+
command = "go build -o api ./cmd/api"
|
|
200
|
+
|
|
201
|
+
dev {
|
|
202
|
+
command = "go run ./cmd/api"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
179
207
|
---
|
|
180
208
|
|
|
181
209
|
Run `specific docs services` for service configuration.
|
package/package.json
CHANGED
/package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → uKDjSl2HSBPY6-t1jz4rd}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → uKDjSl2HSBPY6-t1jz4rd}/_ssgManifest.js
RENAMED
|
File without changes
|