@cyanheads/hn-mcp-server 0.6.1 → 0.7.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.
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +17 -18
- package/changelog/0.7.x/0.7.0.md +32 -0
- package/dist/mcp-server/tools/definitions/get-stories.tool.d.ts +1 -0
- package/dist/mcp-server/tools/definitions/get-stories.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-stories.tool.js +31 -24
- package/dist/mcp-server/tools/definitions/get-stories.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-thread.tool.d.ts +3 -1
- package/dist/mcp-server/tools/definitions/get-thread.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-thread.tool.js +227 -277
- package/dist/mcp-server/tools/definitions/get-thread.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-user.tool.d.ts +0 -1
- package/dist/mcp-server/tools/definitions/get-user.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-user.tool.js +27 -73
- package/dist/mcp-server/tools/definitions/get-user.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-content.tool.d.ts +3 -16
- package/dist/mcp-server/tools/definitions/search-content.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-content.tool.js +62 -127
- package/dist/mcp-server/tools/definitions/search-content.tool.js.map +1 -1
- package/dist/mcp-server/tools/username-input.d.ts +23 -0
- package/dist/mcp-server/tools/username-input.d.ts.map +1 -0
- package/dist/mcp-server/tools/username-input.js +30 -0
- package/dist/mcp-server/tools/username-input.js.map +1 -0
- package/dist/services/hn/hn-service.d.ts +49 -8
- package/dist/services/hn/hn-service.d.ts.map +1 -1
- package/dist/services/hn/hn-service.js +55 -9
- package/dist/services/hn/hn-service.js.map +1 -1
- package/package.json +2 -2
- package/server.json +3 -3
- package/skills/hn-guide/SKILL.md +4 -4
- package/dist/mcp-server/tools/response-budget.d.ts +0 -111
- package/dist/mcp-server/tools/response-budget.d.ts.map +0 -1
- package/dist/mcp-server/tools/response-budget.js +0 -204
- package/dist/mcp-server/tools/response-budget.js.map +0 -1
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { escapeHighlight, escapeInline, escapeQuoted, quoteBody, } from '../markdown-escape.js';
|
|
8
|
-
import { byteLength, cutPointer, cutToBytes, fitsBudget, largestFittingLimit, measureResponse, RESPONSE_BUDGET_TEXT, } from '../response-budget.js';
|
|
9
8
|
import { servedAtCap } from '../served-at-cap.js';
|
|
9
|
+
import { usernameInput } from '../username-input.js';
|
|
10
10
|
import { dateBoundToEpochMs, dateRangeToEpochSeconds, decodeHtmlEntities, extractDomain, getHnService, normalizeUrl, stripHtml, stripHtmlPreservingEm, } from '../../../services/hn/hn-service.js';
|
|
11
|
+
/** `count` when the caller omits it. */
|
|
12
|
+
const COUNT_DEFAULT = 10;
|
|
11
13
|
/** Most hits one call serves; a larger `count` is served at this cap. */
|
|
12
14
|
const COUNT_CAP = 50;
|
|
13
15
|
/** Largest `count` accepted; anything above it is rejected. */
|
|
@@ -104,7 +106,10 @@ export function stripUrlPrefix(query) {
|
|
|
104
106
|
const searchCriteria = z
|
|
105
107
|
.object({
|
|
106
108
|
tags: z.enum(SEARCH_TAGS).optional().describe('Content-type filter.'),
|
|
107
|
-
author: z
|
|
109
|
+
author: z
|
|
110
|
+
.string()
|
|
111
|
+
.optional()
|
|
112
|
+
.describe('Author filter — the username as searched: trimmed, with one leading @ dropped.'),
|
|
108
113
|
storyId: z.number().optional().describe('Discussion filter: a story or poll root id.'),
|
|
109
114
|
minPoints: z.number().optional().describe('Minimum score.'),
|
|
110
115
|
minComments: z.number().optional().describe('Minimum comment count.'),
|
|
@@ -127,7 +132,7 @@ const searchCriteria = z
|
|
|
127
132
|
.describe('Hits per page sent: count as passed, or 50 when count was above that cap.'),
|
|
128
133
|
view: z.enum(['full', 'compact']).describe('Projection applied to each hit.'),
|
|
129
134
|
})
|
|
130
|
-
.describe('The criteria this search ran with: each filter that was set, as sent — author trimmed, dateRange bounds as the exclusive UTC instants applied — then sort, count, and view, defaults included. Unset filters are absent. The searched query is in query.');
|
|
135
|
+
.describe('The criteria this search ran with: each filter that was set, as sent — author as searched (trimmed, one leading @ dropped), dateRange bounds as the exclusive UTC instants applied — then sort, count, and view, defaults included. Unset filters are absent. The searched query is in query.');
|
|
131
136
|
/** A whole Unix second as ISO 8601 UTC, e.g. `2024-05-05T08:00:00Z`. */
|
|
132
137
|
const isoSeconds = (seconds) => new Date(seconds * 1000).toISOString().replace('.000Z', 'Z');
|
|
133
138
|
/** One trailer line for the criteria; `author`, the one free-text value, is escaped inside its quotes. */
|
|
@@ -172,16 +177,23 @@ function appliedFilters(input) {
|
|
|
172
177
|
* that ceiling. An empty page past the end names the last valid page when
|
|
173
178
|
* Algolia reports one; past the ceiling Algolia answers `nbPages: 0`, so the
|
|
174
179
|
* last page is unknown and the notice resets to page 0. Only a first page with
|
|
175
|
-
* no hits is a zero-match search, which names what to relax.
|
|
176
|
-
*
|
|
180
|
+
* no hits is a zero-match search, which names what to relax.
|
|
181
|
+
*
|
|
182
|
+
* `page` counts in pages of `count`, so every page lever names the count the
|
|
183
|
+
* search ran at unless that is the default — a caller who sends the lever as
|
|
184
|
+
* written, without count, would otherwise page at the default and repeat or
|
|
185
|
+
* skip hits. Raising count is offered only on page 0, where the larger page
|
|
186
|
+
* still starts at hit 0; on a later page it would move every page boundary.
|
|
177
187
|
*/
|
|
178
188
|
function pageStateSentence(facts) {
|
|
179
189
|
const { shown, page, totalHits, totalPages } = facts;
|
|
180
|
-
const pageLever = (n) => `${facts.
|
|
190
|
+
const pageLever = (n) => `${facts.count === COUNT_DEFAULT ? '' : `count: ${facts.count}, `}page: ${n}`;
|
|
181
191
|
if (shown > 0) {
|
|
182
192
|
const total = `${facts.totalHitsExact === false ? 'about ' : ''}${totalHits}`;
|
|
183
193
|
if (page + 1 < totalPages) {
|
|
184
|
-
const raiseCount =
|
|
194
|
+
const raiseCount = page === 0 && facts.count < COUNT_CAP
|
|
195
|
+
? `, or keep page: 0 and raise count (max ${COUNT_CAP})`
|
|
196
|
+
: '';
|
|
185
197
|
return `Showing ${shown} of ${total} hits (page ${page} of ${totalPages}). Pass ${pageLever(page + 1)} for more${raiseCount}.`;
|
|
186
198
|
}
|
|
187
199
|
return totalHits > HIT_CEILING
|
|
@@ -190,12 +202,12 @@ function pageStateSentence(facts) {
|
|
|
190
202
|
}
|
|
191
203
|
if (page > 0) {
|
|
192
204
|
if (totalPages === 0) {
|
|
193
|
-
return `Page ${page} is past the last page Algolia serves for this search (at most 1,000 hits per search), where totalHits and totalPages read 0. Pass
|
|
205
|
+
return `Page ${page} is past the last page Algolia serves for this search (at most 1,000 hits per search), where totalHits and totalPages read 0. Pass ${pageLever(0)} to start over; if that also returns nothing, the search itself matches nothing.`;
|
|
194
206
|
}
|
|
195
207
|
/** With one page, the last page is page 0, so one lever covers both. */
|
|
196
208
|
const lever = totalPages === 1
|
|
197
209
|
? `Pass ${pageLever(0)} for that page.`
|
|
198
|
-
: `Pass ${pageLever(totalPages - 1)} for the last page, or
|
|
210
|
+
: `Pass ${pageLever(totalPages - 1)} for the last page, or ${pageLever(0)} to start over.`;
|
|
199
211
|
return `Page ${page} is past the last page of results (${totalHits} hits across ${totalPages} page${totalPages === 1 ? '' : 's'}). ${lever}`;
|
|
200
212
|
}
|
|
201
213
|
const filters = appliedFilters(facts);
|
|
@@ -241,29 +253,15 @@ function causeSentences(facts) {
|
|
|
241
253
|
}
|
|
242
254
|
return sentences;
|
|
243
255
|
}
|
|
244
|
-
/** The sentence disclosing how the page was fitted to the response budget. */
|
|
245
|
-
function budgetSentence({ highlightsTextOmitted, cutIds }) {
|
|
246
|
-
const budget = `To stay within the ${RESPONSE_BUDGET_TEXT}-byte response budget,`;
|
|
247
|
-
const omitted = 'highlights.text is omitted from every hit';
|
|
248
|
-
if (cutIds.length === 0)
|
|
249
|
-
return `${budget} ${omitted}; matchedWords still lists the matched terms.`;
|
|
250
|
-
const cut = `the text of ${cutIds.length === 1 ? 'hit' : 'hits'} ${cutIds.join(', ')} is cut short`;
|
|
251
|
-
return `${budget} ${highlightsTextOmitted ? `${omitted} and ` : ''}${cut}; hn_get_thread with a cut hit's id returns its full text, and view: "compact" or a smaller count avoids the cut.`;
|
|
252
|
-
}
|
|
253
256
|
/**
|
|
254
257
|
* Compose the one `notice` string every search writes. `notice` is last-wins,
|
|
255
258
|
* so each source goes through here: the page-state sentence first, then the
|
|
256
|
-
* cause sentences in input order — query, tags, author, storyId, count
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
* non-empty search that fit.
|
|
259
|
+
* cause sentences in input order — query, tags, author, storyId, count. None
|
|
260
|
+
* replaces another. Undefined when nothing applies — the last page of an
|
|
261
|
+
* uncapped, non-empty search.
|
|
260
262
|
*/
|
|
261
263
|
export function composeSearchNotice(facts) {
|
|
262
|
-
const sentences = [
|
|
263
|
-
pageStateSentence(facts),
|
|
264
|
-
...causeSentences(facts),
|
|
265
|
-
facts.budget && budgetSentence(facts.budget),
|
|
266
|
-
].filter((sentence) => sentence != null);
|
|
264
|
+
const sentences = [pageStateSentence(facts), ...causeSentences(facts)].filter((sentence) => sentence != null);
|
|
267
265
|
return sentences.length > 0 ? sentences.join(' ') : undefined;
|
|
268
266
|
}
|
|
269
267
|
/**
|
|
@@ -283,26 +281,27 @@ function decodeHighlightTitle(title) {
|
|
|
283
281
|
* (comment_text, else story_text — the order `text` reads them in; a job's
|
|
284
282
|
* job_text is never highlighted) — and the deduplicated
|
|
285
283
|
* union of matched words across all surfaced fields. Returns undefined when
|
|
286
|
-
*
|
|
284
|
+
* Algolia highlighted no field and reported no matched word. That is Algolia's
|
|
285
|
+
* answer, not a finding about the hit: it marks every field `matchLevel: none`
|
|
286
|
+
* on some hits whose body holds every query term.
|
|
287
287
|
*
|
|
288
288
|
* Titles are not HTML, though some arrive entity-encoded (`<details>`,
|
|
289
289
|
* `"`), so the title snippet is entity-decoded between its `<em>` markers
|
|
290
290
|
* and never tag-stripped. The body highlight, the whole matched body, is
|
|
291
291
|
* stripped of its HTML with the markers kept.
|
|
292
292
|
*
|
|
293
|
-
* `includeBody` is false under the compact projection,
|
|
294
|
-
* the
|
|
295
|
-
* repeats a hit's full body text.
|
|
293
|
+
* `includeBody` is false under the compact projection, which drops the body
|
|
294
|
+
* highlight — the field that repeats a hit's full body text.
|
|
296
295
|
*/
|
|
297
296
|
function extractHighlights(hit, includeBody) {
|
|
298
297
|
const h = hit._highlightResult;
|
|
299
298
|
if (!h)
|
|
300
299
|
return;
|
|
301
|
-
const
|
|
302
|
-
const title =
|
|
303
|
-
const textHl =
|
|
300
|
+
const highlighted = (v) => v != null && v.matchLevel !== 'none';
|
|
301
|
+
const title = highlighted(h.title) ? h.title.value : undefined;
|
|
302
|
+
const textHl = highlighted(h.comment_text)
|
|
304
303
|
? h.comment_text
|
|
305
|
-
:
|
|
304
|
+
: highlighted(h.story_text)
|
|
306
305
|
? h.story_text
|
|
307
306
|
: undefined;
|
|
308
307
|
const text = includeBody && textHl ? stripHtmlPreservingEm(textHl.value) : undefined;
|
|
@@ -349,11 +348,7 @@ const searchHit = z
|
|
|
349
348
|
text: z
|
|
350
349
|
.string()
|
|
351
350
|
.optional()
|
|
352
|
-
.describe(`Body text, HTML stripped: a comment's text, a text post's body, or a job's description. A job description is returned but not keyword-searched or highlighted.
|
|
353
|
-
textTruncated: z
|
|
354
|
-
.boolean()
|
|
355
|
-
.optional()
|
|
356
|
-
.describe(`True when text is a prefix of the body, cut short to keep the page within the ${RESPONSE_BUDGET_TEXT}-byte response budget — hn_get_thread with this id returns it whole. Absent when text is whole.`),
|
|
351
|
+
.describe(`Body text, HTML stripped: a comment's text, a text post's body, or a job's description. A job description is returned but not keyword-searched or highlighted. Absent when the hit has no body, and always absent under view "compact" — call hn_get_thread with this id to read it.`),
|
|
357
352
|
highlights: z
|
|
358
353
|
.object({
|
|
359
354
|
title: z
|
|
@@ -363,26 +358,26 @@ const searchHit = z
|
|
|
363
358
|
text: z
|
|
364
359
|
.string()
|
|
365
360
|
.optional()
|
|
366
|
-
.describe('The matched body in full, not a snippet (comment_text or story_text), HTML stripped, with matched terms wrapped in `<em>…</em>` — the same text as `text` plus its markers. A literal `<em>` typed into the body is indistinguishable from a marker. Absent when the body
|
|
361
|
+
.describe('The matched body in full, not a snippet (comment_text or story_text), HTML stripped, with matched terms wrapped in `<em>…</em>` — the same text as `text` plus its markers. A literal `<em>` typed into the body is indistinguishable from a marker. Absent when Algolia returned no highlight for the body, which does not mean the body lacks the query terms: Algolia leaves some bodies that hold every term unhighlighted. Always absent under view "compact", where matchedWords still lists the matched terms.'),
|
|
367
362
|
matchedWords: z
|
|
368
363
|
.array(z.string())
|
|
369
364
|
.describe('Deduplicated union of matched terms across all searchable fields (title, url, author, comment_text, story_text, story_title).'),
|
|
370
365
|
})
|
|
371
366
|
.optional()
|
|
372
|
-
.describe('Algolia per-field highlight metadata showing which terms matched and where. Absent when no
|
|
367
|
+
.describe('Algolia per-field highlight metadata showing which terms matched and where. Absent when Algolia returned no highlight and no matched terms for any field, which does not mean the hit lacks the query terms: Algolia leaves some hits that hold every term unhighlighted.'),
|
|
373
368
|
})
|
|
374
369
|
.describe('A single Algolia search hit (story, comment, poll, poll option, or job).');
|
|
375
370
|
/**
|
|
376
|
-
* Project an Algolia hit into a search hit. `text`
|
|
377
|
-
*
|
|
378
|
-
* with markers.
|
|
371
|
+
* Project an Algolia hit into a search hit. Under `includeBody`, `text`
|
|
372
|
+
* carries its body and its highlights carry the body too — the matched body in
|
|
373
|
+
* full, with markers.
|
|
379
374
|
*/
|
|
380
|
-
function projectHit(hit,
|
|
381
|
-
const rawText =
|
|
375
|
+
function projectHit(hit, includeBody) {
|
|
376
|
+
const rawText = includeBody ? (hit.comment_text ?? hit.story_text ?? hit.job_text) : undefined;
|
|
382
377
|
const url = normalizeUrl(hit.url);
|
|
383
378
|
const domain = extractDomain(url);
|
|
384
379
|
const storyUrl = normalizeUrl(hit.story_url);
|
|
385
|
-
const highlights = extractHighlights(hit,
|
|
380
|
+
const highlights = extractHighlights(hit, includeBody);
|
|
386
381
|
const type = hitType(hit._tags);
|
|
387
382
|
return {
|
|
388
383
|
id: Number(hit.objectID),
|
|
@@ -409,9 +404,6 @@ const searchOutput = z.object({
|
|
|
409
404
|
.optional()
|
|
410
405
|
.describe('The query that was searched — for a URL query, without its leading scheme and www. Absent for a filter-only search.'),
|
|
411
406
|
});
|
|
412
|
-
const searchTrailer = {
|
|
413
|
-
criteria: { render: renderCriteria },
|
|
414
|
-
};
|
|
415
407
|
/**
|
|
416
408
|
* Render highlight metadata as a `> match — …` footer, surfacing each highlights
|
|
417
409
|
* field separately so structured consumers and the LLM both see what matched.
|
|
@@ -429,10 +421,9 @@ function renderHighlights(hl) {
|
|
|
429
421
|
parts.push(`body: ${hl.text}`);
|
|
430
422
|
return parts.length ? `\n\n${quoteBody(`match — ${parts.join(' | ')}`)}` : '';
|
|
431
423
|
}
|
|
432
|
-
/** A hit's
|
|
424
|
+
/** A hit's body, quoted on the lines under its meta line and links. */
|
|
433
425
|
function renderBody(h) {
|
|
434
|
-
|
|
435
|
-
return h.textTruncated ? `${text}\n\n${cutPointer(h.id)}` : text;
|
|
426
|
+
return h.text ? `\n${quoteBody(h.text)}` : '';
|
|
436
427
|
}
|
|
437
428
|
/**
|
|
438
429
|
* A hit's meta line: id, type, and the item a comment replies to, in the order
|
|
@@ -579,12 +570,9 @@ export const searchHn = tool('hn_search_content', {
|
|
|
579
570
|
.enum(SEARCH_TAGS)
|
|
580
571
|
.optional()
|
|
581
572
|
.describe('Filter results by content type: "story", "comment", "poll", or "job", or the story subsets "ask_hn", "show_hn", and "front_page". "front_page" is the HN front page right now (about 30 stories); no filter selects stories from past front pages. The nearest proxy is "story" with dateRange and minPoints — without a query, the default relevance sort ranks by points. Omit to search all types, which also returns poll options (type "pollopt"): records with only an id, author, vote count, and date — hn_get_thread reads an option\'s text and poll.'),
|
|
582
|
-
author:
|
|
583
|
-
.string()
|
|
584
|
-
.trim()
|
|
585
|
-
.min(1, 'blank after trimming whitespace — omit author to search all authors.')
|
|
573
|
+
author: usernameInput('omit author to search all authors.')
|
|
586
574
|
.optional()
|
|
587
|
-
.describe(`Filter results to a specific author — useful for finding a user's posts on a topic. Matches the HN username exactly and is case-sensitive, so a re-cased name finds nothing. Trimmed
|
|
575
|
+
.describe(`Filter results to a specific author — useful for finding a user's posts on a topic. Matches the HN username exactly and is case-sensitive, so a re-cased name finds nothing. Trimmed, and one leading @ is dropped, so "@pg" searches pg; a name that still holds whitespace is rejected as a display name. Omit the field to search all authors rather than passing a blank string.`),
|
|
588
576
|
storyId: z
|
|
589
577
|
.number()
|
|
590
578
|
.int()
|
|
@@ -619,7 +607,7 @@ export const searchHn = tool('hn_search_content', {
|
|
|
619
607
|
.int()
|
|
620
608
|
.min(1)
|
|
621
609
|
.max(COUNT_CEILING)
|
|
622
|
-
.default(
|
|
610
|
+
.default(COUNT_DEFAULT)
|
|
623
611
|
.describe(`Number of results to return, at most ${COUNT_CAP} per call. A larger value is served at ${COUNT_CAP}: the search runs at count ${COUNT_CAP} from the hit where the requested page starts, and the notice names the count and page to pass next. With page above 0, that hit (page × count) must begin a page of ${COUNT_CAP} hits.`),
|
|
624
612
|
page: z
|
|
625
613
|
.number()
|
|
@@ -630,7 +618,7 @@ export const searchHn = tool('hn_search_content', {
|
|
|
630
618
|
view: z
|
|
631
619
|
.enum(['full', 'compact'])
|
|
632
620
|
.default('full')
|
|
633
|
-
.describe(
|
|
621
|
+
.describe('How much of each hit to return. "full" includes every field. "compact" omits the two body-text fields — `text` and `highlights.text` — which together can repeat a long comment twice per hit; everything else (id, title, url, domain, author, points, comment count, timestamp, parent story, parentId, storyUrl, title highlight, matchedWords) is unchanged. Use "compact" to scan many results, then pass a hit id to hn_get_thread to read the body you skipped.'),
|
|
634
622
|
}),
|
|
635
623
|
output: searchOutput,
|
|
636
624
|
enrichment: {
|
|
@@ -661,16 +649,14 @@ export const searchHn = tool('hn_search_content', {
|
|
|
661
649
|
.number()
|
|
662
650
|
.optional()
|
|
663
651
|
.describe(`The count value served: as passed, or ${COUNT_CAP} when count was above that cap.`),
|
|
664
|
-
highlightsTextOmitted: z
|
|
665
|
-
.boolean()
|
|
666
|
-
.optional()
|
|
667
|
-
.describe(`True when highlights.text was dropped from every hit to keep this view "full" page within the ${RESPONSE_BUDGET_TEXT}-byte response budget; highlights.title and matchedWords remain. Absent otherwise.`),
|
|
668
652
|
notice: z
|
|
669
653
|
.string()
|
|
670
654
|
.optional()
|
|
671
|
-
.describe(
|
|
655
|
+
.describe('Agent guidance, one string. It opens with the page state: the next page to request while more pages remain, the 1,000-hit ceiling on the last page of a search that matches more, the last valid page when the requested page is past the end, or the filters to relax when a first page comes back empty. Notes on the inputs follow it. Absent when none applies.'),
|
|
656
|
+
},
|
|
657
|
+
enrichmentTrailer: {
|
|
658
|
+
criteria: { render: renderCriteria },
|
|
672
659
|
},
|
|
673
|
-
enrichmentTrailer: searchTrailer,
|
|
674
660
|
async handler(input, ctx) {
|
|
675
661
|
const { dateRange } = input;
|
|
676
662
|
if (dateRange) {
|
|
@@ -706,8 +692,7 @@ export const searchHn = tool('hn_search_content', {
|
|
|
706
692
|
};
|
|
707
693
|
const hn = getHnService();
|
|
708
694
|
const result = await hn.search(params, ctx);
|
|
709
|
-
const
|
|
710
|
-
const hits = result.hits.map((hit) => projectHit(hit, includeBody, includeBody));
|
|
695
|
+
const hits = result.hits.map((hit) => projectHit(hit, input.view === 'full'));
|
|
711
696
|
ctx.log.info('Search completed', {
|
|
712
697
|
query: params.query,
|
|
713
698
|
hits: hits.length,
|
|
@@ -721,7 +706,7 @@ export const searchHn = tool('hn_search_content', {
|
|
|
721
706
|
? undefined
|
|
722
707
|
: (result.exhaustive?.nbHits ?? result.exhaustiveNbHits);
|
|
723
708
|
const bounds = params.dateRange ? dateRangeToEpochSeconds(params.dateRange) : {};
|
|
724
|
-
|
|
709
|
+
ctx.enrich({
|
|
725
710
|
criteria: {
|
|
726
711
|
...(params.tags != null && { tags: params.tags }),
|
|
727
712
|
...(params.author != null && { author: params.author }),
|
|
@@ -743,9 +728,10 @@ export const searchHn = tool('hn_search_content', {
|
|
|
743
728
|
page,
|
|
744
729
|
totalPages,
|
|
745
730
|
...(totalHits > HIT_CEILING && { reachableHits: HIT_CEILING }),
|
|
746
|
-
};
|
|
747
|
-
|
|
748
|
-
|
|
731
|
+
});
|
|
732
|
+
if (shown > 0 && page + 1 < totalPages)
|
|
733
|
+
ctx.enrich.truncated({ shown, cap: params.count });
|
|
734
|
+
const notice = composeSearchNotice({
|
|
749
735
|
...params,
|
|
750
736
|
droppedPrefix: searched?.droppedPrefix,
|
|
751
737
|
shown,
|
|
@@ -754,61 +740,10 @@ export const searchHn = tool('hn_search_content', {
|
|
|
754
740
|
totalHitsExact,
|
|
755
741
|
totalPages,
|
|
756
742
|
overCap,
|
|
757
|
-
};
|
|
758
|
-
/** The response serving `served`, with the notice and flag for how `budget` fitted it. */
|
|
759
|
-
const respond = (served, budget) => ({
|
|
760
|
-
output: { hits: served, ...(params.query != null && { query: params.query }) },
|
|
761
|
-
notice: composeSearchNotice({ ...noticeFacts, budget }),
|
|
762
|
-
highlightsTextOmitted: budget?.highlightsTextOmitted === true,
|
|
763
|
-
});
|
|
764
|
-
/** Both surfaces of a response as the caller receives it, enrichment and trailer included. */
|
|
765
|
-
const measure = (response) => measureResponse({
|
|
766
|
-
content: formatSearch(response.output),
|
|
767
|
-
result: response.output,
|
|
768
|
-
enrichment: {
|
|
769
|
-
...pageFields,
|
|
770
|
-
...(response.highlightsTextOmitted && { highlightsTextOmitted: true }),
|
|
771
|
-
...(morePages && { truncated: true, shown, cap: params.count }),
|
|
772
|
-
...(response.notice != null && { notice: response.notice }),
|
|
773
|
-
},
|
|
774
|
-
trailer: searchTrailer,
|
|
775
743
|
});
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
const highlightsTextOmitted = hits.some((hit) => hit.highlights?.text != null);
|
|
780
|
-
const lean = highlightsTextOmitted
|
|
781
|
-
? result.hits.map((hit) => projectHit(hit, true, false))
|
|
782
|
-
: hits;
|
|
783
|
-
if (highlightsTextOmitted)
|
|
784
|
-
response = respond(lean, { highlightsTextOmitted, cutIds: [] });
|
|
785
|
-
if (!highlightsTextOmitted || !fitsBudget(measure(response))) {
|
|
786
|
-
/** Step 2: cut every body longer than the largest limit they can share. */
|
|
787
|
-
const bodies = lean.map((hit) => ({ hit, bytes: hit.text ? byteLength(hit.text) : 0 }));
|
|
788
|
-
const cutAt = (limit) => {
|
|
789
|
-
const served = bodies.map(({ hit, bytes }) => hit.text && bytes > limit
|
|
790
|
-
? { ...hit, text: cutToBytes(hit.text, limit), textTruncated: true }
|
|
791
|
-
: hit);
|
|
792
|
-
const cutIds = served.filter((hit) => hit.textTruncated).map((hit) => hit.id);
|
|
793
|
-
return respond(served, { highlightsTextOmitted, cutIds });
|
|
794
|
-
};
|
|
795
|
-
const limit = largestFittingLimit(bodies.map((body) => body.bytes), (limitBytes) => measure(cutAt(limitBytes)));
|
|
796
|
-
response = cutAt(limit);
|
|
797
|
-
ctx.log.info('Fitted search page to the response budget', {
|
|
798
|
-
limitBytes: limit,
|
|
799
|
-
cutIds: response.output.hits.filter((hit) => hit.textTruncated).map((hit) => hit.id),
|
|
800
|
-
});
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
ctx.enrich({
|
|
804
|
-
...pageFields,
|
|
805
|
-
...(response.highlightsTextOmitted && { highlightsTextOmitted: true }),
|
|
806
|
-
});
|
|
807
|
-
if (morePages)
|
|
808
|
-
ctx.enrich.truncated({ shown, cap: params.count });
|
|
809
|
-
if (response.notice)
|
|
810
|
-
ctx.enrich.notice(response.notice);
|
|
811
|
-
return response.output;
|
|
744
|
+
if (notice)
|
|
745
|
+
ctx.enrich.notice(notice);
|
|
746
|
+
return { hits, ...(params.query != null && { query: params.query }) };
|
|
812
747
|
},
|
|
813
748
|
format: formatSearch,
|
|
814
749
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-content.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-content.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search-content.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-content.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Input schema for an HN account name. `hn_get_user`'s `username`
|
|
3
|
+
* and `hn_search_content`'s `author` both read a name the same way: trimmed,
|
|
4
|
+
* one leading `@` dropped, then refused when it is blank or still holds
|
|
5
|
+
* whitespace, which no HN username does.
|
|
6
|
+
* @module mcp-server/tools/username-input
|
|
7
|
+
*/
|
|
8
|
+
import { z } from '@cyanheads/mcp-ts-core';
|
|
9
|
+
/** The rejection for a name that holds whitespace after the trim and the `@` strip — a display name, not an account name. */
|
|
10
|
+
export declare const USERNAME_WHITESPACE_MESSAGE = "contains whitespace \u2014 HN usernames have none; pass the account name from a by or author field, not a display name.";
|
|
11
|
+
/**
|
|
12
|
+
* An HN account name as a caller writes it. The parsed value is the name to
|
|
13
|
+
* look up: `@pg` and ` pg ` both read as `pg`. Only the first `@` is dropped,
|
|
14
|
+
* since `@@pg` has no single reading.
|
|
15
|
+
*
|
|
16
|
+
* `blankRecovery` completes the blank message with what the field's caller
|
|
17
|
+
* should do instead. The strip and the whitespace check run in the handler's
|
|
18
|
+
* parse and are absent from the advertised JSON Schema, which stays
|
|
19
|
+
* `{ type: 'string', minLength: 1 }`: a client validating against a pattern
|
|
20
|
+
* would see the raw value and refuse the padded and `@` forms accepted here.
|
|
21
|
+
*/
|
|
22
|
+
export declare function usernameInput(blankRecovery: string): z.ZodString;
|
|
23
|
+
//# sourceMappingURL=username-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"username-input.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/username-input.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,6HAA6H;AAC7H,eAAO,MAAM,2BAA2B,4HAC8E,CAAC;AAEvH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,eAOlD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Input schema for an HN account name. `hn_get_user`'s `username`
|
|
3
|
+
* and `hn_search_content`'s `author` both read a name the same way: trimmed,
|
|
4
|
+
* one leading `@` dropped, then refused when it is blank or still holds
|
|
5
|
+
* whitespace, which no HN username does.
|
|
6
|
+
* @module mcp-server/tools/username-input
|
|
7
|
+
*/
|
|
8
|
+
import { z } from '@cyanheads/mcp-ts-core';
|
|
9
|
+
/** The rejection for a name that holds whitespace after the trim and the `@` strip — a display name, not an account name. */
|
|
10
|
+
export const USERNAME_WHITESPACE_MESSAGE = 'contains whitespace — HN usernames have none; pass the account name from a by or author field, not a display name.';
|
|
11
|
+
/**
|
|
12
|
+
* An HN account name as a caller writes it. The parsed value is the name to
|
|
13
|
+
* look up: `@pg` and ` pg ` both read as `pg`. Only the first `@` is dropped,
|
|
14
|
+
* since `@@pg` has no single reading.
|
|
15
|
+
*
|
|
16
|
+
* `blankRecovery` completes the blank message with what the field's caller
|
|
17
|
+
* should do instead. The strip and the whitespace check run in the handler's
|
|
18
|
+
* parse and are absent from the advertised JSON Schema, which stays
|
|
19
|
+
* `{ type: 'string', minLength: 1 }`: a client validating against a pattern
|
|
20
|
+
* would see the raw value and refuse the padded and `@` forms accepted here.
|
|
21
|
+
*/
|
|
22
|
+
export function usernameInput(blankRecovery) {
|
|
23
|
+
return z
|
|
24
|
+
.string()
|
|
25
|
+
.trim()
|
|
26
|
+
.overwrite((name) => name.replace(/^@/, ''))
|
|
27
|
+
.min(1, `blank after trimming whitespace and a leading @ — ${blankRecovery}`)
|
|
28
|
+
.refine((name) => !/\s/.test(name), USERNAME_WHITESPACE_MESSAGE);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=username-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"username-input.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/username-input.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,6HAA6H;AAC7H,MAAM,CAAC,MAAM,2BAA2B,GACtC,oHAAoH,CAAC;AAEvH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,aAAqB;IACjD,OAAO,CAAC;SACL,MAAM,EAAE;SACR,IAAI,EAAE;SACN,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,EAAE,qDAAqD,aAAa,EAAE,CAAC;SAC5E,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -92,16 +92,57 @@ export type ItemSlot = {
|
|
|
92
92
|
error: unknown;
|
|
93
93
|
};
|
|
94
94
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* ({@link pageFailure}), since an empty success would read as a page with
|
|
99
|
-
* nothing on it.
|
|
95
|
+
* The slots of a page that answered but hold nothing to show, by kind:
|
|
96
|
+
* `deleted` (an item flagged both deleted and dead counts here, once),
|
|
97
|
+
* `dead`, and `missing` (HN answered `null`). Failed fetches are never counted.
|
|
100
98
|
*/
|
|
101
|
-
export
|
|
102
|
-
|
|
99
|
+
export interface OmittedCounts {
|
|
100
|
+
dead: number;
|
|
101
|
+
deleted: number;
|
|
102
|
+
missing: number;
|
|
103
|
+
}
|
|
104
|
+
/** One settled page: see {@link settlePage}. */
|
|
105
|
+
export interface SettledPage {
|
|
106
|
+
/** The IDs whose fetch failed, in input order. */
|
|
103
107
|
failedIds: number[];
|
|
104
|
-
|
|
108
|
+
/** The live items, in input order: `live` without the slot indexes. */
|
|
109
|
+
items: HnItem[];
|
|
110
|
+
/**
|
|
111
|
+
* Each live item, in input order, with `slot`, its index in the slots
|
|
112
|
+
* passed: its position in the requested window, counted before anything
|
|
113
|
+
* dropped.
|
|
114
|
+
*/
|
|
115
|
+
live: {
|
|
116
|
+
item: HnItem;
|
|
117
|
+
slot: number;
|
|
118
|
+
}[];
|
|
119
|
+
omitted: OmittedCounts;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Settle one page of a batch for the paged tools: the live items in input
|
|
123
|
+
* order with their slot indexes, the IDs whose fetch failed, and how many
|
|
124
|
+
* dead, deleted, and absent slots dropped out, by kind. Every slot is exactly
|
|
125
|
+
* one of live, omitted, or failed. When every slot failed, throws the page's
|
|
126
|
+
* dominant cause ({@link pageFailure}), since an empty success would read as a
|
|
127
|
+
* page with nothing on it.
|
|
128
|
+
*/
|
|
129
|
+
export declare function settlePage(slots: readonly ItemSlot[]): SettledPage;
|
|
130
|
+
/**
|
|
131
|
+
* The words for a page's {@link OmittedCounts}: `total`, and `kinds` listing
|
|
132
|
+
* each nonzero kind as `{n} {kind}` in the order deleted, dead, missing, joined
|
|
133
|
+
* by `, ` (`2 deleted, 1 dead`). Undefined when nothing was omitted.
|
|
134
|
+
*/
|
|
135
|
+
export declare function describeOmitted(omitted: OmittedCounts): {
|
|
136
|
+
total: number;
|
|
137
|
+
kinds: string;
|
|
138
|
+
} | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* The sentence a paged tool adds when a page dropped items:
|
|
141
|
+
* `{total} of the {slotCount} {unit}(s) {place} {is|are} omitted: {kinds}.`
|
|
142
|
+
* Undefined when nothing was omitted. `unit` is singular; `place` names the
|
|
143
|
+
* window (`on this page`).
|
|
144
|
+
*/
|
|
145
|
+
export declare function omittedSentence(omitted: OmittedCounts, slotCount: number, unit: string, place: string): string | undefined;
|
|
105
146
|
/** True for the classified 429 `getJson` throws once retries are spent or the wait outlasts them. */
|
|
106
147
|
export declare function isRateLimited(err: unknown): err is McpError;
|
|
107
148
|
/**
|