@cliangdev/conductor 0.24.1 → 0.25.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.
@@ -1,11 +1,18 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
+ import * as os from 'os';
4
+ import { execSync } from 'child_process';
5
+ import { createHash } from 'crypto';
3
6
  import { fileURLToPath } from 'url';
7
+ import { createRequire } from 'module';
8
+ import { readConfig as readCliConfig } from './config.js';
9
+ import { resolveProject } from '../mcp/config.js';
4
10
  const PLUGIN_FILES = [
5
11
  'commands/conductor/prd.md',
6
12
  'commands/conductor/implement.md',
7
13
  'commands/conductor/fix.md',
8
14
  'commands/conductor/workflow.md',
15
+ 'commands/conductor/creative.md',
9
16
  'agents/conductor-researcher.md',
10
17
  'skills/conductor-ux-ui-design/SKILL.md',
11
18
  'skills/conductor-ux-ui-design/references/design-tokens.md',
@@ -13,19 +20,37 @@ const PLUGIN_FILES = [
13
20
  'skills/conductor-publisher/SKILL.md',
14
21
  'skills/conductor-creative/SKILL.md',
15
22
  ];
16
- // Paths removed in previous versions — deleted on `conductor init` to clean up stale installs.
23
+ // Paths removed in previous versions — deleted on `conductor init` (and a refresh) to clean up stale installs.
17
24
  const LEGACY_PATHS = [
18
25
  'agents/researcher.md',
19
26
  'skills/ux-ui-design/SKILL.md',
20
27
  'skills/ux-ui-design/references/design-tokens.md',
21
28
  ];
22
29
  const CONDUCTOR_PERMISSIONS = ['mcp__conductor__*'];
30
+ /** Anchor file used to decide whether a `.claude/` dir has the plugin installed at all. */
31
+ const PLUGIN_ANCHOR = path.join('commands', 'conductor', 'prd.md');
23
32
  export function getAssetSrcDir() {
24
33
  const __filename = fileURLToPath(import.meta.url);
25
34
  const __dirname = path.dirname(__filename);
26
35
  // Compiled to dist/lib/plugin-assets.js; assets/claude/ is at ../../assets/claude
27
36
  return path.join(__dirname, '..', '..', 'assets', 'claude');
28
37
  }
38
+ /** The running @cliangdev/conductor package's own version — same resolution path as
39
+ * getAssetSrcDir (dist/lib/plugin-assets.js -> ../../package.json). */
40
+ export function getPackageVersion() {
41
+ const require = createRequire(import.meta.url);
42
+ const pkg = require('../../package.json');
43
+ return pkg.version;
44
+ }
45
+ /** Writes `content` to `destPath` via a temp-file-then-rename, so a reader (or a concurrently
46
+ * starting daemon/MCP server) never observes a partially-written file. */
47
+ function atomicWriteFileSync(destPath, content) {
48
+ const dir = path.dirname(destPath);
49
+ fs.mkdirSync(dir, { recursive: true });
50
+ const tmpPath = path.join(dir, `.${path.basename(destPath)}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`);
51
+ fs.writeFileSync(tmpPath, content, 'utf8');
52
+ fs.renameSync(tmpPath, destPath);
53
+ }
29
54
  function mergeSettingsJson(settingsPath) {
30
55
  let settings = {};
31
56
  try {
@@ -38,8 +63,7 @@ function mergeSettingsJson(settingsPath) {
38
63
  ...(settings.permissions ?? {}),
39
64
  allow: newAllow,
40
65
  };
41
- fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
42
- fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
66
+ atomicWriteFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n');
43
67
  }
44
68
  function mergeMcpJson(mcpPath) {
45
69
  let mcp = {};
@@ -51,17 +75,14 @@ function mergeMcpJson(mcpPath) {
51
75
  ...(mcp.mcpServers ?? {}),
52
76
  conductor: { command: 'conductor', args: ['mcp'] },
53
77
  };
54
- fs.mkdirSync(path.dirname(mcpPath), { recursive: true });
55
- fs.writeFileSync(mcpPath, JSON.stringify(mcp, null, 2) + '\n', 'utf8');
78
+ atomicWriteFileSync(mcpPath, JSON.stringify(mcp, null, 2) + '\n');
56
79
  }
57
- /**
58
- * Install or update conductor Claude plugin assets into targetDir.
59
- *
60
- * @param targetDir Destination .claude/ directory (e.g. ~/.claude/ or projectRoot/.claude/)
61
- * @param assetSrcDir Source assets/claude/ directory from the CLI package
62
- * @param mcpJsonPath Optional path to .mcp.json to merge; omit if caller handles it separately
63
- */
64
- export function installPluginAssets(targetDir, assetSrcDir, mcpJsonPath) {
80
+ /** Writes every PLUGIN_FILES entry into targetDir (unconditionally overwriting anything already
81
+ * there) and removes LEGACY_PATHS — the file-level half of installing/refreshing the plugin, with no
82
+ * opinion on settings.json or .mcp.json. Shared by {@link installPluginAssets} (which also merges
83
+ * those) and the legacy-marker migration path in {@link refreshInstalledPluginAssets} (which
84
+ * deliberately does not). */
85
+ function writePluginFiles(targetDir, assetSrcDir) {
65
86
  let anyNew = false;
66
87
  let anyUpdated = false;
67
88
  for (const file of PLUGIN_FILES) {
@@ -81,31 +102,42 @@ export function installPluginAssets(targetDir, assetSrcDir, mcpJsonPath) {
81
102
  catch { /* doesn't exist yet */ }
82
103
  if (destContent === null) {
83
104
  anyNew = true;
84
- fs.mkdirSync(path.dirname(destPath), { recursive: true });
85
- fs.writeFileSync(destPath, srcContent, 'utf8');
105
+ atomicWriteFileSync(destPath, srcContent);
86
106
  }
87
107
  else if (destContent !== srcContent) {
88
108
  anyUpdated = true;
89
- fs.writeFileSync(destPath, srcContent, 'utf8');
109
+ atomicWriteFileSync(destPath, srcContent);
90
110
  }
91
111
  }
92
112
  for (const legacy of LEGACY_PATHS) {
93
- const legacyPath = path.join(targetDir, legacy);
94
113
  try {
95
- fs.rmSync(legacyPath);
114
+ fs.rmSync(path.join(targetDir, legacy));
96
115
  }
97
116
  catch { /* already gone */ }
98
117
  }
99
- mergeSettingsJson(path.join(targetDir, 'settings.json'));
100
- if (mcpJsonPath) {
101
- mergeMcpJson(mcpJsonPath);
102
- }
103
118
  if (anyNew)
104
119
  return 'installed';
105
120
  if (anyUpdated)
106
121
  return 'updated';
107
122
  return 'current';
108
123
  }
124
+ /**
125
+ * Install or update conductor Claude plugin assets into targetDir. Used only by `conductor init` —
126
+ * this is the one place allowed to touch settings.json/.mcp.json; a background refresh
127
+ * ({@link refreshInstalledPluginAssets}) never calls this.
128
+ *
129
+ * @param targetDir Destination .claude/ directory (e.g. ~/.claude/ or projectRoot/.claude/)
130
+ * @param assetSrcDir Source assets/claude/ directory from the CLI package
131
+ * @param mcpJsonPath Optional path to .mcp.json to merge; omit if caller handles it separately
132
+ */
133
+ export function installPluginAssets(targetDir, assetSrcDir, mcpJsonPath) {
134
+ const status = writePluginFiles(targetDir, assetSrcDir);
135
+ mergeSettingsJson(path.join(targetDir, 'settings.json'));
136
+ if (mcpJsonPath) {
137
+ mergeMcpJson(mcpJsonPath);
138
+ }
139
+ return status;
140
+ }
109
141
  /**
110
142
  * Return the plugin install status without writing any files.
111
143
  * Used by `conductor doctor`.
@@ -135,4 +167,221 @@ export function getPluginInstallStatus(assetSrcDir, globalClaudeDir, localClaude
135
167
  }
136
168
  return { location, outdated };
137
169
  }
170
+ /** Records which package version last (re)installed the plugin assets into targetDir, and — from this
171
+ * version on — a sha256 per installed file, so a later refresh can tell whether the user edited a file
172
+ * (hash mismatch, leave it alone) or it's still exactly what was shipped (safe to overwrite). */
173
+ export const PLUGIN_VERSION_MARKER = '.conductor-plugin-version';
174
+ function sha256Hex(content) {
175
+ return createHash('sha256').update(content, 'utf8').digest('hex');
176
+ }
177
+ /** The sha256 of every currently-installed PLUGIN_FILES entry under targetDir, for stamping into the
178
+ * marker right after a write (install, refresh, or migration) so the next refresh has a baseline. */
179
+ export function computeInstalledFileHashes(targetDir) {
180
+ const hashes = {};
181
+ for (const file of PLUGIN_FILES) {
182
+ try {
183
+ hashes[file] = sha256Hex(fs.readFileSync(path.join(targetDir, file), 'utf8'));
184
+ }
185
+ catch { /* not installed */ }
186
+ }
187
+ return hashes;
188
+ }
189
+ export function writePluginVersionMarker(targetDir, version, files) {
190
+ const marker = files ? { version, files } : { version };
191
+ atomicWriteFileSync(path.join(targetDir, PLUGIN_VERSION_MARKER), JSON.stringify(marker));
192
+ }
193
+ /** Reads the marker, transparently handling the legacy format (a bare version string, no JSON) that
194
+ * predates per-file hashes — returned with `files` left undefined so callers can tell the two apart. */
195
+ export function readPluginVersionMarker(targetDir) {
196
+ let raw;
197
+ try {
198
+ raw = fs.readFileSync(path.join(targetDir, PLUGIN_VERSION_MARKER), 'utf8').trim();
199
+ }
200
+ catch {
201
+ return undefined;
202
+ }
203
+ if (!raw)
204
+ return undefined;
205
+ try {
206
+ const parsed = JSON.parse(raw);
207
+ if (parsed && typeof parsed.version === 'string') {
208
+ const files = parsed.files && typeof parsed.files === 'object' ? parsed.files : undefined;
209
+ return { version: parsed.version, files };
210
+ }
211
+ }
212
+ catch {
213
+ // Not JSON — a legacy marker written as a bare version string.
214
+ }
215
+ return { version: raw };
216
+ }
217
+ function parseSemverTriple(v) {
218
+ const m = /^(\d+)\.(\d+)\.(\d+)/.exec(v.trim());
219
+ if (!m)
220
+ return [0, 0, 0];
221
+ return [Number(m[1]), Number(m[2]), Number(m[3])];
222
+ }
223
+ /** True only when `a` is strictly newer than `b` (major.minor.patch; pre-release/build tags are
224
+ * ignored — this package only ever compares its own release versions). Equal or older returns false,
225
+ * which is what makes a refresh a no-op instead of silently re-running on every startup. */
226
+ function isNewerVersion(a, b) {
227
+ const [aMaj, aMin, aPatch] = parseSemverTriple(a);
228
+ const [bMaj, bMin, bPatch] = parseSemverTriple(b);
229
+ if (aMaj !== bMaj)
230
+ return aMaj > bMaj;
231
+ if (aMin !== bMin)
232
+ return aMin > bMin;
233
+ return aPatch > bPatch;
234
+ }
235
+ /** Overwrites a plugin file only when it's missing or its current content still hashes to what was
236
+ * recorded at the last install/refresh — i.e. the user hasn't touched it. A file with no recorded hash
237
+ * that still exists is left alone too (unknown provenance); a brand-new PLUGIN_FILES entry with no
238
+ * recorded hash is written because it's simply missing. Never touches settings.json or .mcp.json.
239
+ *
240
+ * Returns the new hash for every file this call actually wrote (or found already matching the bundled
241
+ * content). Files it left alone because the user edited them are NOT included — the caller must keep
242
+ * their previously recorded hash rather than recompute one from the edited content on disk, or the next
243
+ * refresh would see disk-matches-recorded-hash and silently adopt the edit as "clean", overwriting it. */
244
+ function overwriteUneditedFiles(targetDir, assetSrcDir, recordedHashes) {
245
+ const writtenHashes = {};
246
+ for (const file of PLUGIN_FILES) {
247
+ const srcPath = path.join(assetSrcDir, file);
248
+ let srcContent;
249
+ try {
250
+ srcContent = fs.readFileSync(srcPath, 'utf8');
251
+ }
252
+ catch {
253
+ continue; // no longer shipped
254
+ }
255
+ const destPath = path.join(targetDir, file);
256
+ let destContent = null;
257
+ try {
258
+ destContent = fs.readFileSync(destPath, 'utf8');
259
+ }
260
+ catch { /* missing */ }
261
+ if (destContent === null) {
262
+ atomicWriteFileSync(destPath, srcContent);
263
+ writtenHashes[file] = sha256Hex(srcContent);
264
+ continue;
265
+ }
266
+ const recordedHash = recordedHashes[file];
267
+ if (recordedHash !== undefined && sha256Hex(destContent) === recordedHash) {
268
+ if (destContent !== srcContent) {
269
+ atomicWriteFileSync(destPath, srcContent);
270
+ }
271
+ writtenHashes[file] = sha256Hex(srcContent);
272
+ }
273
+ // else: edited by the user (or no baseline to trust) — leave it exactly as it is, and leave its
274
+ // hash out of writtenHashes so the caller keeps the previously recorded one.
275
+ }
276
+ for (const legacy of LEGACY_PATHS) {
277
+ try {
278
+ fs.rmSync(path.join(targetDir, legacy));
279
+ }
280
+ catch { /* already gone */ }
281
+ }
282
+ return writtenHashes;
283
+ }
284
+ /**
285
+ * Refreshes one install location in place, if the running version is newer than what's recorded there.
286
+ * A JSON marker (with `files`) does the selective, edit-preserving overwrite; a legacy marker (a bare
287
+ * version string) or no marker at all has no hash baseline, so this migrates it the same way
288
+ * `installPluginAssets` would — overwrite our own files unconditionally — and starts recording hashes
289
+ * from here on. Never touches settings.json or .mcp.json. Returns whether anything actually changed.
290
+ */
291
+ function refreshOneLocation(targetDir, assetSrcDir, currentVersion) {
292
+ const marker = readPluginVersionMarker(targetDir);
293
+ if (marker && !isNewerVersion(currentVersion, marker.version))
294
+ return false;
295
+ let newHashes;
296
+ if (marker?.files) {
297
+ const written = overwriteUneditedFiles(targetDir, assetSrcDir, marker.files);
298
+ // Files that were skipped (user-edited) keep their previously recorded hash so they're
299
+ // still recognized as edited — and thus left alone — by every future refresh.
300
+ newHashes = { ...marker.files, ...written };
301
+ }
302
+ else {
303
+ writePluginFiles(targetDir, assetSrcDir);
304
+ newHashes = computeInstalledFileHashes(targetDir);
305
+ }
306
+ writePluginVersionMarker(targetDir, currentVersion, newHashes);
307
+ return true;
308
+ }
309
+ /** True if `dir` is inside a git work-tree; returns its root, or undefined outside one (or if `git`
310
+ * itself is unavailable — never throws). */
311
+ function findGitRoot(startDir) {
312
+ try {
313
+ const root = execSync('git rev-parse --show-toplevel', {
314
+ cwd: startDir,
315
+ encoding: 'utf8',
316
+ stdio: ['pipe', 'pipe', 'pipe'],
317
+ }).trim();
318
+ return root || undefined;
319
+ }
320
+ catch {
321
+ return undefined;
322
+ }
323
+ }
324
+ /**
325
+ * Finds the project `.claude/` that `cwd` belongs to — never bare `cwd` itself, which for the MCP
326
+ * server or the daemon is rarely the project root. Prefers the localPath `conductor init` recorded for
327
+ * whichever project this cwd resolves to (the same `projects` map + cwd-matching `resolveProject` uses
328
+ * for MCP tool calls), but only when `resolveProject` actually derived that project *from* this cwd
329
+ * (source `cwd` or `env`) — since that survives cwd being a subdirectory or symlink. A `fallback`
330
+ * source (cwd matched no configured project, or there's no map at all) means the resolved project's
331
+ * localPath has nothing to do with this cwd — using it would silently point the refresh at some other,
332
+ * unrelated project's `.claude/`. In that case (and whenever there's no on-disk config to consult, e.g.
333
+ * an ephemeral container) fall back to walking up to the enclosing git repo's root instead.
334
+ */
335
+ function resolveLocalClaudeDir(cwd) {
336
+ try {
337
+ const config = readCliConfig();
338
+ if (config) {
339
+ const resolution = resolveProject(config, cwd);
340
+ if (resolution.source === 'cwd' || resolution.source === 'env') {
341
+ const localPath = config.projects?.[resolution.projectId]?.localPath;
342
+ if (localPath)
343
+ return path.join(localPath, '.claude');
344
+ }
345
+ }
346
+ }
347
+ catch { /* fall through to git */ }
348
+ const gitRoot = findGitRoot(cwd);
349
+ return gitRoot ? path.join(gitRoot, '.claude') : undefined;
350
+ }
351
+ /**
352
+ * Refreshes every existing Claude plugin install — the global one (`~/.claude`) and the project-local
353
+ * one for whichever project `cwd` belongs to — in place, but only the ones that actually exist and
354
+ * only when the running package version is newer than what each install's marker records (equal or
355
+ * older is a no-op, per install). Never touches settings.json or .mcp.json — `conductor init` alone
356
+ * manages those. Writes are atomic (temp file + rename). Swallows every error so a broken refresh can
357
+ * never block the MCP server or the daemon from starting; logs through `log`.
358
+ *
359
+ * Single implementation shared by the MCP server (`mcp/index.ts`) and `conductor start`
360
+ * (`commands/start.ts`) startup — call this instead of duplicating the check.
361
+ */
362
+ export function refreshInstalledPluginAssets(opts = {}) {
363
+ const log = opts.log ?? (() => { });
364
+ try {
365
+ const assetSrcDir = opts.assetSrcDir ?? getAssetSrcDir();
366
+ const currentVersion = opts.currentVersion ?? getPackageVersion();
367
+ const cwd = opts.cwd ?? process.cwd();
368
+ const globalDir = opts.globalClaudeDir ?? path.join(os.homedir(), '.claude');
369
+ const localDir = opts.localClaudeDir ?? resolveLocalClaudeDir(cwd);
370
+ const targets = [];
371
+ if (fs.existsSync(path.join(globalDir, PLUGIN_ANCHOR))) {
372
+ targets.push({ dir: globalDir, location: 'global' });
373
+ }
374
+ if (localDir && path.resolve(localDir) !== path.resolve(globalDir) && fs.existsSync(path.join(localDir, PLUGIN_ANCHOR))) {
375
+ targets.push({ dir: localDir, location: 'local' });
376
+ }
377
+ for (const { dir, location } of targets) {
378
+ if (refreshOneLocation(dir, assetSrcDir, currentVersion)) {
379
+ log(`conductor: refreshed Claude plugin assets (${location})`);
380
+ }
381
+ }
382
+ }
383
+ catch (err) {
384
+ log(`conductor: could not refresh Claude plugin assets: ${err instanceof Error ? err.message : String(err)}`);
385
+ }
386
+ }
138
387
  //# sourceMappingURL=plugin-assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-assets.js","sourceRoot":"","sources":["../../src/lib/plugin-assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-assets.js","sourceRoot":"","sources":["../../src/lib/plugin-assets.ts"],"names":[],"mappings":"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"}
package/dist/mcp/api.d.ts CHANGED
@@ -1,19 +1,36 @@
1
1
  import type { Config } from './config.js';
2
+ /** One field-scoped validation failure, as a Brand Kit 422 (`FieldValidationProblem`) reports it. */
3
+ export interface ApiFieldError {
4
+ field?: string;
5
+ message: string;
6
+ }
7
+ /** One rule-scoped validation failure, as a Creative 422 reports it. */
8
+ export interface ApiViolation {
9
+ field?: string;
10
+ ruleId?: string;
11
+ message: string;
12
+ }
2
13
  /**
3
14
  * An HTTP error from the Conductor API. `message` is the server's own sentence — an RFC 7807
4
15
  * problem's `detail`, falling back to `title`, falling back to the raw response body — so a caller
5
16
  * can relay it to a person without re-parsing JSON. `status`, `code`, `detail` and `title` are kept
6
- * as fields for callers that need to branch on more than the message.
17
+ * as fields for callers that need to branch on more than the message. `fieldErrors`/`violations` are
18
+ * kept too, verbatim from the problem body, when the endpoint's 422 shape carries them — so a caller
19
+ * can format its own per-field message instead of re-parsing `message` as JSON (it usually isn't).
7
20
  */
8
21
  export declare class ApiError extends Error {
9
22
  readonly status: number;
10
23
  readonly code?: string;
11
24
  readonly detail?: string;
12
25
  readonly title?: string;
26
+ readonly fieldErrors?: ApiFieldError[];
27
+ readonly violations?: ApiViolation[];
13
28
  constructor(status: number, message: string, opts?: {
14
29
  code?: string;
15
30
  detail?: string;
16
31
  title?: string;
32
+ fieldErrors?: ApiFieldError[];
33
+ violations?: ApiViolation[];
17
34
  });
18
35
  }
19
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/mcp/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;CAQ3G;AAmED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAInD;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3E;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAED;0GAC0G;AAC1G,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAEtC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5F;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1F;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,EACrF,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,CAyBZ"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/mcp/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;gBAGlC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;QAC7B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;KACvB;CAWT;AAwFD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAInD;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3E;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAED;0GAC0G;AAC1G,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAEtC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE5F;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE1F;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,EACrF,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC,CAyBZ"}
package/dist/mcp/api.js CHANGED
@@ -3,7 +3,9 @@ import { Blob } from 'node:buffer';
3
3
  * An HTTP error from the Conductor API. `message` is the server's own sentence — an RFC 7807
4
4
  * problem's `detail`, falling back to `title`, falling back to the raw response body — so a caller
5
5
  * can relay it to a person without re-parsing JSON. `status`, `code`, `detail` and `title` are kept
6
- * as fields for callers that need to branch on more than the message.
6
+ * as fields for callers that need to branch on more than the message. `fieldErrors`/`violations` are
7
+ * kept too, verbatim from the problem body, when the endpoint's 422 shape carries them — so a caller
8
+ * can format its own per-field message instead of re-parsing `message` as JSON (it usually isn't).
7
9
  */
8
10
  export class ApiError extends Error {
9
11
  constructor(status, message, opts = {}) {
@@ -13,11 +15,25 @@ export class ApiError extends Error {
13
15
  this.code = opts.code;
14
16
  this.detail = opts.detail;
15
17
  this.title = opts.title;
18
+ this.fieldErrors = opts.fieldErrors;
19
+ this.violations = opts.violations;
16
20
  }
17
21
  }
22
+ function asFieldErrors(value) {
23
+ if (!Array.isArray(value))
24
+ return undefined;
25
+ return value.filter((v) => !!v && typeof v === 'object' && typeof v.message === 'string');
26
+ }
27
+ function asViolations(value) {
28
+ if (!Array.isArray(value))
29
+ return undefined;
30
+ return value.filter((v) => !!v && typeof v === 'object' && typeof v.message === 'string');
31
+ }
18
32
  /**
19
33
  * Parses a non-ok response body as an RFC 7807 problem (`{ type, title, status, detail, code? }`) when
20
34
  * possible, otherwise treats it as plain text. Never throws — a body that is neither is just "no detail".
35
+ * Also lifts `fieldErrors`/`violations` off the body when present, cheaply — no extra parsing pass, just
36
+ * reading two more keys off the object already parsed for `detail`/`title`/`code`.
21
37
  */
22
38
  async function parseProblem(response) {
23
39
  const text = await response.text().catch(() => '');
@@ -27,8 +43,10 @@ async function parseProblem(response) {
27
43
  const detail = typeof body['detail'] === 'string' ? body['detail'] : undefined;
28
44
  const title = typeof body['title'] === 'string' ? body['title'] : undefined;
29
45
  const code = typeof body['code'] === 'string' ? body['code'] : undefined;
46
+ const fieldErrors = asFieldErrors(body['fieldErrors']);
47
+ const violations = asViolations(body['violations']);
30
48
  const message = detail || title || text;
31
- return { message, code, detail, title };
49
+ return { message, code, detail, title, fieldErrors, violations };
32
50
  }
33
51
  catch {
34
52
  // Not JSON — the raw text is the only detail there is.
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/mcp/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/mcp/api.ts"],"names":[],"mappings":"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"}