@manhq/localmcp 1.0.9 → 1.0.10

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 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CA+B5G"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CA2B5G"}
@@ -10,10 +10,7 @@ export function handleToolError(error) {
10
10
  if (isAxiosError(error)) {
11
11
  const status = error.response?.status;
12
12
  const statusMessage = status ? STATUS_MESSAGES[status] : undefined;
13
- const apiMessage = error.response?.data?.message ??
14
- error.response?.data?.errorMessages?.[0] ??
15
- error.response?.data?.errors?.[0] ??
16
- null;
13
+ const apiMessage = extractApiMessage(error.response?.data);
17
14
  if (statusMessage) {
18
15
  message = apiMessage ? `${statusMessage}: ${apiMessage}` : statusMessage;
19
16
  }
@@ -35,4 +32,42 @@ export function handleToolError(error) {
35
32
  isError: true,
36
33
  };
37
34
  }
35
+ // Atlassian/Jira validation errors carry detail in two shapes: `errorMessages`
36
+ // (an array of general messages) and `errors` (a field-keyed map, e.g.
37
+ // {"customfield_10119": "Cause Analysis is required"} — common on transition
38
+ // and edit screens). Both must be surfaced, or field-level 400s collapse into a
39
+ // bare "Request failed with status code 400".
40
+ function extractApiMessage(data) {
41
+ if (typeof data === "string")
42
+ return data.trim() || null;
43
+ if (!data || typeof data !== "object")
44
+ return null;
45
+ const body = data;
46
+ const parts = [];
47
+ if (typeof body.message === "string" && body.message.trim()) {
48
+ parts.push(body.message.trim());
49
+ }
50
+ if (Array.isArray(body.errorMessages)) {
51
+ for (const m of body.errorMessages) {
52
+ if (typeof m === "string" && m.trim())
53
+ parts.push(m.trim());
54
+ }
55
+ }
56
+ const errors = body.errors;
57
+ if (Array.isArray(errors)) {
58
+ for (const m of errors) {
59
+ if (typeof m === "string" && m.trim())
60
+ parts.push(m.trim());
61
+ }
62
+ }
63
+ else if (errors && typeof errors === "object") {
64
+ for (const [field, m] of Object.entries(errors)) {
65
+ if (typeof m === "string" && m.trim())
66
+ parts.push(`${field}: ${m.trim()}`);
67
+ }
68
+ }
69
+ if (parts.length === 0)
70
+ return null;
71
+ return [...new Set(parts)].join("; ");
72
+ }
38
73
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,MAAM,eAAe,GAA2B;IAC9C,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,cAAc;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAe,CAAC;IAEpB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,UAAU,GACd,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO;YAC7B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACxC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC;QAEP,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,SAAS,MAAM,KAAK,OAAO,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manhq/localmcp",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Local HTTP MCP server for Figma, Atlassian, and Google Chat with a single CLI.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",