@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.
Files changed (40) hide show
  1. package/dist/.build-info.json +2 -2
  2. package/dist/cli/claude-sh.d.ts.map +1 -1
  3. package/dist/cli/claude-sh.js +139 -33
  4. package/dist/cli/claude-sh.js.map +1 -1
  5. package/dist/cli/commands/init.d.ts +36 -3
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +190 -10
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/cli/commands/migrate.d.ts +44 -0
  10. package/dist/cli/commands/migrate.d.ts.map +1 -0
  11. package/dist/cli/commands/migrate.js +119 -0
  12. package/dist/cli/commands/migrate.js.map +1 -0
  13. package/dist/cli/config.d.ts +10 -2
  14. package/dist/cli/config.d.ts.map +1 -1
  15. package/dist/cli/config.js +16 -1
  16. package/dist/cli/config.js.map +1 -1
  17. package/dist/cli/index.js +21 -5
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/registry-helper.d.ts.map +1 -1
  20. package/dist/cli/registry-helper.js +8 -0
  21. package/dist/cli/registry-helper.js.map +1 -1
  22. package/dist/plugin/bin/macf-plugin-cli.js +16 -24
  23. package/dist/plugin/bin/macf-plugin-cli.js.map +1 -1
  24. package/dist/plugin/lib/build-dashboard-health.d.ts +23 -0
  25. package/dist/plugin/lib/build-dashboard-health.d.ts.map +1 -0
  26. package/dist/plugin/lib/build-dashboard-health.js +23 -0
  27. package/dist/plugin/lib/build-dashboard-health.js.map +1 -0
  28. package/dist/plugin/lib/index.d.ts +3 -0
  29. package/dist/plugin/lib/index.d.ts.map +1 -1
  30. package/dist/plugin/lib/index.js +3 -0
  31. package/dist/plugin/lib/index.js.map +1 -1
  32. package/dist/plugin/lib/probe-peer-health.d.ts +20 -0
  33. package/dist/plugin/lib/probe-peer-health.d.ts.map +1 -0
  34. package/dist/plugin/lib/probe-peer-health.js +40 -0
  35. package/dist/plugin/lib/probe-peer-health.js.map +1 -0
  36. package/dist/plugin/lib/registry-config.d.ts +30 -0
  37. package/dist/plugin/lib/registry-config.d.ts.map +1 -0
  38. package/dist/plugin/lib/registry-config.js +52 -0
  39. package/dist/plugin/lib/registry-config.js.map +1 -0
  40. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "9de68a7ab7403b7d60d9a2c106768edf21365c8f",
3
- "built_at": "2026-05-01T14:46:30.110Z"
2
+ "commit": "c4e6da796b9a9e5b4b181fa8ad0972709486a240",
3
+ "built_at": "2026-05-01T18:05:12.117Z"
4
4
  }
@@ -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;AA8GnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CA+DV;AA4BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA+GhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAUnF"}
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"}
@@ -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
- `export APP_ID="${config.github_app.app_id}"`,
289
- `export INSTALL_ID="${config.github_app.install_id}"`,
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
- '# Bot token generation — fail loud. The helper validates the ghs_ prefix',
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
- readonly appId: string;
7
- readonly installId: string;
8
- readonly keyPath: string;
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":"AAqBA,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,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,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;;;;;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;AA4GD;;GAEG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKpF"}
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 { join, resolve } from 'node:path';
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
- github_app: {
150
- app_id: opts.appId,
151
- install_id: opts.installId,
152
- key_path: opts.keyPath,
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 if CA key is available locally (per-project)
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAClD,aAAa,EAAE,YAAY,EAC3B,UAAU,IAAI,aAAa,EAAE,SAAS,IAAI,YAAY,EACtD,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACrJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EACvD,iBAAiB,EAAE,aAAa,GACjC,MAAM,wBAAwB,CAAC;AAoChC;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,IAAiB;IAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,uDAAuD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC;IAC5E,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,UAAW;YACrB,MAAM,EAAE,IAAI,CAAC,aAAc;YAC3B,OAAO,EAAE,IAAI,CAAC,cAAe;SAC9B,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,qBAAqB,EAAE,CAAC;QACzC,uEAAuE;QACvE,uEAAuE;QACvE,4CAA4C;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC/E,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0EAA0E,CAC3E,CAAC;QACF,QAAQ,GAAG;YACT,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE;gBACP,GAAG,EAAE,eAAwB;gBAC7B,MAAM,EAAE,eAAwB;gBAChC,OAAO,EAAE,eAAwB;aAClC;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG;QAC7C,MAAM,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;QACtD,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,IAAiB;IACzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,OAAO,6BAA6B,CACtD,CAAC;IACJ,CAAC;IACD,qEAAqE;IACrE,mEAAmE;IACnE,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,IAAI,6BAA6B,CAChD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,IAAI,6BAA6B,CAChD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,CAAC,KAAK,oDAAoD,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,6DAA6D,CAC1F,CAAC;IACJ,CAAC;IACD,qEAAqE;IACrE,iEAAiE;IACjE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,CAAC,OAAO,6EAA6E,CACtG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,IAAiB;IACnE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAEzC,6BAA6B;IAC7B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,wBAAwB;IACxB,IAAI,QAAqC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IAE5C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACnF,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACzF,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;YACxD,MAAM;QACR,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACrG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,2BAA2B,CAAC,CAAC;YAC5E,CAAC;YACD,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAE7C,qBAAqB;IACrB,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,IAAI,CAAC,IAAI;QACrB,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAA2B;QAChE,QAAQ;QACR,UAAU,EAAE;YACV,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,QAAQ,EAAE,IAAI,CAAC,OAAO;SACvB;QACD,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,QAAQ;KACT,CAAC;IAEF,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,+BAA+B;IAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,2BAA2B;IAC3B,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,2BAA2B;IAC3B,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,oEAAoE;IACpE,4EAA4E;IAC5E,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,MAAM,2CAA2C,CAAC,CAAC;IAChG,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,+BAA+B;IAC/B,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,aAAa,CAAC,MAAM,uCAAuC,CAAC,CAAC;IAChG,CAAC;IAED,wDAAwD;IACxD,mEAAmE;IACnE,oEAAoE;IACpE,iEAAiE;IACjE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAE1E,2DAA2D;IAC3D,gEAAgE;IAChE,4DAA4D;IAC5D,gEAAgE;IAChE,kEAAkE;IAClE,gEAAgE;IAChE,2BAA2B;IAC3B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAEpE,mEAAmE;IACnE,iEAAiE;IACjE,iEAAiE;IACjE,gEAAgE;IAChE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,mEAAmE;IACnE,kEAAkE;IAClE,kEAAkE;IAClE,8CAA8C;IAC9C,uDAAuD;IACvD,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,oEAAoE;IACpE,gEAAgE;IAChE,mEAAmE;IACnE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,CAAC;QACH,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,iCAAiC,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IACzF,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACzC,MAAM,iBAAiB,CAAC;gBACtB,SAAS;gBACT,SAAS,EAAE,EAAE,CAAC,OAAO;gBACrB,QAAQ,EAAE,EAAE,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC;gBAC/B,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,oBAAoB,MAAM,oCAAoC,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,QAAQ,CAAC;IAEvB,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,cAAc,CAAC,aAAa,EAAE,wBAAwB,KAAK,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,aAAa,EAAE,sBAAsB,KAAK,IAAI,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YAClE,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,iDAAiD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,KAAK;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}