@groundnuty/macf 0.2.16 → 0.2.18
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/.build-info.json +2 -2
- package/dist/cli/claude-sh.d.ts +82 -0
- package/dist/cli/claude-sh.d.ts.map +1 -1
- package/dist/cli/claude-sh.js +126 -54
- package/dist/cli/claude-sh.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update.d.ts +15 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +67 -8
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/env-files-update.d.ts +139 -0
- package/dist/cli/env-files-update.d.ts.map +1 -0
- package/dist/cli/env-files-update.js +281 -0
- package/dist/cli/env-files-update.js.map +1 -0
- package/dist/cli/env-files.d.ts +168 -0
- package/dist/cli/env-files.d.ts.map +1 -0
- package/dist/cli/env-files.js +585 -0
- package/dist/cli/env-files.js.map +1 -0
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -46,6 +46,7 @@ import { installGhTokenHook, installPluginSkillPermissions, installSandboxFdAllo
|
|
|
46
46
|
import { detectStaleDist, detectUnknownFreshness } from '../build-info.js';
|
|
47
47
|
import { fetchPluginToWorkspace, workspacePluginDir } from '../plugin-fetcher.js';
|
|
48
48
|
import { writeClaudeSh } from '../claude-sh.js';
|
|
49
|
+
import { refreshEnvFiles, migrateMonolithicClaudeSh, detectSettingsLocalEnvKeys, formatDeprecationWarning, } from '../env-files-update.js';
|
|
49
50
|
import { createClientFromConfig } from '../registry-helper.js';
|
|
50
51
|
import { generateToken } from '@groundnuty/macf-core';
|
|
51
52
|
import { promptPassword, PromptCancelled } from '../prompt.js';
|
|
@@ -226,14 +227,72 @@ export async function update(projectDir, opts) {
|
|
|
226
227
|
// macf#211.
|
|
227
228
|
installSandboxExcludedCommands(projectDir);
|
|
228
229
|
console.log(`Refreshed sandbox excludedCommands in .claude/settings.json`);
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
//
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
|
|
230
|
+
// macf#342 PR-C: monolithic→multi-file migration + claude.sh refresh
|
|
231
|
+
// + per-concern env-file refresh. The three steps run as a unit
|
|
232
|
+
// because they're tightly coupled — the thin claude.sh template (PR-B)
|
|
233
|
+
// depends on the env files existing, so we never want claude.sh
|
|
234
|
+
// refreshed without the env files alongside it. Likewise, migration
|
|
235
|
+
// writes both in lockstep for workspaces upgrading from a pre-#342
|
|
236
|
+
// monolithic launcher.
|
|
237
|
+
//
|
|
238
|
+
// **Operator opt-out**: `--no-migrate-env-files` skips ALL THREE steps
|
|
239
|
+
// (migration, claude.sh refresh, env-file refresh). The flag is for
|
|
240
|
+
// operators with a hand-modified launcher who explicitly don't want
|
|
241
|
+
// it auto-rewritten; the trade-off is they also miss any unrelated
|
|
242
|
+
// launcher template evolution (e.g., a future #283-style endpoint
|
|
243
|
+
// fix) on runs where they pass the flag. Removing the flag on a
|
|
244
|
+
// subsequent run reapplies the canonical template + migration.
|
|
245
|
+
//
|
|
246
|
+
// **Migration order**: `migrateMonolithicClaudeSh` MUST run before
|
|
247
|
+
// `writeClaudeSh`, because writeClaudeSh emits the thin source-loop
|
|
248
|
+
// template that depends on env files; if writeClaudeSh ran first, the
|
|
249
|
+
// operator's claude.sh would become thin without env files on disk
|
|
250
|
+
// until refreshEnvFiles ran later — leaving a brief window where the
|
|
251
|
+
// launcher would source nothing. Migration writes both atomically.
|
|
252
|
+
if (!opts.noMigrateEnvFiles) {
|
|
253
|
+
const migration = migrateMonolithicClaudeSh(projectDir, config);
|
|
254
|
+
if (migration.migrated) {
|
|
255
|
+
console.log(`Migrated monolithic claude.sh → thin source-loop template + ` +
|
|
256
|
+
`per-concern env files (macf#342)`);
|
|
257
|
+
}
|
|
258
|
+
else if (migration.reason === 'unrecognized-template') {
|
|
259
|
+
// Operator-edited / third-party launcher. Don't auto-overwrite
|
|
260
|
+
// here, but `writeClaudeSh` below WILL overwrite per the existing
|
|
261
|
+
// #63 contract — surface the case so the operator can decide
|
|
262
|
+
// whether to re-run with `--no-migrate-env-files`.
|
|
263
|
+
console.warn(`Note: claude.sh did not match the canonical macf template. ` +
|
|
264
|
+
`Will be overwritten with the current template (managed-file contract).`);
|
|
265
|
+
}
|
|
266
|
+
// Regenerate claude.sh unconditionally — the launcher template
|
|
267
|
+
// changes over time (e.g., #60 added --plugin-dir, #283 fixed the
|
|
268
|
+
// retired :4318 OTLP endpoint) and workspaces need those changes
|
|
269
|
+
// without having to re-run `macf init` from scratch. The generated
|
|
270
|
+
// file carries a managed-file header warning users not to edit it.
|
|
271
|
+
// See #63. Doesn't depend on config.versions, so it runs even for
|
|
272
|
+
// legacy configs (before the error-exit for missing versions).
|
|
273
|
+
writeClaudeSh(projectDir, config);
|
|
274
|
+
console.log(`Refreshed claude.sh from current launcher template`);
|
|
275
|
+
// Env-file refresh: macf-managed files (env._helpers / env.identity
|
|
276
|
+
// / env.github / env.certs / env.registry) overwrite + warn-on-
|
|
277
|
+
// handedit; operator-managed files (env.telemetry, env.tmux)
|
|
278
|
+
// bootstrap-write if absent + preserve unconditionally otherwise.
|
|
279
|
+
const refresh = refreshEnvFiles(projectDir, config);
|
|
280
|
+
const summary = `Env: refreshed ${refresh.refreshed.length} macf-managed file(s); ` +
|
|
281
|
+
`preserved ${refresh.preserved.length} operator-managed file(s); ` +
|
|
282
|
+
`warned on ${refresh.warnedHandEdits.length} hand-edit(s)`;
|
|
283
|
+
console.log(summary);
|
|
284
|
+
}
|
|
285
|
+
// macf#342 PR-C deprecation surface: settings.local.json env keys
|
|
286
|
+
// matching MACF_* / OTEL_* are now redundant with the per-concern
|
|
287
|
+
// env files. Backward-compat preserved structurally (macf_settings_get
|
|
288
|
+
// still reads them at runtime); this warning gives operators a window
|
|
289
|
+
// to migrate. No automatic JSON-key migration in this PR — the risk
|
|
290
|
+
// surface is too broad (operator may intentionally have layered
|
|
291
|
+
// overrides). See env-files-update.ts for the full rationale.
|
|
292
|
+
const deprecatedKeys = detectSettingsLocalEnvKeys(projectDir);
|
|
293
|
+
if (deprecatedKeys.length > 0) {
|
|
294
|
+
process.stderr.write(formatDeprecationWarning(deprecatedKeys));
|
|
295
|
+
}
|
|
237
296
|
// DR-011 rev2 auto-migrate: check for legacy v1 CA key backup and
|
|
238
297
|
// upgrade it to v2 (JSON envelope at 600k iters) if found. One-time
|
|
239
298
|
// per project, silent no-op if already v2 or no backup exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import type { MacfAgentConfig } from './config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of `refreshEnvFiles` — counts that the caller turns into a
|
|
4
|
+
* single-line summary log. Lists kept as readonly arrays of basenames
|
|
5
|
+
* (not absolute paths) so the summary message stays compact and
|
|
6
|
+
* stable across operator filesystems.
|
|
7
|
+
*/
|
|
8
|
+
export interface RefreshEnvFilesResult {
|
|
9
|
+
readonly refreshed: readonly string[];
|
|
10
|
+
readonly preserved: readonly string[];
|
|
11
|
+
readonly bootstrapped: readonly string[];
|
|
12
|
+
readonly warnedHandEdits: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Refresh per-concern env files in `<projectDir>/.claude/.macf/`.
|
|
16
|
+
*
|
|
17
|
+
* Macf-managed files (env._helpers, env.identity, env.github,
|
|
18
|
+
* env.certs, env.registry):
|
|
19
|
+
* - Absent → write fresh from `generate()`.
|
|
20
|
+
* - Present + matches fresh output → silent no-op.
|
|
21
|
+
* - Present + drift → emit one-time warning to stderr (cites
|
|
22
|
+
* macf#342 + suggests env.local.* / settings.local.json for
|
|
23
|
+
* overrides) + overwrite with fresh output.
|
|
24
|
+
*
|
|
25
|
+
* Operator-managed files (env.telemetry, env.tmux):
|
|
26
|
+
* - Absent → bootstrap-write (one-time fresh write so the workspace
|
|
27
|
+
* starts with a sensible default — operator can edit thereafter).
|
|
28
|
+
* - Present → SILENT NO-OP. Operator's edits preserved unconditionally.
|
|
29
|
+
*
|
|
30
|
+
* **Why "drift = overwrite + warn" not "preserve + warn"**: the
|
|
31
|
+
* macf-managed files have a managed-file header reserving the right to
|
|
32
|
+
* regenerate them. If an operator hand-edits env.identity to change
|
|
33
|
+
* MACF_AGENT_NAME, the canonical place for that override is
|
|
34
|
+
* settings.local.json `env.MACF_AGENT_NAME` (read at runtime by
|
|
35
|
+
* `macf_settings_get`) — not the generated file. PR-C honors the
|
|
36
|
+
* managed-file contract; the warning gives operators time to move
|
|
37
|
+
* their edit.
|
|
38
|
+
*
|
|
39
|
+
* **Stderr write directly** (not via console.warn) so multiple warnings
|
|
40
|
+
* from one update run aren't intermingled with stdout summary logs.
|
|
41
|
+
* Uses `process.stderr.write` consistent with init.ts's existing
|
|
42
|
+
* stderr-diagnostic style.
|
|
43
|
+
*
|
|
44
|
+
* Creates `.claude/.macf/` if absent (mkdir -p). Returns the result
|
|
45
|
+
* record so the caller logs a summary; does not log itself (separation
|
|
46
|
+
* of concerns: this function decides + writes, caller decides how
|
|
47
|
+
* loudly to report).
|
|
48
|
+
*/
|
|
49
|
+
export declare function refreshEnvFiles(projectDir: string, config: MacfAgentConfig): RefreshEnvFilesResult;
|
|
50
|
+
/**
|
|
51
|
+
* Result of `migrateMonolithicClaudeSh`. `migrated: true` means a
|
|
52
|
+
* monolithic claude.sh was detected and replaced with the thin
|
|
53
|
+
* source-loop template + per-concern env files were written.
|
|
54
|
+
* `migrated: false` carries a `reason` discriminator so the caller can
|
|
55
|
+
* log appropriately or short-circuit downstream work.
|
|
56
|
+
*/
|
|
57
|
+
export type MigrationResult = {
|
|
58
|
+
readonly migrated: true;
|
|
59
|
+
} | {
|
|
60
|
+
readonly migrated: false;
|
|
61
|
+
readonly reason: 'already-migrated' | 'no-claude-sh' | string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Detect whether `<projectDir>/claude.sh` is the pre-#342 monolithic
|
|
65
|
+
* template, and if so, migrate it in-place to the thin template +
|
|
66
|
+
* generate the per-concern env files.
|
|
67
|
+
*
|
|
68
|
+
* Detection rules:
|
|
69
|
+
* - No `claude.sh` at all → `{ migrated: false, reason: 'no-claude-sh' }`.
|
|
70
|
+
* (init hasn't run; nothing to migrate.)
|
|
71
|
+
* - `claude.sh` exists + has the source-loop marker (post-#342 thin)
|
|
72
|
+
* → `{ migrated: false, reason: 'already-migrated' }`.
|
|
73
|
+
* Silent no-op; downstream `refreshEnvFiles` still runs.
|
|
74
|
+
* - `claude.sh` exists + has the inline-MACF_AGENT_NAME marker (pre-#342
|
|
75
|
+
* monolithic) → migrate.
|
|
76
|
+
* - Anything else (operator-rewritten launcher, third-party edit) →
|
|
77
|
+
* `{ migrated: false, reason: 'unrecognized-template' }`. Conservative:
|
|
78
|
+
* don't auto-overwrite something we didn't author. Operator can
|
|
79
|
+
* run `macf init --force` to opt into the migration explicitly.
|
|
80
|
+
*
|
|
81
|
+
* Migration steps (when migrated=true):
|
|
82
|
+
* 1. `writeEnvFiles(projectDir, config)` — fresh per-concern env files
|
|
83
|
+
* from the config in `.macf/macf-agent.json`. The JSON is the
|
|
84
|
+
* source of truth post-migration; we do NOT extract values from
|
|
85
|
+
* the monolithic claude.sh (the JSON has them already, and parsing
|
|
86
|
+
* shell to recover values is fragile + unnecessary).
|
|
87
|
+
* 2. `writeClaudeSh(projectDir, config)` — overwrite with the thin
|
|
88
|
+
* template per PR-B. Thin template depends on env files written
|
|
89
|
+
* in step 1.
|
|
90
|
+
*
|
|
91
|
+
* **Migration is auto-detected, not opt-in.** Operators upgrading from
|
|
92
|
+
* a CLI carrying the monolithic template to one carrying this code
|
|
93
|
+
* get migrated transparently on first `macf update`. Opt-out is
|
|
94
|
+
* `--no-migrate-env-files` at the CLI layer (handled in update.ts).
|
|
95
|
+
*
|
|
96
|
+
* **Idempotent**: re-running on an already-migrated workspace returns
|
|
97
|
+
* `{ migrated: false, reason: 'already-migrated' }` without writing
|
|
98
|
+
* anything. Safe for repeated `macf update` calls.
|
|
99
|
+
*/
|
|
100
|
+
export declare function migrateMonolithicClaudeSh(projectDir: string, config: MacfAgentConfig): MigrationResult;
|
|
101
|
+
/**
|
|
102
|
+
* Read `.claude/settings.local.json` and return the list of `env.*`
|
|
103
|
+
* keys whose names start with `MACF_` or `OTEL_`. These are the
|
|
104
|
+
* subset that the multi-file env layout (#342) is replacing —
|
|
105
|
+
* historically operators set them in the JSON env block as a
|
|
106
|
+
* settings-driven override; post-#342 the canonical location is per-
|
|
107
|
+
* concern env files (env.identity for MACF_AGENT_NAME, env.telemetry
|
|
108
|
+
* for OTEL_*, etc.) or the `env.local.*` operator override pattern.
|
|
109
|
+
*
|
|
110
|
+
* **Backward-compat preserved structurally**: `macf_settings_get` in
|
|
111
|
+
* env._helpers (PR-A / PR-B) still reads `env.MACF_*` and `env.OTEL_*`
|
|
112
|
+
* from settings.local.json at runtime. So existing operator overrides
|
|
113
|
+
* keep working — the deprecation warning is the SOFT signal giving
|
|
114
|
+
* operators a window to migrate. Hard removal would be a future PR
|
|
115
|
+
* (Option α §"clean break with deprecation shim" per #342 thread).
|
|
116
|
+
*
|
|
117
|
+
* **No automatic migration of JSON env keys** in this PR. The risk
|
|
118
|
+
* surface is too broad: operators may have intentional layered
|
|
119
|
+
* configurations where the JSON value differs from the file default
|
|
120
|
+
* (e.g., dev endpoint in JSON, prod default baked into file). Auto-
|
|
121
|
+
* moving the value loses that distinction. Manual migration after
|
|
122
|
+
* seeing the warning is the conservative choice; auto-migration can
|
|
123
|
+
* be a future enhancement once the patterns are well-understood.
|
|
124
|
+
*
|
|
125
|
+
* Returns a sorted, deduplicated list of keys (without the `env.`
|
|
126
|
+
* prefix — caller formats them). Empty when settings.local.json is
|
|
127
|
+
* absent / has no `env` block / has no matching keys / is malformed
|
|
128
|
+
* (silent on malformed: settings-writer.ts surfaces parse errors via
|
|
129
|
+
* its other code paths; we don't double-report).
|
|
130
|
+
*/
|
|
131
|
+
export declare function detectSettingsLocalEnvKeys(projectDir: string): readonly string[];
|
|
132
|
+
/**
|
|
133
|
+
* Format the per-key deprecation warning lines for stderr. Returned as
|
|
134
|
+
* a single multi-line string the caller can emit in one
|
|
135
|
+
* `process.stderr.write`. Empty string when `keys` is empty (caller
|
|
136
|
+
* doesn't have to special-case).
|
|
137
|
+
*/
|
|
138
|
+
export declare function formatDeprecationWarning(keys: readonly string[]): string;
|
|
139
|
+
//# sourceMappingURL=env-files-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-files-update.d.ts","sourceRoot":"","sources":["../../src/cli/env-files-update.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4CnD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,qBAAqB,CAkDvB;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,GAAG,MAAM,CAAA;CAAE,CAAC;AAchG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,eAAe,CA0BjB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,GACjB,SAAS,MAAM,EAAE,CAqBnB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAexE"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update + migration semantics for the per-concern env-file layout
|
|
3
|
+
* (groundnuty/macf#342). PR-C of the 4-PR sequence:
|
|
4
|
+
*
|
|
5
|
+
* PR-A — pure generators (env-files.ts) [merged ee4604d]
|
|
6
|
+
* PR-B — thin claude.sh + writeEnvFiles + init wiring [merged b75c7ff]
|
|
7
|
+
* PR-C (this PR) — `macf update` wiring + monolithic→multi-file
|
|
8
|
+
* migration tool + settings.local.json env block compat
|
|
9
|
+
* PR-D — operator docs
|
|
10
|
+
*
|
|
11
|
+
* Three concerns live here, kept in one module so the refresh pipeline
|
|
12
|
+
* is easy to read end-to-end:
|
|
13
|
+
*
|
|
14
|
+
* 1. `refreshEnvFiles()` — refresh-and-preserve semantics for
|
|
15
|
+
* macf-managed (overwrite + warn-on-handedit) and operator-managed
|
|
16
|
+
* (silent no-op when present) env files.
|
|
17
|
+
*
|
|
18
|
+
* 2. `migrateMonolithicClaudeSh()` — auto-migration from the
|
|
19
|
+
* pre-#342 monolithic claude.sh to the thin source-loop template
|
|
20
|
+
* + per-concern env files. Detection-gated; runs transparently on
|
|
21
|
+
* first `macf update` after upgrading to a CLI carrying this code.
|
|
22
|
+
*
|
|
23
|
+
* 3. `detectSettingsLocalEnvKeys()` — surfaces deprecated
|
|
24
|
+
* `env.MACF_*` / `env.OTEL_*` keys still living in
|
|
25
|
+
* `.claude/settings.local.json` per Option α (clean break with
|
|
26
|
+
* deprecation shim). The shim itself is structural — `macf_settings_get`
|
|
27
|
+
* in env._helpers continues to read these keys at runtime — so
|
|
28
|
+
* operators have a window to migrate; PR-C only emits the
|
|
29
|
+
* one-time warning.
|
|
30
|
+
*
|
|
31
|
+
* **Invariant**: this module never deletes operator state. Macf-managed
|
|
32
|
+
* files are overwritten only with the (single source of truth)
|
|
33
|
+
* generator output; operator-managed files (env.telemetry, env.tmux)
|
|
34
|
+
* are preserved unconditionally once they exist; settings.local.json
|
|
35
|
+
* is read-only here (the deprecation warning surfaces them, but no
|
|
36
|
+
* automatic JSON-key migration in this PR — the risk surface is too
|
|
37
|
+
* broad for one change. Operators see the warning and migrate by hand).
|
|
38
|
+
*/
|
|
39
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
40
|
+
import { join, resolve } from 'node:path';
|
|
41
|
+
import { generateEnvCerts, generateEnvGitHub, generateEnvHelpers, generateEnvIdentity, generateEnvRegistry, generateEnvTelemetry, generateEnvTmux, writeEnvFiles, } from './env-files.js';
|
|
42
|
+
import { writeClaudeSh } from './claude-sh.js';
|
|
43
|
+
const MANAGED_ENV_FILES = [
|
|
44
|
+
{ name: 'env._helpers', generate: () => generateEnvHelpers() },
|
|
45
|
+
{ name: 'env.identity', generate: generateEnvIdentity },
|
|
46
|
+
{ name: 'env.github', generate: generateEnvGitHub },
|
|
47
|
+
{ name: 'env.certs', generate: generateEnvCerts },
|
|
48
|
+
{ name: 'env.registry', generate: generateEnvRegistry },
|
|
49
|
+
];
|
|
50
|
+
/**
|
|
51
|
+
* The set of operator-managed env files. Bootstrap-write on first
|
|
52
|
+
* `macf update` if absent, then preserved unconditionally on subsequent
|
|
53
|
+
* runs — operator's edits are theirs to own. The `generate` function
|
|
54
|
+
* is only called when the file doesn't exist yet.
|
|
55
|
+
*/
|
|
56
|
+
const OPERATOR_ENV_FILES = [
|
|
57
|
+
{ name: 'env.telemetry', generate: generateEnvTelemetry },
|
|
58
|
+
{ name: 'env.tmux', generate: generateEnvTmux },
|
|
59
|
+
];
|
|
60
|
+
/**
|
|
61
|
+
* Refresh per-concern env files in `<projectDir>/.claude/.macf/`.
|
|
62
|
+
*
|
|
63
|
+
* Macf-managed files (env._helpers, env.identity, env.github,
|
|
64
|
+
* env.certs, env.registry):
|
|
65
|
+
* - Absent → write fresh from `generate()`.
|
|
66
|
+
* - Present + matches fresh output → silent no-op.
|
|
67
|
+
* - Present + drift → emit one-time warning to stderr (cites
|
|
68
|
+
* macf#342 + suggests env.local.* / settings.local.json for
|
|
69
|
+
* overrides) + overwrite with fresh output.
|
|
70
|
+
*
|
|
71
|
+
* Operator-managed files (env.telemetry, env.tmux):
|
|
72
|
+
* - Absent → bootstrap-write (one-time fresh write so the workspace
|
|
73
|
+
* starts with a sensible default — operator can edit thereafter).
|
|
74
|
+
* - Present → SILENT NO-OP. Operator's edits preserved unconditionally.
|
|
75
|
+
*
|
|
76
|
+
* **Why "drift = overwrite + warn" not "preserve + warn"**: the
|
|
77
|
+
* macf-managed files have a managed-file header reserving the right to
|
|
78
|
+
* regenerate them. If an operator hand-edits env.identity to change
|
|
79
|
+
* MACF_AGENT_NAME, the canonical place for that override is
|
|
80
|
+
* settings.local.json `env.MACF_AGENT_NAME` (read at runtime by
|
|
81
|
+
* `macf_settings_get`) — not the generated file. PR-C honors the
|
|
82
|
+
* managed-file contract; the warning gives operators time to move
|
|
83
|
+
* their edit.
|
|
84
|
+
*
|
|
85
|
+
* **Stderr write directly** (not via console.warn) so multiple warnings
|
|
86
|
+
* from one update run aren't intermingled with stdout summary logs.
|
|
87
|
+
* Uses `process.stderr.write` consistent with init.ts's existing
|
|
88
|
+
* stderr-diagnostic style.
|
|
89
|
+
*
|
|
90
|
+
* Creates `.claude/.macf/` if absent (mkdir -p). Returns the result
|
|
91
|
+
* record so the caller logs a summary; does not log itself (separation
|
|
92
|
+
* of concerns: this function decides + writes, caller decides how
|
|
93
|
+
* loudly to report).
|
|
94
|
+
*/
|
|
95
|
+
export function refreshEnvFiles(projectDir, config) {
|
|
96
|
+
const absDir = resolve(projectDir);
|
|
97
|
+
const envDir = join(absDir, '.claude', '.macf');
|
|
98
|
+
mkdirSync(envDir, { recursive: true });
|
|
99
|
+
const refreshed = [];
|
|
100
|
+
const preserved = [];
|
|
101
|
+
const bootstrapped = [];
|
|
102
|
+
const warnedHandEdits = [];
|
|
103
|
+
// Macf-managed files: overwrite + warn on hand-edit.
|
|
104
|
+
for (const { name, generate } of MANAGED_ENV_FILES) {
|
|
105
|
+
const path = join(envDir, name);
|
|
106
|
+
const fresh = generate(config);
|
|
107
|
+
if (!existsSync(path)) {
|
|
108
|
+
writeFileSync(path, fresh, { mode: 0o644 });
|
|
109
|
+
refreshed.push(name);
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const current = readFileSync(path, 'utf-8');
|
|
113
|
+
if (current === fresh) {
|
|
114
|
+
// Silent no-op — no on-disk change, no log.
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
// Drift detected. Warn once, then overwrite to honor the
|
|
118
|
+
// managed-file contract.
|
|
119
|
+
process.stderr.write(`Warning: hand-edited macf-managed env file detected: .claude/.macf/${name}\n` +
|
|
120
|
+
` Overwriting with the canonical generator output (macf#342).\n` +
|
|
121
|
+
` To customize identity / endpoints, prefer:\n` +
|
|
122
|
+
` - .claude/settings.local.json \`env\` block (read by macf_settings_get)\n` +
|
|
123
|
+
` - .claude/.macf/env.local.<name> (sources after canonical files)\n`);
|
|
124
|
+
writeFileSync(path, fresh, { mode: 0o644 });
|
|
125
|
+
refreshed.push(name);
|
|
126
|
+
warnedHandEdits.push(name);
|
|
127
|
+
}
|
|
128
|
+
// Operator-managed files: bootstrap-write if absent; preserve otherwise.
|
|
129
|
+
for (const { name, generate } of OPERATOR_ENV_FILES) {
|
|
130
|
+
const path = join(envDir, name);
|
|
131
|
+
if (existsSync(path)) {
|
|
132
|
+
preserved.push(name);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
writeFileSync(path, generate(config), { mode: 0o644 });
|
|
136
|
+
bootstrapped.push(name);
|
|
137
|
+
}
|
|
138
|
+
return { refreshed, preserved, bootstrapped, warnedHandEdits };
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Marker for the pre-#342 monolithic claude.sh template: it inlines
|
|
142
|
+
* `export MACF_AGENT_NAME=` directly. The post-#342 thin template
|
|
143
|
+
* sources env files instead — MACF_AGENT_NAME is exported from
|
|
144
|
+
* `.claude/.macf/env.identity`, NOT inline in claude.sh. The
|
|
145
|
+
* source-loop sentinel below is the post-#342 marker for the
|
|
146
|
+
* inverse check (defensive — if both are present the file is in
|
|
147
|
+
* an inconsistent state we shouldn't auto-migrate).
|
|
148
|
+
*/
|
|
149
|
+
const MONOLITHIC_CLAUDE_SH_MARKER = 'export MACF_AGENT_NAME=';
|
|
150
|
+
const THIN_CLAUDE_SH_MARKER = 'for f in "$SCRIPT_DIR/.claude/.macf"/env.*';
|
|
151
|
+
/**
|
|
152
|
+
* Detect whether `<projectDir>/claude.sh` is the pre-#342 monolithic
|
|
153
|
+
* template, and if so, migrate it in-place to the thin template +
|
|
154
|
+
* generate the per-concern env files.
|
|
155
|
+
*
|
|
156
|
+
* Detection rules:
|
|
157
|
+
* - No `claude.sh` at all → `{ migrated: false, reason: 'no-claude-sh' }`.
|
|
158
|
+
* (init hasn't run; nothing to migrate.)
|
|
159
|
+
* - `claude.sh` exists + has the source-loop marker (post-#342 thin)
|
|
160
|
+
* → `{ migrated: false, reason: 'already-migrated' }`.
|
|
161
|
+
* Silent no-op; downstream `refreshEnvFiles` still runs.
|
|
162
|
+
* - `claude.sh` exists + has the inline-MACF_AGENT_NAME marker (pre-#342
|
|
163
|
+
* monolithic) → migrate.
|
|
164
|
+
* - Anything else (operator-rewritten launcher, third-party edit) →
|
|
165
|
+
* `{ migrated: false, reason: 'unrecognized-template' }`. Conservative:
|
|
166
|
+
* don't auto-overwrite something we didn't author. Operator can
|
|
167
|
+
* run `macf init --force` to opt into the migration explicitly.
|
|
168
|
+
*
|
|
169
|
+
* Migration steps (when migrated=true):
|
|
170
|
+
* 1. `writeEnvFiles(projectDir, config)` — fresh per-concern env files
|
|
171
|
+
* from the config in `.macf/macf-agent.json`. The JSON is the
|
|
172
|
+
* source of truth post-migration; we do NOT extract values from
|
|
173
|
+
* the monolithic claude.sh (the JSON has them already, and parsing
|
|
174
|
+
* shell to recover values is fragile + unnecessary).
|
|
175
|
+
* 2. `writeClaudeSh(projectDir, config)` — overwrite with the thin
|
|
176
|
+
* template per PR-B. Thin template depends on env files written
|
|
177
|
+
* in step 1.
|
|
178
|
+
*
|
|
179
|
+
* **Migration is auto-detected, not opt-in.** Operators upgrading from
|
|
180
|
+
* a CLI carrying the monolithic template to one carrying this code
|
|
181
|
+
* get migrated transparently on first `macf update`. Opt-out is
|
|
182
|
+
* `--no-migrate-env-files` at the CLI layer (handled in update.ts).
|
|
183
|
+
*
|
|
184
|
+
* **Idempotent**: re-running on an already-migrated workspace returns
|
|
185
|
+
* `{ migrated: false, reason: 'already-migrated' }` without writing
|
|
186
|
+
* anything. Safe for repeated `macf update` calls.
|
|
187
|
+
*/
|
|
188
|
+
export function migrateMonolithicClaudeSh(projectDir, config) {
|
|
189
|
+
const absDir = resolve(projectDir);
|
|
190
|
+
const claudeShPath = join(absDir, 'claude.sh');
|
|
191
|
+
if (!existsSync(claudeShPath)) {
|
|
192
|
+
return { migrated: false, reason: 'no-claude-sh' };
|
|
193
|
+
}
|
|
194
|
+
const content = readFileSync(claudeShPath, 'utf-8');
|
|
195
|
+
// Post-#342 thin template marker present → already migrated.
|
|
196
|
+
if (content.includes(THIN_CLAUDE_SH_MARKER)) {
|
|
197
|
+
return { migrated: false, reason: 'already-migrated' };
|
|
198
|
+
}
|
|
199
|
+
// Pre-#342 monolithic marker absent → unrecognized template (operator
|
|
200
|
+
// hand-edit, third-party launcher). Don't auto-overwrite something we
|
|
201
|
+
// didn't author. Operator can run `macf init --force` to opt into it.
|
|
202
|
+
if (!content.includes(MONOLITHIC_CLAUDE_SH_MARKER)) {
|
|
203
|
+
return { migrated: false, reason: 'unrecognized-template' };
|
|
204
|
+
}
|
|
205
|
+
// Monolithic detected. Migrate.
|
|
206
|
+
writeEnvFiles(absDir, config);
|
|
207
|
+
writeClaudeSh(absDir, config);
|
|
208
|
+
return { migrated: true };
|
|
209
|
+
}
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
211
|
+
// detectSettingsLocalEnvKeys — Option α deprecation surface
|
|
212
|
+
// ---------------------------------------------------------------------------
|
|
213
|
+
/**
|
|
214
|
+
* Read `.claude/settings.local.json` and return the list of `env.*`
|
|
215
|
+
* keys whose names start with `MACF_` or `OTEL_`. These are the
|
|
216
|
+
* subset that the multi-file env layout (#342) is replacing —
|
|
217
|
+
* historically operators set them in the JSON env block as a
|
|
218
|
+
* settings-driven override; post-#342 the canonical location is per-
|
|
219
|
+
* concern env files (env.identity for MACF_AGENT_NAME, env.telemetry
|
|
220
|
+
* for OTEL_*, etc.) or the `env.local.*` operator override pattern.
|
|
221
|
+
*
|
|
222
|
+
* **Backward-compat preserved structurally**: `macf_settings_get` in
|
|
223
|
+
* env._helpers (PR-A / PR-B) still reads `env.MACF_*` and `env.OTEL_*`
|
|
224
|
+
* from settings.local.json at runtime. So existing operator overrides
|
|
225
|
+
* keep working — the deprecation warning is the SOFT signal giving
|
|
226
|
+
* operators a window to migrate. Hard removal would be a future PR
|
|
227
|
+
* (Option α §"clean break with deprecation shim" per #342 thread).
|
|
228
|
+
*
|
|
229
|
+
* **No automatic migration of JSON env keys** in this PR. The risk
|
|
230
|
+
* surface is too broad: operators may have intentional layered
|
|
231
|
+
* configurations where the JSON value differs from the file default
|
|
232
|
+
* (e.g., dev endpoint in JSON, prod default baked into file). Auto-
|
|
233
|
+
* moving the value loses that distinction. Manual migration after
|
|
234
|
+
* seeing the warning is the conservative choice; auto-migration can
|
|
235
|
+
* be a future enhancement once the patterns are well-understood.
|
|
236
|
+
*
|
|
237
|
+
* Returns a sorted, deduplicated list of keys (without the `env.`
|
|
238
|
+
* prefix — caller formats them). Empty when settings.local.json is
|
|
239
|
+
* absent / has no `env` block / has no matching keys / is malformed
|
|
240
|
+
* (silent on malformed: settings-writer.ts surfaces parse errors via
|
|
241
|
+
* its other code paths; we don't double-report).
|
|
242
|
+
*/
|
|
243
|
+
export function detectSettingsLocalEnvKeys(projectDir) {
|
|
244
|
+
const absDir = resolve(projectDir);
|
|
245
|
+
const path = join(absDir, '.claude', 'settings.local.json');
|
|
246
|
+
if (!existsSync(path))
|
|
247
|
+
return [];
|
|
248
|
+
let parsed;
|
|
249
|
+
try {
|
|
250
|
+
parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
// Don't double-report parse errors here; settings-writer.ts
|
|
254
|
+
// surfaces them via its own paths when it touches the file.
|
|
255
|
+
return [];
|
|
256
|
+
}
|
|
257
|
+
const envBlock = parsed['env'];
|
|
258
|
+
if (envBlock === null || typeof envBlock !== 'object')
|
|
259
|
+
return [];
|
|
260
|
+
const keys = Object.keys(envBlock).filter((k) => k.startsWith('MACF_') || k.startsWith('OTEL_'));
|
|
261
|
+
return Array.from(new Set(keys)).sort();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Format the per-key deprecation warning lines for stderr. Returned as
|
|
265
|
+
* a single multi-line string the caller can emit in one
|
|
266
|
+
* `process.stderr.write`. Empty string when `keys` is empty (caller
|
|
267
|
+
* doesn't have to special-case).
|
|
268
|
+
*/
|
|
269
|
+
export function formatDeprecationWarning(keys) {
|
|
270
|
+
if (keys.length === 0)
|
|
271
|
+
return '';
|
|
272
|
+
const lines = [
|
|
273
|
+
`Warning: deprecated env key(s) in .claude/settings.local.json (macf#342):`,
|
|
274
|
+
];
|
|
275
|
+
for (const k of keys) {
|
|
276
|
+
lines.push(` env.${k}`);
|
|
277
|
+
}
|
|
278
|
+
lines.push(` These are still read at runtime by macf_settings_get (backward-compat),`, ` but the canonical location is now .claude/.macf/env.* (or env.local.*`, ` for operator overrides). See macf#342.`, '');
|
|
279
|
+
return lines.join('\n');
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=env-files-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-files-update.js","sourceRoot":"","sources":["../../src/cli/env-files-update.ts"],"names":[],"mappings":"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"}
|