@beacon-build/sdk 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +21 -0
  3. package/dist/cli/backlog.d.ts +14 -0
  4. package/dist/cli/backlog.d.ts.map +1 -0
  5. package/dist/cli/backlog.js +228 -0
  6. package/dist/cli/backlog.js.map +1 -0
  7. package/dist/cli/claude-md-check.d.ts +18 -0
  8. package/dist/cli/claude-md-check.d.ts.map +1 -0
  9. package/dist/cli/claude-md-check.js +57 -0
  10. package/dist/cli/claude-md-check.js.map +1 -0
  11. package/dist/cli/context.d.ts +14 -0
  12. package/dist/cli/context.d.ts.map +1 -0
  13. package/dist/cli/context.js +465 -0
  14. package/dist/cli/context.js.map +1 -0
  15. package/dist/cli/help.d.ts +17 -0
  16. package/dist/cli/help.d.ts.map +1 -0
  17. package/dist/cli/help.js +71 -0
  18. package/dist/cli/help.js.map +1 -0
  19. package/dist/cli/index.d.ts +22 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +212 -0
  22. package/dist/cli/index.js.map +1 -0
  23. package/dist/cli/project-log.d.ts +16 -0
  24. package/dist/cli/project-log.d.ts.map +1 -0
  25. package/dist/cli/project-log.js +185 -0
  26. package/dist/cli/project-log.js.map +1 -0
  27. package/dist/cli/setup-worktree.d.ts +23 -0
  28. package/dist/cli/setup-worktree.d.ts.map +1 -0
  29. package/dist/cli/setup-worktree.js +396 -0
  30. package/dist/cli/setup-worktree.js.map +1 -0
  31. package/dist/cli/update-client.d.ts +14 -0
  32. package/dist/cli/update-client.d.ts.map +1 -0
  33. package/dist/cli/update-client.js +629 -0
  34. package/dist/cli/update-client.js.map +1 -0
  35. package/dist/cli/workflow-sync.d.ts +19 -0
  36. package/dist/cli/workflow-sync.d.ts.map +1 -0
  37. package/dist/cli/workflow-sync.js +133 -0
  38. package/dist/cli/workflow-sync.js.map +1 -0
  39. package/dist/clients/admin/agents.client.d.ts +38 -0
  40. package/dist/clients/admin/agents.client.d.ts.map +1 -0
  41. package/dist/clients/admin/agents.client.js +90 -0
  42. package/dist/clients/admin/agents.client.js.map +1 -0
  43. package/dist/clients/admin/alerts.client.d.ts +8 -0
  44. package/dist/clients/admin/alerts.client.d.ts.map +1 -0
  45. package/dist/clients/admin/alerts.client.js +11 -0
  46. package/dist/clients/admin/alerts.client.js.map +1 -0
  47. package/dist/clients/admin/assets.client.d.ts +19 -0
  48. package/dist/clients/admin/assets.client.d.ts.map +1 -0
  49. package/dist/clients/admin/assets.client.js +27 -0
  50. package/dist/clients/admin/assets.client.js.map +1 -0
  51. package/dist/clients/admin/board-messages.client.d.ts +13 -0
  52. package/dist/clients/admin/board-messages.client.d.ts.map +1 -0
  53. package/dist/clients/admin/board-messages.client.js +16 -0
  54. package/dist/clients/admin/board-messages.client.js.map +1 -0
  55. package/dist/clients/admin/conversation-messages.client.d.ts +11 -0
  56. package/dist/clients/admin/conversation-messages.client.d.ts.map +1 -0
  57. package/dist/clients/admin/conversation-messages.client.js +27 -0
  58. package/dist/clients/admin/conversation-messages.client.js.map +1 -0
  59. package/dist/clients/admin/db.client.d.ts +12 -0
  60. package/dist/clients/admin/db.client.d.ts.map +1 -0
  61. package/dist/clients/admin/db.client.js +13 -0
  62. package/dist/clients/admin/db.client.js.map +1 -0
  63. package/dist/clients/admin/documents.client.d.ts +23 -0
  64. package/dist/clients/admin/documents.client.d.ts.map +1 -0
  65. package/dist/clients/admin/documents.client.js +33 -0
  66. package/dist/clients/admin/documents.client.js.map +1 -0
  67. package/dist/clients/admin/github-proxy.client.d.ts +12 -0
  68. package/dist/clients/admin/github-proxy.client.d.ts.map +1 -0
  69. package/dist/clients/admin/github-proxy.client.js +10 -0
  70. package/dist/clients/admin/github-proxy.client.js.map +1 -0
  71. package/dist/clients/admin/memories.client.d.ts +25 -0
  72. package/dist/clients/admin/memories.client.d.ts.map +1 -0
  73. package/dist/clients/admin/memories.client.js +67 -0
  74. package/dist/clients/admin/memories.client.js.map +1 -0
  75. package/dist/clients/admin/organizations.client.d.ts +25 -0
  76. package/dist/clients/admin/organizations.client.d.ts.map +1 -0
  77. package/dist/clients/admin/organizations.client.js +33 -0
  78. package/dist/clients/admin/organizations.client.js.map +1 -0
  79. package/dist/clients/admin/planning.client.d.ts +16 -0
  80. package/dist/clients/admin/planning.client.d.ts.map +1 -0
  81. package/dist/clients/admin/planning.client.js +24 -0
  82. package/dist/clients/admin/planning.client.js.map +1 -0
  83. package/dist/clients/admin/projects.client.d.ts +10 -0
  84. package/dist/clients/admin/projects.client.d.ts.map +1 -0
  85. package/dist/clients/admin/projects.client.js +21 -0
  86. package/dist/clients/admin/projects.client.js.map +1 -0
  87. package/dist/clients/admin/sessions.client.d.ts +23 -0
  88. package/dist/clients/admin/sessions.client.d.ts.map +1 -0
  89. package/dist/clients/admin/sessions.client.js +53 -0
  90. package/dist/clients/admin/sessions.client.js.map +1 -0
  91. package/dist/clients/admin/tasks.client.d.ts +21 -0
  92. package/dist/clients/admin/tasks.client.d.ts.map +1 -0
  93. package/dist/clients/admin/tasks.client.js +44 -0
  94. package/dist/clients/admin/tasks.client.js.map +1 -0
  95. package/dist/clients/admin/tool-calls.client.d.ts +12 -0
  96. package/dist/clients/admin/tool-calls.client.d.ts.map +1 -0
  97. package/dist/clients/admin/tool-calls.client.js +29 -0
  98. package/dist/clients/admin/tool-calls.client.js.map +1 -0
  99. package/dist/clients/admin/usage.client.d.ts +23 -0
  100. package/dist/clients/admin/usage.client.d.ts.map +1 -0
  101. package/dist/clients/admin/usage.client.js +37 -0
  102. package/dist/clients/admin/usage.client.js.map +1 -0
  103. package/dist/clients/admin/users.client.d.ts +17 -0
  104. package/dist/clients/admin/users.client.d.ts.map +1 -0
  105. package/dist/clients/admin/users.client.js +24 -0
  106. package/dist/clients/admin/users.client.js.map +1 -0
  107. package/dist/clients/agent/messaging.client.d.ts +13 -0
  108. package/dist/clients/agent/messaging.client.d.ts.map +1 -0
  109. package/dist/clients/agent/messaging.client.js +37 -0
  110. package/dist/clients/agent/messaging.client.js.map +1 -0
  111. package/dist/clients/agent/tasks.client.d.ts +18 -0
  112. package/dist/clients/agent/tasks.client.d.ts.map +1 -0
  113. package/dist/clients/agent/tasks.client.js +68 -0
  114. package/dist/clients/agent/tasks.client.js.map +1 -0
  115. package/dist/clients/auth.client.d.ts +40 -0
  116. package/dist/clients/auth.client.d.ts.map +1 -0
  117. package/dist/clients/auth.client.js +78 -0
  118. package/dist/clients/auth.client.js.map +1 -0
  119. package/dist/clients/ops/agents-ops.client.d.ts +46 -0
  120. package/dist/clients/ops/agents-ops.client.d.ts.map +1 -0
  121. package/dist/clients/ops/agents-ops.client.js +117 -0
  122. package/dist/clients/ops/agents-ops.client.js.map +1 -0
  123. package/dist/clients/ops/board-messages-ops.client.d.ts +14 -0
  124. package/dist/clients/ops/board-messages-ops.client.d.ts.map +1 -0
  125. package/dist/clients/ops/board-messages-ops.client.js +26 -0
  126. package/dist/clients/ops/board-messages-ops.client.js.map +1 -0
  127. package/dist/clients/ops/conversation-messages-ops.client.d.ts +10 -0
  128. package/dist/clients/ops/conversation-messages-ops.client.d.ts.map +1 -0
  129. package/dist/clients/ops/conversation-messages-ops.client.js +20 -0
  130. package/dist/clients/ops/conversation-messages-ops.client.js.map +1 -0
  131. package/dist/clients/ops/documents-ops.client.d.ts +20 -0
  132. package/dist/clients/ops/documents-ops.client.d.ts.map +1 -0
  133. package/dist/clients/ops/documents-ops.client.js +31 -0
  134. package/dist/clients/ops/documents-ops.client.js.map +1 -0
  135. package/dist/clients/ops/memories-ops.client.d.ts +25 -0
  136. package/dist/clients/ops/memories-ops.client.d.ts.map +1 -0
  137. package/dist/clients/ops/memories-ops.client.js +71 -0
  138. package/dist/clients/ops/memories-ops.client.js.map +1 -0
  139. package/dist/clients/ops/ops-db.client.d.ts +29 -0
  140. package/dist/clients/ops/ops-db.client.d.ts.map +1 -0
  141. package/dist/clients/ops/ops-db.client.js +35 -0
  142. package/dist/clients/ops/ops-db.client.js.map +1 -0
  143. package/dist/clients/ops/ops-logs.client.d.ts +22 -0
  144. package/dist/clients/ops/ops-logs.client.d.ts.map +1 -0
  145. package/dist/clients/ops/ops-logs.client.js +24 -0
  146. package/dist/clients/ops/ops-logs.client.js.map +1 -0
  147. package/dist/clients/ops/ops-mq.client.d.ts +19 -0
  148. package/dist/clients/ops/ops-mq.client.d.ts.map +1 -0
  149. package/dist/clients/ops/ops-mq.client.js +16 -0
  150. package/dist/clients/ops/ops-mq.client.js.map +1 -0
  151. package/dist/clients/ops/ops-northflank.client.d.ts +34 -0
  152. package/dist/clients/ops/ops-northflank.client.d.ts.map +1 -0
  153. package/dist/clients/ops/ops-northflank.client.js +42 -0
  154. package/dist/clients/ops/ops-northflank.client.js.map +1 -0
  155. package/dist/clients/ops/ops-storage.client.d.ts +34 -0
  156. package/dist/clients/ops/ops-storage.client.d.ts.map +1 -0
  157. package/dist/clients/ops/ops-storage.client.js +39 -0
  158. package/dist/clients/ops/ops-storage.client.js.map +1 -0
  159. package/dist/clients/ops/projects-ops.client.d.ts +20 -0
  160. package/dist/clients/ops/projects-ops.client.d.ts.map +1 -0
  161. package/dist/clients/ops/projects-ops.client.js +18 -0
  162. package/dist/clients/ops/projects-ops.client.js.map +1 -0
  163. package/dist/clients/ops/realtime-ops.client.d.ts +14 -0
  164. package/dist/clients/ops/realtime-ops.client.d.ts.map +1 -0
  165. package/dist/clients/ops/realtime-ops.client.js +10 -0
  166. package/dist/clients/ops/realtime-ops.client.js.map +1 -0
  167. package/dist/clients/ops/sessions-ops.client.d.ts +29 -0
  168. package/dist/clients/ops/sessions-ops.client.d.ts.map +1 -0
  169. package/dist/clients/ops/sessions-ops.client.js +69 -0
  170. package/dist/clients/ops/sessions-ops.client.js.map +1 -0
  171. package/dist/clients/ops/tasks-ops.client.d.ts +18 -0
  172. package/dist/clients/ops/tasks-ops.client.d.ts.map +1 -0
  173. package/dist/clients/ops/tasks-ops.client.js +37 -0
  174. package/dist/clients/ops/tasks-ops.client.js.map +1 -0
  175. package/dist/clients/ops/tool-calls-ops.client.d.ts +12 -0
  176. package/dist/clients/ops/tool-calls-ops.client.d.ts.map +1 -0
  177. package/dist/clients/ops/tool-calls-ops.client.js +29 -0
  178. package/dist/clients/ops/tool-calls-ops.client.js.map +1 -0
  179. package/dist/clients/ops/usage-workflows-ops.client.d.ts +22 -0
  180. package/dist/clients/ops/usage-workflows-ops.client.d.ts.map +1 -0
  181. package/dist/clients/ops/usage-workflows-ops.client.js +23 -0
  182. package/dist/clients/ops/usage-workflows-ops.client.js.map +1 -0
  183. package/dist/factory/admin-sdk.d.ts +53 -0
  184. package/dist/factory/admin-sdk.d.ts.map +1 -0
  185. package/dist/factory/admin-sdk.js +59 -0
  186. package/dist/factory/admin-sdk.js.map +1 -0
  187. package/dist/factory/agent-sdk.d.ts +22 -0
  188. package/dist/factory/agent-sdk.d.ts.map +1 -0
  189. package/dist/factory/agent-sdk.js +22 -0
  190. package/dist/factory/agent-sdk.js.map +1 -0
  191. package/dist/factory/ops-sdk.d.ts +53 -0
  192. package/dist/factory/ops-sdk.d.ts.map +1 -0
  193. package/dist/factory/ops-sdk.js +56 -0
  194. package/dist/factory/ops-sdk.js.map +1 -0
  195. package/dist/index.d.ts +37 -0
  196. package/dist/index.d.ts.map +1 -0
  197. package/dist/index.js +45 -0
  198. package/dist/index.js.map +1 -0
  199. package/dist/legacy/sdk-factory.d.ts +34 -0
  200. package/dist/legacy/sdk-factory.d.ts.map +1 -0
  201. package/dist/legacy/sdk-factory.js +34 -0
  202. package/dist/legacy/sdk-factory.js.map +1 -0
  203. package/dist/lib/context.d.ts +69 -0
  204. package/dist/lib/context.d.ts.map +1 -0
  205. package/dist/lib/context.js +225 -0
  206. package/dist/lib/context.js.map +1 -0
  207. package/dist/lib/db.d.ts +16 -0
  208. package/dist/lib/db.d.ts.map +1 -0
  209. package/dist/lib/db.js +50 -0
  210. package/dist/lib/db.js.map +1 -0
  211. package/dist/lib/logger.d.ts +14 -0
  212. package/dist/lib/logger.d.ts.map +1 -0
  213. package/dist/lib/logger.js +14 -0
  214. package/dist/lib/logger.js.map +1 -0
  215. package/dist/lib/opencode.d.ts +33 -0
  216. package/dist/lib/opencode.d.ts.map +1 -0
  217. package/dist/lib/opencode.js +101 -0
  218. package/dist/lib/opencode.js.map +1 -0
  219. package/dist/lib/utils.d.ts +18 -0
  220. package/dist/lib/utils.d.ts.map +1 -0
  221. package/dist/lib/utils.js +40 -0
  222. package/dist/lib/utils.js.map +1 -0
  223. package/dist/manifest.d.ts +26 -0
  224. package/dist/manifest.d.ts.map +1 -0
  225. package/dist/manifest.js +700 -0
  226. package/dist/manifest.js.map +1 -0
  227. package/dist/realtime/realtime.client.d.ts +76 -0
  228. package/dist/realtime/realtime.client.d.ts.map +1 -0
  229. package/dist/realtime/realtime.client.js +168 -0
  230. package/dist/realtime/realtime.client.js.map +1 -0
  231. package/dist/transport/binary-client.d.ts +23 -0
  232. package/dist/transport/binary-client.d.ts.map +1 -0
  233. package/dist/transport/binary-client.js +69 -0
  234. package/dist/transport/binary-client.js.map +1 -0
  235. package/dist/transport/errors.d.ts +14 -0
  236. package/dist/transport/errors.d.ts.map +1 -0
  237. package/dist/transport/errors.js +57 -0
  238. package/dist/transport/errors.js.map +1 -0
  239. package/dist/transport/http-client.d.ts +23 -0
  240. package/dist/transport/http-client.d.ts.map +1 -0
  241. package/dist/transport/http-client.js +88 -0
  242. package/dist/transport/http-client.js.map +1 -0
  243. package/dist/transport/multipart-client.d.ts +25 -0
  244. package/dist/transport/multipart-client.d.ts.map +1 -0
  245. package/dist/transport/multipart-client.js +87 -0
  246. package/dist/transport/multipart-client.js.map +1 -0
  247. package/dist/transport/ops-api-client.d.ts +39 -0
  248. package/dist/transport/ops-api-client.d.ts.map +1 -0
  249. package/dist/transport/ops-api-client.js +153 -0
  250. package/dist/transport/ops-api-client.js.map +1 -0
  251. package/dist/transport/sse-client.d.ts +33 -0
  252. package/dist/transport/sse-client.d.ts.map +1 -0
  253. package/dist/transport/sse-client.js +127 -0
  254. package/dist/transport/sse-client.js.map +1 -0
  255. package/package.json +32 -0
@@ -0,0 +1,396 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * beacon-setup-worktree — @beacon-build/sdk (F84)
4
+ *
5
+ * Sets up a permanent agent worktree for multi-agent parallel work.
6
+ * Works in any consumer repo that follows beacon-platform conventions.
7
+ *
8
+ * Usage:
9
+ * beacon-setup-worktree <Alias> [--role <role>] [--domains <d1,d2>] [--guardrails <text>]
10
+ *
11
+ * Steps:
12
+ * 1. git worktree add (idempotent)
13
+ * 2. pnpm install
14
+ * 3. prisma generate
15
+ * 4. pnpm build
16
+ * 5. .mcp.json generation
17
+ * 6. .beacon-agent written to worktree
18
+ * 7. MCP binary verification
19
+ * 8. agent_setup via JSON-RPC (mandatory — INV-7)
20
+ * 9. pnpm context --write (generates Worker Identity in AGENTS.md — F78)
21
+ */
22
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, unlinkSync, } from 'node:fs';
23
+ import { execSync, spawn } from 'node:child_process';
24
+ import { join, resolve, dirname, basename } from 'node:path';
25
+ import { homedir } from 'node:os';
26
+ import { fileURLToPath } from 'node:url';
27
+ import { loadBeaconAgentYaml, readOpCacheDatabaseUrl } from '../lib/utils.js';
28
+ // ── ANSI ──────────────────────────────────────────────────────────────────────
29
+ const green = (s) => `\x1b[32m${s}\x1b[0m`;
30
+ const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
31
+ const red = (s) => `\x1b[31m${s}\x1b[0m`;
32
+ const bold = (s) => `\x1b[1m${s}\x1b[0m`;
33
+ const dim = (s) => `\x1b[2m${s}\x1b[0m`;
34
+ // ── Args ──────────────────────────────────────────────────────────────────────
35
+ const rawArgs = process.argv.slice(2);
36
+ if (rawArgs.includes('--help') || rawArgs.length === 0) {
37
+ process.stderr.write(`
38
+ Usage: beacon-setup-worktree <Alias> [--role <role>] [--domains <d1,d2>] [--guardrails <text>]
39
+
40
+ Sets up a permanent agent worktree at ../<repo>-<alias-lowercase>/
41
+
42
+ Options:
43
+ --role Agent role (default: builder)
44
+ --domains Comma-separated domain list (optional)
45
+ --guardrails Guardrail text (optional)
46
+ `);
47
+ process.exit(rawArgs.length === 0 ? 1 : 0);
48
+ }
49
+ const alias = rawArgs[0];
50
+ if (!alias || alias.startsWith('--')) {
51
+ process.stderr.write('Error: alias is required as first argument\n');
52
+ process.exit(1);
53
+ }
54
+ function getFlag(flag) {
55
+ const idx = rawArgs.indexOf(flag);
56
+ return idx !== -1 ? (rawArgs[idx + 1] ?? null) : null;
57
+ }
58
+ const role = getFlag('--role') ?? 'builder';
59
+ const domainsRaw = getFlag('--domains');
60
+ const domains = domainsRaw ? domainsRaw.split(',').map((d) => d.trim()) : [];
61
+ const guardrails = getFlag('--guardrails') ?? null;
62
+ // ── Resolve paths ─────────────────────────────────────────────────────────────
63
+ const repoRoot = resolve(process.cwd());
64
+ const repoName = basename(repoRoot);
65
+ const worktreePath = join(dirname(repoRoot), `${repoName}-${alias.toLowerCase()}`);
66
+ // ── Read beacon-agent.yaml (INV-11) ──────────────────────────────────────────
67
+ const beaconAgentYamlPath = join(repoRoot, 'beacon-agent.yaml');
68
+ if (!existsSync(beaconAgentYamlPath)) {
69
+ process.stderr.write(`Error: beacon-agent.yaml not found at ${beaconAgentYamlPath}\n` +
70
+ ` This file is required to derive the project slug.\n`);
71
+ process.exit(1);
72
+ }
73
+ const beaconAgentYaml = loadBeaconAgentYaml(repoRoot);
74
+ const projectSlug = beaconAgentYaml?.project?.slug ?? repoName;
75
+ // ── Read DATABASE_URL from op-cache (INV-4) ───────────────────────────────────
76
+ const { databaseUrl, warning: dbUrlWarning } = readOpCacheDatabaseUrl(projectSlug);
77
+ // ── Header ────────────────────────────────────────────────────────────────────
78
+ console.log(bold(`\n === setup-worktree: ${alias} ===\n`));
79
+ console.log(dim(` Repo: ${repoRoot}`));
80
+ console.log(dim(` Worktree: ${worktreePath}\n`));
81
+ // ── Step 1: git worktree add (idempotent) ─────────────────────────────────────
82
+ if (existsSync(worktreePath)) {
83
+ console.log(dim(` ✓ worktree already exists — skipping git worktree add`));
84
+ }
85
+ else {
86
+ process.stdout.write(dim(` → creating worktree...\r`));
87
+ try {
88
+ execSync('git fetch origin main', { cwd: repoRoot, stdio: 'pipe' });
89
+ execSync(`git worktree add --detach "${worktreePath}" origin/main`, {
90
+ cwd: repoRoot,
91
+ stdio: 'pipe',
92
+ });
93
+ console.log(green(` ✓ worktree created`));
94
+ }
95
+ catch (err) {
96
+ const msg = err.stderr?.toString().trim().split('\n').at(-1) ??
97
+ err.message;
98
+ console.log(red(` ✗ git worktree add failed: ${msg}`));
99
+ process.exit(1);
100
+ }
101
+ }
102
+ // ── Step 2: pnpm install ──────────────────────────────────────────────────────
103
+ process.stdout.write(dim(` → installing dependencies...\r`));
104
+ try {
105
+ execSync('pnpm install --frozen-lockfile', { cwd: worktreePath, stdio: 'pipe' });
106
+ console.log(green(` ✓ dependencies installed`));
107
+ }
108
+ catch (err) {
109
+ const msg = err.stderr?.toString().trim().split('\n').at(-1) ??
110
+ err.message;
111
+ console.log(red(` ✗ install failed: ${msg}`));
112
+ process.exit(1);
113
+ }
114
+ // ── Step 3: prisma generate ───────────────────────────────────────────────────
115
+ process.stdout.write(dim(` → generating prisma client...\r`));
116
+ try {
117
+ execSync('pnpm --filter @beacon-build/db exec prisma generate', {
118
+ cwd: worktreePath,
119
+ stdio: 'pipe',
120
+ });
121
+ console.log(green(` ✓ prisma client generated`));
122
+ }
123
+ catch {
124
+ console.log(yellow(` ⚠ prisma generate skipped (package not found)`));
125
+ }
126
+ // ── Step 4: pnpm build ────────────────────────────────────────────────────────
127
+ process.stdout.write(dim(` → building...\r`));
128
+ try {
129
+ execSync('pnpm build', { cwd: worktreePath, stdio: 'pipe' });
130
+ console.log(green(` ✓ build complete`));
131
+ }
132
+ catch (err) {
133
+ const msg = err.stderr?.toString().trim().split('\n').at(-1) ??
134
+ err.message;
135
+ console.log(red(` ✗ build failed: ${msg}`));
136
+ process.exit(1);
137
+ }
138
+ // ── Step 5: .mcp.json generation (INV-3) ─────────────────────────────────────
139
+ const mainMcpJsonPath = join(repoRoot, '.mcp.json');
140
+ const wtMcpJsonPath = join(worktreePath, '.mcp.json');
141
+ if (dbUrlWarning) {
142
+ console.log(yellow(` ⚠ DATABASE_URL not found — placeholder inserted`));
143
+ }
144
+ if (!existsSync(mainMcpJsonPath)) {
145
+ console.log(yellow(` ⚠ no .mcp.json found — skipping MCP config generation`));
146
+ }
147
+ else {
148
+ try {
149
+ const mainConfig = JSON.parse(readFileSync(mainMcpJsonPath, 'utf-8'));
150
+ const serialized = JSON.stringify(mainConfig, null, 4).split(repoRoot).join(worktreePath);
151
+ const wtConfig = JSON.parse(serialized);
152
+ if (wtConfig.mcpServers) {
153
+ for (const [name, server] of Object.entries(wtConfig.mcpServers)) {
154
+ if (name.startsWith('beacon-')) {
155
+ if (!server.env)
156
+ server.env = {};
157
+ server.env.DATABASE_URL = databaseUrl;
158
+ }
159
+ }
160
+ }
161
+ writeFileSync(wtMcpJsonPath, JSON.stringify(wtConfig, null, 4) + '\n');
162
+ console.log(green(` ✓ .mcp.json written`));
163
+ }
164
+ catch (err) {
165
+ console.log(yellow(` ⚠ .mcp.json generation failed: ${err.message}`));
166
+ }
167
+ }
168
+ // ── Step 6: .beacon-agent ─────────────────────────────────────────────────────
169
+ const beaconAgentPath = join(worktreePath, '.beacon-agent');
170
+ const existingAlias = existsSync(beaconAgentPath)
171
+ ? readFileSync(beaconAgentPath, 'utf-8').trim()
172
+ : null;
173
+ if (existingAlias !== alias) {
174
+ writeFileSync(beaconAgentPath, alias + '\n');
175
+ }
176
+ console.log(green(` ✓ .beacon-agent written`));
177
+ // ── Step 7: MCP binary verification ──────────────────────────────────────────
178
+ let mcpBinaryPath = null;
179
+ if (existsSync(wtMcpJsonPath)) {
180
+ try {
181
+ const wtConfig = JSON.parse(readFileSync(wtMcpJsonPath, 'utf-8'));
182
+ const beaconAgent = wtConfig.mcpServers?.['beacon-agent'];
183
+ if (beaconAgent?.args?.[0]) {
184
+ mcpBinaryPath = beaconAgent.args[0];
185
+ }
186
+ }
187
+ catch {
188
+ // ignore
189
+ }
190
+ }
191
+ if (!mcpBinaryPath) {
192
+ console.log(yellow(` ⚠ MCP binary path not found — skipping verification`));
193
+ }
194
+ else if (!existsSync(mcpBinaryPath)) {
195
+ console.log(yellow(` ⚠ MCP binary not found at ${mcpBinaryPath} — skipping verification`));
196
+ }
197
+ else {
198
+ try {
199
+ const proc = spawn('node', [mcpBinaryPath], {
200
+ cwd: worktreePath,
201
+ env: { ...process.env, DATABASE_URL: databaseUrl },
202
+ stdio: ['pipe', 'pipe', 'pipe'],
203
+ });
204
+ await new Promise((res) => setTimeout(res, 1000));
205
+ const alive = (() => {
206
+ try {
207
+ process.kill(proc.pid, 0);
208
+ return true;
209
+ }
210
+ catch {
211
+ return false;
212
+ }
213
+ })();
214
+ proc.kill();
215
+ if (alive) {
216
+ console.log(green(` ✓ beacon-agent MCP binary starts correctly`));
217
+ }
218
+ else {
219
+ console.log(yellow(` ⚠ MCP binary exited early — check build output`));
220
+ }
221
+ }
222
+ catch {
223
+ console.log(yellow(` ⚠ MCP binary verification failed`));
224
+ }
225
+ }
226
+ // ── Step 8: agent_setup via JSON-RPC (INV-7, INV-9, INV-10) ─────────────────
227
+ if (!mcpBinaryPath || !existsSync(mcpBinaryPath)) {
228
+ console.log(red(` ✗ Cannot register agent — MCP binary not available`));
229
+ process.exit(1);
230
+ }
231
+ try {
232
+ await new Promise((resolveP, reject) => {
233
+ const proc = spawn('node', [mcpBinaryPath], {
234
+ cwd: worktreePath,
235
+ env: { ...process.env, DATABASE_URL: databaseUrl },
236
+ stdio: ['pipe', 'pipe', 'inherit'],
237
+ });
238
+ let buffer = '';
239
+ let initReceived = false;
240
+ let sessionReceived = false;
241
+ let setupReceived = false;
242
+ proc.stdout.on('data', (chunk) => {
243
+ buffer += chunk.toString();
244
+ const lines = buffer.split('\n');
245
+ buffer = lines.pop() ?? '';
246
+ for (const line of lines) {
247
+ if (!line.trim())
248
+ continue;
249
+ let msg;
250
+ try {
251
+ msg = JSON.parse(line);
252
+ }
253
+ catch {
254
+ continue;
255
+ }
256
+ if (msg.id === 1 && !initReceived) {
257
+ initReceived = true;
258
+ proc.stdin.write(JSON.stringify({
259
+ jsonrpc: '2.0',
260
+ method: 'notifications/initialized',
261
+ params: {},
262
+ }) + '\n');
263
+ proc.stdin.write(JSON.stringify({
264
+ jsonrpc: '2.0',
265
+ id: 2,
266
+ method: 'tools/call',
267
+ params: {
268
+ name: 'session_start',
269
+ arguments: { project: projectSlug, alias },
270
+ },
271
+ }) + '\n');
272
+ }
273
+ else if (msg.id === 2 && !sessionReceived) {
274
+ sessionReceived = true;
275
+ if (msg.error) {
276
+ proc.kill();
277
+ reject(new Error(msg.error.message ?? 'session_start failed'));
278
+ return;
279
+ }
280
+ proc.stdin.write(JSON.stringify({
281
+ jsonrpc: '2.0',
282
+ id: 3,
283
+ method: 'tools/call',
284
+ params: {
285
+ name: 'agent_setup',
286
+ arguments: {
287
+ alias,
288
+ roles: [role],
289
+ ...(domains.length > 0 && { domains }),
290
+ ...(guardrails && { guardrails }),
291
+ },
292
+ },
293
+ }) + '\n');
294
+ }
295
+ else if (msg.id === 3 && !setupReceived) {
296
+ setupReceived = true;
297
+ proc.kill();
298
+ if (msg.error || msg.result?.isError) {
299
+ const errText = msg.error?.message ??
300
+ msg.result?.content?.[0]?.text ??
301
+ 'agent_setup failed';
302
+ reject(new Error(errText));
303
+ }
304
+ else {
305
+ resolveP();
306
+ }
307
+ }
308
+ }
309
+ });
310
+ proc.on('error', reject);
311
+ proc.on('close', (code) => {
312
+ if (!setupReceived) {
313
+ reject(new Error(`MCP process exited with code ${code} before agent_setup response`));
314
+ }
315
+ });
316
+ proc.stdin.write(JSON.stringify({
317
+ jsonrpc: '2.0',
318
+ id: 1,
319
+ method: 'initialize',
320
+ params: {
321
+ protocolVersion: '2024-11-05',
322
+ capabilities: {},
323
+ clientInfo: { name: 'setup-worktree', version: '1.0' },
324
+ },
325
+ }) + '\n');
326
+ setTimeout(() => {
327
+ proc.kill();
328
+ if (!setupReceived) {
329
+ reject(new Error('agent_setup timed out after 15s'));
330
+ }
331
+ }, 15000);
332
+ });
333
+ console.log(green(` ✓ agent registered: ${alias} (${role})`));
334
+ }
335
+ catch (err) {
336
+ console.log(red(` ✗ agent registration failed: ${err.message}`));
337
+ process.exit(1);
338
+ }
339
+ // ── Step 9: Generate Worker Identity in AGENTS.md (F78) ──────────────────────
340
+ const contextScript = join(dirname(fileURLToPath(import.meta.url)), 'context.js');
341
+ if (existsSync(contextScript)) {
342
+ try {
343
+ execSync(`node "${contextScript}" . --write --reset`, { cwd: worktreePath, stdio: 'pipe' });
344
+ console.log(green(` ✓ AGENTS.md written`));
345
+ }
346
+ catch {
347
+ console.log(yellow(` ⚠ context generation failed — run 'pnpm context --write' manually`));
348
+ }
349
+ }
350
+ else {
351
+ console.log(yellow(` ⚠ context.js not found — skipping context generation`));
352
+ }
353
+ // ── Step 10: Claude memory init ───────────────────────────────────────────────
354
+ const encodedPath = encodeURIComponent(worktreePath);
355
+ const memoryDir = join(homedir(), '.claude', 'projects', encodedPath, 'memory');
356
+ try {
357
+ mkdirSync(memoryDir, { recursive: true });
358
+ const memoryMdPath = join(memoryDir, 'MEMORY.md');
359
+ const memoryStub = [
360
+ '---',
361
+ 'name: Memory Index',
362
+ 'description: Agent memory is DB-managed. Use memory_upsert tool.',
363
+ 'type: user',
364
+ '---',
365
+ '',
366
+ "This agent's memory is stored in the database and loaded automatically",
367
+ 'by session_start. Do not write memory files here manually.',
368
+ '',
369
+ 'Use the `memory_upsert` MCP tool to save learnings.',
370
+ '',
371
+ ].join('\n');
372
+ writeFileSync(memoryMdPath, memoryStub);
373
+ const files = readdirSync(memoryDir);
374
+ let cleaned = 0;
375
+ for (const file of files) {
376
+ if (file !== 'MEMORY.md') {
377
+ unlinkSync(join(memoryDir, file));
378
+ cleaned++;
379
+ }
380
+ }
381
+ const msg = cleaned > 0
382
+ ? ` ✓ Claude memory stub written, ${cleaned} legacy file(s) removed`
383
+ : ` ✓ Claude memory stub written`;
384
+ console.log(green(msg));
385
+ }
386
+ catch (err) {
387
+ console.log(yellow(` ⚠ Claude memory init failed: ${err instanceof Error ? err.message : String(err)}`));
388
+ }
389
+ // ── Done ──────────────────────────────────────────────────────────────────────
390
+ console.log(bold(`\n === Done ===\n`));
391
+ console.log(` Next steps:`);
392
+ console.log(` 1. Open VS Code in: ${bold(worktreePath)}`);
393
+ console.log(` 2. First session: ${dim(`session_start`)} ${dim(`(alias=${alias} pre-registered)`)}`);
394
+ console.log(` ${dim('→ agent already in DB — cwd-affinity picks up alias automatically')}`);
395
+ console.log();
396
+ //# sourceMappingURL=setup-worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-worktree.js","sourceRoot":"","sources":["../../src/cli/setup-worktree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * beacon-cli update-client — @beacon-build/sdk
4
+ *
5
+ * Sync MCP packages + context for one or all registered client workspaces.
6
+ * Replaces ops/scripts/mcp/sync-all.mjs.
7
+ *
8
+ * Usage:
9
+ * beacon-cli update-client <path|slug> # single workspace
10
+ * beacon-cli update-client all # all active projects in DB
11
+ * beacon-cli update-client all --push # also commit + push
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=update-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-client.d.ts","sourceRoot":"","sources":["../../src/cli/update-client.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}