@beacon-build/sdk 1.15.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 (72) hide show
  1. package/dist/clients/agent/tasks.client.d.ts.map +1 -1
  2. package/dist/clients/agent/tasks.client.js +12 -4
  3. package/dist/clients/agent/tasks.client.js.map +1 -1
  4. package/dist/clients/ops/thread-messaging.client.d.ts +87 -0
  5. package/dist/clients/ops/thread-messaging.client.d.ts.map +1 -0
  6. package/dist/clients/ops/thread-messaging.client.js +85 -0
  7. package/dist/clients/ops/thread-messaging.client.js.map +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/transport/ops-api-client.d.ts +7 -1
  13. package/dist/transport/ops-api-client.d.ts.map +1 -1
  14. package/dist/transport/ops-api-client.js +11 -6
  15. package/dist/transport/ops-api-client.js.map +1 -1
  16. package/package.json +31 -31
  17. package/dist/cli/backlog.d.ts +0 -14
  18. package/dist/cli/backlog.d.ts.map +0 -1
  19. package/dist/cli/backlog.js +0 -228
  20. package/dist/cli/backlog.js.map +0 -1
  21. package/dist/cli/claude-md-check.d.ts +0 -18
  22. package/dist/cli/claude-md-check.d.ts.map +0 -1
  23. package/dist/cli/claude-md-check.js +0 -57
  24. package/dist/cli/claude-md-check.js.map +0 -1
  25. package/dist/cli/context.d.ts +0 -14
  26. package/dist/cli/context.d.ts.map +0 -1
  27. package/dist/cli/context.js +0 -465
  28. package/dist/cli/context.js.map +0 -1
  29. package/dist/cli/help.d.ts +0 -17
  30. package/dist/cli/help.d.ts.map +0 -1
  31. package/dist/cli/help.js +0 -71
  32. package/dist/cli/help.js.map +0 -1
  33. package/dist/cli/index.d.ts +0 -22
  34. package/dist/cli/index.d.ts.map +0 -1
  35. package/dist/cli/index.js +0 -212
  36. package/dist/cli/index.js.map +0 -1
  37. package/dist/cli/project-log.d.ts +0 -16
  38. package/dist/cli/project-log.d.ts.map +0 -1
  39. package/dist/cli/project-log.js +0 -185
  40. package/dist/cli/project-log.js.map +0 -1
  41. package/dist/cli/setup-worktree.d.ts +0 -23
  42. package/dist/cli/setup-worktree.d.ts.map +0 -1
  43. package/dist/cli/setup-worktree.js +0 -396
  44. package/dist/cli/setup-worktree.js.map +0 -1
  45. package/dist/cli/update-client.d.ts +0 -14
  46. package/dist/cli/update-client.d.ts.map +0 -1
  47. package/dist/cli/update-client.js +0 -629
  48. package/dist/cli/update-client.js.map +0 -1
  49. package/dist/cli/workflow-sync.d.ts +0 -19
  50. package/dist/cli/workflow-sync.d.ts.map +0 -1
  51. package/dist/cli/workflow-sync.js +0 -133
  52. package/dist/cli/workflow-sync.js.map +0 -1
  53. package/dist/lib/context.d.ts +0 -69
  54. package/dist/lib/context.d.ts.map +0 -1
  55. package/dist/lib/context.js +0 -225
  56. package/dist/lib/context.js.map +0 -1
  57. package/dist/lib/db.d.ts +0 -16
  58. package/dist/lib/db.d.ts.map +0 -1
  59. package/dist/lib/db.js +0 -50
  60. package/dist/lib/db.js.map +0 -1
  61. package/dist/lib/logger.d.ts +0 -14
  62. package/dist/lib/logger.d.ts.map +0 -1
  63. package/dist/lib/logger.js +0 -14
  64. package/dist/lib/logger.js.map +0 -1
  65. package/dist/lib/opencode.d.ts +0 -33
  66. package/dist/lib/opencode.d.ts.map +0 -1
  67. package/dist/lib/opencode.js +0 -101
  68. package/dist/lib/opencode.js.map +0 -1
  69. package/dist/lib/utils.d.ts +0 -18
  70. package/dist/lib/utils.d.ts.map +0 -1
  71. package/dist/lib/utils.js +0 -40
  72. package/dist/lib/utils.js.map +0 -1
@@ -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"}