@cyanheads/mcp-ts-core 0.7.6 → 0.8.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 (104) hide show
  1. package/CLAUDE.md +22 -7
  2. package/README.md +2 -2
  3. package/changelog/0.8.x/0.8.0.md +31 -0
  4. package/dist/core/context.d.ts +67 -0
  5. package/dist/core/context.d.ts.map +1 -1
  6. package/dist/core/context.js +46 -1
  7. package/dist/core/context.js.map +1 -1
  8. package/dist/core/index.d.ts +2 -1
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +1 -0
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/linter/rules/error-contract-rules.d.ts +45 -0
  13. package/dist/linter/rules/error-contract-rules.d.ts.map +1 -0
  14. package/dist/linter/rules/error-contract-rules.js +321 -0
  15. package/dist/linter/rules/error-contract-rules.js.map +1 -0
  16. package/dist/linter/rules/handler-body-rules.d.ts +18 -0
  17. package/dist/linter/rules/handler-body-rules.d.ts.map +1 -0
  18. package/dist/linter/rules/handler-body-rules.js +134 -0
  19. package/dist/linter/rules/handler-body-rules.js.map +1 -0
  20. package/dist/linter/rules/index.d.ts +2 -0
  21. package/dist/linter/rules/index.d.ts.map +1 -1
  22. package/dist/linter/rules/index.js +2 -0
  23. package/dist/linter/rules/index.js.map +1 -1
  24. package/dist/linter/rules/resource-rules.d.ts.map +1 -1
  25. package/dist/linter/rules/resource-rules.js +9 -0
  26. package/dist/linter/rules/resource-rules.js.map +1 -1
  27. package/dist/linter/rules/source-text.d.ts +19 -0
  28. package/dist/linter/rules/source-text.d.ts.map +1 -0
  29. package/dist/linter/rules/source-text.js +96 -0
  30. package/dist/linter/rules/source-text.js.map +1 -0
  31. package/dist/linter/rules/tool-rules.d.ts.map +1 -1
  32. package/dist/linter/rules/tool-rules.js +9 -0
  33. package/dist/linter/rules/tool-rules.js.map +1 -1
  34. package/dist/logs/combined.log +4 -4
  35. package/dist/logs/error.log +4 -4
  36. package/dist/mcp-server/apps/appBuilders.d.ts +9 -4
  37. package/dist/mcp-server/apps/appBuilders.d.ts.map +1 -1
  38. package/dist/mcp-server/apps/appBuilders.js +4 -0
  39. package/dist/mcp-server/apps/appBuilders.js.map +1 -1
  40. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  41. package/dist/mcp-server/resources/resource-registration.js +3 -2
  42. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  43. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +13 -5
  44. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
  45. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
  46. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  47. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +5 -4
  48. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  49. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/tool-registration.js +13 -7
  51. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  52. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +64 -16
  53. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/utils/toolDefinition.js +25 -11
  55. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
  56. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  57. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +6 -4
  58. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  59. package/dist/testing/index.d.ts +8 -0
  60. package/dist/testing/index.d.ts.map +1 -1
  61. package/dist/testing/index.js +5 -1
  62. package/dist/testing/index.js.map +1 -1
  63. package/dist/types-global/errors.d.ts +82 -0
  64. package/dist/types-global/errors.d.ts.map +1 -1
  65. package/dist/types-global/errors.js +25 -0
  66. package/dist/types-global/errors.js.map +1 -1
  67. package/dist/utils/formatting/index.d.ts +1 -0
  68. package/dist/utils/formatting/index.d.ts.map +1 -1
  69. package/dist/utils/formatting/index.js +1 -0
  70. package/dist/utils/formatting/index.js.map +1 -1
  71. package/dist/utils/formatting/partialResult.d.ts +145 -0
  72. package/dist/utils/formatting/partialResult.d.ts.map +1 -0
  73. package/dist/utils/formatting/partialResult.js +145 -0
  74. package/dist/utils/formatting/partialResult.js.map +1 -0
  75. package/dist/utils/index.d.ts +2 -1
  76. package/dist/utils/index.d.ts.map +1 -1
  77. package/dist/utils/index.js +2 -1
  78. package/dist/utils/index.js.map +1 -1
  79. package/dist/utils/network/httpError.d.ts +112 -0
  80. package/dist/utils/network/httpError.d.ts.map +1 -0
  81. package/dist/utils/network/httpError.js +153 -0
  82. package/dist/utils/network/httpError.js.map +1 -0
  83. package/dist/utils/network/retry.d.ts.map +1 -1
  84. package/dist/utils/network/retry.js +0 -1
  85. package/dist/utils/network/retry.js.map +1 -1
  86. package/package.json +5 -4
  87. package/scripts/split-changelog.ts +133 -0
  88. package/skills/add-app-tool/SKILL.md +12 -0
  89. package/skills/add-resource/SKILL.md +40 -0
  90. package/skills/add-service/SKILL.md +47 -0
  91. package/skills/add-test/SKILL.md +39 -0
  92. package/skills/add-tool/SKILL.md +39 -4
  93. package/skills/api-context/SKILL.md +75 -1
  94. package/skills/api-errors/SKILL.md +162 -4
  95. package/skills/api-linter/SKILL.md +223 -3
  96. package/skills/api-testing/SKILL.md +79 -4
  97. package/skills/api-utils/SKILL.md +4 -2
  98. package/skills/design-mcp-server/SKILL.md +13 -10
  99. package/skills/field-test/SKILL.md +8 -2
  100. package/skills/maintenance/SKILL.md +2 -2
  101. package/skills/report-issue-framework/SKILL.md +2 -2
  102. package/skills/security-pass/SKILL.md +6 -5
  103. package/templates/AGENTS.md +23 -8
  104. package/templates/CLAUDE.md +23 -8
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  export { type DiffFormat, DiffFormatter, type DiffFormatterOptions, diffFormatter, } from './diffFormatter.js';
6
6
  export { escapeHtml, type HtmlInterpolation, html, SafeHtml, unsafeRaw, } from './html.js';
7
7
  export { MarkdownBuilder, markdown } from './markdownBuilder.js';
8
+ export { failureEntrySchema, partialResult, partialResultSchema } from './partialResult.js';
8
9
  export { type Alignment, TableFormatter, type TableFormatterOptions, type TableStyle, tableFormatter, } from './tableFormatter.js';
9
10
  export { TreeFormatter, type TreeFormatterOptions, type TreeNode, type TreeStyle, treeFormatter, } from './treeFormatter.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,oBAAoB,EACzB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,aAAa,EACb,KAAK,oBAAoB,EACzB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EACL,KAAK,SAAS,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -5,6 +5,7 @@
5
5
  export { DiffFormatter, diffFormatter, } from './diffFormatter.js';
6
6
  export { escapeHtml, html, SafeHtml, unsafeRaw, } from './html.js';
7
7
  export { MarkdownBuilder, markdown } from './markdownBuilder.js';
8
+ export { failureEntrySchema, partialResult, partialResultSchema } from './partialResult.js';
8
9
  export { TableFormatter, tableFormatter, } from './tableFormatter.js';
9
10
  export { TreeFormatter, treeFormatter, } from './treeFormatter.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,aAAa,EAEb,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EAEV,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAEL,cAAc,EAGd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EAIb,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,aAAa,EAEb,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EAEV,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAEL,cAAc,EAGd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EAIb,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @fileoverview Helpers for the "partial success" tool-output pattern: a tool
3
+ * that processes N items and returns the ones that succeeded plus a structured
4
+ * list of the ones that failed (each with a stable `reason` enum). Generalizes
5
+ * the pattern exemplified by pubmed-mcp-server's `unavailable[]` array.
6
+ * @module src/utils/formatting/partialResult
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Builds a Zod schema for one entry in a partial-failure list.
11
+ *
12
+ * The shape is `{ [idKey]: string; reason: TReason; detail?: string }` —
13
+ * the `idKey` field identifies the input the failure pertains to, `reason`
14
+ * is a stable enum the caller can switch on, and `detail` is an optional
15
+ * human-readable supplement.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const UnavailableReason = z.enum([
20
+ * 'no_pmc_fallback_disabled',
21
+ * 'no_doi',
22
+ * 'no_oa',
23
+ * 'fetch_failed',
24
+ * 'parse_failed',
25
+ * 'service_error',
26
+ * ]).describe('Why the PMID could not be returned');
27
+ *
28
+ * const Unavailable = failureEntrySchema({
29
+ * idKey: 'pmid',
30
+ * idDescription: 'PMID full text could not be returned for',
31
+ * reason: UnavailableReason,
32
+ * description: 'A PMID that could not be returned, with an explanation',
33
+ * });
34
+ * // → ZodObject<{ pmid: ZodString; reason: typeof UnavailableReason; detail: ZodOptional<ZodString> }>
35
+ * ```
36
+ */
37
+ export declare function failureEntrySchema<TIdKey extends string, TReason extends z.ZodTypeAny>(opts: {
38
+ /** Field name that identifies the failed input (e.g. `'pmid'`, `'id'`). */
39
+ idKey: TIdKey;
40
+ /** Description for the id field. Surfaced in the JSON Schema. */
41
+ idDescription?: string;
42
+ /** Zod enum describing the stable `reason` values. */
43
+ reason: TReason;
44
+ /** Description for the entry as a whole. */
45
+ description?: string;
46
+ /** Description for the optional `detail` field. Defaults to a generic value. */
47
+ detailDescription?: string;
48
+ }): z.ZodObject<{ [K in TIdKey]: z.ZodString; } & {
49
+ reason: TReason;
50
+ detail: z.ZodOptional<z.ZodString>;
51
+ } extends infer T ? { -readonly [P in keyof T]: T[P]; } : never, z.core.$strip>;
52
+ /**
53
+ * Standard tool-output shape for batch operations that may partially fail.
54
+ *
55
+ * Composes a typed succeeded list, totals, and an optional failures list with
56
+ * stable reason codes. Wraps `failureEntrySchema` so callers don't have to
57
+ * compose three things.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const ArticleSchema = z.object({ pmid: z.string(), title: z.string() });
62
+ *
63
+ * export const fetchTool = tool('fetch_articles', {
64
+ * // ...
65
+ * output: partialResultSchema({
66
+ * succeededKey: 'articles',
67
+ * succeededSchema: ArticleSchema,
68
+ * failedKey: 'unavailable',
69
+ * idKey: 'pmid',
70
+ * reason: z.enum(['not_found', 'withdrawn']),
71
+ * }),
72
+ * // → { articles: ArticleSchema[], totalReturned: number,
73
+ * // unavailable?: [{pmid, reason, detail?}], totalFailed?: number }
74
+ * });
75
+ * ```
76
+ */
77
+ export declare function partialResultSchema<TSuccKey extends string, TFailKey extends string, TIdKey extends string, TItem extends z.ZodTypeAny, TReason extends z.ZodTypeAny>(opts: {
78
+ /** Key for the array of successful items (e.g. `'articles'`, `'records'`). */
79
+ succeededKey: TSuccKey;
80
+ /** Schema for one successful item. */
81
+ succeededSchema: TItem;
82
+ /** Description for the succeeded array. Optional. */
83
+ succeededDescription?: string;
84
+ /** Key for the array of failed entries (e.g. `'unavailable'`, `'failed'`). */
85
+ failedKey: TFailKey;
86
+ /** Field name that identifies a failed input on each failure entry. */
87
+ idKey: TIdKey;
88
+ /** Description for the failure entry's id field. */
89
+ idDescription?: string;
90
+ /** Reason enum (typically `z.enum([...])`). */
91
+ reason: TReason;
92
+ /** Description for one failure entry. */
93
+ failureDescription?: string;
94
+ /** When `true`, includes a `totalFailed` count alongside `totalSucceeded`. */
95
+ includeTotalFailed?: boolean;
96
+ }): z.ZodObject<{ [K in TSuccKey]: z.ZodArray<TItem>; } & {
97
+ totalSucceeded: z.ZodNumber;
98
+ } & { [K in TFailKey]: z.ZodOptional<z.ZodArray<z.ZodObject<{ [K_1 in TIdKey]: z.ZodString; } & {
99
+ reason: TReason;
100
+ detail: z.ZodOptional<z.ZodString>;
101
+ } extends infer T ? { -readonly [P in keyof T]: T[P]; } : never, z.core.$strip>>>; }>;
102
+ /**
103
+ * Shape of the object returned by {@link partialResult}. Keys are derived from
104
+ * the type parameters so the return type aligns with what `partialResultSchema`
105
+ * produces — handlers can `return partialResult({...})` directly without
106
+ * casting against `z.infer<typeof Output>`.
107
+ *
108
+ * `failedKey` and `totalFailed` are optional because the runtime helper omits
109
+ * them when no failures occurred.
110
+ */
111
+ export type PartialResultObject<TSuccKey extends string, TFailKey extends string, TItem, TFailEntry> = {
112
+ [K in TSuccKey]: TItem[];
113
+ } & {
114
+ totalSucceeded: number;
115
+ } & {
116
+ [K in TFailKey]?: TFailEntry[];
117
+ } & {
118
+ totalFailed?: number;
119
+ };
120
+ /**
121
+ * Constructs a partial-result object at runtime, conditionally including the
122
+ * failed array (omits it when empty so the structuredContent stays clean).
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * return partialResult({
127
+ * succeededKey: 'articles',
128
+ * succeeded: articles,
129
+ * failedKey: 'unavailable',
130
+ * failed: unavailable,
131
+ * });
132
+ * // → { articles: [...], totalSucceeded: 3, unavailable: [...] }
133
+ * // or, when unavailable is empty:
134
+ * // → { articles: [...], totalSucceeded: 3 }
135
+ * ```
136
+ */
137
+ export declare function partialResult<TSuccKey extends string, TFailKey extends string, TItem, TFailEntry>(opts: {
138
+ succeededKey: TSuccKey;
139
+ succeeded: readonly TItem[];
140
+ failedKey: TFailKey;
141
+ failed: readonly TFailEntry[];
142
+ /** When `true`, also includes `totalFailed`. */
143
+ includeTotalFailed?: boolean;
144
+ }): PartialResultObject<TSuccKey, TFailKey, TItem, TFailEntry>;
145
+ //# sourceMappingURL=partialResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partialResult.d.ts","sourceRoot":"","sources":["../../../src/utils/formatting/partialResult.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE;IAC5F,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,kBAaS,CAAC;YACC,OAAO;YACP,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;gFAKrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,SAAS,MAAM,EACvB,QAAQ,SAAS,MAAM,EACvB,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,CAAC,CAAC,UAAU,EAC1B,OAAO,SAAS,CAAC,CAAC,UAAU,EAC5B,IAAI,EAAE;IACN,8EAA8E;IAC9E,YAAY,EAAE,QAAQ,CAAC;IACvB,sCAAsC;IACtC,eAAe,EAAE,KAAK,CAAC;IACvB,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8EAA8E;IAC9E,SAAS,EAAE,QAAQ,CAAC;IACpB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAwC+B,CAAC,CAAC,SAAS,CACvC,GACG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GACnC,GAAG;IACF,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC;CAC7B,GAAG,GACD,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;;YAvGnC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;gFAuG+B,CAAC,GACjE,CACF,CACF;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,CAC7B,QAAQ,SAAS,MAAM,EACvB,QAAQ,SAAS,MAAM,EACvB,KAAK,EACL,UAAU,IACR;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK,EAAE;CAAE,GAAG;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG;KAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE;CAAE,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,SAAS,MAAM,EACvB,QAAQ,SAAS,MAAM,EACvB,KAAK,EACL,UAAU,EACV,IAAI,EAAE;IACN,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,EAAE,SAAS,KAAK,EAAE,CAAC;IAC5B,SAAS,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAc7D"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @fileoverview Helpers for the "partial success" tool-output pattern: a tool
3
+ * that processes N items and returns the ones that succeeded plus a structured
4
+ * list of the ones that failed (each with a stable `reason` enum). Generalizes
5
+ * the pattern exemplified by pubmed-mcp-server's `unavailable[]` array.
6
+ * @module src/utils/formatting/partialResult
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Builds a Zod schema for one entry in a partial-failure list.
11
+ *
12
+ * The shape is `{ [idKey]: string; reason: TReason; detail?: string }` —
13
+ * the `idKey` field identifies the input the failure pertains to, `reason`
14
+ * is a stable enum the caller can switch on, and `detail` is an optional
15
+ * human-readable supplement.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const UnavailableReason = z.enum([
20
+ * 'no_pmc_fallback_disabled',
21
+ * 'no_doi',
22
+ * 'no_oa',
23
+ * 'fetch_failed',
24
+ * 'parse_failed',
25
+ * 'service_error',
26
+ * ]).describe('Why the PMID could not be returned');
27
+ *
28
+ * const Unavailable = failureEntrySchema({
29
+ * idKey: 'pmid',
30
+ * idDescription: 'PMID full text could not be returned for',
31
+ * reason: UnavailableReason,
32
+ * description: 'A PMID that could not be returned, with an explanation',
33
+ * });
34
+ * // → ZodObject<{ pmid: ZodString; reason: typeof UnavailableReason; detail: ZodOptional<ZodString> }>
35
+ * ```
36
+ */
37
+ export function failureEntrySchema(opts) {
38
+ const idField = z.string().describe(opts.idDescription ?? `Identifier (${opts.idKey})`);
39
+ const detailField = z
40
+ .string()
41
+ .optional()
42
+ .describe(opts.detailDescription ?? 'Additional human-readable context, when available');
43
+ // Build the shape with the dynamic id key. Cast through `unknown` because TS
44
+ // can't narrow the index signature to the literal `TIdKey` without help.
45
+ const shape = {
46
+ [opts.idKey]: idField,
47
+ reason: opts.reason,
48
+ detail: detailField,
49
+ };
50
+ const schema = z.object(shape);
51
+ return opts.description ? schema.describe(opts.description) : schema;
52
+ }
53
+ /**
54
+ * Standard tool-output shape for batch operations that may partially fail.
55
+ *
56
+ * Composes a typed succeeded list, totals, and an optional failures list with
57
+ * stable reason codes. Wraps `failureEntrySchema` so callers don't have to
58
+ * compose three things.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const ArticleSchema = z.object({ pmid: z.string(), title: z.string() });
63
+ *
64
+ * export const fetchTool = tool('fetch_articles', {
65
+ * // ...
66
+ * output: partialResultSchema({
67
+ * succeededKey: 'articles',
68
+ * succeededSchema: ArticleSchema,
69
+ * failedKey: 'unavailable',
70
+ * idKey: 'pmid',
71
+ * reason: z.enum(['not_found', 'withdrawn']),
72
+ * }),
73
+ * // → { articles: ArticleSchema[], totalReturned: number,
74
+ * // unavailable?: [{pmid, reason, detail?}], totalFailed?: number }
75
+ * });
76
+ * ```
77
+ */
78
+ export function partialResultSchema(opts) {
79
+ const failureSchema = failureEntrySchema({
80
+ idKey: opts.idKey,
81
+ ...(opts.idDescription !== undefined && { idDescription: opts.idDescription }),
82
+ reason: opts.reason,
83
+ ...(opts.failureDescription !== undefined && { description: opts.failureDescription }),
84
+ });
85
+ const succeededField = z
86
+ .array(opts.succeededSchema)
87
+ .describe(opts.succeededDescription ?? `Successful items (${opts.succeededKey})`);
88
+ const totalSucceededField = z
89
+ .number()
90
+ .int()
91
+ .nonnegative()
92
+ .describe(`Number of successful items in '${opts.succeededKey}'`);
93
+ const failedField = z
94
+ .array(failureSchema)
95
+ .optional()
96
+ .describe(`Per-input explanations for inputs that could not be returned. Absent when nothing failed.`);
97
+ const baseShape = {
98
+ [opts.succeededKey]: succeededField,
99
+ totalSucceeded: totalSucceededField,
100
+ [opts.failedKey]: failedField,
101
+ };
102
+ if (opts.includeTotalFailed) {
103
+ baseShape.totalFailed = z
104
+ .number()
105
+ .int()
106
+ .nonnegative()
107
+ .optional()
108
+ .describe(`Number of failed inputs in '${opts.failedKey}'`);
109
+ }
110
+ return z.object(baseShape);
111
+ }
112
+ /**
113
+ * Constructs a partial-result object at runtime, conditionally including the
114
+ * failed array (omits it when empty so the structuredContent stays clean).
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * return partialResult({
119
+ * succeededKey: 'articles',
120
+ * succeeded: articles,
121
+ * failedKey: 'unavailable',
122
+ * failed: unavailable,
123
+ * });
124
+ * // → { articles: [...], totalSucceeded: 3, unavailable: [...] }
125
+ * // or, when unavailable is empty:
126
+ * // → { articles: [...], totalSucceeded: 3 }
127
+ * ```
128
+ */
129
+ export function partialResult(opts) {
130
+ const out = {
131
+ [opts.succeededKey]: opts.succeeded,
132
+ totalSucceeded: opts.succeeded.length,
133
+ };
134
+ if (opts.failed.length > 0) {
135
+ out[opts.failedKey] = opts.failed;
136
+ if (opts.includeTotalFailed) {
137
+ out.totalFailed = opts.failed.length;
138
+ }
139
+ }
140
+ else if (opts.includeTotalFailed) {
141
+ out.totalFailed = 0;
142
+ }
143
+ return out;
144
+ }
145
+ //# sourceMappingURL=partialResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partialResult.js","sourceRoot":"","sources":["../../../src/utils/formatting/partialResult.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Unified barrel export for all utility modules.
3
3
  * @module utils
4
4
  */
5
- export { type Alignment, type DiffFormat, DiffFormatter, type DiffFormatterOptions, diffFormatter, escapeHtml, type HtmlInterpolation, html, MarkdownBuilder, markdown, SafeHtml, TableFormatter, type TableFormatterOptions, type TableStyle, TreeFormatter, type TreeFormatterOptions, type TreeNode, type TreeStyle, tableFormatter, treeFormatter, unsafeRaw, } from './formatting/index.js';
5
+ export { type Alignment, type DiffFormat, DiffFormatter, type DiffFormatterOptions, diffFormatter, escapeHtml, failureEntrySchema, type HtmlInterpolation, html, MarkdownBuilder, markdown, partialResult, partialResultSchema, SafeHtml, TableFormatter, type TableFormatterOptions, type TableStyle, TreeFormatter, type TreeFormatterOptions, type TreeNode, type TreeStyle, tableFormatter, treeFormatter, unsafeRaw, } from './formatting/index.js';
6
6
  export { arrayBufferToBase64, base64ToString, stringToBase64 } from './internal/encoding.js';
7
7
  export { ErrorHandler } from './internal/error-handler/errorHandler.js';
8
8
  export type { BaseErrorMapping, ErrorContext, ErrorHandlerOptions, ErrorMapping, } from './internal/error-handler/types.js';
@@ -11,6 +11,7 @@ export { type AuthContext, type CreateRequestContextParams, type RequestContext,
11
11
  export { type RuntimeCapabilities, runtimeCaps } from './internal/runtime.js';
12
12
  export { type ChatMessage, countChatTokens, countTokens, type ModelHeuristics, } from './metrics/tokenCounter.js';
13
13
  export { type FetchWithTimeoutOptions, fetchWithTimeout } from './network/fetchWithTimeout.js';
14
+ export { type HttpErrorFromResponseOptions, httpErrorFromResponse, httpStatusToErrorCode, } from './network/httpError.js';
14
15
  export { type RetryOptions, withRetry } from './network/retry.js';
15
16
  export { DEFAULT_PAGINATION_CONFIG, decodeCursor, encodeCursor, extractCursor, type PaginatedResult, type PaginationState, paginateArray, } from './pagination/pagination.js';
16
17
  export { type AddPageOptions, Allow, CsvParser, csvParser, type DrawImageOptions, type DrawTextOptions, dateParser, type EmbedImageOptions, type ExtractArticleOptions, type ExtractArticleResult, type ExtractTextOptions, type ExtractTextResult, type FillFormOptions, FrontmatterParser, type FrontmatterResult, frontmatterParser, HtmlExtractor, htmlExtractor, JsonParser, jsonParser, type PageRange, type PdfMetadata, PdfParser, parseDateString, parseDateStringDetailed, pdfParser, type SetMetadataOptions, thinkBlockRegex, XmlParser, xmlParser, YamlParser, yamlParser, } from './parsing/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * @module utils
4
4
  */
5
5
  // Formatting
6
- export { DiffFormatter, diffFormatter, escapeHtml, html, MarkdownBuilder, markdown, SafeHtml, TableFormatter, TreeFormatter, tableFormatter, treeFormatter, unsafeRaw, } from './formatting/index.js';
6
+ export { DiffFormatter, diffFormatter, escapeHtml, failureEntrySchema, html, MarkdownBuilder, markdown, partialResult, partialResultSchema, SafeHtml, TableFormatter, TreeFormatter, tableFormatter, treeFormatter, unsafeRaw, } from './formatting/index.js';
7
7
  // Encoding
8
8
  export { arrayBufferToBase64, base64ToString, stringToBase64 } from './internal/encoding.js';
9
9
  // Error handler
@@ -18,6 +18,7 @@ export { runtimeCaps } from './internal/runtime.js';
18
18
  export { countChatTokens, countTokens, } from './metrics/tokenCounter.js';
19
19
  // Network
20
20
  export { fetchWithTimeout } from './network/fetchWithTimeout.js';
21
+ export { httpErrorFromResponse, httpStatusToErrorCode, } from './network/httpError.js';
21
22
  export { withRetry } from './network/retry.js';
22
23
  // Pagination
23
24
  export { DEFAULT_PAGINATION_CONFIG, decodeCursor, encodeCursor, extractCursor, paginateArray, } from './pagination/pagination.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @fileoverview Helpers for converting HTTP `Response` objects into properly
3
+ * classified `McpError` instances. Replaces the hand-rolled status → code ladder
4
+ * that consumer servers tend to write (and get wrong, especially for 401/403/408).
5
+ * @module src/utils/network/httpError
6
+ */
7
+ import { JsonRpcErrorCode, McpError } from '../../types-global/errors.js';
8
+ /**
9
+ * Maps an HTTP status code to a `JsonRpcErrorCode`. Covers the full client/server
10
+ * 4xx/5xx range, with specific mappings for the codes most upstream APIs use to
11
+ * signal authoritative outcomes (auth failures, conflicts, validation, rate limits).
12
+ *
13
+ * Returns `undefined` when the status is in the 1xx/2xx/3xx range — those are not
14
+ * errors and the caller should not be invoking error mapping on them.
15
+ *
16
+ * | Status | Code |
17
+ * |:-------|:-----|
18
+ * | 400 | `InvalidParams` |
19
+ * | 401 | `Unauthorized` |
20
+ * | 402 | `Forbidden` (payment-required, treated as access denial) |
21
+ * | 403 | `Forbidden` |
22
+ * | 404 | `NotFound` |
23
+ * | 405, 406, 410, 415 | `InvalidRequest` |
24
+ * | 408 | `Timeout` |
25
+ * | 409 | `Conflict` |
26
+ * | 412, 416, 417 | `InvalidRequest` |
27
+ * | 422 | `ValidationError` |
28
+ * | 423, 424 | `Conflict` |
29
+ * | 425 | `Timeout` |
30
+ * | 428 | `InvalidRequest` |
31
+ * | 429 | `RateLimited` |
32
+ * | 431, 451 | `InvalidRequest` |
33
+ * | 4xx (other) | `InvalidRequest` |
34
+ * | 500, 501 | `InternalError` |
35
+ * | 502, 503 | `ServiceUnavailable` |
36
+ * | 504 | `Timeout` |
37
+ * | 5xx (other) | `ServiceUnavailable` |
38
+ */
39
+ export declare function httpStatusToErrorCode(status: number): JsonRpcErrorCode | undefined;
40
+ /** Configuration for {@link httpErrorFromResponse}. */
41
+ export interface HttpErrorFromResponseOptions {
42
+ /**
43
+ * Maximum number of bytes captured from the response body when `captureBody`
44
+ * is enabled. Larger bodies are truncated. Default: `500`.
45
+ */
46
+ bodyLimit?: number;
47
+ /**
48
+ * Read the response body and include it (truncated) in `error.data.body`.
49
+ * Default: `true`. Set `false` if the body has already been consumed elsewhere
50
+ * or for binary responses where text capture is not useful.
51
+ */
52
+ captureBody?: boolean;
53
+ /**
54
+ * Underlying cause for the `cause` chain. Useful when wrapping a fetch error
55
+ * that already has its own context.
56
+ */
57
+ cause?: unknown;
58
+ /**
59
+ * Override the default status → code mapping for specific cases. Return
60
+ * `undefined` to fall through to the default mapping.
61
+ */
62
+ codeOverride?: (status: number) => JsonRpcErrorCode | undefined;
63
+ /**
64
+ * Additional fields merged into `error.data`. Always includes
65
+ * `{ url, status, statusText, body? }` from the response itself.
66
+ */
67
+ data?: Record<string, unknown>;
68
+ /**
69
+ * Logical service name included in the error message
70
+ * (e.g., `'NCBI'` → `"NCBI returned HTTP 429"`). When omitted, the message
71
+ * uses the response URL host.
72
+ */
73
+ service?: string;
74
+ }
75
+ /**
76
+ * Builds an `McpError` from an HTTP `Response`, with status-aware classification
77
+ * and optional body capture.
78
+ *
79
+ * Reads the response body (consuming it) when `captureBody` is true, so callers
80
+ * must `response.clone()` first if they intend to read the body elsewhere.
81
+ *
82
+ * Always returns an `McpError` even for 1xx/2xx/3xx — the caller is expected to
83
+ * have verified `!response.ok` first, but the helper falls back to a sensible
84
+ * code (`InternalError`) instead of silently producing nothing.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const response = await fetch(url);
89
+ * if (!response.ok) {
90
+ * throw await httpErrorFromResponse(response, {
91
+ * service: 'NCBI',
92
+ * data: { endpoint: 'esearch' },
93
+ * });
94
+ * }
95
+ * ```
96
+ *
97
+ * @example Wrapping a network failure
98
+ * ```ts
99
+ * try {
100
+ * const response = await fetch(url);
101
+ * if (!response.ok) {
102
+ * throw await httpErrorFromResponse(response, { service: 'NCBI' });
103
+ * }
104
+ * return await response.text();
105
+ * } catch (error) {
106
+ * if (error instanceof McpError) throw error;
107
+ * throw new McpError(JsonRpcErrorCode.ServiceUnavailable, 'NCBI request failed', { url }, { cause: error });
108
+ * }
109
+ * ```
110
+ */
111
+ export declare function httpErrorFromResponse(response: Response, options?: HttpErrorFromResponseOptions): Promise<McpError>;
112
+ //# sourceMappingURL=httpError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpError.d.ts","sourceRoot":"","sources":["../../../src/utils/network/httpError.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAqClF;AAED,uDAAuD;AACvD,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAChE;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,QAAQ,CAAC,CA6CnB"}