@noir-ai/create 1.14.0-beta.1 → 1.15.0-beta.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noir-ai/create",
3
- "version": "1.14.0-beta.1",
3
+ "version": "1.15.0-beta.1",
4
4
  "description": "Noir scaffold engine — the idempotent declarative writer, manifest, templates, stack-detect, and migrations that power `noir init`/`create`/`sync`.",
5
5
  "license": "MIT",
6
6
  "author": "agaaaptr",
@@ -46,8 +46,8 @@
46
46
  "templates"
47
47
  ],
48
48
  "dependencies": {
49
- "@noir-ai/adapters": "1.14.0-beta.1",
50
- "@noir-ai/core": "1.14.0-beta.1"
49
+ "@noir-ai/adapters": "1.15.0-beta.1",
50
+ "@noir-ai/core": "1.15.0-beta.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^22.17.0"
@@ -1,75 +1,38 @@
1
- # .noir/.env — project-scoped configuration for this repo.
2
- #
3
- # This file is the recommended home for project-scoped configuration and
4
- # secrets. Precedence:
5
- # 1. run profile env run.profiles.<n>.env (per-invocation; merges OVER)
6
- # 2. .noir/.env <- recommended home for project-scoped configuration
7
- # 3. real environment CI / container / launchd / shell rc
8
- # 4. built-in default
9
- #
10
- # A real environment variable is a FALLBACK: it applies only to keys this file
11
- # leaves unset. A machine-global export therefore cannot shadow a value here.
12
- # Run `noir env` to see which source is winning for each key.
13
- #
14
- # Keep this file private: chmod 600 .noir/.env
15
- # It is gitignored by Noir's managed .gitignore block, and Noir REFUSES to load
16
- # it if it is tracked by git (a cloned repo could redirect credentials).
17
- # Never commit it.
18
- #
19
- # EVERY LINE BELOW IS COMMENTED OUT. `noir init` created this file at mode 0600
20
- # with no active value, so it parses to an empty overlay and changes no
21
- # behaviour. Uncomment only what you enable, and fill in a real value.
22
- # `.noir/.env.example` carries the same set and stays committable.
1
+ # .noir/.env — project configuration & secrets (chmod 600, gitignored).
2
+ # This file WINS over your shell environment for every key it defines.
3
+ # Run `noir env` to see the winning source per key.
23
4
  #
5
+ # Everything below is commented out: Noir works with defaults.
6
+ # Uncomment a line and set a real value to enable it.
24
7
  # Full reference: docs/reference/environment.md
25
8
 
26
- # --- Integrations -----------------------------------------------------------
27
- # ClickUp — only if the noir-clickup integration is enabled.
28
- # CLICKUP_API_TOKEN=pk_00000000000000000000000000000000
29
- #
30
- # CLICKUP_TEAM_ID is NOT an env var — Noir never reads it. Workspace binding
31
- # (team/list/space ids) is config.yml instead:
32
- # integrations:
33
- # clickup:
34
- # teamId: "ABC123" # optional — only for custom task IDs (#ABC-123)
9
+ # --- Host gateway (Claude Code via Z.AI / LiteLLM / OpenRouter / Kimi ...) ---
10
+ # Point the host at an Anthropic-shaped endpoint. BASE_URL is host-only
11
+ # (no /v1). AUTH_TOKEN is sent as Authorization: Bearer.
12
+ # ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic
13
+ # ANTHROPIC_AUTH_TOKEN=replace-with-your-gateway-token
14
+ # Remap the haiku/sonnet/opus aliases to gateway model ids:
15
+ # ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-5.3-flash
16
+ # ANTHROPIC_DEFAULT_SONNET_MODEL=glm-5.3
17
+ # ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5.3
18
+ # API_TIMEOUT_MS=3000000
19
+ # CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000
35
20
 
36
- # --- Remote embedders (context.embedder.kind: remote) -----------------------
37
- # The default local embedder (kind: local) needs no key.
38
- # OPENAI_API_KEY=sk-000000000000000000000000000000000000000000000000
39
- # VOYAGE_API_KEY=pa-0000000000000000000000000000000000000000000000
40
- # COHERE_API_KEY=0000000000000000000000000000000000000000
41
- #
42
- # Ollama (kind: ollama) reads its base URL from config.yml
43
- # (context.embedder.baseURL); this variable is the fallback:
21
+ # --- Integrations ---
22
+ # CLICKUP_API_TOKEN=replace-with-your-clickup-token
23
+
24
+ # --- Remote embedders (context.embedder.kind: remote) ---
25
+ # OPENAI_API_KEY=replace-with-your-openai-key
26
+ # VOYAGE_API_KEY=replace-with-your-voyage-key
27
+ # COHERE_API_KEY=replace-with-your-cohere-key
44
28
  # OLLAMA_BASE_URL=http://localhost:11434
45
29
 
46
- # --- Model provider key -----------------------------------------------------
47
- # There is NO fixed "model key" variable, and setting one is not enough on its
48
- # own. `apiKeyEnv` is a NAME, not an interpolation: the config stores the
49
- # variable NAME and Noir reads process.env[<that name>] at call time. Write the
50
- # bare name — never `${...}` — in .noir/config.yml:
51
- #
52
- # model:
53
- # providers:
54
- # anthropic:
55
- # apiKeyEnv: ANTHROPIC_API_KEY # -> reads $ANTHROPIC_API_KEY
56
- # tiers:
57
- # default:
58
- # provider: anthropic
59
- #
60
- # Only `run.profiles.<name>.env` interpolates `${VAR}`. With no provider
61
- # configured the model layer degrades to templates — Noir never makes a silent
62
- # paid call. `ANTHROPIC_API_KEY` is the conventional example, not a variable
63
- # Noir looks up on its own:
64
- # ANTHROPIC_API_KEY=sk-ant-0000000000000000000000000000000000000000000000
30
+ # --- Model provider key (read via apiKeyEnv in .noir/config.yml) ---
31
+ # ANTHROPIC_API_KEY=replace-with-your-anthropic-key
65
32
 
66
- # --- Run profile selection --------------------------------------------------
67
- # Selects a `run.profiles.<name>` entry for `noir run`.
68
- # Precedence: --profile flag > NOIR_PROFILE > run.defaultProfile > host default.
33
+ # --- Run profile selection (noir run) ---
69
34
  # NOIR_PROFILE=work
70
35
 
71
- # --- Update kill-switches ---------------------------------------------------
72
- # NOIR_DISABLE_UPDATE_CHECK=1 # suppress the background startup check only
73
- # NOIR_DISABLE_UPDATES=1 # make `noir update` refuse (exit 2)
74
-
75
- # See docs/reference/environment.md for every variable Noir reads.
36
+ # --- Update kill-switches ---
37
+ # NOIR_DISABLE_UPDATE_CHECK=1
38
+ # NOIR_DISABLE_UPDATES=1
@@ -1,78 +1,104 @@
1
- # .noir/.env.example — committable documentation of the format.
1
+ # .noir/.env.example — the committable reference for .noir/.env.
2
2
  #
3
- # This file is a TEMPLATE and is never loaded. Noir reads `.noir/.env`, which
4
- # `noir init` already created for you at mode 0600 — edit that file and
5
- # uncomment the entries you need. Keep this example in git so the variable set
6
- # stays discoverable.
3
+ # What .noir/.env is for
4
+ # ----------------------
5
+ # .noir/.env is this project's configuration-and-secrets file. `noir init`
6
+ # creates it at mode 0600 and gitignores it, and Noir loads it on every
7
+ # command. For every key it defines, it WINS over your shell environment, so it
8
+ # is the recommended home for project-scoped values and secrets.
7
9
  #
8
- # ---------------------------------------------------------------------------
9
- # The block below is the same header `.noir/.env` carries (spec 12.1).
10
- # ---------------------------------------------------------------------------
11
- #
12
- # .noir/.env — project-scoped configuration for this repo.
13
- #
14
- # This file is the recommended home for project-scoped configuration and
15
- # secrets. Precedence:
16
- # 1. run profile env run.profiles.<n>.env (per-invocation; merges OVER)
17
- # 2. .noir/.env <- recommended home for project-scoped configuration
10
+ # Precedence (highest wins):
11
+ # 1. run profile env run.profiles.<n>.env (per-invocation; merges over)
12
+ # 2. .noir/.env the project-scoped file this example documents
18
13
  # 3. real environment CI / container / launchd / shell rc
19
14
  # 4. built-in default
20
15
  #
21
- # A real environment variable is a FALLBACK: it applies only to keys this file
22
- # leaves unset. A machine-global export therefore cannot shadow a value here.
23
- # Run `noir env` to see which source is winning for each key.
16
+ # A real environment variable is only a FALLBACK for keys .noir/.env leaves
17
+ # unset. For a value scoped to one invocation, add a `run.profiles.<name>.env`
18
+ # entry and reference it there as `${VAR}`, so the literal value stays out of
19
+ # config.yml; values that must not be committed belong in `.noir/.env`
20
+ # (gitignored) or the real environment. `noir env` reports the winning source
21
+ # for each key.
22
+ #
23
+ # What to commit
24
+ # --------------
25
+ # Keep .noir/.env OUT of git: it holds real secrets, Noir's managed .gitignore
26
+ # block excludes it, and Noir refuses to load a copy that IS tracked (a cloned
27
+ # repo could redirect credentials). chmod 600 .noir/.env to keep it private.
28
+ # Never commit the real file — commit THIS example, so the keys stay
29
+ # discoverable and documented.
24
30
  #
25
- # Keep this file private: chmod 600 .noir/.env
26
- # It is gitignored by Noir's managed .gitignore block, and Noir REFUSES to load
27
- # it if it is tracked by git (a cloned repo could redirect credentials).
28
- # Never commit `.noir/.env`. (THIS file is the committable one.)
31
+ # Every line below is documentation. Copy a key to .noir/.env and set a real
32
+ # value to enable it.
33
+ #
34
+ # Full reference: docs/reference/environment.md
29
35
 
30
- # --- Integrations -----------------------------------------------------------
31
- # ClickUp — only if the noir-clickup integration is enabled.
32
- # CLICKUP_API_TOKEN=pk_00000000000000000000000000000000
36
+ # --- Host gateway (Claude Code via Z.AI / LiteLLM / OpenRouter / Kimi ...) ---
37
+ # Point the host at an Anthropic-shaped endpoint instead of api.anthropic.com.
38
+ #
39
+ # ANTHROPIC_BASE_URL — the gateway's base URL. Host ONLY: give the origin (for
40
+ # example https://gateway.example) and NOT the /v1/messages path — the host
41
+ # appends that itself.
42
+ # ANTHROPIC_AUTH_TOKEN — sent as `Authorization: Bearer <token>`. It is the
43
+ # HEADER variant of a credential: AUTH_TOKEN becomes Bearer, while
44
+ # ANTHROPIC_API_KEY becomes x-api-key. Do not set BOTH — that is an auth
45
+ # conflict.
46
+ # ANTHROPIC_DEFAULT_HAIKU_MODEL / _SONNET_MODEL / _OPUS_MODEL — remap the
47
+ # haiku / sonnet / opus aliases to the model ids your gateway serves.
48
+ # API_TIMEOUT_MS — per-request timeout in milliseconds (Claude Code default is
49
+ # 600000).
50
+ # CLAUDE_CODE_AUTO_COMPACT_WINDOW — auto-compact window (100000 to 1000000).
33
51
  #
34
- # CLICKUP_TEAM_ID is NOT an env var — Noir never reads it. Workspace binding
35
- # (team/list/space ids) is config.yml instead:
36
- # integrations:
37
- # clickup:
38
- # teamId: "ABC123" # optional — only for custom task IDs (#ABC-123)
52
+ # ANTHROPIC_BASE_URL=https://gateway.example
53
+ # ANTHROPIC_AUTH_TOKEN=replace-with-your-gateway-token
54
+ # ANTHROPIC_DEFAULT_HAIKU_MODEL=replace-with-your-gateway-haiku-model
55
+ # ANTHROPIC_DEFAULT_SONNET_MODEL=replace-with-your-gateway-sonnet-model
56
+ # ANTHROPIC_DEFAULT_OPUS_MODEL=replace-with-your-gateway-opus-model
57
+ # API_TIMEOUT_MS=600000
58
+ # CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000
59
+
60
+ # --- Integrations ---
61
+ # CLICKUP_API_TOKEN — the token for the noir-clickup integration; set it only
62
+ # when that integration is enabled.
63
+ # CLICKUP_TEAM_ID is NOT an env var. Noir never reads it — workspace binding
64
+ # (team / list / space ids) belongs in .noir/config.yml under
65
+ # integrations.clickup.
66
+ # CLICKUP_API_TOKEN=replace-with-your-clickup-token
39
67
 
40
- # --- Remote embedders (context.embedder.kind: remote) -----------------------
41
- # The default local embedder (kind: local) needs no key.
42
- # OPENAI_API_KEY=sk-000000000000000000000000000000000000000000000000
43
- # VOYAGE_API_KEY=pa-0000000000000000000000000000000000000000000000
44
- # COHERE_API_KEY=0000000000000000000000000000000000000000
68
+ # --- Remote embedders (context.embedder.kind: remote) ---
69
+ # The default local embedder (kind: local) needs no key. The three API-key
70
+ # variables below apply only when config.yml selects a remote embedder.
71
+ # OPENAI_API_KEY=replace-with-your-openai-key
72
+ # VOYAGE_API_KEY=replace-with-your-voyage-key
73
+ # COHERE_API_KEY=replace-with-your-cohere-key
45
74
  #
46
75
  # Ollama (kind: ollama) reads its base URL from config.yml
47
76
  # (context.embedder.baseURL); this variable is the fallback:
48
77
  # OLLAMA_BASE_URL=http://localhost:11434
49
78
 
50
- # --- Model provider key -----------------------------------------------------
51
- # There is NO fixed "model key" variable, and setting one is not enough on its
52
- # own. `apiKeyEnv` is a NAME, not an interpolation: the config stores the
53
- # variable NAME and Noir reads process.env[<that name>] at call time. Write the
54
- # bare name — never `${...}` — in .noir/config.yml:
79
+ # --- Model provider key (read via apiKeyEnv in .noir/config.yml) ---
80
+ # There is no fixed "model key" variable, and setting a key is not enough on
81
+ # its own. `apiKeyEnv` is a NAME, not an interpolation: config.yml stores the
82
+ # variable NAME, and Noir reads process.env[<that name>] at call time. Write
83
+ # the bare name — never `${...}` — in .noir/config.yml:
55
84
  #
56
85
  # model:
57
86
  # providers:
58
87
  # anthropic:
59
88
  # apiKeyEnv: ANTHROPIC_API_KEY # -> reads $ANTHROPIC_API_KEY
60
- # tiers:
61
- # default:
62
- # provider: anthropic
63
89
  #
64
90
  # Only `run.profiles.<name>.env` interpolates `${VAR}`. With no provider
65
91
  # configured the model layer degrades to templates — Noir never makes a silent
66
92
  # paid call. `ANTHROPIC_API_KEY` is the conventional example, not a variable
67
- # Noir looks up on its own:
68
- # ANTHROPIC_API_KEY=sk-ant-0000000000000000000000000000000000000000000000
93
+ # Noir looks up on its own.
94
+ # ANTHROPIC_API_KEY=replace-with-your-anthropic-key
69
95
 
70
- # --- Run profile selection --------------------------------------------------
96
+ # --- Run profile selection (noir run) ---
71
97
  # Selects a `run.profiles.<name>` entry for `noir run`.
72
98
  # Precedence: --profile flag > NOIR_PROFILE > run.defaultProfile > host default.
73
99
  # NOIR_PROFILE=work
74
100
 
75
- # --- Update kill-switches ---------------------------------------------------
101
+ # --- Update kill-switches ---
76
102
  # NOIR_DISABLE_UPDATE_CHECK=1 # suppress the background startup check only
77
103
  # NOIR_DISABLE_UPDATES=1 # make `noir update` refuse (exit 2)
78
104
 
@@ -13,7 +13,7 @@ the feature named beside it.
13
13
  | `NOIR.md` | The context brief the host context file `@`-imports. Noir-managed region. |
14
14
  | `rules/RULES.md` | The AI working contract the host `@`-imports. Yours to edit. |
15
15
  | `.env` | Project-scoped configuration and secrets (mode 0600, gitignored). |
16
- | `.env.example` | Committable documentation of the same variable set. Never loaded. |
16
+ | `.env.example` | The committable reference: what each variable does, the precedence order, and what to commit. Never loaded. |
17
17
  | `scaffold-version` | Which scaffold version produced this tree — drives `noir init --upgrade`. |
18
18
  | `ancestors.json` | Merge base for Noir's managed regions (leave it alone). |
19
19
  | `README.md` | This map. |