clawchef 0.1.5 → 0.1.6
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 +4 -4
- package/dist/cli.js +4 -4
- package/dist/env.js +1 -1
- package/package.json +1 -1
- package/src/cli.ts +4 -4
- package/src/env.ts +1 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Recipe-driven OpenClaw environment orchestrator.
|
|
|
8
8
|
- Accepts recipe input from local file/dir/archive and HTTP URL/archive.
|
|
9
9
|
- Resolves `${var}` parameters from `--var`, environment, and defaults.
|
|
10
10
|
- Auto-loads environment variables from `.env` in the current working directory.
|
|
11
|
-
- Supports loading env vars from a custom `.env` path/URL via `--
|
|
11
|
+
- Supports loading env vars from a custom `.env` path/URL via `--dotenv-ref`.
|
|
12
12
|
- Requires secrets to be injected via `--var` / `CLAWCHEF_VAR_*` (no inline secrets in recipe).
|
|
13
13
|
- Prepares OpenClaw version (install or reuse).
|
|
14
14
|
- When installed OpenClaw version mismatches recipe version, prompts: ignore / abort / force reinstall (silent mode auto-picks force reinstall).
|
|
@@ -43,8 +43,8 @@ clawchef cook https://example.com/recipes/sample.yaml --provider remote
|
|
|
43
43
|
Run with custom env file (local path or HTTP URL):
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
clawchef cook recipes/sample.yaml --
|
|
47
|
-
clawchef cook recipes/sample.yaml --
|
|
46
|
+
clawchef cook recipes/sample.yaml --dotenv-ref ./.env.staging
|
|
47
|
+
clawchef cook recipes/sample.yaml --dotenv-ref https://example.com/envs/staging.env
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Run recipe from GitHub repository root (`recipe.yaml` at repo root):
|
|
@@ -221,7 +221,7 @@ Notes:
|
|
|
221
221
|
If `params.<key>.required: true` and no value is found, run fails.
|
|
222
222
|
|
|
223
223
|
If `.env` exists in the directory where `clawchef` is executed, it is loaded before recipe parsing.
|
|
224
|
-
If `--
|
|
224
|
+
If `--dotenv-ref` (or Node API `envFile`) is provided, only that env source is loaded.
|
|
225
225
|
|
|
226
226
|
## Recipe reference formats
|
|
227
227
|
|
package/dist/cli.js
CHANGED
|
@@ -69,7 +69,7 @@ export function buildCli() {
|
|
|
69
69
|
program
|
|
70
70
|
.name("clawchef")
|
|
71
71
|
.description("Run OpenClaw environment recipes")
|
|
72
|
-
.version("0.1.
|
|
72
|
+
.version("0.1.6");
|
|
73
73
|
program
|
|
74
74
|
.command("cook")
|
|
75
75
|
.argument("<recipe>", "Recipe path/URL/dir/archive[:file]")
|
|
@@ -79,7 +79,7 @@ export function buildCli() {
|
|
|
79
79
|
.option("--verbose", "Verbose logging", false)
|
|
80
80
|
.option("-s, --silent", "Skip reset confirmation prompt", false)
|
|
81
81
|
.option("--keep-openclaw-state", "Preserve existing OpenClaw state (skip factory reset)", false)
|
|
82
|
-
.option("--
|
|
82
|
+
.option("--dotenv-ref <path-or-url>", "Load env vars from local file or HTTP URL")
|
|
83
83
|
.option("--provider <provider>", "Execution provider: command | remote | mock")
|
|
84
84
|
.option("--plugin <npm-spec>", "Preinstall plugin package (repeatable)", (v, p) => p.concat([v]), [])
|
|
85
85
|
.option("--remote-base-url <url>", "Remote OpenClaw API base URL")
|
|
@@ -89,8 +89,8 @@ export function buildCli() {
|
|
|
89
89
|
.option("--remote-timeout-ms <ms>", "Remote operation timeout in milliseconds")
|
|
90
90
|
.option("--remote-operation-path <path>", "Remote operation endpoint path")
|
|
91
91
|
.action(async (recipeRef, opts) => {
|
|
92
|
-
if (opts.
|
|
93
|
-
await importDotEnvFromRef(String(opts.
|
|
92
|
+
if (opts.dotenvRef) {
|
|
93
|
+
await importDotEnvFromRef(String(opts.dotenvRef));
|
|
94
94
|
}
|
|
95
95
|
else {
|
|
96
96
|
importDotEnvFromCwd();
|
package/dist/env.js
CHANGED
|
@@ -32,7 +32,7 @@ function applyEnv(entries) {
|
|
|
32
32
|
export async function importDotEnvFromRef(ref) {
|
|
33
33
|
const trimmed = ref.trim();
|
|
34
34
|
if (!trimmed) {
|
|
35
|
-
throw new ClawChefError("
|
|
35
|
+
throw new ClawChefError("dotenv ref cannot be empty");
|
|
36
36
|
}
|
|
37
37
|
if (isHttpUrl(trimmed)) {
|
|
38
38
|
let response;
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -78,7 +78,7 @@ export function buildCli(): Command {
|
|
|
78
78
|
program
|
|
79
79
|
.name("clawchef")
|
|
80
80
|
.description("Run OpenClaw environment recipes")
|
|
81
|
-
.version("0.1.
|
|
81
|
+
.version("0.1.6");
|
|
82
82
|
|
|
83
83
|
program
|
|
84
84
|
.command("cook")
|
|
@@ -89,7 +89,7 @@ export function buildCli(): Command {
|
|
|
89
89
|
.option("--verbose", "Verbose logging", false)
|
|
90
90
|
.option("-s, --silent", "Skip reset confirmation prompt", false)
|
|
91
91
|
.option("--keep-openclaw-state", "Preserve existing OpenClaw state (skip factory reset)", false)
|
|
92
|
-
.option("--
|
|
92
|
+
.option("--dotenv-ref <path-or-url>", "Load env vars from local file or HTTP URL")
|
|
93
93
|
.option("--provider <provider>", "Execution provider: command | remote | mock")
|
|
94
94
|
.option("--plugin <npm-spec>", "Preinstall plugin package (repeatable)", (v, p: string[]) => p.concat([v]), [])
|
|
95
95
|
.option("--remote-base-url <url>", "Remote OpenClaw API base URL")
|
|
@@ -99,8 +99,8 @@ export function buildCli(): Command {
|
|
|
99
99
|
.option("--remote-timeout-ms <ms>", "Remote operation timeout in milliseconds")
|
|
100
100
|
.option("--remote-operation-path <path>", "Remote operation endpoint path")
|
|
101
101
|
.action(async (recipeRef: string, opts) => {
|
|
102
|
-
if (opts.
|
|
103
|
-
await importDotEnvFromRef(String(opts.
|
|
102
|
+
if (opts.dotenvRef) {
|
|
103
|
+
await importDotEnvFromRef(String(opts.dotenvRef));
|
|
104
104
|
} else {
|
|
105
105
|
importDotEnvFromCwd();
|
|
106
106
|
}
|
package/src/env.ts
CHANGED
|
@@ -36,7 +36,7 @@ function applyEnv(entries: Record<string, string>): void {
|
|
|
36
36
|
export async function importDotEnvFromRef(ref: string): Promise<void> {
|
|
37
37
|
const trimmed = ref.trim();
|
|
38
38
|
if (!trimmed) {
|
|
39
|
-
throw new ClawChefError("
|
|
39
|
+
throw new ClawChefError("dotenv ref cannot be empty");
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
if (isHttpUrl(trimmed)) {
|