@specific.dev/cli 0.1.111 → 0.1.112
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/temporal.md +11 -40
- package/package.json +1 -1
- /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_buildManifest.js +0 -0
- /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_clientMiddlewareManifest.json +0 -0
- /package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_ssgManifest.js +0 -0
package/dist/cli.js
CHANGED
|
@@ -373237,7 +373237,7 @@ function trackEvent(event, properties) {
|
|
|
373237
373237
|
event,
|
|
373238
373238
|
properties: {
|
|
373239
373239
|
...properties,
|
|
373240
|
-
cli_version: "0.1.
|
|
373240
|
+
cli_version: "0.1.112",
|
|
373241
373241
|
platform: process.platform,
|
|
373242
373242
|
node_version: process.version,
|
|
373243
373243
|
project_id: getProjectId()
|
|
@@ -376962,7 +376962,7 @@ function compareVersions(a, b) {
|
|
|
376962
376962
|
return 0;
|
|
376963
376963
|
}
|
|
376964
376964
|
async function checkForUpdate() {
|
|
376965
|
-
const currentVersion = "0.1.
|
|
376965
|
+
const currentVersion = "0.1.112";
|
|
376966
376966
|
const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
|
|
376967
376967
|
if (!response.ok) {
|
|
376968
376968
|
throw new Error(`Failed to check for updates: HTTP ${response.status}`);
|
|
@@ -377230,7 +377230,7 @@ async function projectListCommand() {
|
|
|
377230
377230
|
var program = new Command();
|
|
377231
377231
|
var env = "production";
|
|
377232
377232
|
var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
|
|
377233
|
-
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.
|
|
377233
|
+
program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.112").enablePositionalOptions();
|
|
377234
377234
|
program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").addHelpText("after", `
|
|
377235
377235
|
Examples:
|
|
377236
377236
|
$ specific init
|
package/dist/docs/temporal.md
CHANGED
|
@@ -36,11 +36,11 @@ service "worker" {
|
|
|
36
36
|
|
|
37
37
|
Each `temporal` block exposes the following reference attributes:
|
|
38
38
|
|
|
39
|
-
| Attribute | Description | Dev value |
|
|
40
|
-
|
|
41
|
-
| `temporal.<name>.url` | gRPC address of the Temporal server | `localhost:<port>` |
|
|
42
|
-
| `temporal.<name>.namespace` | Temporal namespace | `default` |
|
|
43
|
-
| `temporal.<name>.api_key` | API key for authentication | `""` (empty, no auth in dev) |
|
|
39
|
+
| Attribute | Description | Dev value | Production value |
|
|
40
|
+
|-----------|-------------|-----------|------------------|
|
|
41
|
+
| `temporal.<name>.url` | gRPC address of the Temporal server | `localhost:<port>` | Temporal Cloud gRPC address |
|
|
42
|
+
| `temporal.<name>.namespace` | Temporal namespace | `default` | Managed namespace ID |
|
|
43
|
+
| `temporal.<name>.api_key` | API key for authentication | `""` (empty, no auth in dev) | Auto-generated API key |
|
|
44
44
|
|
|
45
45
|
These attributes can be used in service `env` blocks, both as standalone values and inside interpolated strings.
|
|
46
46
|
|
|
@@ -58,41 +58,12 @@ The `api_key` attribute returns an empty string in dev since the Temporal dev se
|
|
|
58
58
|
|
|
59
59
|
## Production
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Running `specific deploy` automatically provisions a managed [Temporal Cloud](https://temporal.io/cloud) namespace for each `temporal` block. No manual setup is required — the same configuration works in both dev and production:
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
secret "temporal_api_key" {
|
|
68
|
-
dev {
|
|
69
|
-
required = false
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
service "worker" {
|
|
74
|
-
build = build.app
|
|
75
|
-
command = "node worker.js"
|
|
76
|
-
|
|
77
|
-
env = {
|
|
78
|
-
# Use built-in temporal block for dev
|
|
79
|
-
TEMPORAL_NAMESPACE = temporal.tasks.namespace
|
|
80
|
-
|
|
81
|
-
# Override address and API key for production via config/secret
|
|
82
|
-
TEMPORAL_ADDRESS = config.temporal_address
|
|
83
|
-
TEMPORAL_API_KEY = secret.temporal_api_key
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
dev {
|
|
87
|
-
command = "node --watch worker.js"
|
|
88
|
-
env = {
|
|
89
|
-
# In dev, use the local Temporal server
|
|
90
|
-
TEMPORAL_ADDRESS = temporal.tasks.url
|
|
91
|
-
TEMPORAL_API_KEY = temporal.tasks.api_key
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
```
|
|
63
|
+
1. A dedicated Temporal Cloud namespace is created
|
|
64
|
+
2. A service account with write access is provisioned
|
|
65
|
+
3. An API key is generated for authentication
|
|
66
|
+
4. Credentials are securely injected into your services
|
|
96
67
|
|
|
97
|
-
|
|
68
|
+
The reference attributes (`temporal.<name>.url`, `.namespace`, `.api_key`) resolve to the Temporal Cloud values in production, so no environment-specific overrides are needed.
|
|
98
69
|
<!-- /beta:temporal -->
|
package/package.json
CHANGED
/package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/admin/_next/static/{YgbAKqz1bHvJtF6MpjtFE → HqmZIQRPGu1hRxFYqbizq}/_ssgManifest.js
RENAMED
|
File without changes
|