@groundnuty/macf 0.2.11 → 0.2.13
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.map +1 -1
- package/dist/cli/claude-sh.js +139 -33
- package/dist/cli/claude-sh.js.map +1 -1
- package/dist/cli/commands/init.d.ts +36 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +190 -10
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts +44 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +119 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/config.d.ts +10 -2
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +16 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +21 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/registry-helper.d.ts.map +1 -1
- package/dist/cli/registry-helper.js +8 -0
- package/dist/cli/registry-helper.js.map +1 -1
- package/dist/plugin/bin/macf-plugin-cli.js +16 -24
- package/dist/plugin/bin/macf-plugin-cli.js.map +1 -1
- package/dist/plugin/lib/build-dashboard-health.d.ts +23 -0
- package/dist/plugin/lib/build-dashboard-health.d.ts.map +1 -0
- package/dist/plugin/lib/build-dashboard-health.js +23 -0
- package/dist/plugin/lib/build-dashboard-health.js.map +1 -0
- package/dist/plugin/lib/index.d.ts +3 -0
- package/dist/plugin/lib/index.d.ts.map +1 -1
- package/dist/plugin/lib/index.js +3 -0
- package/dist/plugin/lib/index.js.map +1 -1
- package/dist/plugin/lib/probe-peer-health.d.ts +20 -0
- package/dist/plugin/lib/probe-peer-health.d.ts.map +1 -0
- package/dist/plugin/lib/probe-peer-health.js +40 -0
- package/dist/plugin/lib/probe-peer-health.js.map +1 -0
- package/dist/plugin/lib/registry-config.d.ts +30 -0
- package/dist/plugin/lib/registry-config.d.ts.map +1 -0
- package/dist/plugin/lib/registry-config.js +52 -0
- package/dist/plugin/lib/registry-config.js.map +1 -0
- package/package.json +2 -2
package/dist/.build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-sh.d.ts","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-sh.d.ts","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CA+DV;AAoJD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAiFhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAUnF"}
|
package/dist/cli/claude-sh.js
CHANGED
|
@@ -39,8 +39,27 @@ function registryEnvLines(cfg) {
|
|
|
39
39
|
`export MACF_REGISTRY_TYPE="profile"`,
|
|
40
40
|
`export MACF_REGISTRY_USER="${cfg.registry.user}"`,
|
|
41
41
|
];
|
|
42
|
+
case 'local':
|
|
43
|
+
// DR-024 / macf#322 PR-B: no-GitHub-mode launcher branch. The
|
|
44
|
+
// channel-server reads MACF_REGISTRY_PATH and dispatches through
|
|
45
|
+
// `createRegistryFromConfig` to LocalRegistryClient. No GitHub
|
|
46
|
+
// App, no token mint. The path was resolved at `macf init --local`
|
|
47
|
+
// time; quoting matches the existing shell-double-quoted template.
|
|
48
|
+
return [
|
|
49
|
+
`export MACF_REGISTRY_TYPE="local"`,
|
|
50
|
+
`export MACF_REGISTRY_PATH="${cfg.registry.path}"`,
|
|
51
|
+
];
|
|
42
52
|
}
|
|
43
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* True when this config runs in local-registry mode (DR-024). Used by
|
|
56
|
+
* the launcher template to short-circuit GitHub-coupled steps (token
|
|
57
|
+
* mint, App env exports, `gen_ai.agent.*` OTel attrs that key off the
|
|
58
|
+
* bot identity).
|
|
59
|
+
*/
|
|
60
|
+
function isLocalMode(cfg) {
|
|
61
|
+
return cfg.registry.type === 'local';
|
|
62
|
+
}
|
|
44
63
|
/**
|
|
45
64
|
* Emit the `macf_settings_get` shell function (macf#313).
|
|
46
65
|
*
|
|
@@ -244,6 +263,123 @@ const MANAGED_HEADER_LINES = [
|
|
|
244
263
|
'# groundnuty/macf:src/cli/claude-sh.ts. To change the launcher, file',
|
|
245
264
|
'# an issue or PR against that file, then run `macf update` here.',
|
|
246
265
|
];
|
|
266
|
+
/**
|
|
267
|
+
* Emit GitHub-App env exports (`APP_ID`, `INSTALL_ID`, `KEY_PATH` + the
|
|
268
|
+
* relative-path resolver) when running in a GitHub-backed registry mode.
|
|
269
|
+
*
|
|
270
|
+
* In local-registry mode (DR-024) the launcher does not mint a token —
|
|
271
|
+
* `github_app` is absent on the config, every export here would resolve
|
|
272
|
+
* to `undefined`, and the downstream token-mint block is skipped anyway
|
|
273
|
+
* (`githubTokenAndIdentityLines`). Returning `[]` keeps the launcher
|
|
274
|
+
* lean instead of emitting `export APP_ID=""` placeholders that imply
|
|
275
|
+
* "this is a misconfigured GitHub-mode agent."
|
|
276
|
+
*/
|
|
277
|
+
function githubAppEnvLines(cfg) {
|
|
278
|
+
if (isLocalMode(cfg) || !cfg.github_app)
|
|
279
|
+
return [];
|
|
280
|
+
return [
|
|
281
|
+
`export APP_ID="${cfg.github_app.app_id}"`,
|
|
282
|
+
`export INSTALL_ID="${cfg.github_app.install_id}"`,
|
|
283
|
+
`export KEY_PATH="${cfg.github_app.key_path}"`,
|
|
284
|
+
// Resolve KEY_PATH against $SCRIPT_DIR if it's relative. Absolute
|
|
285
|
+
// paths (e.g., operators who stored the key under /etc or /opt)
|
|
286
|
+
// pass through unchanged. Previously KEY_PATH stayed relative and
|
|
287
|
+
// broke the moment the agent cd'd to another repo — attribution
|
|
288
|
+
// trap fires on the next `gh` call. See #140 + coordination.md
|
|
289
|
+
// Token & Git Hygiene (cross-repo cwd trap note).
|
|
290
|
+
'case "$KEY_PATH" in',
|
|
291
|
+
' /*) ;; # already absolute',
|
|
292
|
+
' *) KEY_PATH="$SCRIPT_DIR/$KEY_PATH" ;;',
|
|
293
|
+
'esac',
|
|
294
|
+
'export KEY_PATH',
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Emit per-project CA + agent cert path exports.
|
|
299
|
+
*
|
|
300
|
+
* In local-registry mode (DR-024) the CA lives next to the registry
|
|
301
|
+
* file (`~/.macf/registry/<project>.ca.{crt,key}`) — set at
|
|
302
|
+
* `macf init --local` time. In GitHub mode it lives under
|
|
303
|
+
* `~/.macf/certs/<project>/`. Both modes need MACF_CA_CERT /
|
|
304
|
+
* MACF_CA_KEY exported so the channel-server can load the CA for
|
|
305
|
+
* mTLS (and the GitHub-mode `/sign` endpoint, which doesn't fire in
|
|
306
|
+
* local mode).
|
|
307
|
+
*/
|
|
308
|
+
function caPathLines(cfg) {
|
|
309
|
+
if (isLocalMode(cfg)) {
|
|
310
|
+
// Pre-resolve the local-registry directory at template time so the
|
|
311
|
+
// launcher doesn't need to expand `~` or recompute the path. Tilde
|
|
312
|
+
// is already resolved in cfg.registry.path (init.ts uses os.homedir()).
|
|
313
|
+
const registryDir = posixDirname(cfg.registry.type === 'local' ? cfg.registry.path : '');
|
|
314
|
+
return [
|
|
315
|
+
`export MACF_CA_CERT="${registryDir}/${cfg.project}.ca.crt"`,
|
|
316
|
+
`export MACF_CA_KEY="${registryDir}/${cfg.project}.ca.key"`,
|
|
317
|
+
];
|
|
318
|
+
}
|
|
319
|
+
return [
|
|
320
|
+
`export MACF_CA_CERT="$HOME/.macf/certs/${cfg.project}/ca-cert.pem"`,
|
|
321
|
+
`export MACF_CA_KEY="$HOME/.macf/certs/${cfg.project}/ca-key.pem"`,
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Compute POSIX-style dirname without pulling in node:path at template
|
|
326
|
+
* generation time. The local-mode CA paths derive from the registry
|
|
327
|
+
* file path (e.g. `/home/u/.macf/registry/project.json` →
|
|
328
|
+
* `/home/u/.macf/registry`); using `path.dirname` is overkill and
|
|
329
|
+
* couples the template to the host's OS path semantics. The launcher
|
|
330
|
+
* always runs on POSIX-shaped filesystems (see DR-024 §threat model).
|
|
331
|
+
*/
|
|
332
|
+
function posixDirname(p) {
|
|
333
|
+
const idx = p.lastIndexOf('/');
|
|
334
|
+
if (idx < 0)
|
|
335
|
+
return '.';
|
|
336
|
+
if (idx === 0)
|
|
337
|
+
return '/';
|
|
338
|
+
return p.slice(0, idx);
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Emit the GitHub bot-token mint block + `GIT_AUTHOR_NAME` / `GIT_COMMITTER_NAME`
|
|
342
|
+
* exports. Both depend on the bot's GitHub identity — neither makes
|
|
343
|
+
* sense in local-registry mode (DR-024 §"Routing trade-offs":
|
|
344
|
+
* commits land as the local user, not as `app/<bot>[bot]`).
|
|
345
|
+
*
|
|
346
|
+
* Local-mode launcher emits a synthetic identity comment block instead,
|
|
347
|
+
* so anyone reading the script sees the explicit "no GitHub here"
|
|
348
|
+
* trade-off rather than a missing-export silence.
|
|
349
|
+
*/
|
|
350
|
+
function githubTokenAndIdentityLines(cfg) {
|
|
351
|
+
if (isLocalMode(cfg)) {
|
|
352
|
+
return [
|
|
353
|
+
'# DR-024 / macf#322: local-registry mode. No GitHub App token is',
|
|
354
|
+
'# minted (no APP_ID / INSTALL_ID / KEY_PATH); commits land as the',
|
|
355
|
+
'# local user, not as `app/<bot>[bot]`. Coordination uses the local',
|
|
356
|
+
'# registry file at $MACF_REGISTRY_PATH; agents reach each other via',
|
|
357
|
+
'# direct mTLS POST /notify. See DR-024 §"Routing trade-offs".',
|
|
358
|
+
'',
|
|
359
|
+
`echo "Starting ${cfg.agent_name} (${cfg.agent_role}) [local-registry mode]..."`,
|
|
360
|
+
'',
|
|
361
|
+
];
|
|
362
|
+
}
|
|
363
|
+
return [
|
|
364
|
+
'# Bot token generation — fail loud. The helper validates the ghs_ prefix',
|
|
365
|
+
'# and surfaces diagnostics (clock drift, bad key, wrong App/install ID).',
|
|
366
|
+
'# Do NOT inline the bare CLI here — without pipefail, a failed fetch piped',
|
|
367
|
+
'# through jq would succeed, GH_TOKEN would become "null", and Claude Code',
|
|
368
|
+
'# would silently fall back to stored `gh auth login` as the user. See the',
|
|
369
|
+
'# attribution-trap section of coordination.md Token & Git Hygiene.',
|
|
370
|
+
'GH_TOKEN=$("$SCRIPT_DIR/.claude/scripts/macf-gh-token.sh" \\',
|
|
371
|
+
' --app-id "$APP_ID" --install-id "$INSTALL_ID" --key "$KEY_PATH") || {',
|
|
372
|
+
' echo "FATAL: bot token generation failed — see stderr above." >&2',
|
|
373
|
+
' exit 1',
|
|
374
|
+
'}',
|
|
375
|
+
'export GH_TOKEN',
|
|
376
|
+
'',
|
|
377
|
+
`export GIT_AUTHOR_NAME="${cfg.agent_name}[bot]"`,
|
|
378
|
+
`export GIT_COMMITTER_NAME="${cfg.agent_name}[bot]"`,
|
|
379
|
+
'',
|
|
380
|
+
`echo "Starting ${cfg.agent_name} (${cfg.agent_role})..."`,
|
|
381
|
+
];
|
|
382
|
+
}
|
|
247
383
|
/**
|
|
248
384
|
* Build the full `claude.sh` content for a given agent config. Pure
|
|
249
385
|
* function — no I/O. Used by both `macf init` (first write) and
|
|
@@ -285,22 +421,8 @@ export function generateClaudeSh(config) {
|
|
|
285
421
|
'export MACF_AGENT_ROLE',
|
|
286
422
|
...tmuxSelfWrapLines(),
|
|
287
423
|
'',
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
`export KEY_PATH="${config.github_app.key_path}"`,
|
|
291
|
-
// Resolve KEY_PATH against $SCRIPT_DIR if it's relative. Absolute
|
|
292
|
-
// paths (e.g., operators who stored the key under /etc or /opt)
|
|
293
|
-
// pass through unchanged. Previously KEY_PATH stayed relative and
|
|
294
|
-
// broke the moment the agent cd'd to another repo — attribution
|
|
295
|
-
// trap fires on the next `gh` call. See #140 + coordination.md
|
|
296
|
-
// Token & Git Hygiene (cross-repo cwd trap note).
|
|
297
|
-
'case "$KEY_PATH" in',
|
|
298
|
-
' /*) ;; # already absolute',
|
|
299
|
-
' *) KEY_PATH="$SCRIPT_DIR/$KEY_PATH" ;;',
|
|
300
|
-
'esac',
|
|
301
|
-
'export KEY_PATH',
|
|
302
|
-
`export MACF_CA_CERT="$HOME/.macf/certs/${config.project}/ca-cert.pem"`,
|
|
303
|
-
`export MACF_CA_KEY="$HOME/.macf/certs/${config.project}/ca-key.pem"`,
|
|
424
|
+
...githubAppEnvLines(config),
|
|
425
|
+
...caPathLines(config),
|
|
304
426
|
'export MACF_AGENT_CERT="$SCRIPT_DIR/.macf/certs/agent-cert.pem"',
|
|
305
427
|
'export MACF_AGENT_KEY="$SCRIPT_DIR/.macf/certs/agent-key.pem"',
|
|
306
428
|
'export MACF_LOG_PATH="$SCRIPT_DIR/.macf/logs/channel.log"',
|
|
@@ -325,23 +447,7 @@ export function generateClaudeSh(config) {
|
|
|
325
447
|
...registryEnvLines(config),
|
|
326
448
|
...otelTelemetryLines(config),
|
|
327
449
|
'',
|
|
328
|
-
|
|
329
|
-
'# and surfaces diagnostics (clock drift, bad key, wrong App/install ID).',
|
|
330
|
-
'# Do NOT inline the bare CLI here — without pipefail, a failed fetch piped',
|
|
331
|
-
'# through jq would succeed, GH_TOKEN would become "null", and Claude Code',
|
|
332
|
-
'# would silently fall back to stored `gh auth login` as the user. See the',
|
|
333
|
-
'# attribution-trap section of coordination.md Token & Git Hygiene.',
|
|
334
|
-
'GH_TOKEN=$("$SCRIPT_DIR/.claude/scripts/macf-gh-token.sh" \\',
|
|
335
|
-
' --app-id "$APP_ID" --install-id "$INSTALL_ID" --key "$KEY_PATH") || {',
|
|
336
|
-
' echo "FATAL: bot token generation failed — see stderr above." >&2',
|
|
337
|
-
' exit 1',
|
|
338
|
-
'}',
|
|
339
|
-
'export GH_TOKEN',
|
|
340
|
-
'',
|
|
341
|
-
`export GIT_AUTHOR_NAME="${config.agent_name}[bot]"`,
|
|
342
|
-
`export GIT_COMMITTER_NAME="${config.agent_name}[bot]"`,
|
|
343
|
-
'',
|
|
344
|
-
`echo "Starting ${config.agent_name} (${config.agent_role})..."`,
|
|
450
|
+
...githubTokenAndIdentityLines(config),
|
|
345
451
|
// --plugin-dir loads the pinned macf-agent plugin from this workspace
|
|
346
452
|
// (per DR-013). Additive — user-scope plugins still load alongside.
|
|
347
453
|
// `-c` (for permanent agents) reattaches to the prior Claude Code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-sh.js","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claude-sh.js","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,36 @@ export interface InitOptions {
|
|
|
3
3
|
readonly role: string;
|
|
4
4
|
readonly name?: string;
|
|
5
5
|
readonly type?: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
/**
|
|
7
|
+
* GitHub App credentials. Required for `repo` / `org` / `profile`
|
|
8
|
+
* registries; not used in `local` registry mode (DR-024 / macf#322).
|
|
9
|
+
* Marked optional so `--local` callers don't have to fabricate
|
|
10
|
+
* placeholder values.
|
|
11
|
+
*/
|
|
12
|
+
readonly appId?: string;
|
|
13
|
+
readonly installId?: string;
|
|
14
|
+
readonly keyPath?: string;
|
|
9
15
|
readonly registryType?: string;
|
|
10
16
|
readonly registryOrg?: string;
|
|
11
17
|
readonly registryUser?: string;
|
|
12
18
|
readonly registryRepo?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Absolute path to the local-registry JSON file. Only honored when
|
|
21
|
+
* `registryType === 'local'`. Defaults to
|
|
22
|
+
* `~/.macf/registry/<project>.json` when unset; the operator can
|
|
23
|
+
* override for non-default placement (separate disk, encrypted home,
|
|
24
|
+
* etc.). DR-024 §"Default `path`".
|
|
25
|
+
*/
|
|
26
|
+
readonly registryPath?: string;
|
|
27
|
+
/**
|
|
28
|
+
* One-shot migration source: read agent records from this local-registry
|
|
29
|
+
* JSON file and write each into the new GitHub-backed registry. Only
|
|
30
|
+
* honored when `registryType` is `repo`/`org`/`profile`. Rejected
|
|
31
|
+
* combined with `--local` — local→local migration is a no-op (the
|
|
32
|
+
* operator can copy/rename the file directly). DR-024 §"Migration
|
|
33
|
+
* path — local → GitHub mode".
|
|
34
|
+
*/
|
|
35
|
+
readonly migrateFrom?: string;
|
|
13
36
|
/**
|
|
14
37
|
* Host the channel server advertises to the registry + includes in
|
|
15
38
|
* its mTLS cert SAN. When unset, launcher falls back to 127.0.0.1
|
|
@@ -30,6 +53,16 @@ export interface InitOptions {
|
|
|
30
53
|
readonly pluginVersion?: string;
|
|
31
54
|
readonly actionsVersion?: string;
|
|
32
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Default local-registry file path per DR-024:
|
|
58
|
+
* `~/.macf/registry/<project>.json` (operator-overridable via `--path`).
|
|
59
|
+
*
|
|
60
|
+
* Resolves `~` at init time so the on-disk config + claude.sh both carry
|
|
61
|
+
* absolute paths — the launcher can't re-expand `~` after the operator
|
|
62
|
+
* cd's into another repo (cross-repo cwd trap, see coordination.md
|
|
63
|
+
* Token & Git Hygiene §1).
|
|
64
|
+
*/
|
|
65
|
+
export declare function defaultLocalRegistryPath(project: string): string;
|
|
33
66
|
/**
|
|
34
67
|
* Set up a project directory for an agent.
|
|
35
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmJD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AA8BD;;GAEG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2NpF"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
|
-
import { mkdirSync, writeFileSync, readFileSync, existsSync, appendFileSync } from 'node:fs';
|
|
3
|
-
import {
|
|
2
|
+
import { mkdirSync, writeFileSync, readFileSync, existsSync, appendFileSync, chmodSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
4
5
|
import { projectMacfDir, writeAgentConfig, addToAgentsIndex, agentCertPath, agentKeyPath, caCertPath as caCertPathFor, caKeyPath as caKeyPathFor, isValidProjectName, } from '../config.js';
|
|
5
|
-
import { loadCA } from '@groundnuty/macf-core';
|
|
6
|
+
import { createCA, loadCA } from '@groundnuty/macf-core';
|
|
6
7
|
import { generateAgentCert } from '@groundnuty/macf-core';
|
|
7
8
|
import { copyCanonicalRules, copyCanonicalScripts } from '../rules.js';
|
|
8
9
|
import { installGhTokenHook, installPluginSkillPermissions, installSandboxFdAllowRead, installSandboxExcludedCommands } from '../settings-writer.js';
|
|
9
10
|
import { fetchPluginToWorkspace } from '../plugin-fetcher.js';
|
|
10
11
|
import { writeClaudeSh } from '../claude-sh.js';
|
|
11
12
|
import { resolveLatestVersions, isValidSemver, isValidActionsRef, FALLBACK_VERSIONS, statusMessage, } from '../version-resolver.js';
|
|
13
|
+
import { migrateLocalToGitHub } from './migrate.js';
|
|
12
14
|
/**
|
|
13
15
|
* Resolve version pins: explicit flags > network-fetched latest > hardcoded fallback.
|
|
14
16
|
* Validates any explicit flag against format pattern.
|
|
@@ -70,6 +72,11 @@ async function resolveVersions(opts) {
|
|
|
70
72
|
* etc.). Reject inputs containing characters that would break quoting
|
|
71
73
|
* or trigger shell expansion. Runs before any workspace state is
|
|
72
74
|
* written so bad inputs fail early, not after partial init. (#105)
|
|
75
|
+
*
|
|
76
|
+
* For `--local` (DR-024 / macf#322) the App-cred checks are skipped —
|
|
77
|
+
* the launcher does not export APP_ID / INSTALL_ID / KEY_PATH in local
|
|
78
|
+
* mode, so the values are unused. The project / role / name allowlist
|
|
79
|
+
* still applies.
|
|
73
80
|
*/
|
|
74
81
|
function validateInitOpts(opts) {
|
|
75
82
|
if (!isValidProjectName(opts.project)) {
|
|
@@ -85,6 +92,34 @@ function validateInitOpts(opts) {
|
|
|
85
92
|
if (opts.name !== undefined && !isValidProjectName(opts.name)) {
|
|
86
93
|
throw new Error(`name "${opts.name}" must match [a-zA-Z0-9_-]+`);
|
|
87
94
|
}
|
|
95
|
+
if (opts.registryType === 'local') {
|
|
96
|
+
// Local mode: App-cred fields are not used. Validate `registryPath`
|
|
97
|
+
// if set (must be absolute, no shell-special chars — it ends up in
|
|
98
|
+
// claude.sh's MACF_REGISTRY_PATH export and DR-024 specifies
|
|
99
|
+
// absolute paths).
|
|
100
|
+
if (opts.registryPath !== undefined) {
|
|
101
|
+
if (!isAbsolute(opts.registryPath)) {
|
|
102
|
+
throw new Error(`--path "${opts.registryPath}" must be an absolute path (DR-024 §File format)`);
|
|
103
|
+
}
|
|
104
|
+
if (/["$`\\\n\r]/.test(opts.registryPath)) {
|
|
105
|
+
throw new Error(`--path "${opts.registryPath}" contains a shell-unsafe character (", $, backtick, backslash, or newline)`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
// GitHub-mode App credentials are required + must be safely-shaped
|
|
111
|
+
// for shell-double-quoted template embedding. Error messages name
|
|
112
|
+
// the field literally so the existing test-suite regex matches
|
|
113
|
+
// (init.test.ts line 184: empty appId → /appId/).
|
|
114
|
+
if (opts.appId === undefined || opts.appId === '') {
|
|
115
|
+
throw new Error('appId is required (--app-id; omit only when using --local)');
|
|
116
|
+
}
|
|
117
|
+
if (opts.installId === undefined || opts.installId === '') {
|
|
118
|
+
throw new Error('installId is required (--install-id; omit only when using --local)');
|
|
119
|
+
}
|
|
120
|
+
if (opts.keyPath === undefined || opts.keyPath === '') {
|
|
121
|
+
throw new Error('keyPath is required (--key-path; omit only when using --local)');
|
|
122
|
+
}
|
|
88
123
|
if (!/^\d+$/.test(opts.appId)) {
|
|
89
124
|
throw new Error(`appId "${opts.appId}" must be numeric (GitHub App IDs are digits only)`);
|
|
90
125
|
}
|
|
@@ -97,6 +132,43 @@ function validateInitOpts(opts) {
|
|
|
97
132
|
throw new Error(`keyPath "${opts.keyPath}" contains a shell-unsafe character (", $, backtick, backslash, or newline)`);
|
|
98
133
|
}
|
|
99
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Default local-registry file path per DR-024:
|
|
137
|
+
* `~/.macf/registry/<project>.json` (operator-overridable via `--path`).
|
|
138
|
+
*
|
|
139
|
+
* Resolves `~` at init time so the on-disk config + claude.sh both carry
|
|
140
|
+
* absolute paths — the launcher can't re-expand `~` after the operator
|
|
141
|
+
* cd's into another repo (cross-repo cwd trap, see coordination.md
|
|
142
|
+
* Token & Git Hygiene §1).
|
|
143
|
+
*/
|
|
144
|
+
export function defaultLocalRegistryPath(project) {
|
|
145
|
+
return join(homedir(), '.macf', 'registry', `${project}.json`);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Local-registry directory perms enforcement per DR-024 §"Filesystem-permission
|
|
149
|
+
* discipline": parent dir is `0700`, CA-key is `0600`. Creates the dir
|
|
150
|
+
* if absent (with `0700` from the start so umask can't widen it). Idempotent —
|
|
151
|
+
* the second agent in the same project finds the dir + chmods it again.
|
|
152
|
+
*/
|
|
153
|
+
function ensureLocalRegistryDir(registryPath) {
|
|
154
|
+
const dir = dirname(registryPath);
|
|
155
|
+
if (!existsSync(dir)) {
|
|
156
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
157
|
+
}
|
|
158
|
+
// mkdir's mode is ANDed with umask, so chmod after to guarantee 0700
|
|
159
|
+
// regardless of umask. Same pattern as macf-core's CA dir creation.
|
|
160
|
+
chmodSync(dir, 0o700);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Local-mode CA file paths (DR-024 §"Cert flow"): co-located with the
|
|
164
|
+
* registry file at `<dir>/<project>.ca.{crt,key}`.
|
|
165
|
+
*/
|
|
166
|
+
function localCaCertPath(registryPath, project) {
|
|
167
|
+
return join(dirname(registryPath), `${project}.ca.crt`);
|
|
168
|
+
}
|
|
169
|
+
function localCaKeyPath(registryPath, project) {
|
|
170
|
+
return join(dirname(registryPath), `${project}.ca.key`);
|
|
171
|
+
}
|
|
100
172
|
/**
|
|
101
173
|
* Set up a project directory for an agent.
|
|
102
174
|
*/
|
|
@@ -112,6 +184,14 @@ export async function initAgent(projectDir, opts) {
|
|
|
112
184
|
// Build registry config
|
|
113
185
|
let registry;
|
|
114
186
|
const regType = opts.registryType ?? 'repo';
|
|
187
|
+
// DR-024 §"Migration path": `--migrate-from local-to-local` is a no-op
|
|
188
|
+
// (rename/copy the file directly). Reject loud rather than silently
|
|
189
|
+
// ignore; the operator-error case where someone is targeting `--local`
|
|
190
|
+
// and reaching for migration tooling deserves a clear message.
|
|
191
|
+
if (regType === 'local' && opts.migrateFrom !== undefined) {
|
|
192
|
+
throw new Error('--migrate-from cannot be combined with --local; migration only ' +
|
|
193
|
+
'applies when moving INTO a GitHub-backed registry (DR-024 §Migration path).');
|
|
194
|
+
}
|
|
115
195
|
switch (regType) {
|
|
116
196
|
case 'org':
|
|
117
197
|
if (!opts.registryOrg)
|
|
@@ -134,23 +214,39 @@ export async function initAgent(projectDir, opts) {
|
|
|
134
214
|
registry = { type: 'repo', owner: parts[0], repo: parts[1] };
|
|
135
215
|
break;
|
|
136
216
|
}
|
|
217
|
+
case 'local': {
|
|
218
|
+
const path = opts.registryPath ?? defaultLocalRegistryPath(opts.project);
|
|
219
|
+
if (!isAbsolute(path)) {
|
|
220
|
+
// Defense in depth — `validateInitOpts` already caught this case
|
|
221
|
+
// for explicit --path. The default path is always absolute.
|
|
222
|
+
throw new Error(`local registry path must be absolute (got "${path}")`);
|
|
223
|
+
}
|
|
224
|
+
registry = { type: 'local', path };
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
137
227
|
default:
|
|
138
228
|
throw new Error(`Unknown registry type: "${regType}"`);
|
|
139
229
|
}
|
|
140
230
|
// Resolve version pins (explicit flags > network-fetched latest > fallback)
|
|
141
231
|
const versions = await resolveVersions(opts);
|
|
142
|
-
// Write agent config
|
|
232
|
+
// Write agent config. `github_app` is omitted in local-registry mode
|
|
233
|
+
// (DR-024) — the launcher does not mint a token, and the schema marks
|
|
234
|
+
// the field optional to encode that conditional shape.
|
|
143
235
|
const config = {
|
|
144
236
|
project: opts.project,
|
|
145
237
|
agent_name: agentName,
|
|
146
238
|
agent_role: opts.role,
|
|
147
239
|
agent_type: (opts.type ?? 'permanent'),
|
|
148
240
|
registry,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
241
|
+
...(regType === 'local'
|
|
242
|
+
? {}
|
|
243
|
+
: {
|
|
244
|
+
github_app: {
|
|
245
|
+
app_id: opts.appId,
|
|
246
|
+
install_id: opts.installId,
|
|
247
|
+
key_path: opts.keyPath,
|
|
248
|
+
},
|
|
249
|
+
}),
|
|
154
250
|
...(opts.advertiseHost !== undefined ? { advertise_host: opts.advertiseHost } : {}),
|
|
155
251
|
...(opts.tmuxSession !== undefined ? { tmux_session: opts.tmuxSession } : {}),
|
|
156
252
|
...(opts.tmuxWindow !== undefined ? { tmux_window: opts.tmuxWindow } : {}),
|
|
@@ -218,7 +314,20 @@ export async function initAgent(projectDir, opts) {
|
|
|
218
314
|
console.warn(` Warning: plugin fetch failed: ${msg}`);
|
|
219
315
|
console.warn(` You can retry later with \`macf update\` once the issue is resolved.`);
|
|
220
316
|
}
|
|
221
|
-
// Generate agent cert
|
|
317
|
+
// Generate agent cert. Local-registry mode (DR-024) auto-generates a
|
|
318
|
+
// CA on first invocation; subsequent agents in the same project read
|
|
319
|
+
// the existing CA. GitHub mode reads the per-project CA generated by
|
|
320
|
+
// `macf certs init`.
|
|
321
|
+
if (regType === 'local' && registry.type === 'local') {
|
|
322
|
+
await initLocalModeCertsAndRegistry(absDir, registry.path, opts, agentName);
|
|
323
|
+
console.log(`Agent "${agentName}" initialized in ${absDir} (local-registry mode)`);
|
|
324
|
+
console.log(` Config: ${join(macfDir, 'macf-agent.json')}`);
|
|
325
|
+
console.log(` Cert: ${agentCertPath(absDir)}`);
|
|
326
|
+
console.log(` Launcher: ${claudeShPath}`);
|
|
327
|
+
console.log(` Registry: ${registry.path}`);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
// GitHub-mode cert flow (unchanged).
|
|
222
331
|
const caCertFile = caCertPathFor(opts.project);
|
|
223
332
|
const caKeyFile = caKeyPathFor(opts.project);
|
|
224
333
|
if (existsSync(caCertFile) && existsSync(caKeyFile)) {
|
|
@@ -250,6 +359,77 @@ export async function initAgent(projectDir, opts) {
|
|
|
250
359
|
console.log(` macf certs init (if first agent — creates CA)`);
|
|
251
360
|
console.log(` macf certs rotate (if CA already exists)`);
|
|
252
361
|
}
|
|
362
|
+
// GitHub-mode migration: read agent records from a local-registry
|
|
363
|
+
// JSON file and write each into the new GitHub-backed registry.
|
|
364
|
+
// Runs AFTER agent cert is in place so the new agent can authenticate
|
|
365
|
+
// immediately. Failure is non-fatal — operator can re-run `migrateFrom`
|
|
366
|
+
// on a working install (init bootstrapping their own agent must
|
|
367
|
+
// succeed regardless). DR-024 §"Migration path".
|
|
368
|
+
if (opts.migrateFrom !== undefined) {
|
|
369
|
+
try {
|
|
370
|
+
await migrateLocalToGitHub(absDir, opts.migrateFrom, registry, opts.project);
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
374
|
+
console.warn(` Warning: migration from "${opts.migrateFrom}" failed: ${msg}`);
|
|
375
|
+
console.warn(` Re-run with \`macf init --migrate-from <path>\` after fixing the source.`);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Local-registry mode (DR-024) cert + registry-dir bootstrap. Idempotent —
|
|
381
|
+
* a second agent in the same project finds the existing CA and signs
|
|
382
|
+
* its cert against it; no re-initialization or re-prompting.
|
|
383
|
+
*
|
|
384
|
+
* The CA lives next to the registry file at
|
|
385
|
+
* `<registry-dir>/<project>.ca.{crt,key}` per DR-024 §"Cert flow":
|
|
386
|
+
* the operator's filesystem ownership of the registry directory IS the
|
|
387
|
+
* trust proof. No `/sign` round-trip; no GitHub-mediated identity.
|
|
388
|
+
*/
|
|
389
|
+
async function initLocalModeCertsAndRegistry(workspaceDir, registryPath, opts, agentName) {
|
|
390
|
+
ensureLocalRegistryDir(registryPath);
|
|
391
|
+
const caCertFile = localCaCertPath(registryPath, opts.project);
|
|
392
|
+
const caKeyFile = localCaKeyPath(registryPath, opts.project);
|
|
393
|
+
let caCertPem;
|
|
394
|
+
let caKeyPem;
|
|
395
|
+
if (existsSync(caCertFile) && existsSync(caKeyFile)) {
|
|
396
|
+
// Second-or-later agent in this project — read the shared CA. The
|
|
397
|
+
// diagnostic is on stderr (matches CA-key-fallback diagnostics in
|
|
398
|
+
// macf-core/config.ts) so operators see which path was taken
|
|
399
|
+
// without parsing structured output.
|
|
400
|
+
process.stderr.write(` Local registry: reusing existing CA at ${caCertFile}\n`);
|
|
401
|
+
const ca = loadCA(caCertFile, caKeyFile);
|
|
402
|
+
caCertPem = ca.certPem;
|
|
403
|
+
caKeyPem = ca.keyPem;
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
// First agent in this project — generate CA. Skip `client` (no
|
|
407
|
+
// GitHub variables backend in local mode); CA cert lives only on
|
|
408
|
+
// disk. DR-024 §"Cert flow" first-agent flow.
|
|
409
|
+
process.stderr.write(` Local registry: generating new CA at ${caCertFile}\n`);
|
|
410
|
+
const created = await createCA({
|
|
411
|
+
project: opts.project,
|
|
412
|
+
certPath: caCertFile,
|
|
413
|
+
keyPath: caKeyFile,
|
|
414
|
+
});
|
|
415
|
+
caCertPem = created.certPem;
|
|
416
|
+
caKeyPem = created.keyPem;
|
|
417
|
+
}
|
|
418
|
+
// Lock down the CA-key file mode regardless of which path was taken.
|
|
419
|
+
// `createCA` already writes 0600 but a second-agent path through
|
|
420
|
+
// `loadCA` doesn't re-chmod; chmoding here is idempotent + cheap.
|
|
421
|
+
if (process.platform !== 'win32') {
|
|
422
|
+
chmodSync(caKeyFile, 0o600);
|
|
423
|
+
}
|
|
424
|
+
// Generate this agent's cert against the (new or existing) CA.
|
|
425
|
+
await generateAgentCert({
|
|
426
|
+
agentName,
|
|
427
|
+
caCertPem,
|
|
428
|
+
caKeyPem,
|
|
429
|
+
...(opts.advertiseHost !== undefined ? { advertiseHost: opts.advertiseHost } : {}),
|
|
430
|
+
certPath: agentCertPath(workspaceDir),
|
|
431
|
+
keyPath: agentKeyPath(workspaceDir),
|
|
432
|
+
});
|
|
253
433
|
}
|
|
254
434
|
function updateGitignore(projectDir) {
|
|
255
435
|
const gitignorePath = join(projectDir, '.gitignore');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|