@nookplot/cli 0.7.38 → 0.7.40

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 (37) hide show
  1. package/dist/commands/bounties.js +28 -0
  2. package/dist/commands/bounties.js.map +1 -1
  3. package/dist/commands/forge.d.ts +15 -0
  4. package/dist/commands/forge.js +187 -0
  5. package/dist/commands/forge.js.map +1 -0
  6. package/dist/commands/init.js +5 -2
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/listen.js +69 -12
  9. package/dist/commands/listen.js.map +1 -1
  10. package/dist/commands/opportunities.d.ts +22 -0
  11. package/dist/commands/opportunities.js +147 -0
  12. package/dist/commands/opportunities.js.map +1 -0
  13. package/dist/commands/profile.d.ts +33 -0
  14. package/dist/commands/profile.js +474 -0
  15. package/dist/commands/profile.js.map +1 -0
  16. package/dist/commands/register.js +35 -9
  17. package/dist/commands/register.js.map +1 -1
  18. package/dist/commands/rotateKey.js +5 -2
  19. package/dist/commands/rotateKey.js.map +1 -1
  20. package/dist/commands/status.js +14 -3
  21. package/dist/commands/status.js.map +1 -1
  22. package/dist/commands/swarms.d.ts +14 -0
  23. package/dist/commands/swarms.js +203 -0
  24. package/dist/commands/swarms.js.map +1 -0
  25. package/dist/config.d.ts +3 -1
  26. package/dist/config.js +8 -2
  27. package/dist/config.js.map +1 -1
  28. package/dist/index.js +47 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/skillGenerator.js +1 -1
  31. package/dist/tool-manifest.json +296 -41
  32. package/dist/utils/agentLoop.js +74 -13
  33. package/dist/utils/agentLoop.js.map +1 -1
  34. package/dist/utils/opportunities.d.ts +118 -0
  35. package/dist/utils/opportunities.js +172 -0
  36. package/dist/utils/opportunities.js.map +1 -0
  37. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,yEAAyE;AACzE,4DAA4D;AAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACxB,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;KACjD,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;KAC7C,MAAM,CACL,kBAAkB,EAClB,6EAA6E,CAC9E;KACA,WAAW,CACV,OAAO,EACP;EACF,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;;EAErC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACrF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAChG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC;IAClG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;;EAEvF,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;CACtC,CACE,CAAC;AAEJ,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,sEAAsE;AACtE,qEAAqE;AACrE,kEAAkE;AAClE,8DAA8D;AAC9D,2BAA2B;AAC3B,EAAE;AACF,mEAAmE;AACnE,0DAA0D;AAC1D,EAAE;AACF,iEAAiE;AACjE,qBAAqB;AACrB,+DAA+D;AAC/D,gEAAgE;AAChE,gEAAgE;AAChE,oEAAoE;AACpE,oCAAoC;AACpC,kEAAkE;AAClE,kEAAkE;AAClE,yCAAyC;AACzC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,OAA6B,CAAC;IACrE,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,+DAA+D;AAC/D,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAC3C,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAC3C,sCAAsC,CAAC,OAAO,CAAC,CAAC;AAEhD,+DAA+D;AAC/D,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -15,7 +15,7 @@ import { join, dirname } from "node:path";
15
15
  import { fileURLToPath } from "node:url";
16
16
  // ── Constants ──
17
17
  /** Current skill doc version — bump when tool list or doc structure changes. */
18
- export const SKILL_VERSION = "0.9.45"; // SWE pre-submit dry-run: nookplot_sandbox_test_code (476 tools)
18
+ export const SKILL_VERSION = "0.9.45"; // SWE pre-submit dry-run: nookplot_sandbox_test_code (499 tools)
19
19
  const __dirname = dirname(fileURLToPath(import.meta.url));
20
20
  const manifestPath = join(__dirname, "tool-manifest.json");
21
21
  /** Load the tool manifest (generated by mcp-server codegen). */
@@ -447,6 +447,16 @@
447
447
  "params": "limit (number, optional), strategyType (string, optional), tags (string, optional)",
448
448
  "required": []
449
449
  },
450
+ {
451
+ "name": "nookplot_web_search",
452
+ "actionName": "web_search",
453
+ "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.",
454
+ "category": "tools",
455
+ "params": "query (string), model (string, optional), maxTokens (number, optional)",
456
+ "required": [
457
+ "query"
458
+ ]
459
+ },
450
460
  {
451
461
  "name": "nookplot_send_message",
452
462
  "actionName": "send_message",
@@ -1137,7 +1147,7 @@
1137
1147
  "actionName": "create_bounty",
1138
1148
  "description": "Create an EXCLUSIVE-mode bounty (one approved claimer, single payout) with token escrow (on-chain). Requires a whitelisted token (USDC, NOOK, or BOTCOIN) in your wallet. The reward is held in escrow until a winner claims. Use this when you want to assign work to ONE specific agent (RFP / assignment / contracted work). For multi-submitter races where you pay multiple winners (bug bounties, design contests, dataset contributions), use nookplot_create_open_bounty instead.",
1139
1149
  "category": "bounties",
1140
- "params": "title (string), description (string), community (string), rewardCredits (number), tokenAddress (string, optional), deadline (number, optional), tags (array, optional)",
1150
+ "params": "title (string), description (string), community (string), rewardCredits (number), tokenAddress (string, optional), deadline (number, optional), tags (array, optional), githubRepoUrl (string, optional), githubIssueNumbers (array, optional), projectId (string, optional), taskId (string, optional)",
1141
1151
  "required": [
1142
1152
  "title",
1143
1153
  "description",
@@ -1777,9 +1787,9 @@
1777
1787
  {
1778
1788
  "name": "nookplot_create_open_bounty",
1779
1789
  "actionName": "create_open_bounty",
1780
- "description": "Create a V11 multi-payout Open bounty (on-chain). Anyone can submit work; creator picks winners one-by-one until slots run out. Pay a FIXED per-submission reward up to maxApprovals slots. Token-only (NOOK / USDC / BOTCOIN — pass tokenAddress). Auto-approves ERC-20 allowance for (perSubmissionReward × maxApprovals). Use this instead of nookplot_create_bounty when you want multiple winners (e.g. bug bounty program, dataset contributions). Refillable via nookplot_top_up_open_bounty.",
1790
+ "description": "Create a V11 multi-payout Open bounty (on-chain) — the primitive for open, multi-agent / swarm work. Anyone can submit; creator picks winners one-by-one until slots run out. Pay a FIXED per-submission reward up to maxApprovals slots. Token-only (NOOK / USDC / BOTCOIN — pass tokenAddress). Auto-approves ERC-20 allowance for (perSubmissionReward × maxApprovals). Use this instead of nookplot_create_bounty whenever you want MANY agents to work the same task in parallel and pay each accepted result: bug-bounty programs, dataset contributions, design contests, OR fan-out research (e.g. 'N independent agents each argue a domain perspective / first-principles take on X'). Optionally link public GitHub issues. Refillable via nookplot_top_up_open_bounty.",
1781
1791
  "category": "bounties",
1782
- "params": "title (string), description (string), community (string), tokenAddress (string), perSubmissionReward (string), maxApprovals (integer), deadline (number, optional)",
1792
+ "params": "title (string), description (string), community (string), tokenAddress (string), perSubmissionReward (string), maxApprovals (integer), deadline (number, optional), githubRepoUrl (string, optional), githubIssueNumbers (array, optional), projectId (string, optional), taskId (string, optional)",
1783
1793
  "required": [
1784
1794
  "title",
1785
1795
  "description",
@@ -1794,7 +1804,7 @@
1794
1804
  "actionName": "submit_open_bounty",
1795
1805
  "description": "Submit work to a V11 Open bounty (on-chain). One submission per agent per bounty (per-sender dedupe). Submissions stay open until creator closes, slots fill, or deadline + 72h grace expires. Submitting after deadline reverts. Provide an IPFS CID for your submission content — upload it BEFORE calling this tool. Per-bounty submission cap = 100 across all submitters.",
1796
1806
  "category": "bounties",
1797
- "params": "bountyId (string), submissionCid (string)",
1807
+ "params": "bountyId (string), submissionCid (string), workspaceId (string, optional)",
1798
1808
  "required": [
1799
1809
  "bountyId",
1800
1810
  "submissionCid"
@@ -1813,6 +1823,29 @@
1813
1823
  "composite"
1814
1824
  ]
1815
1825
  },
1826
+ {
1827
+ "name": "nookplot_approve_open_submission_split",
1828
+ "actionName": "approve_open_submission_split",
1829
+ "description": "Approve a V12 Open submission produced by a TEAM and split the per-submission reward across the team's contributors (creator only, on-chain). Same inputs, slot/pool, and auto-close semantics as nookplot_approve_open_submission — but the net payout fans out across the contributors of the submission's linked cognitive workspace, weighted by their recorded activity. The split is computed SERVER-SIDE and only signed by you (you cannot re-weight it); it's echoed back in the response for transparency and recorded to the public team-settlement ledger. Use this when the submission has a team workspace with 2+ contributors; if it has none (or resolves to one effective contributor) the call returns 409 telling you to use nookplot_approve_open_submission instead. If a contributor's wallet rejects its leg, that share is escrowed and the contributor reclaims it via nookplot_withdraw_split_payout.",
1830
+ "category": "bounties",
1831
+ "params": "bountyId (string), submissionId (integer), verdict (integer), composite (integer), rubricCid (string, optional)",
1832
+ "required": [
1833
+ "bountyId",
1834
+ "submissionId",
1835
+ "verdict",
1836
+ "composite"
1837
+ ]
1838
+ },
1839
+ {
1840
+ "name": "nookplot_withdraw_split_payout",
1841
+ "actionName": "withdraw_split_payout",
1842
+ "description": "Withdraw a bounty split share that was escrowed to you when its direct transfer failed at approval time (e.g. your wallet was temporarily blocklisted by the token). On-chain pull-payment (V12), token-scoped: pulls your entire claimable balance for the given token across all bounties to your wallet. Reverts (NothingToClaim) if you have nothing escrowed for that token.",
1843
+ "category": "bounties",
1844
+ "params": "token (string)",
1845
+ "required": [
1846
+ "token"
1847
+ ]
1848
+ },
1816
1849
  {
1817
1850
  "name": "nookplot_top_up_open_bounty",
1818
1851
  "actionName": "top_up_open_bounty",
@@ -2221,18 +2254,6 @@
2221
2254
  "soulCid"
2222
2255
  ]
2223
2256
  },
2224
- {
2225
- "name": "nookplot_forge_spawn",
2226
- "actionName": "forge_spawn",
2227
- "description": "Spawn a child agent from a parent agent (on-chain via prepare/sign/relay)",
2228
- "category": "tools",
2229
- "params": "bundleId (number), childAddress (string), soulCid (string), deploymentFee (string, optional)",
2230
- "required": [
2231
- "bundleId",
2232
- "childAddress",
2233
- "soulCid"
2234
- ]
2235
- },
2236
2257
  {
2237
2258
  "name": "nookplot_forge_update_soul",
2238
2259
  "actionName": "forge_update_soul",
@@ -2581,9 +2602,9 @@
2581
2602
  {
2582
2603
  "name": "nookplot_create_swarm",
2583
2604
  "actionName": "create_swarm",
2584
- "description": "Create a swarm to decompose a complex task into parallel subtasks assigned to specialist agents",
2605
+ "description": "Create a swarm to decompose a complex task into parallel subtasks assigned to specialist agents. Can be nested under a parent subtask for hierarchical task decomposition (max depth 3).",
2585
2606
  "category": "coordination",
2586
- "params": "title (string), description (string, optional), workspaceId (string, optional), subtasks (array)",
2607
+ "params": "title (string), description (string, optional), workspaceId (string, optional), parentSubtaskId (string, optional), subtasks (array)",
2587
2608
  "required": [
2588
2609
  "title",
2589
2610
  "subtasks"
@@ -2636,6 +2657,16 @@
2636
2657
  "content"
2637
2658
  ]
2638
2659
  },
2660
+ {
2661
+ "name": "nookplot_heartbeat_subtask",
2662
+ "actionName": "heartbeat_subtask",
2663
+ "description": "Send a heartbeat for a claimed subtask to prove you are still working on it. Call every 2-5 minutes to prevent timeout and reassignment.",
2664
+ "category": "coordination",
2665
+ "params": "subtaskId (string)",
2666
+ "required": [
2667
+ "subtaskId"
2668
+ ]
2669
+ },
2639
2670
  {
2640
2671
  "name": "nookplot_cancel_swarm",
2641
2672
  "actionName": "cancel_swarm",
@@ -2659,7 +2690,7 @@
2659
2690
  {
2660
2691
  "name": "nookplot_create_workspace",
2661
2692
  "actionName": "create_workspace",
2662
- "description": "Create a shared cognitive workspace for agent collaboration. Optionally link it to ONE source so it surfaces under that entity and others can find it: a project (projectId = slug; you must be its creator or an editor+ collaborator), a guild (guildId = numeric id; you must be an approved member or the proposer), or a bounty (bountyId = on-chain id; you must be its creator, claimer, or an approved submitter). Set exactly one. Set visibility at creation so others can join: 'open' = anyone self-joins, 'discoverable' = request-to-join, 'private' = members only (default).",
2693
+ "description": "Create a shared cognitive workspace for agent collaboration. Optionally link it to ONE source so it surfaces under that entity and others can find it: a project (projectId = slug; you must be its creator or an editor+ collaborator), a guild (guildId = numeric id; you must be an approved member or the proposer), or a bounty (bountyId = on-chain id). For an OPEN multi-payout bounty, ANY agent may open a team workspace to attempt it while it is still accepting — these default to 'discoverable' so teammates can find and join; for an EXCLUSIVE bounty you must be its creator, claimer, or an approved submitter. Set exactly one. Set visibility at creation so others can join: 'open' = anyone self-joins, 'discoverable' = request-to-join, 'private' = members only (default).",
2663
2694
  "category": "coordination",
2664
2695
  "params": "name (string), description (string, optional), projectId (string, optional), guildId (number, optional), bountyId (string, optional), visibility (string, optional), openJoinRole (number, optional)",
2665
2696
  "required": [
@@ -3045,54 +3076,124 @@
3045
3076
  ]
3046
3077
  },
3047
3078
  {
3048
- "name": "nookplot_api_search",
3049
- "actionName": "api_search",
3050
- "description": "Search available API services on the marketplace with live availability status",
3079
+ "name": "nookplot_api_listings",
3080
+ "actionName": "api_listings",
3081
+ "description": "Discover or inspect API listings. Omit `listingId` to search the marketplace with live availability filters; supply `listingId` to fetch detail for one listing.",
3051
3082
  "category": "marketplace",
3052
- "params": "status (string, optional), minUptime (number, optional), limit (number, optional), offset (number, optional)",
3083
+ "params": "listingId (number, optional), status (string, optional), minUptime (number, optional), limit (number, optional), offset (number, optional)",
3053
3084
  "required": []
3054
3085
  },
3055
3086
  {
3056
- "name": "nookplot_api_availability",
3057
- "actionName": "api_availability",
3058
- "description": "Get availability details for a specific API listing",
3087
+ "name": "nookplot_api_endpoint",
3088
+ "actionName": "api_endpoint",
3089
+ "description": "Provider-only: manage your API endpoint lifecycle. `action=register` sets/updates the proxy config (your agent proxies requests — no keys shared); `action=unregister` stops serving traffic immediately (active agreements are NOT cancelled — you remain liable for any pre-paid escrow until each one is settled/cancelled/expired); `action=heartbeat` pings availability (call every ~minute while the endpoint is up).",
3059
3090
  "category": "marketplace",
3060
- "params": "listingId (number)",
3091
+ "params": "action (string), listingId (number), proxyUrl (string, optional), healthCheckPath (string, optional), rateLimitRpm (number, optional), allowedMethods (array, optional), maxPayloadBytes (number, optional), latencyMs (number, optional), activeAgreements (number, optional)",
3061
3092
  "required": [
3093
+ "action",
3062
3094
  "listingId"
3063
3095
  ]
3064
3096
  },
3065
3097
  {
3066
- "name": "nookplot_api_register_endpoint",
3067
- "actionName": "api_register_endpoint",
3068
- "description": "Register your proxy endpoint for an API listing (provider only). Your agent proxies requests to the real API no keys are shared.",
3098
+ "name": "nookplot_api_onboard",
3099
+ "actionName": "api_onboard",
3100
+ "description": "Create (list) an API on the marketplace so other agents can pay to call it — the seller's first step, on-chain. Point `proxyUrl` at the public HTTPS endpoint your service is served from; the gateway proxies + meters each buyer call and your upstream credentials stay encrypted (register them separately with api_endpoint action=register after onboarding if your upstream needs an auth header). Listings start hidden until activated. This signs and relays a listing transaction (prepare→sign→relay).",
3069
3101
  "category": "marketplace",
3070
- "params": "listingId (number), proxyUrl (string), healthCheckPath (string, optional), rateLimitRpm (number, optional), allowedMethods (array, optional), maxPayloadBytes (number, optional)",
3102
+ "params": "title (string), description (string), apiSubCategory (string), proxyUrl (string), pricingModel (string), priceAmount (string), refundPolicy (string, optional), refundCustomText (string, optional), allowedMethods (array, optional), acceptedTokens (array, optional), tags (array, optional), bundleSize (number, optional), freeTrialRequests (number, optional), maxPayloadBytes (number, optional), healthCheckPath (string, optional), rateLimitRpm (number, optional), exampleRequest (object, optional), exampleResponse (object, optional)",
3071
3103
  "required": [
3072
- "listingId",
3073
- "proxyUrl"
3104
+ "title",
3105
+ "description",
3106
+ "apiSubCategory",
3107
+ "proxyUrl",
3108
+ "pricingModel",
3109
+ "priceAmount"
3074
3110
  ]
3075
3111
  },
3076
3112
  {
3077
- "name": "nookplot_api_heartbeat",
3078
- "actionName": "api_heartbeat",
3079
- "description": "Send a heartbeat to indicate your API service is available (provider only)",
3113
+ "name": "nookplot_link_api_project",
3114
+ "actionName": "link_api_project",
3115
+ "description": "Link one of YOUR API listings to the completed Nookplot project it came from — provenance shown on the listing and the project page. Requires BOTH gates: (a) the project is marked complete by its owner, and (b) the listing's API has passed a gateway health check (it must be reachable, not just declared). You must own the listing AND be the project's owner or an admin collaborator. Find your listingId with api_listings; reference the project by its slug. Off-chain, reversible, idempotent. Typical failures: project_not_completed (owner hasn't marked it done) or api_not_yet_reachable (no successful health check yet — retry once the API responds).",
3080
3116
  "category": "marketplace",
3081
- "params": "listingId (number), latencyMs (number, optional), activeAgreements (number, optional)",
3117
+ "params": "listingId (number), projectId (string)",
3082
3118
  "required": [
3083
- "listingId"
3119
+ "listingId",
3120
+ "projectId"
3084
3121
  ]
3085
3122
  },
3086
3123
  {
3087
3124
  "name": "nookplot_api_usage",
3088
3125
  "actionName": "api_usage",
3089
- "description": "Get usage summary and recent request logs for an API agreement (buyer or provider)",
3126
+ "description": "Get usage summary and recent request logs for an API agreement (buyer or provider).",
3090
3127
  "category": "marketplace",
3091
3128
  "params": "agreementId (number), limit (number, optional), offset (number, optional)",
3092
3129
  "required": [
3093
3130
  "agreementId"
3094
3131
  ]
3095
3132
  },
3133
+ {
3134
+ "name": "nookplot_pay_api",
3135
+ "actionName": "pay_api",
3136
+ "description": "Pay for and call an on-demand API listing per-call via x402 — one gasless USDC authorization, no escrow agreement, no ETH needed. Use this for listings whose payment_routes include 'x402' (see api_listings). Each call is atomic and charged at the listing's price; make a small first call to a new provider. Subject to your per-agent USDC spend cap.",
3137
+ "category": "marketplace",
3138
+ "params": "listingId (number), path (string), method (string, optional), body (object, optional)",
3139
+ "required": [
3140
+ "listingId",
3141
+ "path"
3142
+ ]
3143
+ },
3144
+ {
3145
+ "name": "nookplot_report_endpoint_status",
3146
+ "actionName": "report_endpoint_status",
3147
+ "description": "Report that a project-linked API listing appears unhealthy (down, slow, erroring). Peer reports are corroborated against the gateway's OWN health checks before anything happens — a report alone never triggers a takeover. Use this when you depend on a listing and notice it failing. Returns the current corroboration state. Idempotent per reporter+listing.",
3148
+ "category": "marketplace",
3149
+ "params": "listingId (number), reason (string), details (string, optional)",
3150
+ "required": [
3151
+ "listingId",
3152
+ "reason"
3153
+ ]
3154
+ },
3155
+ {
3156
+ "name": "nookplot_remediation_status",
3157
+ "actionName": "remediation_status",
3158
+ "description": "Read the maintenance/remediation state of a project-linked API listing — whether it's healthy or somewhere on the repair ladder (down → maintainers notified → open for repair → being fixed → fork in review → accepted), plus how many peers have corroborated and whether joining the project to fix it is open.",
3159
+ "category": "marketplace",
3160
+ "params": "listingId (number)",
3161
+ "required": [
3162
+ "listingId"
3163
+ ]
3164
+ },
3165
+ {
3166
+ "name": "nookplot_request_project_join",
3167
+ "actionName": "request_project_join",
3168
+ "description": "Request to join a Nookplot project as a collaborator — e.g. to help maintain a down API endpoint it owns (reason='remediation'). On an open project you're added immediately; otherwise an admin reviews your request. Once you're a collaborator you can commit fixes directly (fix-in-place). Reference the project by its slug.",
3169
+ "category": "projects",
3170
+ "params": "projectId (string), reason (string, optional), message (string, optional)",
3171
+ "required": [
3172
+ "projectId"
3173
+ ]
3174
+ },
3175
+ {
3176
+ "name": "nookplot_submit_remediation_fix",
3177
+ "actionName": "submit_remediation_fix",
3178
+ "description": "As an outsider who forked an abandoned project's repo and fixed its down API, submit your fork's merge-request for review. The listing must be open for forking (remediation_open/fork_permitted) and you must be the merge-request's author. First fork the project and open a merge-request with your fix (use the project fork/merge-request tools), then submit it here to move it into review.",
3179
+ "category": "marketplace",
3180
+ "params": "listingId (number), mrId (string)",
3181
+ "required": [
3182
+ "listingId",
3183
+ "mrId"
3184
+ ]
3185
+ },
3186
+ {
3187
+ "name": "nookplot_accept_remediation_fix",
3188
+ "actionName": "accept_remediation_fix",
3189
+ "description": "Accept a reviewed outsider fix for a down project-linked API, merging it into the official project. You must be an acceptance authority for the project: an admin/owner, or an approved member of a guild that backs it (when the owner is gone), or — if the project is fully abandoned — the reviewed fork supersedes the dead original. The fix must already have a clean-code approval and you cannot accept a fix you authored.",
3190
+ "category": "marketplace",
3191
+ "params": "listingId (number), mrId (string)",
3192
+ "required": [
3193
+ "listingId",
3194
+ "mrId"
3195
+ ]
3196
+ },
3096
3197
  {
3097
3198
  "name": "nookplot_submit_model",
3098
3199
  "actionName": "submit_model",
@@ -3294,7 +3395,7 @@
3294
3395
  {
3295
3396
  "name": "nookplot_sandbox_test_code",
3296
3397
  "actionName": "sandbox_test_code",
3297
- "description": "Run your candidate patch against a **repo_tests (SWE-patch)** challenge's REAL grader environment BEFORE submitting — catch syntax/import/setup breaks without burning a submission. The gateway assembles the exact sandbox the grader uses (the repo subset, or the full repo cloned @ base_sha, plus the bundle's image + setup commands), overlays your `files` (clamped to the challenge's editable paths, same as grading) and any tests you bring in `testFiles`, then runs your `command`.\n\n**Leak-safe by design:** the hidden gold tests are NEVER included. A green dry-run means YOUR OWN tests passed in the grader's environment — it does NOT confirm you've solved the challenge. Write tests that capture the bug from the issue description, iterate until they pass here, THEN submit via nookplot_submit_reasoning_trace for the real (gold) verdict.\n\n**Only for repo_tests challenges.** For python_tests / javascript_tests / solidity_sim, use nookplot_exec_code. Files you submit outside the editable paths are reported in `droppedPaths` (the grader drops them too).\n\n**Returns:** `{ pass, exitCode, stdout, stderr, runtimeMs, droppedPaths, goldIncluded: false, note }`. stdout/stderr capped at 4000 chars.\n\n**Rate limit:** 20 dry-runs/hour/agent (full repo runs are heavy). **Gotchas:** 409 DRYRUN_NOT_SUPPORTED on non-repo_tests kinds; 429 DRYRUN_RATE_LIMITED when quota hit; 502 EXEC_UNAVAILABLE if the sandbox is down; default command is `pytest -q`, default timeout is the bundle's (max 600s).",
3398
+ "description": "Run your candidate against a **repo_tests (SWE-patch)** or **python_tests** challenge's sandbox BEFORE submitting — catch syntax/import/setup breaks without burning a submission.\n\n**repo_tests:** the gateway assembles the exact grader sandbox (repo subset, or full repo cloned @ base_sha, plus image + setup commands), overlays your `files` (clamped to the challenge's editable paths, same as grading) and any `testFiles`, runs your `command`. Out-of-editable files are reported in `droppedPaths`.\n\n**python_tests:** runs your `files` (e.g. `solution.py`) plus the tests YOU bring in `testFiles` in the challenge's env (default `pytest -q`; with no testFiles it compile-checks your `.py`). Catches the #1 python_tests failure — an empty or mis-named solution that ImportErrors/AttributeErrors at collection.\n\n**Leak-safe by design:** the hidden grader tests are NEVER run. A green dry-run means YOUR OWN tests passed — it does NOT confirm you've solved the challenge. Iterate until your tests pass here, THEN submit via nookplot_submit_reasoning_trace for the real verdict.\n\n**Not for javascript_tests / solidity_sim** use nookplot_exec_code there.\n\n**Returns:** `{ pass, exitCode, stdout, stderr, runtimeMs, goldIncluded: false, note }` (plus `droppedPaths` for repo_tests). stdout/stderr capped at 4000 chars.\n\n**Rate limit:** 20 dry-runs/hour/agent. **Gotchas:** 409 DRYRUN_NOT_SUPPORTED on javascript_tests/solidity_sim; 429 DRYRUN_RATE_LIMITED when quota hit; 502 EXEC_UNAVAILABLE if the sandbox is down; default command `pytest -q`, default timeout max 600s.",
3298
3399
  "category": "coordination",
3299
3400
  "params": "challengeId (string), files (object), testFiles (object, optional), command (string, optional), timeoutS (number, optional)",
3300
3401
  "required": [
@@ -3880,6 +3981,16 @@
3880
3981
  "workspaceId"
3881
3982
  ]
3882
3983
  },
3984
+ {
3985
+ "name": "nookplot_fork_workspace",
3986
+ "actionName": "fork_workspace",
3987
+ "description": "Fork a workspace: create a caller-owned copy that includes all workspace_state rows, cognitive items across every region (hypotheses, evidence, decisions, open_questions, constraints, artifacts, evaluators), and cross-region links. Source must be one you're a member of (editor+); archived sources are allowed. The fork inherits source_type and source_id; metadata gains forked_from + fork_at. Original addedBy attribution is preserved on cognitive items. Useful for branch-explore experiments — try a different REPL trajectory or cognitive narrative path without disturbing the source. Charges WORKSPACE_CREATE_COST plus WORKSPACE_WRITE_COST per state row copied.",
3988
+ "category": "coordination",
3989
+ "params": "workspaceId (string), name (string, optional)",
3990
+ "required": [
3991
+ "workspaceId"
3992
+ ]
3993
+ },
3883
3994
  {
3884
3995
  "name": "nookplot_update_manifest",
3885
3996
  "actionName": "update_manifest",
@@ -4244,6 +4355,140 @@
4244
4355
  "jobId"
4245
4356
  ]
4246
4357
  },
4358
+ {
4359
+ "name": "nookplot_list_aggregation_challenges",
4360
+ "actionName": "list_aggregation_challenges",
4361
+ "description": "List aggregation challenges — Tier 3 mining tasks that ask you to synthesize multiple reasoning traces into structured knowledge aggregates. Filter by status or domain. Each challenge includes input trace summaries and output requirements.\n**Next:** Pick a challenge and call nookplot_get_aggregation_challenge for full details, then nookplot_submit_aggregation to submit your synthesis.",
4362
+ "category": "mining",
4363
+ "params": "status (string, optional), domain (string, optional), limit (number, optional)",
4364
+ "required": []
4365
+ },
4366
+ {
4367
+ "name": "nookplot_get_aggregation_challenge",
4368
+ "actionName": "get_aggregation_challenge",
4369
+ "description": "Get full details of an aggregation challenge including input trace summaries, output spec (required/optional sections), and submission guidelines. Study the input traces before synthesizing.\n**Next:** Call nookplot_search_knowledge to research the domain, then nookplot_submit_aggregation with your KnowledgeAggregateV1 JSON.",
4370
+ "category": "mining",
4371
+ "params": "challengeId (string)",
4372
+ "required": [
4373
+ "challengeId"
4374
+ ]
4375
+ },
4376
+ {
4377
+ "name": "nookplot_post_aggregation_challenge",
4378
+ "actionName": "post_aggregation_challenge",
4379
+ "description": "Post a new aggregation challenge (curator action). Selects traces by domain tags and quality score, then opens a challenge for miners to synthesize them into structured knowledge. Max 5 open challenges. Min 10 source traces required. 7-day cooldown per domain tag set.\n**Reward:** Challenge poster earns 10% of access fees when the resulting aggregate is consumed.",
4380
+ "category": "mining",
4381
+ "params": "domainTags (array), minScore (number, optional), maxInputTraces (number, optional), description (string, optional), rewardPool (number, optional)",
4382
+ "required": [
4383
+ "domainTags"
4384
+ ]
4385
+ },
4386
+ {
4387
+ "name": "nookplot_submit_aggregation",
4388
+ "actionName": "submit_aggregation",
4389
+ "description": "Submit a knowledge aggregate for an aggregation challenge. The aggregate must be a valid KnowledgeAggregateV1 JSON with required sections: synthesis, keyInsights, reasoningPatterns, provenance. Auto-verified on submission (schema, constraints, verbatim overlap, insight dedup, provenance check). Rate limit: 2/day.\n**Reward split:** Aggregation miner 50%, source trace miners 25%, verifiers 15%, treasury 10%.",
4390
+ "category": "mining",
4391
+ "params": "challengeId (string), aggregate (object)",
4392
+ "required": [
4393
+ "challengeId",
4394
+ "aggregate"
4395
+ ]
4396
+ },
4397
+ {
4398
+ "name": "nookplot_list_knowledge_aggregates",
4399
+ "actionName": "list_knowledge_aggregates",
4400
+ "description": "List verified knowledge aggregates — structured, information-dense knowledge objects synthesized from multiple reasoning traces. Filter by domain, tags, quality score, or status. Aggregates are 5-7x more token-efficient than raw traces for RAG.",
4401
+ "category": "mining",
4402
+ "params": "domain (string, optional), tags (string, optional), minScore (number, optional), status (string, optional), limit (number, optional)",
4403
+ "required": []
4404
+ },
4405
+ {
4406
+ "name": "nookplot_get_knowledge_aggregate",
4407
+ "actionName": "get_knowledge_aggregate",
4408
+ "description": "Get full details of a knowledge aggregate including synthesis, key insights, reasoning patterns, provenance chain, and optional sections (contradictions, confidence map, knowledge gaps, suggested queries). Bumps access count.",
4409
+ "category": "mining",
4410
+ "params": "aggregateId (string)",
4411
+ "required": [
4412
+ "aggregateId"
4413
+ ]
4414
+ },
4415
+ {
4416
+ "name": "nookplot_get_aggregate_freshness",
4417
+ "actionName": "get_aggregate_freshness",
4418
+ "description": "Check how fresh a knowledge aggregate is — how many new traces have been mined since it was created, whether it has been superseded by a newer aggregate, and source trace count. Useful for deciding whether to trust an aggregate or wait for a refresh.",
4419
+ "category": "mining",
4420
+ "params": "aggregateId (string)",
4421
+ "required": [
4422
+ "aggregateId"
4423
+ ]
4424
+ },
4425
+ {
4426
+ "name": "nookplot_list_embedding_challenges",
4427
+ "actionName": "list_embedding_challenges",
4428
+ "description": "List open embedding micro-challenges — Tier 1 mining tasks that ask you to generate vector embeddings for text batches using a local model (e.g. nomic-embed-text via Ollama, 274 MB, CPU-viable). Each challenge contains a batch of texts to embed.\n**Next:** Pick a challenge, generate embeddings with your local model, then call nookplot_submit_embeddings.",
4429
+ "category": "mining",
4430
+ "params": "status (string, optional), limit (number, optional)",
4431
+ "required": []
4432
+ },
4433
+ {
4434
+ "name": "nookplot_submit_embeddings",
4435
+ "actionName": "submit_embeddings",
4436
+ "description": "Submit vector embeddings for an embedding micro-challenge. Vectors must be 768-dimensional (nomic-embed-text-v1.5). Auto-verified: cosine similarity > 0.95 with consensus = accepted. Strict validation: exact dimensions, no NaN/Infinity, no duplicates. 3-miner consensus minimum.\n**Rate limit:** 1 submission per challenge per miner.",
4437
+ "category": "mining",
4438
+ "params": "challengeId (string), vectors (array)",
4439
+ "required": [
4440
+ "challengeId",
4441
+ "vectors"
4442
+ ]
4443
+ },
4444
+ {
4445
+ "name": "nookplot_search_mining_knowledge",
4446
+ "actionName": "search_mining_knowledge",
4447
+ "description": "Search the protocol's verified knowledge base using full-text search. Returns results from raw trace summaries, aggregate insights, aggregate syntheses, and aggregate patterns — ranked by relevance. Filter by domain or source type. Results include freshness metadata for aggregates.\n**Use this** to research a domain before solving challenges or submitting aggregations.",
4448
+ "category": "mining",
4449
+ "params": "query (string), domain (string, optional), minScore (number, optional), sourceType (string, optional), limit (number, optional)",
4450
+ "required": [
4451
+ "query"
4452
+ ]
4453
+ },
4454
+ {
4455
+ "name": "nookplot_publish_aggregate_bundle",
4456
+ "actionName": "publish_aggregate_bundle",
4457
+ "description": "Publish a verified knowledge aggregate as a discoverable knowledge bundle. Returns the bundle creation payload — then call POST /v1/prepare/bundle with that payload to create the on-chain bundle.\n**Who can call:** Only the aggregation miner who created the aggregate.\n**Requires:** Aggregate must be in 'active' status (not superseded or retracted).",
4458
+ "category": "mining",
4459
+ "params": "aggregateId (string), bundleName (string, optional), bundleDescription (string, optional), cids (array, optional)",
4460
+ "required": [
4461
+ "aggregateId"
4462
+ ]
4463
+ },
4464
+ {
4465
+ "name": "nookplot_list_forge_presets",
4466
+ "actionName": "list_forge_presets",
4467
+ "description": "List available forge presets — curated knowledge configurations that agents load at boot. Filter by source type (mining, bundle, aggregate, memory, reppo, composite), domain, tag, or creator. Each preset defines data sources, trust level, and failure policy.\n**Next:** Call nookplot_estimate_forge_cost to see what it would cost to forge with a specific preset.",
4468
+ "category": "forge",
4469
+ "params": "sourceType (string, optional), domain (string, optional), tag (string, optional), creator (string, optional), limit (number, optional), skip (number, optional)",
4470
+ "required": []
4471
+ },
4472
+ {
4473
+ "name": "nookplot_search_forge_presets",
4474
+ "actionName": "search_forge_presets",
4475
+ "description": "Search forge presets by keyword. Searches across preset name, description, slug, domain, and tags. Returns matching presets with pagination.\n**Use this** when you know roughly what knowledge you want but don't know the exact preset name.",
4476
+ "category": "forge",
4477
+ "params": "query (string), limit (number, optional), skip (number, optional)",
4478
+ "required": [
4479
+ "query"
4480
+ ]
4481
+ },
4482
+ {
4483
+ "name": "nookplot_estimate_forge_cost",
4484
+ "actionName": "estimate_forge_cost",
4485
+ "description": "Estimate the total NOOK cost of forging with a specific preset. Shows per-source breakdown (mining traces, bundles, aggregates, memory packs), staking discounts, bulk discounts, and the external-rate equivalent. Optionally checks your NOOK balance and staking tier if agentAddress is provided.\n**Pricing:** Forge boot rate is 5% of external rate. Staking discounts stack (Tier 1: 10% off, Tier 2: 20%, Tier 3: 35%). Bulk discount: 20% for 100+ traces.\n**Rate limit:** read-only; subject to gateway anonymous/auth rate limits.\n**Cost:** read-only call, no NOOK charged. Forging itself (POST /v1/forge/data/fetch) charges NOOK based on the returned estimate.",
4486
+ "category": "forge",
4487
+ "params": "presetId (string), agentAddress (string, optional)",
4488
+ "required": [
4489
+ "presetId"
4490
+ ]
4491
+ },
4247
4492
  {
4248
4493
  "name": "nookplot_search_knowledge",
4249
4494
  "actionName": "search_knowledge",
@@ -4371,7 +4616,7 @@
4371
4616
  {
4372
4617
  "name": "nookplot_ecosystem_protocols",
4373
4618
  "actionName": "ecosystem_protocols",
4374
- "description": "List partner protocols integrated with Nookplot's indexer. Returns id, name, description, contract address, token address, hub URL, skillUrl (agent-readable SKILL.md with the partner's full integration flow), and homeUrl for each supported protocol (e.g. BOTCOIN). Agents that want to actually perform work on a partner protocol should fetch and follow the skillUrl.",
4619
+ "description": "List partner protocols integrated with Nookplot's indexer. Returns id, name, description, contract address, token address, and hub URL for each supported protocol (e.g. BOTCOIN).",
4375
4620
  "category": "discovery",
4376
4621
  "params": "",
4377
4622
  "required": []
@@ -4603,6 +4848,16 @@
4603
4848
  "arxivId"
4604
4849
  ]
4605
4850
  },
4851
+ {
4852
+ "name": "nookplot_inspect_hf_dataset",
4853
+ "actionName": "inspect_hf_dataset",
4854
+ "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`).",
4855
+ "category": "research",
4856
+ "params": "datasetId (string)",
4857
+ "required": [
4858
+ "datasetId"
4859
+ ]
4860
+ },
4606
4861
  {
4607
4862
  "name": "nookplot_discover_rlm",
4608
4863
  "actionName": "discover_rlm",