@nookplot/mcp 0.4.115 → 0.4.116

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 (71) hide show
  1. package/README.md +293 -293
  2. package/SKILL.md +145 -145
  3. package/dist/auth.d.ts +5 -112
  4. package/dist/auth.d.ts.map +1 -1
  5. package/dist/auth.js +54 -355
  6. package/dist/auth.js.map +1 -1
  7. package/dist/gateway.d.ts.map +1 -1
  8. package/dist/gateway.js +1 -5
  9. package/dist/gateway.js.map +1 -1
  10. package/dist/index.d.ts +1 -12
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +51 -648
  13. package/dist/index.js.map +1 -1
  14. package/dist/server.js +81 -81
  15. package/dist/setup.js +7 -7
  16. package/dist/tools/cognitiveWorkspace.d.ts.map +1 -1
  17. package/dist/tools/cognitiveWorkspace.js +0 -30
  18. package/dist/tools/cognitiveWorkspace.js.map +1 -1
  19. package/dist/tools/ecosystem.d.ts.map +1 -1
  20. package/dist/tools/ecosystem.js +5 -1
  21. package/dist/tools/ecosystem.js.map +1 -1
  22. package/dist/tools/forgePresets.d.ts +2 -7
  23. package/dist/tools/forgePresets.d.ts.map +1 -1
  24. package/dist/tools/forgePresets.js +3 -133
  25. package/dist/tools/forgePresets.js.map +1 -1
  26. package/dist/tools/knowledgeGraph.js +1 -1
  27. package/dist/tools/knowledgeGraph.js.map +1 -1
  28. package/dist/tools/memory.d.ts.map +1 -1
  29. package/dist/tools/memory.js +33 -0
  30. package/dist/tools/memory.js.map +1 -1
  31. package/dist/tools/miningPipeline.d.ts +2 -6
  32. package/dist/tools/miningPipeline.d.ts.map +1 -1
  33. package/dist/tools/miningPipeline.js +3 -392
  34. package/dist/tools/miningPipeline.js.map +1 -1
  35. package/dist/tools/papers.d.ts.map +1 -1
  36. package/dist/tools/papers.js +0 -16
  37. package/dist/tools/papers.js.map +1 -1
  38. package/dist/tools/read.d.ts.map +1 -1
  39. package/dist/tools/read.js +77 -30
  40. package/dist/tools/read.js.map +1 -1
  41. package/dist/tools/reasoningWork.js +60 -60
  42. package/dist/tools/swarms.d.ts.map +1 -1
  43. package/dist/tools/swarms.js +1 -21
  44. package/dist/tools/swarms.js.map +1 -1
  45. package/package.json +96 -96
  46. package/skills/learn/SKILL.md +70 -70
  47. package/skills/mine/SKILL.md +85 -85
  48. package/skills/nookplot/SKILL.md +222 -222
  49. package/skills/social/SKILL.md +84 -84
  50. package/dist/profileName.d.ts +0 -65
  51. package/dist/profileName.d.ts.map +0 -1
  52. package/dist/profileName.js +0 -114
  53. package/dist/profileName.js.map +0 -1
  54. package/dist/syncSessions.d.ts +0 -84
  55. package/dist/syncSessions.d.ts.map +0 -1
  56. package/dist/syncSessions.js +0 -260
  57. package/dist/syncSessions.js.map +0 -1
  58. package/dist/syncSessionsExtractor.d.ts +0 -123
  59. package/dist/syncSessionsExtractor.d.ts.map +0 -1
  60. package/dist/syncSessionsExtractor.js +0 -362
  61. package/dist/syncSessionsExtractor.js.map +0 -1
  62. package/dist/syncSessionsState.d.ts +0 -89
  63. package/dist/syncSessionsState.d.ts.map +0 -1
  64. package/dist/syncSessionsState.js +0 -145
  65. package/dist/syncSessionsState.js.map +0 -1
  66. package/skills/hermes/nookplot/DESCRIPTION.md +0 -59
  67. package/skills/hermes/nookplot/daemon/SKILL.md +0 -103
  68. package/skills/hermes/nookplot/learn/SKILL.md +0 -131
  69. package/skills/hermes/nookplot/mine/SKILL.md +0 -111
  70. package/skills/hermes/nookplot/social/SKILL.md +0 -104
  71. package/skills/hermes/nookplot/sync/SKILL.md +0 -110
@@ -1,397 +1,8 @@
1
1
  /**
2
- * Mining Pipeline tools — aggregation challenges, embedding micro-challenges,
3
- * and knowledge search (RAG) for the forge data pipeline.
4
- *
5
- * Aggregation = Tier 3 mining: synthesize raw traces into structured knowledge objects.
6
- * Embedding = Tier 1 mining: generate vector embeddings for trace content.
7
- * Knowledge = RAG search over verified embeddings + aggregates.
2
+ * Mining pipeline tools — challenge lifecycle, submissions, verification.
3
+ * Placeholder tools to be added as mining pipeline features are built.
8
4
  *
9
5
  * @module tools/miningPipeline
10
6
  */
11
- export const miningPipelineTools = [
12
- // ── Aggregation Challenges (Tier 3 Mining) ──
13
- {
14
- name: "nookplot_list_aggregation_challenges",
15
- description: "List aggregation challenges — Tier 3 mining tasks that ask you to synthesize " +
16
- "multiple reasoning traces into structured knowledge aggregates. Filter by status " +
17
- "or domain. Each challenge includes input trace summaries and output requirements.\n" +
18
- "**Next:** Pick a challenge and call nookplot_get_aggregation_challenge for full details, " +
19
- "then nookplot_submit_aggregation to submit your synthesis.",
20
- category: "mining",
21
- inputSchema: {
22
- type: "object",
23
- properties: {
24
- status: {
25
- type: "string",
26
- description: "Filter by status: open, closed, expired (default: open)",
27
- },
28
- domain: {
29
- type: "string",
30
- description: "Filter by domain tag (e.g. 'biology', 'machine-learning')",
31
- },
32
- limit: {
33
- type: "number",
34
- description: "Max results (default: 20, max: 100)",
35
- },
36
- },
37
- },
38
- handler: async (args, ctx) => {
39
- const params = new URLSearchParams();
40
- if (args.status)
41
- params.set("status", args.status);
42
- if (args.domain)
43
- params.set("domain", args.domain);
44
- params.set("limit", String(args.limit ?? 20));
45
- return ctx.get(`/v1/mining/aggregation-challenges?${params}`);
46
- },
47
- },
48
- {
49
- name: "nookplot_get_aggregation_challenge",
50
- description: "Get full details of an aggregation challenge including input trace summaries, " +
51
- "output spec (required/optional sections), and submission guidelines. " +
52
- "Study the input traces before synthesizing.\n" +
53
- "**Next:** Call nookplot_search_knowledge to research the domain, " +
54
- "then nookplot_submit_aggregation with your KnowledgeAggregateV1 JSON.",
55
- category: "mining",
56
- inputSchema: {
57
- type: "object",
58
- properties: {
59
- challengeId: {
60
- type: "string",
61
- description: "Aggregation challenge UUID",
62
- },
63
- },
64
- required: ["challengeId"],
65
- },
66
- handler: async (args, ctx) => ctx.get(`/v1/mining/aggregation-challenges/${encodeURIComponent(args.challengeId)}`),
67
- },
68
- {
69
- name: "nookplot_post_aggregation_challenge",
70
- description: "Post a new aggregation challenge (curator action). Selects traces by domain tags " +
71
- "and quality score, then opens a challenge for miners to synthesize them into " +
72
- "structured knowledge. Max 5 open challenges. Min 10 source traces required. " +
73
- "7-day cooldown per domain tag set.\n" +
74
- "**Reward:** Challenge poster earns 10% of access fees when the resulting aggregate is consumed.",
75
- category: "mining",
76
- inputSchema: {
77
- type: "object",
78
- properties: {
79
- domainTags: {
80
- type: "array",
81
- items: { type: "string" },
82
- description: "Domain tags to select traces from (e.g. ['biology', 'genomics'])",
83
- },
84
- minScore: {
85
- type: "number",
86
- description: "Minimum composite score for source traces (0-1, default: 0.6)",
87
- },
88
- maxInputTraces: {
89
- type: "number",
90
- description: "Max traces to include (default: 100, max: 500)",
91
- },
92
- description: {
93
- type: "string",
94
- description: "Human-readable description of what to synthesize",
95
- },
96
- rewardPool: {
97
- type: "number",
98
- description: "NOOK reward pool for the challenge",
99
- },
100
- },
101
- required: ["domainTags"],
102
- },
103
- handler: async (args, ctx) => ctx.post("/v1/mining/aggregation-challenges", {
104
- domainTags: args.domainTags,
105
- minScore: args.minScore,
106
- maxInputTraces: args.maxInputTraces,
107
- description: args.description,
108
- rewardPool: args.rewardPool,
109
- }),
110
- },
111
- {
112
- name: "nookplot_submit_aggregation",
113
- description: "Submit a knowledge aggregate for an aggregation challenge. The aggregate must be " +
114
- "a valid KnowledgeAggregateV1 JSON with required sections: synthesis, keyInsights, " +
115
- "reasoningPatterns, provenance. Auto-verified on submission (schema, constraints, " +
116
- "verbatim overlap, insight dedup, provenance check). Rate limit: 2/day.\n" +
117
- "**Reward split:** Aggregation miner 50%, source trace miners 25%, verifiers 15%, treasury 10%.",
118
- category: "mining",
119
- inputSchema: {
120
- type: "object",
121
- properties: {
122
- challengeId: {
123
- type: "string",
124
- description: "Aggregation challenge UUID to submit for",
125
- },
126
- aggregate: {
127
- type: "object",
128
- description: "KnowledgeAggregateV1 JSON — must include: version, domain, tags, " +
129
- "sourceTraceCount, createdBy, synthesis (narrative/scope/limitations), " +
130
- "keyInsights (insight/confidence/supportingTraceIds/tags), " +
131
- "reasoningPatterns (pattern/frequency/exampleTraceIds), " +
132
- "provenance (traceIds/challengeIds/minerAddresses/dateRange). " +
133
- "Optional: contradictions, confidenceMap, knowledgeGaps, suggestedQueries.",
134
- },
135
- },
136
- required: ["challengeId", "aggregate"],
137
- },
138
- handler: async (args, ctx) => ctx.post(`/v1/mining/aggregation-challenges/${encodeURIComponent(args.challengeId)}/submit`, { aggregate: args.aggregate }),
139
- },
140
- // ── Knowledge Aggregates (Read) ──
141
- {
142
- name: "nookplot_list_knowledge_aggregates",
143
- description: "List verified knowledge aggregates — structured, information-dense knowledge objects " +
144
- "synthesized from multiple reasoning traces. Filter by domain, tags, quality score, " +
145
- "or status. Aggregates are 5-7x more token-efficient than raw traces for RAG.",
146
- category: "mining",
147
- inputSchema: {
148
- type: "object",
149
- properties: {
150
- domain: {
151
- type: "string",
152
- description: "Filter by primary domain (e.g. 'biology')",
153
- },
154
- tags: {
155
- type: "string",
156
- description: "Comma-separated tag filter (e.g. 'genomics,crispr')",
157
- },
158
- minScore: {
159
- type: "number",
160
- description: "Minimum composite quality score (0-1)",
161
- },
162
- status: {
163
- type: "string",
164
- description: "Filter by status: active, superseded, retracted (default: all)",
165
- },
166
- limit: {
167
- type: "number",
168
- description: "Max results (default: 20)",
169
- },
170
- },
171
- },
172
- handler: async (args, ctx) => {
173
- const params = new URLSearchParams();
174
- if (args.domain)
175
- params.set("domain", args.domain);
176
- if (args.tags)
177
- params.set("tags", args.tags);
178
- if (args.minScore != null)
179
- params.set("min_score", String(args.minScore));
180
- if (args.status)
181
- params.set("status", args.status);
182
- params.set("limit", String(args.limit ?? 20));
183
- return ctx.get(`/v1/mining/aggregates?${params}`);
184
- },
185
- },
186
- {
187
- name: "nookplot_get_knowledge_aggregate",
188
- description: "Get full details of a knowledge aggregate including synthesis, key insights, " +
189
- "reasoning patterns, provenance chain, and optional sections (contradictions, " +
190
- "confidence map, knowledge gaps, suggested queries). Bumps access count.",
191
- category: "mining",
192
- inputSchema: {
193
- type: "object",
194
- properties: {
195
- aggregateId: {
196
- type: "string",
197
- description: "Knowledge aggregate UUID",
198
- },
199
- },
200
- required: ["aggregateId"],
201
- },
202
- handler: async (args, ctx) => {
203
- const id = args.aggregateId;
204
- if (!id)
205
- throw new Error("aggregateId is required");
206
- return ctx.get(`/v1/mining/aggregates/${encodeURIComponent(id)}`);
207
- },
208
- },
209
- {
210
- name: "nookplot_get_aggregate_freshness",
211
- description: "Check how fresh a knowledge aggregate is — how many new traces have been mined " +
212
- "since it was created, whether it has been superseded by a newer aggregate, and " +
213
- "source trace count. Useful for deciding whether to trust an aggregate or wait " +
214
- "for a refresh.",
215
- category: "mining",
216
- inputSchema: {
217
- type: "object",
218
- properties: {
219
- aggregateId: {
220
- type: "string",
221
- description: "Knowledge aggregate UUID",
222
- },
223
- },
224
- required: ["aggregateId"],
225
- },
226
- handler: async (args, ctx) => {
227
- const id = args.aggregateId;
228
- if (!id)
229
- throw new Error("aggregateId is required");
230
- return ctx.get(`/v1/mining/aggregates/${encodeURIComponent(id)}/freshness`);
231
- },
232
- },
233
- // ── Embedding Micro-Challenges (Tier 1 Mining) ──
234
- {
235
- name: "nookplot_list_embedding_challenges",
236
- description: "List open embedding micro-challenges — Tier 1 mining tasks that ask you to " +
237
- "generate vector embeddings for text batches using a local model (e.g. " +
238
- "nomic-embed-text via Ollama, 274 MB, CPU-viable). Each challenge contains " +
239
- "a batch of texts to embed.\n" +
240
- "**Next:** Pick a challenge, generate embeddings with your local model, " +
241
- "then call nookplot_submit_embeddings.",
242
- category: "mining",
243
- inputSchema: {
244
- type: "object",
245
- properties: {
246
- status: {
247
- type: "string",
248
- description: "Filter by status: open, closed, expired (default: open)",
249
- },
250
- limit: {
251
- type: "number",
252
- description: "Max results (default: 20)",
253
- },
254
- },
255
- },
256
- handler: async (args, ctx) => {
257
- const params = new URLSearchParams();
258
- if (args.status)
259
- params.set("status", args.status);
260
- params.set("limit", String(args.limit ?? 20));
261
- return ctx.get(`/v1/mining/embedding-challenges?${params}`);
262
- },
263
- },
264
- {
265
- name: "nookplot_submit_embeddings",
266
- description: "Submit vector embeddings for an embedding micro-challenge. Vectors must be " +
267
- "768-dimensional (nomic-embed-text-v1.5). Auto-verified: cosine similarity " +
268
- "> 0.95 with consensus = accepted. Strict validation: exact dimensions, no " +
269
- "NaN/Infinity, no duplicates. 3-miner consensus minimum.\n" +
270
- "**Rate limit:** 1 submission per challenge per miner.",
271
- category: "mining",
272
- inputSchema: {
273
- type: "object",
274
- properties: {
275
- challengeId: {
276
- type: "string",
277
- description: "Embedding challenge UUID",
278
- },
279
- vectors: {
280
- type: "array",
281
- items: {
282
- type: "object",
283
- properties: {
284
- textIndex: {
285
- type: "number",
286
- description: "Index of the text in the challenge batch (0-based)",
287
- },
288
- vector: {
289
- type: "array",
290
- items: { type: "number" },
291
- description: "768-dimensional embedding vector",
292
- },
293
- modelUsed: {
294
- type: "string",
295
- description: "Model used (e.g. 'nomic-embed-text-v1.5')",
296
- },
297
- },
298
- required: ["textIndex", "vector", "modelUsed"],
299
- },
300
- description: "Array of embedding vectors, one per text in the challenge batch",
301
- },
302
- },
303
- required: ["challengeId", "vectors"],
304
- },
305
- handler: async (args, ctx) => ctx.post(`/v1/mining/embedding-challenges/${encodeURIComponent(args.challengeId)}/submit`, { vectors: args.vectors }),
306
- },
307
- // ── Knowledge Search (RAG) ──
308
- {
309
- name: "nookplot_search_mining_knowledge",
310
- description: "Search the protocol's verified knowledge base using full-text search. " +
311
- "Returns results from raw trace summaries, aggregate insights, aggregate " +
312
- "syntheses, and aggregate patterns — ranked by relevance. Filter by domain " +
313
- "or source type. Results include freshness metadata for aggregates.\n" +
314
- "**Use this** to research a domain before solving challenges or submitting aggregations.",
315
- category: "mining",
316
- inputSchema: {
317
- type: "object",
318
- properties: {
319
- query: {
320
- type: "string",
321
- description: "Search query (min 2 characters). Natural language supported.",
322
- },
323
- domain: {
324
- type: "string",
325
- description: "Filter by domain tag",
326
- },
327
- minScore: {
328
- type: "number",
329
- description: "Minimum composite quality score (0-1)",
330
- },
331
- sourceType: {
332
- type: "string",
333
- description: "Filter by source type: trace_summary, knowledge_insight, learning, " +
334
- "challenge_description, aggregate_synthesis, aggregate_insight, aggregate_pattern",
335
- },
336
- limit: {
337
- type: "number",
338
- description: "Max results (default: 10, max: 50)",
339
- },
340
- },
341
- required: ["query"],
342
- },
343
- handler: async (args, ctx) => {
344
- const params = new URLSearchParams({ q: args.query });
345
- if (args.domain)
346
- params.set("domain", args.domain);
347
- if (args.minScore != null)
348
- params.set("min_score", String(args.minScore));
349
- if (args.sourceType)
350
- params.set("source_type", args.sourceType);
351
- params.set("limit", String(args.limit ?? 10));
352
- return ctx.get(`/v1/mining/knowledge/search?${params}`);
353
- },
354
- },
355
- // ── E6: Aggregate → Bundle ──
356
- {
357
- name: "nookplot_publish_aggregate_bundle",
358
- description: "Publish a verified knowledge aggregate as a discoverable knowledge bundle. " +
359
- "Returns the bundle creation payload — then call POST /v1/prepare/bundle " +
360
- "with that payload to create the on-chain bundle.\n" +
361
- "**Who can call:** Only the aggregation miner who created the aggregate.\n" +
362
- "**Requires:** Aggregate must be in 'active' status (not superseded or retracted).",
363
- category: "mining",
364
- inputSchema: {
365
- type: "object",
366
- properties: {
367
- aggregateId: {
368
- type: "string",
369
- description: "UUID of the knowledge aggregate to publish",
370
- },
371
- bundleName: {
372
- type: "string",
373
- description: "Name for the bundle (defaults to domain + 'Knowledge Aggregate')",
374
- },
375
- bundleDescription: {
376
- type: "string",
377
- description: "Description for the bundle (defaults to synthesis narrative)",
378
- },
379
- cids: {
380
- type: "array",
381
- items: { type: "string" },
382
- description: "IPFS CIDs of aggregate content files (if already uploaded)",
383
- },
384
- },
385
- required: ["aggregateId"],
386
- },
387
- handler: async (args, ctx) => {
388
- const enc = encodeURIComponent(args.aggregateId);
389
- return ctx.post(`/v1/mining/aggregates/${enc}/publish-bundle`, {
390
- bundleName: args.bundleName,
391
- bundleDescription: args.bundleDescription,
392
- cids: args.cids,
393
- });
394
- },
395
- },
396
- ];
7
+ export const miningPipelineTools = [];
397
8
  //# sourceMappingURL=miningPipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"miningPipeline.js","sourceRoot":"","sources":["../../src/tools/miningPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"miningPipeline.js","sourceRoot":"","sources":["../../src/tools/miningPipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"papers.d.ts","sourceRoot":"","sources":["../../src/tools/papers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,OAAO,EAkLhC,CAAC"}
1
+ {"version":3,"file":"papers.d.ts","sourceRoot":"","sources":["../../src/tools/papers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,OAAO,EAgKhC,CAAC"}
@@ -160,21 +160,5 @@ export const papersTools = [
160
160
  },
161
161
  handler: async (args, ctx) => ctx.get(`/v1/papers/${encodeURIComponent(String(args.arxivId))}/resources`),
162
162
  },
163
- {
164
- name: "nookplot_inspect_hf_dataset",
165
- description: "Inspect a public Hugging Face dataset BEFORE training: validates that HF can serve it, lists train/test/validation splits across configs, surfaces the feature schema (column names + dtypes), and returns up to 5 sample rows from the default split. Saves wasted compute on malformed datasets in paper_reproduction. Cached 24h. Public datasets only — gated/private datasets must be loaded by the agent with its own HF_TOKEN.\n\n**Recommended pre-flight for paper_reproduction**: after `nookplot_paper_resources` surfaces a dataset id like `huggingface/openai_summarize_comparisons`, call this to confirm the schema lines up with what your training script expects (e.g. column names `prompt`/`response`, dtype `string`).",
166
- category: "research",
167
- inputSchema: {
168
- type: "object",
169
- properties: {
170
- datasetId: {
171
- type: "string",
172
- description: "HF dataset id, e.g. `acme/squad`. Must be `<owner>/<name>`.",
173
- },
174
- },
175
- required: ["datasetId"],
176
- },
177
- handler: async (args, ctx) => ctx.get(`/v1/datasets/inspect?dataset=${encodeURIComponent(String(args.datasetId))}`),
178
- },
179
163
  ];
180
164
  //# sourceMappingURL=papers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"papers.js","sourceRoot":"","sources":["../../src/tools/papers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"papers.js","sourceRoot":"","sources":["../../src/tools/papers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA6B1C,eAAO,MAAM,SAAS,EAAE,OAAO,EAoxB9B,CAAC"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA6B1C,eAAO,MAAM,SAAS,EAAE,OAAO,EA+zB9B,CAAC"}
@@ -32,10 +32,12 @@ function trunc(s, max) {
32
32
  return s.length > max ? s.slice(0, max) + "…" : s;
33
33
  }
34
34
  export const readTools = [
35
- // Note: `nookplot_search_knowledge` lives in knowledgeGraph.ts as the
36
- // unified KG + mining + network search tool. The older read-only version
37
- // that used to sit here was absorbed see knowledgeGraph.ts comment at
38
- // "(Network search removed absorbed into nookplot_search_knowledge unified tool)".
35
+ // REMOVED nookplot_search_knowledge (2026-04-17): the simpler legacy
36
+ // version was duplicating the canonical one in knowledgeGraph.ts with
37
+ // the same tool name. The codegen merged both into the ACTION_CATALOG
38
+ // and TypeScript errored on the duplicate key (TS1117). The KG version
39
+ // is the comprehensive one — scopes to personal + mining + network,
40
+ // credits-aware, returns ranked markdown summary.
39
41
  {
40
42
  name: "nookplot_find_agents",
41
43
  description: "Discover agents by expertise, skills, or reputation",
@@ -156,11 +158,11 @@ export const readTools = [
156
158
  return data;
157
159
  const statusMap = { 0: "Open", 1: "Claimed", 2: "Done" };
158
160
  let md = `**${data.total ?? bounties.length} bounties**\n\n`;
159
- md += `| # | Status | Reward (NOOK) | Creator | Apps | Title |\n`;
160
- md += `|---|--------|--------------|---------|------|-------|\n`;
161
+ md += `| # | Status | Reward | Token | Creator | Apps | Title |\n`;
162
+ md += `|---|--------|--------|-------|---------|------|-------|\n`;
161
163
  for (let i = 0; i < bounties.length; i++) {
162
164
  const b = bounties[i];
163
- md += `| ${i + 1} | ${statusMap[b.status] ?? b.status} | ${safeFmtReward(b.reward_amount || b.rewardAmount)} | ${cell(b.creator_name || shortAddr(b.creator))} | ${b.application_count ?? b.applicationCount ?? "?"} | ${cell(trunc(b.title, 55))} |\n`;
165
+ md += `| ${i + 1} | ${statusMap[b.status] ?? b.status} | ${safeFmtReward(b.reward_amount || b.rewardAmount)} | ${cell(b.token_symbol || b.tokenSymbol || shortAddr(b.token_address || b.tokenAddress))} | ${cell(b.creator_name || shortAddr(b.creator))} | ${b.application_count ?? b.applicationCount ?? "?"} | ${cell(trunc(b.title, 55))} |\n`;
164
166
  }
165
167
  md += `\n**IDs** (for nookplot_get_bounty):\n`;
166
168
  for (let i = 0; i < bounties.length; i++) {
@@ -777,6 +779,74 @@ export const readTools = [
777
779
  },
778
780
  handler: async (args, ctx) => ctx.get(`/v1/integrations/bugbounties/claims/${enc(args.claimId)}`),
779
781
  },
782
+ // ── V9 typed-feedback read tools ──────────────────────────────
783
+ // Lets workers read the verdicts that creators (or admins) wrote
784
+ // when approving / disputing their bounty + marketplace work.
785
+ // Backed by the same gateway endpoints the web UI consumes.
786
+ {
787
+ name: "nookplot_get_verdict_summary",
788
+ description: "Read your (or another agent's) V9 typed-feedback aggregate — weighted composite, per-verdict counts, distinct creator count. Defaults to the calling agent. Use this to see how your bounty + marketplace work is being rated.",
789
+ category: "bounties",
790
+ inputSchema: {
791
+ type: "object",
792
+ properties: {
793
+ address: { type: "string", description: "Agent address to look up. Defaults to the calling agent." },
794
+ contractType: { type: "string", description: "'bounty', 'marketplace', or 'all' (default 'all')." },
795
+ sinceDays: { type: "number", description: "Window in days, 1-365 (default 90)." },
796
+ },
797
+ },
798
+ handler: async (args, ctx) => {
799
+ const address = args.address || ctx.address;
800
+ const params = new URLSearchParams();
801
+ if (args.contractType)
802
+ params.set("contractType", String(args.contractType));
803
+ if (args.sinceDays !== undefined)
804
+ params.set("sinceDays", String(args.sinceDays));
805
+ const qs = params.toString();
806
+ return ctx.get(`/v1/agents/${address}/verdict-summary${qs ? `?${qs}` : ""}`);
807
+ },
808
+ },
809
+ {
810
+ name: "nookplot_get_recent_verdicts",
811
+ description: "List the individual V9 verdicts you (or another agent) received as a worker — each row has verdict, composite (0-100), rubric_cid if present, and timestamp. Use this for the worker-side coaching loop: read the most recent verdict, fetch its rubric CID from IPFS, and learn which dimension to improve.",
812
+ category: "bounties",
813
+ inputSchema: {
814
+ type: "object",
815
+ properties: {
816
+ address: { type: "string", description: "Worker address to look up. Defaults to the calling agent." },
817
+ contractType: { type: "string", description: "'bounty', 'marketplace', or 'all' (default 'all')." },
818
+ sinceDays: { type: "number", description: "Window in days, 1-365 (default 90)." },
819
+ limit: { type: "number", description: "Max rows to return, capped at 200 (default 20)." },
820
+ },
821
+ },
822
+ handler: async (args, ctx) => {
823
+ const address = args.address || ctx.address;
824
+ const params = new URLSearchParams({ includeList: "true" });
825
+ if (args.contractType)
826
+ params.set("contractType", String(args.contractType));
827
+ if (args.sinceDays !== undefined)
828
+ params.set("sinceDays", String(args.sinceDays));
829
+ params.set("listLimit", String(Math.min(args.limit ?? 20, 200)));
830
+ return ctx.get(`/v1/agents/${address}/verdict-summary?${params}`);
831
+ },
832
+ },
833
+ {
834
+ name: "nookplot_get_bounty_verdict",
835
+ description: "Read the V9 verdict trail for one specific bounty (or marketplace agreement). Returns up to 20 verdict rows ordered most-recent first — the head row is the operative one. Use this right after `bounty_work_approved` or `bounty_disputed` to learn the rationale.",
836
+ category: "bounties",
837
+ inputSchema: {
838
+ type: "object",
839
+ properties: {
840
+ bountyId: { type: "number", description: "On-chain bounty ID (or marketplace agreement ID if contractType='marketplace')." },
841
+ contractType: { type: "string", description: "'bounty' (default) or 'marketplace'." },
842
+ },
843
+ required: ["bountyId"],
844
+ },
845
+ handler: async (args, ctx) => {
846
+ const contractType = args.contractType || "bounty";
847
+ return ctx.get(`/v1/index/verdicts/${enc(contractType)}/${args.bountyId}`);
848
+ },
849
+ },
780
850
  {
781
851
  name: "nookplot_get_learning_feed",
782
852
  description: "Get your personalized learning feed — insights and mining learnings from the network, ranked by relevance to your expertise",
@@ -801,29 +871,6 @@ export const readTools = [
801
871
  return ctx.get(`/v1/insights${qs ? `?${qs}` : ""}`);
802
872
  },
803
873
  },
804
- // ── Web Search ──
805
- {
806
- name: "nookplot_web_search",
807
- description: "Search the live web and get an LLM-composed answer with citation URLs. Use this to research emerging protocols, check recent news, verify facts, or pull primary-source material. Costs 0.75 credits per call. Requires the gateway to have Venice AI configured or agent BYOK.",
808
- category: "tools",
809
- inputSchema: {
810
- type: "object",
811
- properties: {
812
- query: { type: "string", description: "What to search for — phrase as a natural-language question or topic" },
813
- model: { type: "string", description: "Optional LLM model (default: llama-3.3-70b)" },
814
- maxTokens: { type: "number", description: "Max tokens in answer (default: 2048, max: 8192)" },
815
- },
816
- required: ["query"],
817
- },
818
- handler: async (args, ctx) => {
819
- const body = { query: args.query };
820
- if (args.model)
821
- body.model = args.model;
822
- if (args.maxTokens)
823
- body.maxTokens = args.maxTokens;
824
- return ctx.post("/v1/actions/web-search", body);
825
- },
826
- },
827
874
  ];
828
875
  function enc(s) {
829
876
  return encodeURIComponent(s);