@beacon-build/sdk 1.16.0 → 1.16.1

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 (57) hide show
  1. package/package.json +3 -3
  2. package/dist/cli/backlog.d.ts +0 -14
  3. package/dist/cli/backlog.d.ts.map +0 -1
  4. package/dist/cli/backlog.js +0 -228
  5. package/dist/cli/backlog.js.map +0 -1
  6. package/dist/cli/claude-md-check.d.ts +0 -18
  7. package/dist/cli/claude-md-check.d.ts.map +0 -1
  8. package/dist/cli/claude-md-check.js +0 -57
  9. package/dist/cli/claude-md-check.js.map +0 -1
  10. package/dist/cli/context.d.ts +0 -14
  11. package/dist/cli/context.d.ts.map +0 -1
  12. package/dist/cli/context.js +0 -465
  13. package/dist/cli/context.js.map +0 -1
  14. package/dist/cli/help.d.ts +0 -17
  15. package/dist/cli/help.d.ts.map +0 -1
  16. package/dist/cli/help.js +0 -71
  17. package/dist/cli/help.js.map +0 -1
  18. package/dist/cli/index.d.ts +0 -22
  19. package/dist/cli/index.d.ts.map +0 -1
  20. package/dist/cli/index.js +0 -212
  21. package/dist/cli/index.js.map +0 -1
  22. package/dist/cli/project-log.d.ts +0 -16
  23. package/dist/cli/project-log.d.ts.map +0 -1
  24. package/dist/cli/project-log.js +0 -185
  25. package/dist/cli/project-log.js.map +0 -1
  26. package/dist/cli/setup-worktree.d.ts +0 -23
  27. package/dist/cli/setup-worktree.d.ts.map +0 -1
  28. package/dist/cli/setup-worktree.js +0 -396
  29. package/dist/cli/setup-worktree.js.map +0 -1
  30. package/dist/cli/update-client.d.ts +0 -14
  31. package/dist/cli/update-client.d.ts.map +0 -1
  32. package/dist/cli/update-client.js +0 -629
  33. package/dist/cli/update-client.js.map +0 -1
  34. package/dist/cli/workflow-sync.d.ts +0 -19
  35. package/dist/cli/workflow-sync.d.ts.map +0 -1
  36. package/dist/cli/workflow-sync.js +0 -133
  37. package/dist/cli/workflow-sync.js.map +0 -1
  38. package/dist/lib/context.d.ts +0 -69
  39. package/dist/lib/context.d.ts.map +0 -1
  40. package/dist/lib/context.js +0 -225
  41. package/dist/lib/context.js.map +0 -1
  42. package/dist/lib/db.d.ts +0 -16
  43. package/dist/lib/db.d.ts.map +0 -1
  44. package/dist/lib/db.js +0 -50
  45. package/dist/lib/db.js.map +0 -1
  46. package/dist/lib/logger.d.ts +0 -14
  47. package/dist/lib/logger.d.ts.map +0 -1
  48. package/dist/lib/logger.js +0 -14
  49. package/dist/lib/logger.js.map +0 -1
  50. package/dist/lib/opencode.d.ts +0 -33
  51. package/dist/lib/opencode.d.ts.map +0 -1
  52. package/dist/lib/opencode.js +0 -101
  53. package/dist/lib/opencode.js.map +0 -1
  54. package/dist/lib/utils.d.ts +0 -18
  55. package/dist/lib/utils.d.ts.map +0 -1
  56. package/dist/lib/utils.js +0 -40
  57. package/dist/lib/utils.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beacon-build/sdk",
3
- "version": "1.16.0",
3
+ "version": "1.16.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,9 +11,9 @@
11
11
  "CHANGELOG.md"
12
12
  ],
13
13
  "dependencies": {
14
+ "@beacon-build/core": "1.16.1",
14
15
  "@types/event-source-polyfill": "^1.0.5",
15
- "event-source-polyfill": "^1.0.31",
16
- "@beacon-build/core": "1.16.0"
16
+ "event-source-polyfill": "^1.0.31"
17
17
  },
18
18
  "devDependencies": {
19
19
  "vitest": "^4.1.2"
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * beacon-backlog — @beacon-build/sdk
4
- *
5
- * Generates a backlog.md from the tasks table in PostgreSQL.
6
- * Supports arbitrary nesting: FeatureSet -> Feature/Task.
7
- * Renders time totals per group from result.time_h.
8
- *
9
- * Usage:
10
- * beacon-backlog <project> # print to stdout
11
- * beacon-backlog <project> --write # write to <project>/docs/backlog.md
12
- */
13
- export {};
14
- //# sourceMappingURL=backlog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/cli/backlog.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
@@ -1,228 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * beacon-backlog — @beacon-build/sdk
4
- *
5
- * Generates a backlog.md from the tasks table in PostgreSQL.
6
- * Supports arbitrary nesting: FeatureSet -> Feature/Task.
7
- * Renders time totals per group from result.time_h.
8
- *
9
- * Usage:
10
- * beacon-backlog <project> # print to stdout
11
- * beacon-backlog <project> --write # write to <project>/docs/backlog.md
12
- */
13
- import { Pool } from 'pg';
14
- import { writeFileSync, readFileSync, existsSync } from 'node:fs';
15
- import { resolve } from 'node:path';
16
- import { parse } from 'yaml';
17
- import { getDatabaseUrl } from '../lib/db.js';
18
- import { createCliLogger } from '../lib/logger.js';
19
- const log = createCliLogger('backlog');
20
- // ─── CLI ────────────────────────────────────────────────────────────────────
21
- const args = process.argv.slice(2).filter((a) => !a.startsWith('-'));
22
- const flags = process.argv.slice(2).filter((a) => a.startsWith('-'));
23
- const project = args[0];
24
- const doWrite = flags.includes('--write');
25
- if (!project) {
26
- log.error('missing required argument', { usage: 'beacon-cli backlog <project> [--write]' });
27
- process.exit(1);
28
- }
29
- // ─── Query ──────────────────────────────────────────────────────────────────
30
- const pool = new Pool({ connectionString: getDatabaseUrl() });
31
- const { rows: tasks } = await pool.query(`SELECT id, ref, title, description, type AS task_type, status, priority, size, parent_id, depends_on, result
32
- FROM tasks
33
- WHERE project = $1
34
- ORDER BY ref ASC`, [project]);
35
- await pool.end();
36
- if (!tasks.length) {
37
- log.warn('no tasks found', { project });
38
- process.exit(1);
39
- }
40
- // ─── Helpers ────────────────────────────────────────────────────────────────
41
- const taskById = new Map(tasks.map((t) => [t.id, t]));
42
- function sortByTaskId(list) {
43
- return list.sort((a, b) => {
44
- const na = parseInt((a.ref ?? '').replace(/\D+/g, ''), 10) || 0;
45
- const nb = parseInt((b.ref ?? '').replace(/\D+/g, ''), 10) || 0;
46
- return na - nb;
47
- });
48
- }
49
- function sortByPrioDesc(list) {
50
- return list.sort((a, b) => {
51
- if (b.priority !== a.priority)
52
- return b.priority - a.priority;
53
- const na = parseInt((a.ref ?? '').replace(/\D+/g, ''), 10) || 0;
54
- const nb = parseInt((b.ref ?? '').replace(/\D+/g, ''), 10) || 0;
55
- return na - nb;
56
- });
57
- }
58
- // ─── Build tree ─────────────────────────────────────────────────────────────
59
- const childrenByParent = new Map();
60
- for (const t of tasks) {
61
- if (t.parent_id) {
62
- if (!childrenByParent.has(t.parent_id))
63
- childrenByParent.set(t.parent_id, []);
64
- childrenByParent.get(t.parent_id).push(t);
65
- }
66
- }
67
- const rootFeatureSets = sortByTaskId(tasks.filter((t) => !t.parent_id && t.task_type === 'featureSet'));
68
- const topLevel = sortByTaskId(tasks.filter((t) => !t.parent_id && t.task_type !== 'featureSet'));
69
- // ─── Recursive time sum ─────────────────────────────────────────────────────
70
- function sumTimeH(taskId) {
71
- const children = childrenByParent.get(taskId) ?? [];
72
- let total = 0;
73
- for (const child of children) {
74
- total += child.result?.time_h ?? 0;
75
- if (child.task_type === 'featureSet') {
76
- total += sumTimeH(child.id);
77
- }
78
- }
79
- return total;
80
- }
81
- // ─── Format ─────────────────────────────────────────────────────────────────
82
- const STATUS_ICON = {
83
- queued: '\u2B1A',
84
- in_progress: '\u25B6',
85
- done: '\u2713',
86
- failed: '\u2717',
87
- cancelled: '\u2014',
88
- };
89
- const PRIORITY_LABEL = {
90
- 0: '',
91
- 10: '\u2605',
92
- 20: '\u2605\u2605',
93
- 50: '\uD83D\uDD25',
94
- };
95
- function formatTask(t, indent = '') {
96
- const icon = STATUS_ICON[t.status] ?? '?';
97
- const prio = PRIORITY_LABEL[t.priority] ?? (t.priority > 0 ? `p${t.priority}` : '');
98
- const size = t.size ? `[${t.size}]` : '';
99
- const type = !['feature', 'featureSet'].includes(t.task_type) ? `(${t.task_type})` : '';
100
- const depsArr = Array.isArray(t.depends_on)
101
- ? t.depends_on
102
- : typeof t.depends_on === 'string'
103
- ? JSON.parse(t.depends_on)
104
- : [];
105
- const deps = depsArr.map((id) => taskById.get(id)?.ref ?? id.slice(0, 8)).join(', ');
106
- const id = t.ref ?? t.id.slice(0, 8);
107
- const parts = [`${indent}- [${icon}] **${id}** ${t.title}`];
108
- if (size)
109
- parts.push(size);
110
- if (prio)
111
- parts.push(prio);
112
- if (type)
113
- parts.push(type);
114
- if (deps)
115
- parts.push(`\u2190 ${deps}`);
116
- return parts.join(' ');
117
- }
118
- // ─── Recursive renderer for featureSets ─────────────────────────────────────
119
- function renderFeatureSet(fs, depth = 0) {
120
- const result = [];
121
- const icon = STATUS_ICON[fs.status] ?? '?';
122
- const headerPrefix = '#'.repeat(3 + depth);
123
- const timeH = sumTimeH(fs.id);
124
- const timeSuffix = timeH > 0 ? ` (${timeH.toFixed(1)}h)` : '';
125
- result.push(`${headerPrefix} ${fs.ref}: ${fs.title} [${icon}]${timeSuffix}`);
126
- if (fs.description)
127
- result.push(`> ${fs.description}`);
128
- result.push('');
129
- const children = sortByTaskId(childrenByParent.get(fs.id) ?? []);
130
- const childFeatureSets = children.filter((c) => c.task_type === 'featureSet');
131
- const childTasks = children.filter((c) => c.task_type !== 'featureSet');
132
- const indent = ' '.repeat(depth);
133
- if (childTasks.length) {
134
- for (const child of childTasks) {
135
- result.push(formatTask(child, indent));
136
- }
137
- result.push('');
138
- }
139
- for (const childFs of childFeatureSets) {
140
- result.push(...renderFeatureSet(childFs, depth + 1));
141
- }
142
- return result;
143
- }
144
- // ─── Collect all open items ─────────────────────────────────────────────────
145
- const allOpen = sortByPrioDesc(tasks.filter((t) => t.task_type !== 'featureSet' && (t.status === 'queued' || t.status === 'in_progress')));
146
- // ─── Build output ──────────────────────────────────────────────────────────
147
- const lines = [];
148
- lines.push(`# ${project} \u2014 Backlog`);
149
- lines.push('');
150
- lines.push(`> Generated from tasks DB on ${new Date().toISOString().slice(0, 10)}`);
151
- lines.push('');
152
- if (allOpen.length) {
153
- lines.push('## Up Next');
154
- lines.push('');
155
- for (const t of allOpen) {
156
- const parent = t.parent_id ? taskById.get(t.parent_id) : null;
157
- const parentRef = parent ? ` \u00B7 ${parent.ref}` : '';
158
- lines.push(formatTask(t) + parentRef);
159
- }
160
- lines.push('');
161
- }
162
- if (rootFeatureSets.length) {
163
- lines.push('## Feature Sets');
164
- lines.push('');
165
- for (const fs of rootFeatureSets) {
166
- lines.push(...renderFeatureSet(fs));
167
- }
168
- }
169
- const queued = topLevel.filter((t) => t.status === 'queued' || t.status === 'in_progress');
170
- const done = topLevel.filter((t) => t.status === 'done');
171
- const rest = topLevel.filter((t) => !['queued', 'in_progress', 'done'].includes(t.status));
172
- if (queued.length) {
173
- lines.push('## Open');
174
- lines.push('');
175
- for (const t of queued)
176
- lines.push(formatTask(t));
177
- lines.push('');
178
- }
179
- if (rest.length) {
180
- lines.push('## Other');
181
- lines.push('');
182
- for (const t of rest)
183
- lines.push(formatTask(t));
184
- lines.push('');
185
- }
186
- if (done.length) {
187
- lines.push('<details>');
188
- lines.push('<summary>Done (' + done.length + ')</summary>');
189
- lines.push('');
190
- for (const t of done)
191
- lines.push(formatTask(t));
192
- lines.push('');
193
- lines.push('</details>');
194
- lines.push('');
195
- }
196
- // ─── Output ─────────────────────────────────────────────────────────────────
197
- const output = lines.join('\n');
198
- if (doWrite) {
199
- let root = process.cwd();
200
- const home = process.env.HOME ?? process.env.USERPROFILE ?? '';
201
- const candidates = [
202
- resolve(home, '.beacon-platform', 'projects.yaml'),
203
- resolve(process.cwd(), 'servers', 'beacon-agent', 'projects.yaml'),
204
- ];
205
- for (const yamlPath of candidates) {
206
- if (!existsSync(yamlPath))
207
- continue;
208
- const doc = parse(readFileSync(yamlPath, 'utf-8'));
209
- const entry = doc?.projects?.[project];
210
- if (entry?.path) {
211
- root = entry.path;
212
- break;
213
- }
214
- }
215
- const outPath = resolve(root, 'docs', 'backlog.md');
216
- const newContent = output + '\n';
217
- if (existsSync(outPath) && readFileSync(outPath, 'utf-8') === newContent) {
218
- log.info('skipped (unchanged)', { path: outPath });
219
- }
220
- else {
221
- writeFileSync(outPath, newContent);
222
- log.info('written', { path: outPath });
223
- }
224
- }
225
- else {
226
- console.log(output);
227
- }
228
- //# sourceMappingURL=backlog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/cli/backlog.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * beacon-claude-md-check — @beacon-build/sdk
4
- *
5
- * Validates CLAUDE.md auto-triggers against practice files.
6
- * Checks that every practice doc in docs/constitution/practices/ has a
7
- * corresponding entry in the CLAUDE.md auto-trigger table.
8
- *
9
- * Usage:
10
- * beacon-claude-md-check [project-root] # defaults to cwd
11
- *
12
- * Exit codes:
13
- * 0 — all checks passed
14
- * 1 — gaps found
15
- * 2 — CLAUDE.md or practices dir not found
16
- */
17
- export {};
18
- //# sourceMappingURL=claude-md-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-md-check.d.ts","sourceRoot":"","sources":["../../src/cli/claude-md-check.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * beacon-claude-md-check — @beacon-build/sdk
4
- *
5
- * Validates CLAUDE.md auto-triggers against practice files.
6
- * Checks that every practice doc in docs/constitution/practices/ has a
7
- * corresponding entry in the CLAUDE.md auto-trigger table.
8
- *
9
- * Usage:
10
- * beacon-claude-md-check [project-root] # defaults to cwd
11
- *
12
- * Exit codes:
13
- * 0 — all checks passed
14
- * 1 — gaps found
15
- * 2 — CLAUDE.md or practices dir not found
16
- */
17
- import { existsSync, readdirSync, readFileSync } from 'node:fs';
18
- import { join } from 'node:path';
19
- import { createCliLogger } from '../lib/logger.js';
20
- const log = createCliLogger('claude-md-check');
21
- const projectRoot = process.argv[2] ?? process.cwd();
22
- const claudeMd = join(projectRoot, 'CLAUDE.md');
23
- const practicesDir = join(projectRoot, 'docs', 'constitution', 'practices');
24
- if (!existsSync(claudeMd)) {
25
- log.error('CLAUDE.md not found', { path: claudeMd });
26
- process.exit(2);
27
- }
28
- if (!existsSync(practicesDir)) {
29
- log.error('practices directory not found', { path: practicesDir });
30
- process.exit(2);
31
- }
32
- const practiceFiles = readdirSync(practicesDir)
33
- .filter((f) => f.endsWith('.md') && f !== 'README.md')
34
- .map((f) => f.replace('.md', ''));
35
- const claudeContent = readFileSync(claudeMd, 'utf-8');
36
- const referencedPractices = new Set();
37
- const practiceRefPattern = /practices\/([a-z0-9_-]+)\.md/gi;
38
- let match;
39
- while ((match = practiceRefPattern.exec(claudeContent)) !== null) {
40
- referencedPractices.add(match[1]);
41
- }
42
- const missing = practiceFiles.filter((p) => !referencedPractices.has(p));
43
- const stale = [...referencedPractices].filter((p) => !practiceFiles.includes(p));
44
- let hasErrors = false;
45
- if (missing.length > 0) {
46
- log.error('practices missing from CLAUDE.md auto-triggers', { missing });
47
- hasErrors = true;
48
- }
49
- if (stale.length > 0) {
50
- log.warn('CLAUDE.md references practices that no longer exist', { stale });
51
- hasErrors = true;
52
- }
53
- if (!hasErrors) {
54
- log.info('all auto-triggers complete', { practices: practiceFiles.length });
55
- }
56
- process.exit(hasErrors ? 1 : 0);
57
- //# sourceMappingURL=claude-md-check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-md-check.js","sourceRoot":"","sources":["../../src/cli/claude-md-check.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * beacon-context — @beacon-build/sdk (F161)
4
- *
5
- * Generates context sections split across two files:
6
- * AGENTS.md — system-agnostic sections: worker, context, monorepo, code-repo
7
- * CLAUDE.md — Claude Code-specific: triggers; @AGENTS.md import
8
- *
9
- * Usage:
10
- * beacon-context <project> # print to stdout
11
- * beacon-context <project> --write # write both files
12
- */
13
- export {};
14
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cli/context.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}