@noir-ai/create 1.14.0 → 1.15.0
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/index.d.ts +226 -46
- package/dist/index.js +604 -224
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/templates/config.env.tmpl +29 -66
- package/templates/env.example.tmpl +73 -47
- package/templates/noir-readme.md.tmpl +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noir-ai/create",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
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/
|
|
50
|
-
"@noir-ai/
|
|
49
|
+
"@noir-ai/core": "1.15.0",
|
|
50
|
+
"@noir-ai/adapters": "1.15.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/node": "^22.17.0"
|
|
@@ -1,75 +1,38 @@
|
|
|
1
|
-
# .noir/.env — project
|
|
2
|
-
#
|
|
3
|
-
#
|
|
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
|
-
# ---
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
#
|
|
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
|
-
# ---
|
|
37
|
-
#
|
|
38
|
-
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
#
|
|
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
|
-
#
|
|
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
|
|
73
|
-
# NOIR_DISABLE_UPDATES=1
|
|
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
|
|
1
|
+
# .noir/.env.example — the committable reference for .noir/.env.
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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
|
-
#
|
|
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
|
|
22
|
-
#
|
|
23
|
-
#
|
|
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
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
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
|
-
# ---
|
|
31
|
-
#
|
|
32
|
-
#
|
|
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
|
-
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
#
|
|
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
|
-
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
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
|
|
52
|
-
# own. `apiKeyEnv` is a NAME, not an interpolation:
|
|
53
|
-
# variable NAME and Noir reads process.env[<that name>] at call time. Write
|
|
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=
|
|
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` |
|
|
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. |
|