youmd 0.8.11 → 0.8.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 (116) hide show
  1. package/dist/commands/add.js +1 -1
  2. package/dist/commands/add.js.map +1 -1
  3. package/dist/commands/build.js +2 -2
  4. package/dist/commands/build.js.map +1 -1
  5. package/dist/commands/chat.js +1 -1
  6. package/dist/commands/chat.js.map +1 -1
  7. package/dist/commands/env.d.ts.map +1 -1
  8. package/dist/commands/env.js +11 -10
  9. package/dist/commands/env.js.map +1 -1
  10. package/dist/commands/init.js +5 -5
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/keys.js +8 -1
  13. package/dist/commands/keys.js.map +1 -1
  14. package/dist/commands/login.js +2 -2
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/machine.d.ts.map +1 -1
  17. package/dist/commands/machine.js +193 -13
  18. package/dist/commands/machine.js.map +1 -1
  19. package/dist/commands/mcp.js +4 -4
  20. package/dist/commands/mcp.js.map +1 -1
  21. package/dist/commands/private.js +2 -2
  22. package/dist/commands/private.js.map +1 -1
  23. package/dist/commands/publish.js +1 -1
  24. package/dist/commands/publish.js.map +1 -1
  25. package/dist/commands/pull.js +1 -1
  26. package/dist/commands/pull.js.map +1 -1
  27. package/dist/commands/push.js +1 -1
  28. package/dist/commands/push.js.map +1 -1
  29. package/dist/commands/skill.d.ts +1 -1
  30. package/dist/commands/skill.d.ts.map +1 -1
  31. package/dist/commands/skill.js +72 -53
  32. package/dist/commands/skill.js.map +1 -1
  33. package/dist/commands/stack.d.ts.map +1 -1
  34. package/dist/commands/stack.js +30 -25
  35. package/dist/commands/stack.js.map +1 -1
  36. package/dist/commands/status.js +1 -1
  37. package/dist/commands/status.js.map +1 -1
  38. package/dist/commands/sync.js +2 -2
  39. package/dist/commands/sync.js.map +1 -1
  40. package/dist/commands/whoami.js +3 -3
  41. package/dist/commands/whoami.js.map +1 -1
  42. package/dist/create.js +0 -0
  43. package/dist/index.js +30 -28
  44. package/dist/index.js.map +1 -1
  45. package/dist/lib/api.d.ts +11 -0
  46. package/dist/lib/api.d.ts.map +1 -1
  47. package/dist/lib/api.js +3 -2
  48. package/dist/lib/api.js.map +1 -1
  49. package/dist/lib/config.d.ts +20 -12
  50. package/dist/lib/config.d.ts.map +1 -1
  51. package/dist/lib/config.js +113 -42
  52. package/dist/lib/config.js.map +1 -1
  53. package/dist/lib/daemon.d.ts +2 -0
  54. package/dist/lib/daemon.d.ts.map +1 -1
  55. package/dist/lib/daemon.js +28 -19
  56. package/dist/lib/daemon.js.map +1 -1
  57. package/dist/lib/machine-bootstrap-prompt.d.ts.map +1 -1
  58. package/dist/lib/machine-bootstrap-prompt.js +135 -128
  59. package/dist/lib/machine-bootstrap-prompt.js.map +1 -1
  60. package/dist/lib/machine-verify.d.ts +24 -0
  61. package/dist/lib/machine-verify.d.ts.map +1 -1
  62. package/dist/lib/machine-verify.js +41 -3
  63. package/dist/lib/machine-verify.js.map +1 -1
  64. package/dist/lib/onboarding.d.ts.map +1 -1
  65. package/dist/lib/onboarding.js +3 -8
  66. package/dist/lib/onboarding.js.map +1 -1
  67. package/dist/lib/portfolio-audit.d.ts.map +1 -1
  68. package/dist/lib/portfolio-audit.js +2 -1
  69. package/dist/lib/portfolio-audit.js.map +1 -1
  70. package/dist/lib/project.d.ts +3 -3
  71. package/dist/lib/project.d.ts.map +1 -1
  72. package/dist/lib/project.js +18 -11
  73. package/dist/lib/project.js.map +1 -1
  74. package/dist/lib/projectContext.d.ts +10 -9
  75. package/dist/lib/projectContext.d.ts.map +1 -1
  76. package/dist/lib/projectContext.js +29 -23
  77. package/dist/lib/projectContext.js.map +1 -1
  78. package/dist/lib/realtime-sync.d.ts +1 -1
  79. package/dist/lib/realtime-sync.d.ts.map +1 -1
  80. package/dist/lib/realtime-sync.js +9 -8
  81. package/dist/lib/realtime-sync.js.map +1 -1
  82. package/dist/lib/render.js +1 -1
  83. package/dist/lib/render.js.map +1 -1
  84. package/dist/lib/skill-catalog.d.ts +26 -0
  85. package/dist/lib/skill-catalog.d.ts.map +1 -1
  86. package/dist/lib/skill-catalog.js +100 -0
  87. package/dist/lib/skill-catalog.js.map +1 -1
  88. package/dist/lib/vault.d.ts +3 -3
  89. package/dist/lib/vault.d.ts.map +1 -1
  90. package/dist/lib/vault.js +10 -8
  91. package/dist/lib/vault.js.map +1 -1
  92. package/dist/lib/youstack.js +12 -12
  93. package/dist/lib/youstack.js.map +1 -1
  94. package/dist/mcp/registry.d.ts.map +1 -1
  95. package/dist/mcp/registry.js +74 -13
  96. package/dist/mcp/registry.js.map +1 -1
  97. package/dist/mcp/server.d.ts.map +1 -1
  98. package/dist/mcp/server.js +135 -7
  99. package/dist/mcp/server.js.map +1 -1
  100. package/dist/postinstall.js +3 -2
  101. package/dist/postinstall.js.map +1 -1
  102. package/dist/you.js +0 -0
  103. package/package.json +1 -1
  104. package/scripts/local-agent-stack-inventory.mjs +59 -21
  105. package/scripts/skillstack-sync/README.md +25 -25
  106. package/scripts/skillstack-sync/bootstrap-new-mac.sh +1 -1
  107. package/scripts/skillstack-sync/capture-agent-config.sh +8 -1
  108. package/scripts/skillstack-sync/{com.youmd.context-sync.plist → com.you.context-sync.plist} +3 -3
  109. package/scripts/skillstack-sync/{com.youmd.identity-sync.plist → com.you.identity-sync.plist} +3 -3
  110. package/scripts/skillstack-sync/{com.youmd.realtime-sync.plist → com.you.realtime-sync.plist} +3 -3
  111. package/scripts/skillstack-sync/{com.youmd.skillstack-sync.plist → com.you.skillstack-sync.plist} +3 -3
  112. package/scripts/skillstack-sync/context-sync.sh +1 -1
  113. package/scripts/skillstack-sync/install-daemons.sh +20 -6
  114. package/scripts/skillstack-sync/restore-agent-config.sh +1 -1
  115. package/scripts/skillstack-sync/sync.sh +1 -1
  116. package/skills/machine-bootstrap.md +57 -55
@@ -83,13 +83,13 @@ function portableHomePath(value) {
83
83
  }
84
84
  function buildFreshMachineBootstrapScript() {
85
85
  return `set -euo pipefail
86
- export PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
87
- ROOT="\${YOUMD_CODE_ROOT:-$HOME/Desktop/CODE_YOU}"
88
- DAYS="\${YOUMD_ACTIVE_DAYS:-30}"
89
- EXPAND_DAYS="\${YOUMD_EXPAND_ACTIVE_DAYS:-90}"
90
- LIMIT="\${YOUMD_PROJECT_LIMIT:-80}"
91
- HYDRATE_TIMEOUT="\${YOUMD_PORTFOLIO_HYDRATE_TIMEOUT_SECONDS:-180}"
92
- MIN_YOUMD_VERSION="\${YOUMD_MIN_VERSION:-0.8.11}"
86
+ export PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
87
+ ROOT="\${YOU_CODE_ROOT:-\${YOUMD_CODE_ROOT:-$HOME/Desktop/CODE_YOU}}"
88
+ DAYS="\${YOU_ACTIVE_DAYS:-\${YOUMD_ACTIVE_DAYS:-30}}"
89
+ EXPAND_DAYS="\${YOU_EXPAND_ACTIVE_DAYS:-\${YOUMD_EXPAND_ACTIVE_DAYS:-90}}"
90
+ LIMIT="\${YOU_PROJECT_LIMIT:-\${YOUMD_PROJECT_LIMIT:-80}}"
91
+ HYDRATE_TIMEOUT="\${YOU_PORTFOLIO_HYDRATE_TIMEOUT_SECONDS:-\${YOUMD_PORTFOLIO_HYDRATE_TIMEOUT_SECONDS:-180}}"
92
+ MIN_YOUMD_VERSION="\${YOU_MIN_VERSION:-\${YOUMD_MIN_VERSION:-0.8.12}}"
93
93
  mkdir -p "$ROOT"
94
94
 
95
95
  command_exists() { command -v "$1" >/dev/null 2>&1; }
@@ -115,18 +115,18 @@ version_at_least() {
115
115
  }
116
116
  ensure_youmd_min_version() {
117
117
  local installed
118
- installed="$(youmd --version 2>/dev/null | tr -d '[:space:]' || true)"
118
+ installed="$(you --version 2>/dev/null | tr -d '[:space:]' || true)"
119
119
  echo "[you.md] installed version: \${installed:-unknown}"
120
120
  if [ -n "$installed" ] && version_at_least "$installed" "$MIN_YOUMD_VERSION"; then
121
121
  return 0
122
122
  fi
123
- echo "[you.md] installed youmd is older than required \${MIN_YOUMD_VERSION}; forcing GitHub source install"
124
- curl -fsSL https://you.md/install.sh | YOUMD_INSTALL_CHANNEL=source YOUMD_SOURCE_REF=main bash
125
- export PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
126
- installed="$(youmd --version 2>/dev/null | tr -d '[:space:]' || true)"
123
+ echo "[you.md] installed you is older than required \${MIN_YOUMD_VERSION}; forcing GitHub source install"
124
+ curl -fsSL https://you.md/install.sh | YOU_INSTALL_CHANNEL=source YOU_SOURCE_REF=main bash
125
+ export PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
126
+ installed="$(you --version 2>/dev/null | tr -d '[:space:]' || true)"
127
127
  echo "[you.md] installed version after forced source install: \${installed:-unknown}"
128
128
  if [ -z "$installed" ] || ! version_at_least "$installed" "$MIN_YOUMD_VERSION"; then
129
- echo "[you.md] youmd \${MIN_YOUMD_VERSION}+ is required for Secret Vault, agent bus, agent stack inventory, and fresh-machine restore. npm latest may still be behind; rerun after this commit is deployed or install from GitHub main." >&2
129
+ echo "[you.md] you \${MIN_YOUMD_VERSION}+ is required for Secret Vault, agent bus, agent stack inventory, and fresh-machine restore. npm latest may still be behind; rerun after this commit is deployed or install from GitHub main." >&2
130
130
  exit 1
131
131
  fi
132
132
  }
@@ -150,14 +150,14 @@ run_with_timeout() {
150
150
  fi
151
151
  }
152
152
  run_agent_stack_inventory() {
153
- INVENTORY_DIR="\${YOUMD_AGENT_STACK_INVENTORY_DIR:-$HOME/.youmd/agent-stack-inventory}"
153
+ INVENTORY_DIR="\${YOU_AGENT_STACK_INVENTORY_DIR:-\${YOUMD_AGENT_STACK_INVENTORY_DIR:-$HOME/.you/agent-stack-inventory}}"
154
154
  mkdir -p "$INVENTORY_DIR"
155
155
  echo "[you.md] running local/global agent stack inventory into $INVENTORY_DIR"
156
- if youmd skill inventory --out-dir "$INVENTORY_DIR" --sync; then
157
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) generated agent stack inventory at $INVENTORY_DIR" || true
156
+ if you skill inventory --out-dir "$INVENTORY_DIR" --register-catalog --sync; then
157
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) generated agent stack inventory at $INVENTORY_DIR" || true
158
158
  else
159
- echo "[you.md] agent stack inventory did not complete; continuing setup so sync can self-heal, then rerun: youmd skill inventory --out-dir $INVENTORY_DIR --sync"
160
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) could not complete agent stack inventory yet; rerun after shared skill sync" || true
159
+ echo "[you.md] agent stack inventory did not complete; continuing setup so sync can self-heal, then rerun: you skill inventory --out-dir $INVENTORY_DIR --register-catalog --sync"
160
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) could not complete agent stack inventory yet; rerun after shared skill sync" || true
161
161
  fi
162
162
  }
163
163
 
@@ -169,7 +169,7 @@ bootstrap_prereqs() {
169
169
  fi
170
170
  if [ -x /opt/homebrew/bin/brew ]; then eval "$(/opt/homebrew/bin/brew shellenv)" || true; fi
171
171
  if [ -x /usr/local/bin/brew ]; then eval "$(/usr/local/bin/brew shellenv)" || true; fi
172
- export PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
172
+ export PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
173
173
 
174
174
  if command_exists brew; then
175
175
  MAJOR="$(node_major)"
@@ -183,7 +183,7 @@ bootstrap_prereqs() {
183
183
  command_exists bun || brew install bun || brew install oven-sh/bun/bun || true
184
184
  fi
185
185
 
186
- export PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
186
+ export PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
187
187
  command_exists corepack && corepack enable || true
188
188
  if command_exists corepack && ! command_exists pnpm; then
189
189
  corepack prepare pnpm@latest --activate || true
@@ -224,131 +224,137 @@ ensure_github_auth() {
224
224
  bootstrap_prereqs
225
225
 
226
226
  echo "[you.md] installing runtime from GitHub main"
227
- curl -fsSL https://you.md/install.sh | YOUMD_INSTALL_CHANNEL=source YOUMD_SOURCE_REF=main bash
228
- export PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
229
- if ! command_exists youmd; then
230
- echo "[you.md] youmd was installed but is not on PATH. Try a new Terminal, then rerun this command." >&2
227
+ curl -fsSL https://you.md/install.sh | YOU_INSTALL_CHANNEL=source YOU_SOURCE_REF=main bash
228
+ export PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
229
+ if ! command_exists you; then
230
+ echo "[you.md] you was installed but is not on PATH. Try a new Terminal, then rerun this command." >&2
231
231
  exit 1
232
232
  fi
233
233
  ensure_youmd_min_version
234
+ echo "[you.md] proving canonical ~/.you home migration"
235
+ you machine migrate-home --yes || true
234
236
 
235
- if [ -n "\${YOUMD_API_KEY:-}" ]; then
237
+ YOU_BOOTSTRAP_API_KEY="\${YOU_API_KEY:-\${YOUMD_API_KEY:-}}"
238
+ if [ -n "$YOU_BOOTSTRAP_API_KEY" ]; then
236
239
  echo "[you.md] logging in with bootstrap key"
237
- youmd login --key "$YOUMD_API_KEY"
240
+ you login --key "$YOU_BOOTSTRAP_API_KEY"
238
241
  else
239
- echo "[you.md] no YOUMD_API_KEY set; starting interactive login"
240
- youmd login
242
+ echo "[you.md] no YOU_API_KEY set; starting interactive login"
243
+ you login
241
244
  fi
242
245
 
243
246
  echo "[you.md] pulling identity bundle and syncing local brain"
244
- youmd pull
245
- youmd sync
246
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) authenticated, pulled identity, and started setup" || true
247
+ you pull
248
+ you sync
249
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) authenticated, pulled identity, and started setup" || true
247
250
 
248
251
  echo "[you.md] installing resident realtime/identity/skillstack/project-context daemons early"
249
- youmd stack daemon install || true
250
- youmd stack daemon status || true
251
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) installed resident realtime/skillstack daemons" || true
252
+ you stack daemon install || true
253
+ you stack daemon status || true
254
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) installed resident realtime/skillstack daemons" || true
252
255
 
253
256
  GITHUB_READY=0
254
257
  if ensure_github_auth; then
255
258
  GITHUB_READY=1
256
- elif [ "\${YOUMD_REQUIRE_GITHUB_AUTH:-1}" = "1" ]; then
259
+ elif [ "\${YOU_REQUIRE_GITHUB_AUTH:-\${YOUMD_REQUIRE_GITHUB_AUTH:-1}}" = "1" ]; then
257
260
  echo "[you.md] stopping after You.md identity/daemon setup because GitHub auth is required for private repos." >&2
258
261
  exit 2
259
262
  fi
260
263
 
261
264
  echo "[you.md] restoring shared skills, stacks, and agent host config"
262
- youmd machine setup || echo "[you.md] machine setup reported a warning; continuing to skills/MCP so the next run can self-heal"
263
- youmd skill install all || true
264
- youmd skill sync || true
265
- youmd mcp --install claude --auto || true
266
- youmd mcp --install codex --auto || true
267
- youmd skill link claude || true
268
- youmd skill link codex || true
265
+ you machine setup || echo "[you.md] machine setup reported a warning; continuing to skills/MCP so the next run can self-heal"
266
+ you skill install all || true
267
+ you skill sync || true
268
+ you mcp --install claude --auto || true
269
+ you mcp --install codex --auto || true
270
+ you skill link claude || true
271
+ you skill link codex || true
269
272
  run_agent_stack_inventory
270
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored shared skills/stacks and MCP config" || true
273
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored shared skills/stacks and MCP config" || true
271
274
 
272
275
  if [ "$GITHUB_READY" != "1" ]; then
273
276
  echo "[you.md] GitHub auth is still missing; project clone pass skipped. Rerun after gh auth login."
274
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) stopped: GitHub auth required before private project clone" || true
277
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) stopped: GitHub auth required before private project clone" || true
275
278
  exit 2
276
279
  fi
277
280
 
278
281
  RECENT_ONLY_ARGS=()
279
- if youmd machine --help 2>/dev/null | grep -q -- "--recent-only"; then
282
+ if you machine --help 2>/dev/null | grep -q -- "--recent-only"; then
280
283
  RECENT_ONLY_ARGS=(--recent-only)
281
284
  else
282
285
  echo "[you.md] installed CLI does not expose --recent-only yet; using noninteractive no-to-older-projects fallback"
283
286
  fi
284
287
  run_machine_projects_recent_only() {
285
288
  if [ "\${#RECENT_ONLY_ARGS[@]}" -gt 0 ]; then
286
- youmd machine projects "$@"
289
+ you machine projects "$@"
287
290
  else
288
- youmd machine projects "$@" </dev/null
291
+ you machine projects "$@" </dev/null
289
292
  fi
290
293
  }
291
294
 
292
295
  echo "[you.md] hydrating portfolio graph from You.md/GitHub before the 30-day local clone pass"
293
- run_with_timeout "$HYDRATE_TIMEOUT" youmd project portfolio-hydrate --root "$ROOT" --days "$DAYS" --limit "$LIMIT" || true
296
+ run_with_timeout "$HYDRATE_TIMEOUT" you project portfolio-hydrate --root "$ROOT" --days "$DAYS" --limit "$LIMIT" || true
294
297
  PROJECT_ARGS=(--root "$ROOT" --days "$DAYS" "\${RECENT_ONLY_ARGS[@]}")
295
- if [ -n "\${YOUMD_MAX_CLONE_PROJECTS:-}" ]; then
296
- PROJECT_ARGS+=(--max-clone-projects "$YOUMD_MAX_CLONE_PROJECTS")
298
+ MAX_CLONE_PROJECTS="\${YOU_MAX_CLONE_PROJECTS:-\${YOUMD_MAX_CLONE_PROJECTS:-}}"
299
+ if [ -n "$MAX_CLONE_PROJECTS" ]; then
300
+ PROJECT_ARGS+=(--max-clone-projects "$MAX_CLONE_PROJECTS")
297
301
  fi
298
302
  echo "[you.md] previewing graph-backed 30-day project setup plan (ACTIVE + Top Priority/Focusing only)"
299
303
  run_machine_projects_recent_only "\${PROJECT_ARGS[@]}" --dry-run || true
300
304
  echo "[you.md] creating code workspace and cloning ACTIVE + Top Priority/Focusing 30-day project repos"
301
305
  run_machine_projects_recent_only "\${PROJECT_ARGS[@]}"
302
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) finished 30-day active/focused project clone pass into $ROOT" || true
306
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) finished 30-day active/focused project clone pass into $ROOT" || true
303
307
 
304
308
  echo "[you.md] checking encrypted env-vault tooling without printing secrets"
305
- youmd env backup --root "$ROOT" --preflight || true
309
+ you env backup --root "$ROOT" --preflight || true
306
310
  SECRET_VAULT_RESTORED=0
307
- ALLOW_LOCAL_ENV_VAULT_FALLBACK="\${YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK:-0}"
308
- if [ -z "\${YOUMD_ENV_VAULT:-}" ] && [ "\${YOUMD_SECRET_VAULT_PULL:-1}" = "1" ]; then
309
- SECRET_VAULT_DIR="\${YOUMD_SECRET_VAULT_DIR:-$HOME/.youmd/secret-vault}"
311
+ ENV_VAULT_PATH="\${YOU_ENV_VAULT:-\${YOUMD_ENV_VAULT:-}}"
312
+ ALLOW_LOCAL_ENV_VAULT_FALLBACK="\${YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK:-\${YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK:-0}}"
313
+ if [ -z "$ENV_VAULT_PATH" ] && [ "\${YOU_SECRET_VAULT_PULL:-\${YOUMD_SECRET_VAULT_PULL:-1}}" = "1" ]; then
314
+ SECRET_VAULT_DIR="\${YOU_SECRET_VAULT_DIR:-\${YOUMD_SECRET_VAULT_DIR:-$HOME/.you/secret-vault}}"
310
315
  echo "[you.md] registering this Mac as a trusted Secret Vault device"
311
- youmd env vault device-register || true
316
+ you env vault device-register || true
312
317
  echo "[you.md] checking You.md Secret Vault for the latest encrypted env vault and trusted-device envelope"
313
- if youmd env vault pull --out "$SECRET_VAULT_DIR" --restore --root "$ROOT" --map-existing --existing-only --skip-agent-auth; then
318
+ if you env vault pull --out "$SECRET_VAULT_DIR" --restore --root "$ROOT" --map-existing --existing-only --skip-agent-auth; then
314
319
  SECRET_VAULT_RESTORED=1
315
320
  echo "[you.md] restored env vault through trusted-device Secret Vault"
316
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored encrypted env vault through trusted-device Secret Vault" || true
321
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored encrypted env vault through trusted-device Secret Vault" || true
317
322
  else
318
323
  echo "[you.md] account-backed Secret Vault restore is waiting for a trusted-device share"
319
- echo "[you.md] source Mac action: youmd env vault share"
320
- echo "[you.md] new Mac retry: youmd env vault pull --restore --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
321
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) registered Secret Vault device and is waiting for source Mac trusted-device share" || true
324
+ echo "[you.md] source Mac action: you env vault share"
325
+ echo "[you.md] new Mac retry: you env vault pull --restore --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
326
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) registered Secret Vault device and is waiting for source Mac trusted-device share" || true
322
327
  fi
323
328
  fi
324
- if [ "$SECRET_VAULT_RESTORED" != "1" ] && [ -z "\${YOUMD_ENV_VAULT:-}" ]; then
329
+ if [ "$SECRET_VAULT_RESTORED" != "1" ] && [ -z "$ENV_VAULT_PATH" ]; then
325
330
  if [ "$ALLOW_LOCAL_ENV_VAULT_FALLBACK" = "1" ]; then
326
331
  echo "[you.md] opt-in local/iCloud passphrase vault fallback enabled"
327
332
  for DEFAULT_ENV_VAULT_DIR in "$HOME/Desktop/youmd-env-vault" "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Desktop/youmd-env-vault" "$HOME/Library/Mobile Documents/com~apple~CloudDocs/youmd-env-vault"; do
328
333
  if [ -d "$DEFAULT_ENV_VAULT_DIR" ]; then
329
334
  DETECTED_ENV_VAULT="$(find "$DEFAULT_ENV_VAULT_DIR" -maxdepth 1 -type f \\( -name "env-vault-*.tar.enc" -o -name "env-vault-*.tar.age" -o -name "env-vault-*.tar.gpg" \\) -print 2>/dev/null | sort | tail -n 1 || true)"
330
335
  if [ -n "$DETECTED_ENV_VAULT" ]; then
331
- export YOUMD_ENV_VAULT="$DETECTED_ENV_VAULT"
332
- echo "[you.md] using detected env vault: $YOUMD_ENV_VAULT"
336
+ ENV_VAULT_PATH="$DETECTED_ENV_VAULT"
337
+ export YOU_ENV_VAULT="$ENV_VAULT_PATH"
338
+ echo "[you.md] using detected env vault: $ENV_VAULT_PATH"
333
339
  break
334
340
  fi
335
341
  fi
336
342
  done
337
343
  else
338
344
  echo "[you.md] local/iCloud passphrase vault fallback disabled by default"
339
- echo "[you.md] set YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1 or YOUMD_ENV_VAULT=/path/to/env-vault only if you intentionally want the older passphrase flow"
345
+ echo "[you.md] set YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1 or YOU_ENV_VAULT=/path/to/env-vault only if you intentionally want the older passphrase flow"
340
346
  fi
341
347
  fi
342
348
  if [ "$SECRET_VAULT_RESTORED" = "1" ]; then
343
349
  :
344
- elif [ -n "\${YOUMD_ENV_VAULT:-}" ]; then
350
+ elif [ -n "$ENV_VAULT_PATH" ]; then
345
351
  echo "[you.md] using explicit/opt-in local encrypted vault fallback"
346
- if [ ! -f "$YOUMD_ENV_VAULT" ]; then
347
- echo "[you.md] env vault path does not exist: $YOUMD_ENV_VAULT" >&2
352
+ if [ ! -f "$ENV_VAULT_PATH" ]; then
353
+ echo "[you.md] env vault path does not exist: $ENV_VAULT_PATH" >&2
348
354
  exit 1
349
355
  fi
350
356
  if [ -z "\${ENV_VAULT_PASS:-}" ] && command_exists security; then
351
- KEYCHAIN_SERVICE="\${YOUMD_ENV_VAULT_KEYCHAIN_SERVICE:-youmd-env-vault}"
357
+ KEYCHAIN_SERVICE="\${YOU_ENV_VAULT_KEYCHAIN_SERVICE:-\${YOUMD_ENV_VAULT_KEYCHAIN_SERVICE:-you-env-vault}}"
352
358
  if ENV_VAULT_PASS_FROM_KEYCHAIN="$(security find-generic-password -a "\${USER:-\${LOGNAME:-houston}}" -s "$KEYCHAIN_SERVICE" -w 2>/dev/null)"; then
353
359
  export ENV_VAULT_PASS="$ENV_VAULT_PASS_FROM_KEYCHAIN"
354
360
  unset ENV_VAULT_PASS_FROM_KEYCHAIN
@@ -358,112 +364,112 @@ elif [ -n "\${YOUMD_ENV_VAULT:-}" ]; then
358
364
  fi
359
365
  fi
360
366
  echo "[you.md] listing encrypted .env.local vault before restore"
361
- youmd env restore "$YOUMD_ENV_VAULT" --root "$ROOT" --list --map-existing --existing-only --skip-agent-auth
367
+ you env restore "$ENV_VAULT_PATH" --root "$ROOT" --list --map-existing --existing-only --skip-agent-auth
362
368
  echo "[you.md] restoring encrypted .env.local vault into existing cloned project dirs"
363
- youmd env restore "$YOUMD_ENV_VAULT" --root "$ROOT" --map-existing --existing-only --skip-agent-auth
364
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored encrypted env vault into existing project dirs" || true
369
+ you env restore "$ENV_VAULT_PATH" --root "$ROOT" --map-existing --existing-only --skip-agent-auth
370
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) restored encrypted env vault into existing project dirs" || true
365
371
  else
366
372
  echo "[you.md] env vault not restored yet"
367
373
  echo "[you.md] On the old/source Mac, create the encrypted vault first:"
368
- echo "youmd env vault push --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault"
374
+ echo "you env vault push --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault"
369
375
  echo "[you.md] Then share local decrypt access to registered trusted Macs:"
370
- echo "youmd env vault share"
376
+ echo "you env vault share"
371
377
  echo "[you.md] Then retry on this Mac:"
372
- echo "youmd env vault pull --restore --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
378
+ echo "you env vault pull --restore --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
373
379
  echo "[you.md] This strict fresh-machine flow intentionally does not ask for a local vault passphrase on the new Mac by default."
374
380
  echo "[you.md] Optional fallback: create a transferable local copy without account sync:"
375
- echo "youmd env backup --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault"
381
+ echo "you env backup --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault"
376
382
  echo "[you.md] Local/iCloud auto-detect is opt-in only. Rerun with:"
377
- echo "YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1 YOUMD_REQUIRE_ENV_VAULT=1 <same command>"
383
+ echo "YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1 YOU_REQUIRE_ENV_VAULT=1 <same command>"
378
384
  echo "[you.md] Move the generated env-vault-*.tar.enc file to this Mac, then rerun this command with:"
379
- echo "YOUMD_ENV_VAULT=/path/to/env-vault-YYYYMMDDTHHMMZ.tar.enc YOUMD_REQUIRE_ENV_VAULT=1 <same command>"
385
+ echo "YOU_ENV_VAULT=/path/to/env-vault-YYYYMMDDTHHMMZ.tar.enc YOU_REQUIRE_ENV_VAULT=1 <same command>"
380
386
  echo "[you.md] Or restore manually after clone:"
381
- echo "youmd env restore <vault> --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
382
- if [ "\${YOUMD_REQUIRE_ENV_VAULT:-}" = "1" ]; then
387
+ echo "you env restore <vault> --root \\"$ROOT\\" --map-existing --existing-only --skip-agent-auth"
388
+ if [ "\${YOU_REQUIRE_ENV_VAULT:-\${YOUMD_REQUIRE_ENV_VAULT:-}}" = "1" ]; then
383
389
  echo "[you.md] strict proof is waiting for trusted-device Secret Vault share or an explicitly provided local vault; stopping before readiness is marked complete" >&2
384
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) stopped: waiting for trusted-device Secret Vault share or explicit local vault fallback" || true
390
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) stopped: waiting for trusted-device Secret Vault share or explicit local vault fallback" || true
385
391
  exit 1
386
392
  fi
387
393
  fi
388
394
  echo "[you.md] reconciling identity/skills after env-vault and source-Mac updates"
389
- youmd pull || true
390
- youmd sync || true
391
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) reconciled You.md bundle after env-vault handling" || true
395
+ you pull || true
396
+ you sync || true
397
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) reconciled You.md bundle after env-vault handling" || true
392
398
  echo "[you.md] rehydrating portfolio graph with local README/project-context/env-key evidence"
393
- run_with_timeout "$HYDRATE_TIMEOUT" youmd project portfolio-hydrate --root "$ROOT" --days "$DAYS" --limit "$LIMIT" || true
399
+ run_with_timeout "$HYDRATE_TIMEOUT" you project portfolio-hydrate --root "$ROOT" --days "$DAYS" --limit "$LIMIT" || true
394
400
  echo "[you.md] auditing cloned project readiness"
395
- youmd machine verify --root "$ROOT" --max-projects "$LIMIT" --write-report --sync-report || true
396
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) synced machine readiness proof for $ROOT" || true
401
+ you machine verify --root "$ROOT" --max-projects "$LIMIT" --write-report --sync-report || true
402
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) synced machine readiness proof for $ROOT" || true
397
403
  FULL_PROJECT_SET_COMPLETE=0
398
- EXPAND_TO_90="\${YOUMD_EXPAND_TO_90_DAYS:-}"
399
- if [ -z "$EXPAND_TO_90" ] && [ "\${YOUMD_SKIP_90_DAY_EXPANSION_PROMPT:-}" != "1" ] && [ -t 0 ]; then
404
+ EXPAND_TO_90="\${YOU_EXPAND_TO_90_DAYS:-\${YOUMD_EXPAND_TO_90_DAYS:-}}"
405
+ if [ -z "$EXPAND_TO_90" ] && [ "\${YOU_SKIP_90_DAY_EXPANSION_PROMPT:-\${YOUMD_SKIP_90_DAY_EXPANSION_PROMPT:-}}" != "1" ] && [ -t 0 ]; then
400
406
  printf "\\n[you.md] expand to all active projects from the last \${EXPAND_DAYS} days before calling setup complete? [y/N] "
401
407
  read -r EXPAND_TO_90
402
408
  fi
403
409
  case "$EXPAND_TO_90" in
404
410
  y|Y|yes|YES|1|true|TRUE)
405
411
  echo "[you.md] expanding workspace to active \${EXPAND_DAYS}-day project set"
406
- run_with_timeout "$HYDRATE_TIMEOUT" youmd project portfolio-hydrate --root "$ROOT" --days "$EXPAND_DAYS" --limit "$LIMIT" || true
412
+ run_with_timeout "$HYDRATE_TIMEOUT" you project portfolio-hydrate --root "$ROOT" --days "$EXPAND_DAYS" --limit "$LIMIT" || true
407
413
  EXPAND_PROJECT_ARGS=(--root "$ROOT" --days "$EXPAND_DAYS" "\${RECENT_ONLY_ARGS[@]}")
408
- if [ -n "\${YOUMD_MAX_CLONE_PROJECTS:-}" ]; then
409
- EXPAND_PROJECT_ARGS+=(--max-clone-projects "$YOUMD_MAX_CLONE_PROJECTS")
414
+ if [ -n "$MAX_CLONE_PROJECTS" ]; then
415
+ EXPAND_PROJECT_ARGS+=(--max-clone-projects "$MAX_CLONE_PROJECTS")
410
416
  fi
411
417
  run_machine_projects_recent_only "\${EXPAND_PROJECT_ARGS[@]}" --dry-run || true
412
418
  run_machine_projects_recent_only "\${EXPAND_PROJECT_ARGS[@]}"
413
- run_with_timeout "$HYDRATE_TIMEOUT" youmd project portfolio-hydrate --root "$ROOT" --days "$EXPAND_DAYS" --limit "$LIMIT" || true
414
- youmd machine verify --root "$ROOT" --max-projects "$LIMIT" --write-report --sync-report || true
415
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) expanded to active/focused \${EXPAND_DAYS}-day project set and synced proof" || true
419
+ run_with_timeout "$HYDRATE_TIMEOUT" you project portfolio-hydrate --root "$ROOT" --days "$EXPAND_DAYS" --limit "$LIMIT" || true
420
+ you machine verify --root "$ROOT" --max-projects "$LIMIT" --write-report --sync-report || true
421
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) expanded to active/focused \${EXPAND_DAYS}-day project set and synced proof" || true
416
422
  FULL_PROJECT_SET_COMPLETE=1
417
423
  ;;
418
424
  *)
419
425
  echo "[you.md] stopped after the \${DAYS}-day active project setup; \${EXPAND_DAYS}-day expansion remains intentionally open."
420
426
  ;;
421
427
  esac
422
- if [ "\${YOUMD_RUN_CHECKS:-}" = "1" ]; then
428
+ if [ "\${YOU_RUN_CHECKS:-\${YOUMD_RUN_CHECKS:-}}" = "1" ]; then
423
429
  echo "[you.md] running bounded package checks"
424
- youmd machine verify --root "$ROOT" --max-projects "$LIMIT" --run-checks --max-check-projects "\${YOUMD_MAX_CHECK_PROJECTS:-8}" --check-timeout-ms "\${YOUMD_CHECK_TIMEOUT_MS:-120000}" --write-report --sync-report || true
430
+ you machine verify --root "$ROOT" --max-projects "$LIMIT" --run-checks --max-check-projects "\${YOU_MAX_CHECK_PROJECTS:-\${YOUMD_MAX_CHECK_PROJECTS:-8}}" --check-timeout-ms "\${YOU_CHECK_TIMEOUT_MS:-\${YOUMD_CHECK_TIMEOUT_MS:-120000}}" --write-report --sync-report || true
425
431
  else
426
- echo "[you.md] bounded package checks skipped; set YOUMD_RUN_CHECKS=1 to run lint/typecheck/test/build caps"
432
+ echo "[you.md] bounded package checks skipped; set YOU_RUN_CHECKS=1 to run lint/typecheck/test/build caps"
427
433
  fi
428
- if [ "\${YOUMD_INSTALL_DEPS:-}" = "1" ] || [ "\${YOUMD_PROBE_SERVERS:-}" = "1" ]; then
434
+ if [ "\${YOU_INSTALL_DEPS:-\${YOUMD_INSTALL_DEPS:-}}" = "1" ] || [ "\${YOU_PROBE_SERVERS:-\${YOUMD_PROBE_SERVERS:-}}" = "1" ]; then
429
435
  echo "[you.md] running bounded clean-host install/server proof"
430
436
  VERIFY_ARGS=(--root "$ROOT" --max-projects "$LIMIT")
431
- if [ "\${YOUMD_INSTALL_DEPS:-}" = "1" ]; then
432
- VERIFY_ARGS+=(--install-deps --max-install-projects "\${YOUMD_MAX_INSTALL_PROJECTS:-4}" --install-timeout-ms "\${YOUMD_INSTALL_TIMEOUT_MS:-180000}")
437
+ if [ "\${YOU_INSTALL_DEPS:-\${YOUMD_INSTALL_DEPS:-}}" = "1" ]; then
438
+ VERIFY_ARGS+=(--install-deps --max-install-projects "\${YOU_MAX_INSTALL_PROJECTS:-\${YOUMD_MAX_INSTALL_PROJECTS:-4}}" --install-timeout-ms "\${YOU_INSTALL_TIMEOUT_MS:-\${YOUMD_INSTALL_TIMEOUT_MS:-180000}}")
433
439
  fi
434
- if [ "\${YOUMD_PROBE_SERVERS:-}" = "1" ]; then
435
- VERIFY_ARGS+=(--probe-servers --max-server-projects "\${YOUMD_MAX_SERVER_PROJECTS:-3}" --server-timeout-ms "\${YOUMD_SERVER_TIMEOUT_MS:-45000}" --server-start-port "\${YOUMD_SERVER_START_PORT:-4310}")
440
+ if [ "\${YOU_PROBE_SERVERS:-\${YOUMD_PROBE_SERVERS:-}}" = "1" ]; then
441
+ VERIFY_ARGS+=(--probe-servers --max-server-projects "\${YOU_MAX_SERVER_PROJECTS:-\${YOUMD_MAX_SERVER_PROJECTS:-3}}" --server-timeout-ms "\${YOU_SERVER_TIMEOUT_MS:-\${YOUMD_SERVER_TIMEOUT_MS:-45000}}" --server-start-port "\${YOU_SERVER_START_PORT:-\${YOUMD_SERVER_START_PORT:-4310}}")
436
442
  fi
437
- youmd machine verify "\${VERIFY_ARGS[@]}" --write-report --sync-report || true
443
+ you machine verify "\${VERIFY_ARGS[@]}" --write-report --sync-report || true
438
444
  else
439
- echo "[you.md] clean-host install/server proof skipped; set YOUMD_INSTALL_DEPS=1 and YOUMD_PROBE_SERVERS=1 to install deps and smoke-probe local dev servers"
445
+ echo "[you.md] clean-host install/server proof skipped; set YOU_INSTALL_DEPS=1 and YOU_PROBE_SERVERS=1 to install deps and smoke-probe local dev servers"
440
446
  fi
441
447
  echo "[you.md] confirming resident realtime/identity/skillstack/project-context daemons"
442
- youmd stack daemon install || true
443
- youmd stack daemon status || true
448
+ you stack daemon install || true
449
+ you stack daemon status || true
444
450
  run_agent_stack_inventory
445
451
  echo "[you.md] running final one-command machine sync/proof consolidation"
446
- youmd machine sync-now --root "$ROOT" --max-projects "$LIMIT" || true
447
- youmd status
452
+ you machine sync-now --root "$ROOT" --max-projects "$LIMIT" || true
453
+ you status
448
454
  if [ "$FULL_PROJECT_SET_COMPLETE" = "1" ]; then
449
455
  echo "[you.md] fresh-machine full \${EXPAND_DAYS}-day project setup complete: $ROOT"
450
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) complete: full \${EXPAND_DAYS}-day active/focused setup at $ROOT" || true
456
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) complete: full \${EXPAND_DAYS}-day active/focused setup at $ROOT" || true
451
457
  else
452
458
  echo "[you.md] fresh-machine \${DAYS}-day setup pass complete; \${EXPAND_DAYS}-day expansion is still open: $ROOT"
453
- youmd agent send --channel machine-sync --kind status "fresh machine \$(hostname) complete for \${DAYS}-day active/focused pass at $ROOT; \${EXPAND_DAYS}-day expansion still open" || true
459
+ you agent send --channel machine-sync --kind status "fresh machine \$(hostname) complete for \${DAYS}-day active/focused pass at $ROOT; \${EXPAND_DAYS}-day expansion still open" || true
454
460
  fi`;
455
461
  }
456
462
  function buildFreshMachineBootstrapCommand(options = {}) {
457
463
  const assignments = [
458
- envAssignment("YOUMD_API_KEY", options.apiKey),
459
- envAssignment("YOUMD_CODE_ROOT", portableHomePath(options.root), { expandHome: true }),
460
- envAssignment("YOUMD_ACTIVE_DAYS", options.days ?? exports.DEFAULT_FRESH_MACHINE_DAYS),
461
- envAssignment("YOUMD_PROJECT_LIMIT", options.limit ?? exports.DEFAULT_FRESH_MACHINE_LIMIT),
462
- envAssignment("YOUMD_MAX_CLONE_PROJECTS", options.maxCloneProjects),
463
- envAssignment("YOUMD_ENV_VAULT", portableHomePath(options.envVaultPath), { expandHome: true }),
464
- envAssignment("YOUMD_REQUIRE_ENV_VAULT", options.requireEnvVault ? "1" : undefined),
464
+ envAssignment("YOU_API_KEY", options.apiKey),
465
+ envAssignment("YOU_CODE_ROOT", portableHomePath(options.root), { expandHome: true }),
466
+ envAssignment("YOU_ACTIVE_DAYS", options.days ?? exports.DEFAULT_FRESH_MACHINE_DAYS),
467
+ envAssignment("YOU_PROJECT_LIMIT", options.limit ?? exports.DEFAULT_FRESH_MACHINE_LIMIT),
468
+ envAssignment("YOU_MAX_CLONE_PROJECTS", options.maxCloneProjects),
469
+ envAssignment("YOU_ENV_VAULT", portableHomePath(options.envVaultPath), { expandHome: true }),
470
+ envAssignment("YOU_REQUIRE_ENV_VAULT", options.requireEnvVault ? "1" : undefined),
465
471
  ].filter((value) => Boolean(value));
466
- const pathPrefix = `PATH="$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"`;
472
+ const pathPrefix = `PATH="$HOME/.you/bin:$HOME/.you/npm-global/bin:$HOME/.youmd/bin:$HOME/.youmd/npm-global/bin:/opt/homebrew/opt/node@22/bin:/usr/local/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"`;
467
473
  return `${[pathPrefix, ...assignments].join(" ")} bash -lc ${shellQuote(buildFreshMachineBootstrapScript())}`;
468
474
  }
469
475
  function buildFreshMachineBootstrapPrompt(options = {}) {
@@ -484,7 +490,7 @@ function buildFreshMachineBootstrapPrompt(options = {}) {
484
490
  "",
485
491
  authLine,
486
492
  "",
487
- "Behind-the-scenes operating rule: use the You.md CLI and You Agent yourself before asking Houston to do anything. Run deterministic commands like `youmd status`, `youmd whoami`, `youmd pull`, `youmd sync`, `youmd skill install all`, `youmd skill sync`, `youmd skill inventory`, `youmd env vault list`, `youmd env vault device-register`, `youmd env vault pull --restore`, `youmd machine prompt`, `youmd machine verify`, `youmd project portfolio-hydrate`, and `youmd agent status` as needed. Use `youmd agent send --channel machine-sync --kind status \"...\"` to report setup milestones back to Houston's other trusted Macs over the realtime agent bus. Use `you` / `youmd chat` only when you need the You Agent to synthesize or route context, then turn its output into concrete shell actions. Interrupt Houston only for true human-gated steps: GitHub browser auth, source-Mac Secret Vault share if the trusted-device envelope has not been created yet, local vault passphrase/Keychain only when `YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or `YOUMD_ENV_VAULT` is explicitly provided, npm OTP, OS permissions, or an explicit choice such as the 90-day expansion.",
493
+ "Behind-the-scenes operating rule: use the You.md CLI and You Agent yourself before asking Houston to do anything. Run deterministic commands like `you status`, `you whoami`, `you pull`, `you sync`, `you skill install all`, `you skill sync`, `you skill inventory`, `you env vault list`, `you env vault device-register`, `you env vault pull --restore`, `you machine prompt`, `you machine verify`, `you project portfolio-hydrate`, and `you agent status` as needed. Use `you agent send --channel machine-sync --kind status \"...\"` to report setup milestones back to Houston's other trusted Macs over the realtime agent bus. Use `you` / `you chat` only when you need the You Agent to synthesize or route context, then turn its output into concrete shell actions. Interrupt Houston only for true human-gated steps: GitHub browser auth, source-Mac Secret Vault share if the trusted-device envelope has not been created yet, local vault passphrase/Keychain only when `YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or `YOU_ENV_VAULT` is explicitly provided, npm OTP, OS permissions, or an explicit choice such as the 90-day expansion.",
488
494
  "",
489
495
  "Exact setup command:",
490
496
  "",
@@ -495,27 +501,28 @@ function buildFreshMachineBootstrapPrompt(options = {}) {
495
501
  "What it will do:",
496
502
  "- check/install the local prerequisites first: Homebrew, Node 22/npm, git, GitHub CLI, bun, and pnpm/corepack",
497
503
  "- install You.md from the curl runtime and force the You.md/Homebrew/Node 22 paths into this setup shell",
504
+ "- prove the canonical `~/.you` home migration while preserving legacy `~/.youmd` fallback",
498
505
  "- authenticate and pull/sync your identity bundle",
499
506
  "- install resident realtime sync daemons early so identity/skill/project-context sync is not deferred until the end",
500
507
  "- require GitHub CLI auth before private shared-skill/project repos clone; if browser auth fails inside Claude/Codex, it prints the exact Terminal command to run and stops cleanly",
501
508
  "- install/configure MCP for Claude Code and Codex",
502
509
  "- restore shared agent skills, stack config, Claude/Codex links, and agent host config",
503
- "- generate a secret-safe local/global agent stack inventory under `~/.youmd/agent-stack-inventory` after shared skills are restored and again near final proof",
510
+ "- generate a secret-safe local/global agent stack inventory under `~/.you/agent-stack-inventory` after shared skills are restored and again near final proof",
504
511
  "- use the installed You.md CLI behind the scenes for status, skill sync, Secret Vault pull, portfolio graph hydration, machine verification, and You Agent context routing instead of making Houston manually drive those steps",
505
- "- publish setup milestones through `youmd agent send` so Houston's source Mac and realtime daemon can see the Mac mini come online without clipboard babysitting",
512
+ "- publish setup milestones through `you agent send` so Houston's source Mac and realtime daemon can see the Mac mini come online without clipboard babysitting",
506
513
  "- hydrate the portfolio graph from You.md + authenticated GitHub before cloning",
507
514
  `- preview the graph-backed plan, create ${root}, and clone only projects marked ACTIVE plus Top Priority/Focusing from the last ${days} days first`,
508
515
  `- ask whether to expand to all ACTIVE plus Top Priority/Focusing projects from the last ${expandDays} days before calling the full project clone set complete`,
509
- "- check env-vault tooling, register this Mac as a trusted Secret Vault device, pull the latest account-backed You.md Secret Vault encrypted snapshot when available, unwrap the vault passphrase locally through a trusted-device key envelope, restore env files into existing cloned project dirs with `--map-existing --existing-only --skip-agent-auth`, or stop with the exact source-Mac `youmd env vault share` action instead of asking for a passphrase on the new Mac. Local/iCloud passphrase fallback runs only when `YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or `YOUMD_ENV_VAULT` is explicitly provided. After env handling, rehydrate local project/env evidence.",
510
- "- reconcile `youmd pull && youmd sync` after env-vault handling so source-Mac bundle updates, new trusted-device envelopes, shared skills, and machine proof state do not leave this Mac showing `remote ahead`",
516
+ "- check env-vault tooling, register this Mac as a trusted Secret Vault device, pull the latest account-backed You.md Secret Vault encrypted snapshot when available, unwrap the vault passphrase locally through a trusted-device key envelope, restore env files into existing cloned project dirs with `--map-existing --existing-only --skip-agent-auth`, or stop with the exact source-Mac `you env vault share` action instead of asking for a passphrase on the new Mac. Local/iCloud passphrase fallback runs only when `YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or `YOU_ENV_VAULT` is explicitly provided. After env handling, rehydrate local project/env evidence.",
517
+ "- reconcile `you pull && you sync` after env-vault handling so source-Mac bundle updates, new trusted-device envelopes, shared skills, and machine proof state do not leave this Mac showing `remote ahead`",
511
518
  "- write and sync a secret-safe machine proof report, with optional bounded install/check/server proof flags",
512
- "- bound portfolio hydration with `YOUMD_PORTFOLIO_HYDRATE_TIMEOUT_SECONDS` so large restored roots do not wedge setup",
519
+ "- bound portfolio hydration with `YOU_PORTFOLIO_HYDRATE_TIMEOUT_SECONDS` so large restored roots do not wedge setup",
513
520
  "",
514
521
  `Project source: You.md portfolio graph + authenticated GitHub recent repos, capped at ${limit} tracked projects before local audit evidence is merged. When the graph exists, new-computer setup clones only projects with status ACTIVE and focus Top Priority/Focusing; inactive, unsorted, on-ice, abandoned, killed, and unreviewed GitHub-only repos are skipped unless --include-inactive is explicitly used. First pass is ${days} days with out-of-window projects skipped; the ${expandDays}-day pass is explicit.`,
515
- "Secret rule: .env.local values are never embedded here. Best path: on the old/source Mac, run `youmd env vault push --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault` once, then after the new Mac registers itself run `youmd env vault share` on the source Mac. That uploads only encrypted archive bytes plus safe manifest metadata, and stores only per-device encrypted passphrase envelopes. A trusted new Mac pulls the encrypted snapshot after login and decrypts locally with its private device key; raw env values never hit the browser, chat, or You.md servers. If the envelope is missing, the command stops and sends a machine-sync status telling the source Mac to run `youmd env vault share`. Local fallback is opt-in only: run `youmd env backup --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault`, move the generated `env-vault-*.tar.enc` file to the new machine, then rerun with `YOUMD_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or explicit `YOUMD_ENV_VAULT=/path/to/env-vault-*.tar.enc`. The restore path lists variable names/counts and target paths only, never values, maps old folder names onto cloned dirs, and skips agent auth config so it does not clobber the new machine's active Claude/Codex login.",
522
+ "Secret rule: .env.local values are never embedded here. Best path: on the old/source Mac, run `you env vault push --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault` once, then after the new Mac registers itself run `you env vault share` on the source Mac. That uploads only encrypted archive bytes plus safe manifest metadata, and stores only per-device encrypted passphrase envelopes. A trusted new Mac pulls the encrypted snapshot after login and decrypts locally with its private device key; raw env values never hit the browser, chat, or You.md servers. If the envelope is missing, the command stops and sends a machine-sync status telling the source Mac to run `you env vault share`. Local fallback is opt-in only: run `you env backup --root ~/Desktop/CODE_2025 --out ~/Desktop/youmd-env-vault`, move the generated `env-vault-*.tar.enc` file to the new machine, then rerun with `YOU_ALLOW_LOCAL_ENV_VAULT_FALLBACK=1` or explicit `YOU_ENV_VAULT=/path/to/env-vault-*.tar.enc`. The restore path lists variable names/counts and target paths only, never values, maps old folder names onto cloned dirs, and skips agent auth config so it does not clobber the new machine's active Claude/Codex login.",
516
523
  "",
517
524
  "After the command finishes, report:",
518
- "- the `youmd status` sync state",
525
+ "- the `you status` sync state",
519
526
  `- the \`${root}\` project count`,
520
527
  "- whether the encrypted env vault restored",
521
528
  "- whether Claude/Codex MCP config was installed",
@@ -523,7 +530,7 @@ function buildFreshMachineBootstrapPrompt(options = {}) {
523
530
  "- the synced machine proof status",
524
531
  "- whether I should expand to the 90-day active project set if I have not answered yet",
525
532
  "",
526
- "Done-ness rule: for real fresh-computer proof, set YOUMD_REQUIRE_ENV_VAULT=1 or pass --require-env-vault so the command fails instead of pretending setup is complete when the encrypted env vault is missing.",
533
+ "Done-ness rule: for real fresh-computer proof, set YOU_REQUIRE_ENV_VAULT=1 or pass --require-env-vault so the command fails instead of pretending setup is complete when the encrypted env vault is missing.",
527
534
  ].join("\n");
528
535
  }
529
536
  //# sourceMappingURL=machine-bootstrap-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"machine-bootstrap-prompt.js","sourceRoot":"","sources":["../../src/lib/machine-bootstrap-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine-bootstrap-prompt.js","sourceRoot":"","sources":["../../src/lib/machine-bootstrap-prompt.ts"],"names":[],"mappings":"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"}
@@ -125,6 +125,25 @@ export interface MachineAgentStackInventoryProof {
125
125
  secretValuesExposed: false;
126
126
  };
127
127
  }
128
+ export interface MachineDaemonProof {
129
+ status: "ready" | "warn";
130
+ loaded: number;
131
+ total: number;
132
+ legacyLoaded: number;
133
+ warnings: string[];
134
+ labels: Array<{
135
+ label: string;
136
+ legacyLabel?: string;
137
+ name: string;
138
+ loaded: boolean;
139
+ legacyLoaded: boolean;
140
+ lastActivityAt?: string;
141
+ warning?: string;
142
+ }>;
143
+ security: {
144
+ secretValuesExposed: false;
145
+ };
146
+ }
128
147
  export interface MachineVerificationProof {
129
148
  schemaVersion: 1;
130
149
  generatedAt: string;
@@ -137,6 +156,7 @@ export interface MachineVerificationProof {
137
156
  checks?: MachineRunChecksReport;
138
157
  servers?: MachineServerProbeReport;
139
158
  agentStackInventory?: MachineAgentStackInventoryProof;
159
+ daemons: MachineDaemonProof;
140
160
  summary: {
141
161
  status: "ready" | "warn" | "failed";
142
162
  scanned: number;
@@ -146,6 +166,9 @@ export interface MachineVerificationProof {
146
166
  installPassed: number;
147
167
  checksPassed: number;
148
168
  serversPassed: number;
169
+ daemonsLoaded: number;
170
+ daemonsTotal: number;
171
+ legacyDaemonsLoaded: number;
149
172
  failures: number;
150
173
  warnings: string[];
151
174
  };
@@ -154,6 +177,7 @@ export interface MachineVerificationProofWriteResult {
154
177
  latestPath: string;
155
178
  archivedPath: string;
156
179
  }
180
+ export declare function buildMachineDaemonProof(): MachineDaemonProof;
157
181
  export declare function defaultAgentStackInventoryDir(): string;
158
182
  export declare function loadLatestAgentStackInventoryProof(outDir?: string): MachineAgentStackInventoryProof | null;
159
183
  export declare function inspectMachineProject(projectDir: string): MachineProjectReadiness;