@decibelsystems/tools 2.1.3 → 2.2.0-beta.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 (55) hide show
  1. package/README.md +144 -63
  2. package/dist/daemonConfig.d.ts +6 -0
  3. package/dist/daemonConfig.d.ts.map +1 -1
  4. package/dist/daemonConfig.js +15 -2
  5. package/dist/daemonConfig.js.map +1 -1
  6. package/dist/facades/definitions.d.ts.map +1 -1
  7. package/dist/facades/definitions.js +15 -0
  8. package/dist/facades/definitions.js.map +1 -1
  9. package/dist/httpServer.d.ts.map +1 -1
  10. package/dist/httpServer.js +76 -2
  11. package/dist/httpServer.js.map +1 -1
  12. package/dist/kernel.d.ts +9 -0
  13. package/dist/kernel.d.ts.map +1 -1
  14. package/dist/kernel.js +56 -6
  15. package/dist/kernel.js.map +1 -1
  16. package/dist/license.js +3 -3
  17. package/dist/license.js.map +1 -1
  18. package/dist/projectRegistry.d.ts +65 -3
  19. package/dist/projectRegistry.d.ts.map +1 -1
  20. package/dist/projectRegistry.js +222 -33
  21. package/dist/projectRegistry.js.map +1 -1
  22. package/dist/sentinelIssues.d.ts.map +1 -1
  23. package/dist/sentinelIssues.js +40 -14
  24. package/dist/sentinelIssues.js.map +1 -1
  25. package/dist/server.js +6 -0
  26. package/dist/server.js.map +1 -1
  27. package/dist/setup.d.ts +83 -0
  28. package/dist/setup.d.ts.map +1 -0
  29. package/dist/setup.js +445 -0
  30. package/dist/setup.js.map +1 -0
  31. package/dist/store/markdown.d.ts +14 -1
  32. package/dist/store/markdown.d.ts.map +1 -1
  33. package/dist/store/markdown.js +36 -3
  34. package/dist/store/markdown.js.map +1 -1
  35. package/dist/tools/conductor/index.d.ts +9 -0
  36. package/dist/tools/conductor/index.d.ts.map +1 -0
  37. package/dist/tools/conductor/index.js +242 -0
  38. package/dist/tools/conductor/index.js.map +1 -0
  39. package/dist/tools/dojoPolicy.js +1 -1
  40. package/dist/tools/dojoPolicy.js.map +1 -1
  41. package/dist/tools/guardian.d.ts +29 -7
  42. package/dist/tools/guardian.d.ts.map +1 -1
  43. package/dist/tools/guardian.js +84 -73
  44. package/dist/tools/guardian.js.map +1 -1
  45. package/dist/tools/index.d.ts.map +1 -1
  46. package/dist/tools/index.js +2 -0
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/registry/index.d.ts.map +1 -1
  49. package/dist/tools/registry/index.js +41 -12
  50. package/dist/tools/registry/index.js.map +1 -1
  51. package/dist/tools/sentinel.d.ts +15 -0
  52. package/dist/tools/sentinel.d.ts.map +1 -1
  53. package/dist/tools/sentinel.js +280 -74
  54. package/dist/tools/sentinel.js.map +1 -1
  55. package/package.json +1 -1
package/dist/setup.js ADDED
@@ -0,0 +1,445 @@
1
+ // ============================================================================
2
+ // Setup Wizard — one-command multi-client install (EPIC-0035 Phase 1)
3
+ // ============================================================================
4
+ // Detects installed AI clients and writes the Decibel MCP server entry into
5
+ // each client's config file, idempotently and without clobbering anything the
6
+ // user already had there.
7
+ //
8
+ // npx @decibelsystems/tools setup
9
+ // npx @decibelsystems/tools setup --dry-run
10
+ // npx @decibelsystems/tools setup --yes --clients desktop,cursor
11
+ // npx @decibelsystems/tools setup --license DCB-... --daemon
12
+ //
13
+ // Design notes:
14
+ // - Every write is preceded by a timestamped backup of the original file.
15
+ // - A config we cannot parse is never overwritten — we skip and report.
16
+ // - Claude Desktop on macOS gets the `/bin/zsh -lc` wrapper because Desktop
17
+ // launches with a stripped PATH and cannot find a bare `npx`.
18
+ // ============================================================================
19
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync } from 'fs';
20
+ import { join, dirname } from 'path';
21
+ import { homedir, platform as osPlatform } from 'os';
22
+ import { spawn } from 'child_process';
23
+ import { createInterface } from 'readline/promises';
24
+ const PACKAGE_SPEC = '@decibelsystems/tools';
25
+ const SERVER_KEY = 'decibel-tools';
26
+ // ============================================================================
27
+ // Client Detection
28
+ // ============================================================================
29
+ /**
30
+ * Resolve the config path for each supported client on this platform.
31
+ * `detected` means the client's own directory exists — i.e. it has been run
32
+ * at least once — not that Decibel is already configured.
33
+ */
34
+ export function detectClients(opts = {}) {
35
+ const home = opts.home ?? homedir();
36
+ const platform = opts.platform ?? osPlatform();
37
+ const isMac = platform === 'darwin';
38
+ const isWin = platform === 'win32';
39
+ const desktopDir = isMac
40
+ ? join(home, 'Library', 'Application Support', 'Claude')
41
+ : isWin
42
+ ? join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), 'Claude')
43
+ : join(home, '.config', 'Claude');
44
+ // Claude Code keeps global MCP servers in ~/.claude.json — NOT in
45
+ // ~/.claude/settings.json, which holds model/hooks/plugins. Writing to
46
+ // settings.json produces a config Claude Code silently ignores.
47
+ const claudeCodeConfig = join(home, '.claude.json');
48
+ const claudeCodeDir = join(home, '.claude');
49
+ const cursorDir = join(home, '.cursor');
50
+ return [
51
+ {
52
+ id: 'claude-desktop',
53
+ label: 'Claude Desktop',
54
+ configPath: join(desktopDir, 'claude_desktop_config.json'),
55
+ detected: existsSync(desktopDir),
56
+ useLoginShell: isMac,
57
+ },
58
+ {
59
+ id: 'claude-code',
60
+ label: 'Claude Code',
61
+ configPath: claudeCodeConfig,
62
+ detected: existsSync(claudeCodeConfig) || existsSync(claudeCodeDir),
63
+ useLoginShell: false,
64
+ },
65
+ {
66
+ id: 'cursor',
67
+ label: 'Cursor',
68
+ configPath: join(cursorDir, 'mcp.json'),
69
+ detected: existsSync(cursorDir),
70
+ useLoginShell: false,
71
+ },
72
+ ];
73
+ }
74
+ /**
75
+ * The MCP server block to write. Desktop on macOS gets the login-shell
76
+ * wrapper; everything else invokes npx directly.
77
+ */
78
+ export function buildServerEntry(client) {
79
+ if (client.useLoginShell) {
80
+ return { command: '/bin/zsh', args: ['-lc', `npx -y ${PACKAGE_SPEC}`] };
81
+ }
82
+ return { command: 'npx', args: ['-y', PACKAGE_SPEC] };
83
+ }
84
+ // ============================================================================
85
+ // Idempotent Merge
86
+ // ============================================================================
87
+ /**
88
+ * Merge the Decibel server entry into an existing config document.
89
+ *
90
+ * Preserves every other top-level key (Claude Desktop keeps a `preferences`
91
+ * blob next to `mcpServers`) and every other configured MCP server. Returns
92
+ * `unchanged` when the entry already matches, so re-running is a no-op.
93
+ *
94
+ * Throws if `raw` is non-empty and not valid JSON — the caller skips rather
95
+ * than destroying a file it does not understand.
96
+ */
97
+ export function mergeConfig(raw, entry) {
98
+ const isNew = raw === null || raw.trim() === '';
99
+ let doc;
100
+ if (isNew) {
101
+ doc = {};
102
+ }
103
+ else {
104
+ const parsed = JSON.parse(raw);
105
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
106
+ throw new Error('config root is not a JSON object');
107
+ }
108
+ doc = parsed;
109
+ }
110
+ const existingServers = doc.mcpServers;
111
+ const servers = existingServers && typeof existingServers === 'object' && !Array.isArray(existingServers)
112
+ ? { ...existingServers }
113
+ : {};
114
+ const had = Object.prototype.hasOwnProperty.call(servers, SERVER_KEY);
115
+ const same = had && JSON.stringify(servers[SERVER_KEY]) === JSON.stringify(entry);
116
+ if (same) {
117
+ return { action: 'unchanged', content: serialize(doc) };
118
+ }
119
+ servers[SERVER_KEY] = entry;
120
+ const next = { ...doc, mcpServers: servers };
121
+ return {
122
+ action: isNew ? 'created' : had ? 'updated' : 'added',
123
+ content: serialize(next),
124
+ };
125
+ }
126
+ function serialize(doc) {
127
+ return JSON.stringify(doc, null, 2) + '\n';
128
+ }
129
+ // ============================================================================
130
+ // Apply
131
+ // ============================================================================
132
+ /**
133
+ * Write the merged config for one client, backing up the original first.
134
+ * `dryRun` computes the action without touching disk.
135
+ */
136
+ export function applyToClient(client, opts = {}) {
137
+ const entry = buildServerEntry(client);
138
+ const exists = existsSync(client.configPath);
139
+ let raw = null;
140
+ if (exists) {
141
+ try {
142
+ raw = readFileSync(client.configPath, 'utf-8');
143
+ }
144
+ catch (err) {
145
+ return { client, action: 'skipped', error: `cannot read config: ${errText(err)}` };
146
+ }
147
+ }
148
+ let merged;
149
+ try {
150
+ merged = mergeConfig(raw, entry);
151
+ }
152
+ catch (err) {
153
+ return {
154
+ client,
155
+ action: 'skipped',
156
+ error: `existing config is not valid JSON (${errText(err)}) — left untouched, fix it by hand and re-run`,
157
+ };
158
+ }
159
+ if (merged.action === 'unchanged' || opts.dryRun) {
160
+ return { client, action: merged.action };
161
+ }
162
+ let backupPath;
163
+ try {
164
+ if (exists && raw !== null && raw.trim() !== '') {
165
+ backupPath = `${client.configPath}.decibel-backup-${timestamp()}`;
166
+ copyFileSync(client.configPath, backupPath);
167
+ }
168
+ mkdirSync(dirname(client.configPath), { recursive: true });
169
+ writeFileSync(client.configPath, merged.content, 'utf-8');
170
+ }
171
+ catch (err) {
172
+ return { client, action: 'skipped', backupPath, error: `write failed: ${errText(err)}` };
173
+ }
174
+ return { client, action: merged.action, backupPath };
175
+ }
176
+ function timestamp() {
177
+ return new Date().toISOString().replace(/[:.]/g, '-');
178
+ }
179
+ function errText(err) {
180
+ return err instanceof Error ? err.message : String(err);
181
+ }
182
+ /**
183
+ * Spawn the server exactly as a client would and run initialize + tools/list.
184
+ * This is the difference between "we wrote a file" and "it actually works".
185
+ */
186
+ export function verifyServer(entry, timeoutMs = 90_000) {
187
+ return new Promise((resolve) => {
188
+ let child;
189
+ try {
190
+ child = spawn(entry.command, entry.args, { stdio: ['pipe', 'pipe', 'pipe'] });
191
+ }
192
+ catch (err) {
193
+ resolve({ ok: false, error: `spawn failed: ${errText(err)}` });
194
+ return;
195
+ }
196
+ let settled = false;
197
+ let buffer = '';
198
+ let stderr = '';
199
+ let serverName;
200
+ const finish = (result) => {
201
+ if (settled)
202
+ return;
203
+ settled = true;
204
+ clearTimeout(timer);
205
+ child.kill();
206
+ resolve(result);
207
+ };
208
+ const timer = setTimeout(() => {
209
+ finish({
210
+ ok: false,
211
+ error: `timed out after ${Math.round(timeoutMs / 1000)}s${stderr ? ` — ${stderr.trim().split('\n').pop()}` : ''}`,
212
+ });
213
+ }, timeoutMs);
214
+ const send = (msg) => child.stdin?.write(JSON.stringify(msg) + '\n');
215
+ child.stderr?.on('data', (chunk) => { stderr += chunk.toString(); });
216
+ child.on('error', (err) => finish({ ok: false, error: `spawn failed: ${errText(err)}` }));
217
+ child.on('exit', (code) => {
218
+ finish({
219
+ ok: false,
220
+ error: `server exited early (code ${code})${stderr ? ` — ${stderr.trim().split('\n').pop()}` : ''}`,
221
+ });
222
+ });
223
+ child.stdout?.on('data', (chunk) => {
224
+ buffer += chunk.toString();
225
+ const lines = buffer.split('\n');
226
+ buffer = lines.pop() ?? '';
227
+ for (const line of lines) {
228
+ if (!line.trim())
229
+ continue;
230
+ let msg;
231
+ try {
232
+ msg = JSON.parse(line);
233
+ }
234
+ catch {
235
+ continue; // servers may emit non-JSON banner lines on stdout
236
+ }
237
+ if (msg.error) {
238
+ finish({ ok: false, error: msg.error.message ?? 'server returned an error' });
239
+ return;
240
+ }
241
+ if (msg.id === 1 && msg.result) {
242
+ const info = msg.result.serverInfo;
243
+ serverName = info?.name;
244
+ send({ jsonrpc: '2.0', method: 'notifications/initialized' });
245
+ send({ jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} });
246
+ }
247
+ if (msg.id === 2 && msg.result) {
248
+ const tools = msg.result.tools;
249
+ finish({ ok: true, toolCount: Array.isArray(tools) ? tools.length : 0, serverName });
250
+ return;
251
+ }
252
+ }
253
+ });
254
+ send({
255
+ jsonrpc: '2.0',
256
+ id: 1,
257
+ method: 'initialize',
258
+ params: {
259
+ protocolVersion: '2024-11-05',
260
+ capabilities: {},
261
+ clientInfo: { name: 'decibel-setup', version: '1.0.0' },
262
+ },
263
+ });
264
+ });
265
+ }
266
+ // ============================================================================
267
+ // CLI Entry
268
+ // ============================================================================
269
+ const CLIENT_ALIASES = {
270
+ desktop: 'claude-desktop',
271
+ 'claude-desktop': 'claude-desktop',
272
+ code: 'claude-code',
273
+ 'claude-code': 'claude-code',
274
+ cursor: 'cursor',
275
+ };
276
+ export function parseSetupArgs(args) {
277
+ const opts = {
278
+ dryRun: args.includes('--dry-run'),
279
+ yes: args.includes('--yes') || args.includes('-y'),
280
+ installDaemon: args.includes('--daemon'),
281
+ verify: !args.includes('--no-verify'),
282
+ };
283
+ const clientsIdx = args.findIndex(a => a === '--clients' || a.startsWith('--clients='));
284
+ if (clientsIdx !== -1) {
285
+ const raw = args[clientsIdx].includes('=')
286
+ ? args[clientsIdx].split('=')[1]
287
+ : args[clientsIdx + 1];
288
+ if (raw) {
289
+ opts.clients = raw
290
+ .split(',')
291
+ .map(s => CLIENT_ALIASES[s.trim().toLowerCase()])
292
+ .filter((c) => Boolean(c));
293
+ }
294
+ }
295
+ const licenseIdx = args.findIndex(a => a === '--license' || a.startsWith('--license='));
296
+ if (licenseIdx !== -1) {
297
+ opts.license = args[licenseIdx].includes('=')
298
+ ? args[licenseIdx].split('=')[1]
299
+ : args[licenseIdx + 1];
300
+ }
301
+ return opts;
302
+ }
303
+ const HELP = `
304
+ Decibel Tools — setup
305
+
306
+ npx ${PACKAGE_SPEC} setup [options]
307
+
308
+ Detects Claude Desktop, Claude Code, and Cursor, then writes the Decibel MCP
309
+ server entry into each one's config file. Existing settings are preserved and
310
+ the original file is backed up before any change.
311
+
312
+ Options:
313
+ --dry-run Show what would change, write nothing
314
+ --yes, -y Skip the confirmation prompt
315
+ --clients a,b Limit to: desktop, code, cursor
316
+ --license <key> Write a Pro license key to ~/.decibel/config.yaml
317
+ --daemon Also install the launchd background service (macOS)
318
+ --no-verify Skip the post-install connection check
319
+ --help Show this message
320
+ `.trimStart();
321
+ /**
322
+ * Run the setup wizard. Returns a process exit code.
323
+ */
324
+ export async function runSetup(argv) {
325
+ if (argv.includes('--help') || argv.includes('-h')) {
326
+ console.log(HELP);
327
+ return 0;
328
+ }
329
+ const opts = parseSetupArgs(argv);
330
+ const all = detectClients();
331
+ const wanted = opts.clients?.length ? all.filter(c => opts.clients.includes(c.id)) : all;
332
+ const targets = wanted.filter(c => c.detected);
333
+ console.log('\nDecibel Tools — setup\n');
334
+ for (const c of all) {
335
+ const included = targets.includes(c);
336
+ const mark = included ? '✓' : '·';
337
+ const note = c.detected
338
+ ? included ? c.configPath : 'skipped (--clients)'
339
+ : 'not installed';
340
+ console.log(` ${mark} ${c.label.padEnd(16)} ${note}`);
341
+ }
342
+ if (targets.length === 0) {
343
+ console.log('\nNo supported clients detected. Nothing to do.');
344
+ console.log('Install Claude Desktop, Claude Code, or Cursor and run this again.\n');
345
+ return 1;
346
+ }
347
+ if (opts.dryRun) {
348
+ console.log('\nDry run — no files will be written.\n');
349
+ for (const client of targets) {
350
+ const result = applyToClient(client, { dryRun: true });
351
+ console.log(` ${client.label}: would be ${describe(result.action)}`);
352
+ if (result.error)
353
+ console.log(` ! ${result.error}`);
354
+ }
355
+ console.log('');
356
+ return 0;
357
+ }
358
+ if (!opts.yes) {
359
+ if (!process.stdin.isTTY) {
360
+ console.log('\nRefusing to modify configs without confirmation.');
361
+ console.log('Re-run with --yes (or --dry-run to preview).\n');
362
+ return 1;
363
+ }
364
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
365
+ const answer = (await rl.question(`\nWrite Decibel into ${targets.length} client config(s)? [y/N] `)).trim().toLowerCase();
366
+ rl.close();
367
+ if (answer !== 'y' && answer !== 'yes') {
368
+ console.log('Cancelled. Nothing was written.\n');
369
+ return 1;
370
+ }
371
+ }
372
+ console.log('');
373
+ const results = [];
374
+ for (const client of targets) {
375
+ const result = applyToClient(client);
376
+ results.push(result);
377
+ if (result.error) {
378
+ console.log(` ✗ ${client.label}: ${result.error}`);
379
+ }
380
+ else {
381
+ console.log(` ✓ ${client.label}: ${describe(result.action)}`);
382
+ if (result.backupPath)
383
+ console.log(` backup: ${result.backupPath}`);
384
+ }
385
+ }
386
+ // Optional license key
387
+ if (opts.license) {
388
+ try {
389
+ const { writeLicenseKey, getConfigPath } = await import('./daemonConfig.js');
390
+ writeLicenseKey(opts.license);
391
+ console.log(`\n ✓ License key written to ${getConfigPath()}`);
392
+ }
393
+ catch (err) {
394
+ console.log(`\n ✗ Could not write license key: ${errText(err)}`);
395
+ }
396
+ }
397
+ // Optional launchd service
398
+ if (opts.installDaemon) {
399
+ if (osPlatform() !== 'darwin') {
400
+ console.log('\n · --daemon is macOS-only; skipped.');
401
+ }
402
+ else {
403
+ try {
404
+ const { installLaunchd } = await import('./daemon.js');
405
+ const res = installLaunchd();
406
+ console.log(`\n ${res.installed ? '✓' : '✗'} ${res.message}`);
407
+ }
408
+ catch (err) {
409
+ console.log(`\n ✗ Daemon install failed: ${errText(err)}`);
410
+ }
411
+ }
412
+ }
413
+ // Verify the thing we just configured actually starts
414
+ if (opts.verify) {
415
+ const entry = buildServerEntry({ ...targets[0], useLoginShell: false });
416
+ process.stdout.write('\n … verifying server starts (first run downloads the package)');
417
+ const check = await verifyServer(entry);
418
+ if (check.ok) {
419
+ console.log(`\r ✓ Server responds — ${check.toolCount} tools available `);
420
+ }
421
+ else {
422
+ console.log(`\r ✗ Verification failed: ${check.error} `);
423
+ console.log(' Config was still written; try launching your client to confirm.');
424
+ }
425
+ }
426
+ const wrote = results.filter(r => r.action !== 'skipped' && r.action !== 'unchanged');
427
+ const failed = results.filter(r => r.error);
428
+ console.log('\nNext steps:');
429
+ if (wrote.some(r => r.client.id === 'claude-desktop')) {
430
+ console.log(' 1. Fully quit Claude Desktop (⌘Q — closing the window is not enough) and reopen it.');
431
+ }
432
+ console.log(' 2. In your client, ask: "Run registry init with path <your project path>"');
433
+ console.log(' 3. Then try: "What should I work on?"\n');
434
+ return failed.length > 0 ? 1 : 0;
435
+ }
436
+ function describe(action) {
437
+ switch (action) {
438
+ case 'created': return 'config created';
439
+ case 'added': return 'entry added';
440
+ case 'updated': return 'entry updated';
441
+ case 'unchanged': return 'already configured';
442
+ case 'skipped': return 'skipped';
443
+ }
444
+ }
445
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,18 @@
1
1
  import type { IssueRecord } from './types.js';
2
- /** Parse a sentinel issue .md into an IssueRecord. source_key = filename stem (no .md). */
2
+ /**
3
+ * Parse a sentinel issue record into an IssueRecord.
4
+ *
5
+ * Handles both on-disk formats. `.md` records are frontmatter fenced with
6
+ * `---`; `.yml`/`.yaml` records are bare YAML with no fence. Previously this
7
+ * only stripped `.md` from the source_key and only read fenced frontmatter,
8
+ * so a bare-YAML record imported as a junk row — title falling back to the
9
+ * filename stem, status defaulting to `open`, and the entire YAML text landing
10
+ * in `details` — while reporting success.
11
+ *
12
+ * source_key is the filename stem with any record extension removed. Stripping
13
+ * only `.md` would let a `.yml` record carry its extension into the key and
14
+ * collide with a later correct import under a different key for the same issue.
15
+ */
3
16
  export declare function parseIssueMarkdown(filename: string, content: string): IssueRecord;
4
17
  /** Serialize an IssueRecord to sentinel .md (frontmatter + body), markdown-safe (no YAML round-trip of the body). */
5
18
  export declare function serializeIssueMarkdown(projectKey: string, issue: IssueRecord): string;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/store/markdown.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAA6C,MAAM,YAAY,CAAC;AAczF,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAmCjF;AAED,qHAAqH;AACrH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAyBrF;AAOD,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAwC7E"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/store/markdown.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAA6C,MAAM,YAAY,CAAC;AAczF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAqDjF;AAED,qHAAqH;AACrH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAyBrF;AAOD,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAwC7E"}
@@ -26,9 +26,22 @@ function asString(v) {
26
26
  function oneOf(v, allowed) {
27
27
  return typeof v === 'string' && allowed.includes(v) ? v : undefined;
28
28
  }
29
- /** Parse a sentinel issue .md into an IssueRecord. source_key = filename stem (no .md). */
29
+ /**
30
+ * Parse a sentinel issue record into an IssueRecord.
31
+ *
32
+ * Handles both on-disk formats. `.md` records are frontmatter fenced with
33
+ * `---`; `.yml`/`.yaml` records are bare YAML with no fence. Previously this
34
+ * only stripped `.md` from the source_key and only read fenced frontmatter,
35
+ * so a bare-YAML record imported as a junk row — title falling back to the
36
+ * filename stem, status defaulting to `open`, and the entire YAML text landing
37
+ * in `details` — while reporting success.
38
+ *
39
+ * source_key is the filename stem with any record extension removed. Stripping
40
+ * only `.md` would let a `.yml` record carry its extension into the key and
41
+ * collide with a later correct import under a different key for the same issue.
42
+ */
30
43
  export function parseIssueMarkdown(filename, content) {
31
- const source_key = filename.replace(/\.md$/i, '');
44
+ const source_key = filename.replace(/\.(md|ya?ml)$/i, '');
32
45
  let fm = {};
33
46
  let body = content;
34
47
  const m = content.match(FRONTMATTER_RE);
@@ -41,6 +54,26 @@ export function parseIssueMarkdown(filename, content) {
41
54
  }
42
55
  body = content.slice(m[0].length);
43
56
  }
57
+ else if (!/^---/.test(content.trimStart())) {
58
+ // Bare-YAML record: the whole file is frontmatter and there is no body.
59
+ // If close_issue appended a markdown section (see ISS-0129), parse only
60
+ // the region above the first column-0 heading — the same salvage boundary
61
+ // the reader uses, anchored at column 0 so markdown inside a description
62
+ // block scalar is left intact.
63
+ const lines = content.split('\n');
64
+ const headingIdx = lines.findIndex((l) => /^#{1,6}\s/.test(l));
65
+ const region = headingIdx > 0 ? lines.slice(0, headingIdx).join('\n') : content;
66
+ try {
67
+ const parsed = parseYaml(region);
68
+ if (parsed && typeof parsed === 'object') {
69
+ fm = parsed;
70
+ body = '';
71
+ }
72
+ }
73
+ catch {
74
+ fm = {};
75
+ }
76
+ }
44
77
  const heading = body.match(/^#\s+(.+)$/m);
45
78
  const title = asString(fm.title) ?? (heading ? heading[1].trim() : source_key);
46
79
  const tags = Array.isArray(fm.tags)
@@ -49,7 +82,7 @@ export function parseIssueMarkdown(filename, content) {
49
82
  return {
50
83
  source_key,
51
84
  title,
52
- details: body.trim() || undefined,
85
+ details: body.trim() || asString(fm.description) || undefined,
53
86
  severity: oneOf(fm.severity, SEVERITIES),
54
87
  status: oneOf(fm.status, STATUSES) ?? 'open',
55
88
  priority: oneOf(fm.priority, PRIORITIES),
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/store/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/store/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const conductorRunTool: ToolSpec;
3
+ export declare const conductorDryrunTool: ToolSpec;
4
+ export declare const conductorTraceTool: ToolSpec;
5
+ export declare const conductorCostTool: ToolSpec;
6
+ export declare const conductorEgressTool: ToolSpec;
7
+ export declare const conductorRoutingTool: ToolSpec;
8
+ export declare const conductorTools: ToolSpec[];
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/conductor/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwCvC,eAAO,MAAM,gBAAgB,EAAE,QA4B9B,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,QA4BjC,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,QAoBhC,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,QA+C/B,CAAC;AAIF,eAAO,MAAM,mBAAmB,EAAE,QAejC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAelC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,EAOpC,CAAC"}