@specific.dev/cli 0.1.94 → 0.1.95
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 +3 -3
- package/dist/docs/builds.md +29 -1
- package/package.json +1 -1
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → Qx0zmC7AsnwjcaN5TARyf}/_buildManifest.js +0 -0
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → Qx0zmC7AsnwjcaN5TARyf}/_clientMiddlewareManifest.json +0 -0
- /package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → Qx0zmC7AsnwjcaN5TARyf}/_ssgManifest.js +0 -0
package/dist/cli.js
CHANGED
|
@@ -373032,7 +373032,7 @@ function trackEvent(event, properties) {
|
|
|
373032
373032
|
event,
|
|
373033
373033
|
properties: {
|
|
373034
373034
|
...properties,
|
|
373035
|
-
cli_version: "0.1.
|
|
373035
|
+
cli_version: "0.1.95",
|
|
373036
373036
|
platform: process.platform,
|
|
373037
373037
|
node_version: process.version,
|
|
373038
373038
|
project_id: getProjectId()
|
|
@@ -376510,7 +376510,7 @@ function compareVersions(a, b) {
|
|
|
376510
376510
|
return 0;
|
|
376511
376511
|
}
|
|
376512
376512
|
async function checkForUpdate() {
|
|
376513
|
-
const currentVersion = "0.1.
|
|
376513
|
+
const currentVersion = "0.1.95";
|
|
376514
376514
|
const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
|
|
376515
376515
|
if (!response.ok) {
|
|
376516
376516
|
throw new Error(`Failed to check for updates: HTTP ${response.status}`);
|
|
@@ -376709,7 +376709,7 @@ function updateCommand() {
|
|
|
376709
376709
|
var program = new Command();
|
|
376710
376710
|
var env = "production";
|
|
376711
376711
|
var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
|
|
376712
|
-
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.
|
|
376712
|
+
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.95").enablePositionalOptions();
|
|
376713
376713
|
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
376714
|
program.command("docs [topic]").description("Fetch LLM-optimized documentation").action(docsCommand);
|
|
376715
376715
|
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 → Qx0zmC7AsnwjcaN5TARyf}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/admin/_next/static/{m1SKtyx-k_4TOHEfyAAVu → Qx0zmC7AsnwjcaN5TARyf}/_ssgManifest.js
RENAMED
|
File without changes
|