chia-explorer 0.1.6 → 0.2.1

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.
@@ -0,0 +1,33 @@
1
+ import { listChipsFromReadme } from '../../chips/index.js';
2
+ import { chipCategoryFilterSchema, chipStatusFilterSchema } from '../../schemas/chips.js';
3
+ import { errorText, jsonText } from '../shared/response.js';
4
+ export function register(server) {
5
+ server.tool('list_chips', 'List all Chia Improvement Proposals (CHIPs) from the canonical index in the Chia-Network/chips repo README, across every status (Living, Draft, Review, Final, Stagnant, Withdrawn, Obsolete, Grandfathered, Under Consideration). Draft and Review entries point to open PRs; Final entries point to merged files on main. Status comes from the README (authoritative); category, authors, and abstract are enriched from front matter when a CHIP file is available. Use this to find the most recent CHIPs — they are typically in Draft. Optional filters: status, category.', {
6
+ status: chipStatusFilterSchema,
7
+ category: chipCategoryFilterSchema,
8
+ }, async ({ status, category }) => {
9
+ try {
10
+ const all = await listChipsFromReadme();
11
+ const statusLc = status?.toLowerCase();
12
+ const categoryLc = category?.toLowerCase();
13
+ const filtered = all.filter((c) => {
14
+ if (statusLc && (c.status?.toLowerCase() ?? '') !== statusLc)
15
+ return false;
16
+ if (categoryLc && (c.category?.toLowerCase() ?? '') !== categoryLc)
17
+ return false;
18
+ return true;
19
+ });
20
+ return jsonText({
21
+ source: 'github',
22
+ repo: 'Chia-Network/chips',
23
+ index: 'README.md',
24
+ count: filtered.length,
25
+ chips: filtered,
26
+ });
27
+ }
28
+ catch (err) {
29
+ return errorText(err);
30
+ }
31
+ });
32
+ }
33
+ //# sourceMappingURL=list-chips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-chips.js","sourceRoot":"","sources":["../../../src/tools/chips/list-chips.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,mjBAAmjB,EACnjB;QACE,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,wBAAwB;KACnC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC3E,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,UAAU;oBAAE,OAAO,KAAK,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function register(server: McpServer): void;
@@ -0,0 +1,31 @@
1
+ import { searchChips } from '../../chips/index.js';
2
+ import { chipStatusFilterSchema, searchLimitSchema, searchQuerySchema, searchSourceSchema, } from '../../schemas/chips.js';
3
+ import { errorText, jsonText } from '../shared/response.js';
4
+ export function register(server) {
5
+ server.tool('search_chips', 'Case-insensitive keyword search across merged CHIPs and open PR drafts. Matches against title, description, abstract, authors, and CHIP number. Optional filters: status, source (merged | draft | both, default both), limit (default 20).', {
6
+ query: searchQuerySchema,
7
+ status: chipStatusFilterSchema,
8
+ source: searchSourceSchema,
9
+ limit: searchLimitSchema,
10
+ }, async ({ query, status, source, limit }) => {
11
+ try {
12
+ const opts = {
13
+ source,
14
+ limit,
15
+ };
16
+ if (status !== undefined)
17
+ opts.status = status;
18
+ const matches = await searchChips(query, opts);
19
+ return jsonText({
20
+ query,
21
+ source,
22
+ count: matches.length,
23
+ matches,
24
+ });
25
+ }
26
+ catch (err) {
27
+ return errorText(err);
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=search-chips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-chips.js","sourceRoot":"","sources":["../../../src/tools/chips/search-chips.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,IAAI,CACT,cAAc,EACd,6OAA6O,EAC7O;QACE,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,iBAAiB;KACzB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAA4E;gBACpF,MAAM;gBACN,KAAK;aACN,CAAC;YACF,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,QAAQ,CAAC;gBACd,KAAK;gBACL,MAAM;gBACN,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chia-explorer",
3
- "version": "0.1.6",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server that answers questions about the Chia blockchain via the public coinset.org API",
5
5
  "mcpName": "io.github.Spacetime-Technology/chia-explorer",
6
6
  "type": "module",