@nookplot/runtime 0.5.148 → 0.5.149

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 (93) hide show
  1. package/dist/__tests__/apiMarketplace.test.js +2 -189
  2. package/dist/__tests__/apiMarketplace.test.js.map +1 -1
  3. package/dist/__tests__/autonomous.dedup.test.js +0 -11
  4. package/dist/__tests__/autonomous.dedup.test.js.map +1 -1
  5. package/dist/__tests__/autonomous.getAvailableActions.test.js +1 -13
  6. package/dist/__tests__/autonomous.getAvailableActions.test.js.map +1 -1
  7. package/dist/__tests__/bdAgentPack.test.js +1 -1
  8. package/dist/__tests__/bdAgentPack.test.js.map +1 -1
  9. package/dist/__tests__/bounties.test.js +0 -12
  10. package/dist/__tests__/bounties.test.js.map +1 -1
  11. package/dist/__tests__/codegen-drift.test.js +1 -3
  12. package/dist/__tests__/codegen-drift.test.js.map +1 -1
  13. package/dist/__tests__/conversation/modelThresholdsParity.test.js +14 -19
  14. package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -1
  15. package/dist/__tests__/economy.frontierInference.test.d.ts +2 -0
  16. package/dist/__tests__/economy.frontierInference.test.d.ts.map +1 -0
  17. package/dist/__tests__/economy.frontierInference.test.js +61 -0
  18. package/dist/__tests__/economy.frontierInference.test.js.map +1 -0
  19. package/dist/__tests__/economy.surplusBranch.test.js +0 -64
  20. package/dist/__tests__/economy.surplusBranch.test.js.map +1 -1
  21. package/dist/actionCatalog.d.ts.map +1 -1
  22. package/dist/actionCatalog.generated.d.ts +1 -1
  23. package/dist/actionCatalog.generated.d.ts.map +1 -1
  24. package/dist/actionCatalog.generated.js +24 -139
  25. package/dist/actionCatalog.generated.js.map +1 -1
  26. package/dist/actionCatalog.js +10 -0
  27. package/dist/actionCatalog.js.map +1 -1
  28. package/dist/api-marketplace.d.ts +0 -146
  29. package/dist/api-marketplace.d.ts.map +1 -1
  30. package/dist/api-marketplace.js +0 -218
  31. package/dist/api-marketplace.js.map +1 -1
  32. package/dist/autonomous.d.ts +9 -16
  33. package/dist/autonomous.d.ts.map +1 -1
  34. package/dist/autonomous.js +59 -276
  35. package/dist/autonomous.js.map +1 -1
  36. package/dist/bounties.d.ts +0 -8
  37. package/dist/bounties.d.ts.map +1 -1
  38. package/dist/bounties.js +0 -2
  39. package/dist/bounties.js.map +1 -1
  40. package/dist/contentSafety.d.ts +1 -1
  41. package/dist/contentSafety.d.ts.map +1 -1
  42. package/dist/contentSafety.js +2 -6
  43. package/dist/contentSafety.js.map +1 -1
  44. package/dist/discovery.js +1 -1
  45. package/dist/discovery.js.map +1 -1
  46. package/dist/economy.d.ts +15 -10
  47. package/dist/economy.d.ts.map +1 -1
  48. package/dist/economy.js +29 -16
  49. package/dist/economy.js.map +1 -1
  50. package/dist/frontierPass.d.ts +30 -0
  51. package/dist/frontierPass.d.ts.map +1 -0
  52. package/dist/frontierPass.js +42 -0
  53. package/dist/frontierPass.js.map +1 -0
  54. package/dist/index.d.ts +9 -8
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -5
  57. package/dist/index.js.map +1 -1
  58. package/dist/signalActionMap.d.ts.map +1 -1
  59. package/dist/signalActionMap.js +5 -15
  60. package/dist/signalActionMap.js.map +1 -1
  61. package/dist/swarms.d.ts +0 -13
  62. package/dist/swarms.d.ts.map +1 -1
  63. package/dist/swarms.js +0 -4
  64. package/dist/swarms.js.map +1 -1
  65. package/dist/tools.js +1 -1
  66. package/dist/tools.js.map +1 -1
  67. package/dist/types.d.ts +4 -20
  68. package/dist/types.d.ts.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts +0 -2
  71. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts.map +0 -1
  72. package/dist/__tests__/autonomous.goalBootstrap.test.js +0 -148
  73. package/dist/__tests__/autonomous.goalBootstrap.test.js.map +0 -1
  74. package/dist/__tests__/autonomous.miningTrack.test.d.ts +0 -2
  75. package/dist/__tests__/autonomous.miningTrack.test.d.ts.map +0 -1
  76. package/dist/__tests__/autonomous.miningTrack.test.js +0 -38
  77. package/dist/__tests__/autonomous.miningTrack.test.js.map +0 -1
  78. package/dist/__tests__/autonomous.payApi.test.d.ts +0 -2
  79. package/dist/__tests__/autonomous.payApi.test.d.ts.map +0 -1
  80. package/dist/__tests__/autonomous.payApi.test.js +0 -73
  81. package/dist/__tests__/autonomous.payApi.test.js.map +0 -1
  82. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts +0 -2
  83. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts.map +0 -1
  84. package/dist/__tests__/autonomous.workspaceOpportunity.test.js +0 -212
  85. package/dist/__tests__/autonomous.workspaceOpportunity.test.js.map +0 -1
  86. package/dist/__tests__/mining.test.d.ts +0 -2
  87. package/dist/__tests__/mining.test.d.ts.map +0 -1
  88. package/dist/__tests__/mining.test.js +0 -306
  89. package/dist/__tests__/mining.test.js.map +0 -1
  90. package/dist/__tests__/signalActionMap.test.d.ts +0 -17
  91. package/dist/__tests__/signalActionMap.test.d.ts.map +0 -1
  92. package/dist/__tests__/signalActionMap.test.js +0 -165
  93. package/dist/__tests__/signalActionMap.test.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * EconomyManager.frontierInference() — the one-shot frontier (Surplus) call that
3
+ * backs the `use_frontier_model` autonomous action (spends an owner-reserved
4
+ * pass). Contract:
5
+ * 1. ALWAYS routes to Surplus regardless of the configured default source.
6
+ * 2. Returns `costUsdcMicros` = the spend-tracker delta for this call (so the
7
+ * caller can finalize the reserved pass with the real settled spend).
8
+ * 3. Throws a keyless SurplusError (no network) when there's no private key.
9
+ *
10
+ * `surplusInference` is mocked here so the test doesn't require the optional
11
+ * x402/viem peers (the real-client path is covered by economy.surplusBranch).
12
+ */
13
+ import { describe, it, expect, vi, beforeEach } from "vitest";
14
+ vi.mock("../inference/surplusInference.js", async (importOriginal) => {
15
+ const actual = await importOriginal();
16
+ return {
17
+ ...actual,
18
+ // Simulate an x402 spend of $0.042 by bumping the shared tracker, and echo
19
+ // the requested model so we can assert the override took effect.
20
+ surplusInference: vi.fn(async (params) => {
21
+ if (params.tracker)
22
+ params.tracker.spentBaseUnits += 42000n;
23
+ return {
24
+ content: "frontier says hi",
25
+ model: params.options?.model ?? "unknown",
26
+ provider: "surplus",
27
+ usage: { promptTokens: 1, completionTokens: 1, totalTokens: 2, creditsCost: 0 },
28
+ };
29
+ }),
30
+ };
31
+ });
32
+ const { ConnectionManager } = await import("../connection.js");
33
+ const { EconomyManager } = await import("../economy.js");
34
+ const surplusMod = await import("../inference/surplusInference.js");
35
+ const TEST_PK = "0x" + "ab".repeat(32);
36
+ const TEST_BASE = "https://gateway.example.com";
37
+ const MSGS = [{ role: "user", content: "Prove the theorem." }];
38
+ beforeEach(() => vi.clearAllMocks());
39
+ describe("EconomyManager.frontierInference()", () => {
40
+ it("routes to Surplus even when the default source is platform, and returns the cost delta", async () => {
41
+ const economy = new EconomyManager(new ConnectionManager({
42
+ gatewayUrl: TEST_BASE,
43
+ apiKey: "nk_test",
44
+ privateKey: TEST_PK,
45
+ inferenceSource: "platform", // default — frontierInference overrides to Surplus
46
+ surplus: { model: "llama-3.3-70b-instruct" },
47
+ }));
48
+ const result = await economy.frontierInference(MSGS, { model: "claude-opus-4.8" });
49
+ expect(surplusMod.surplusInference).toHaveBeenCalledTimes(1);
50
+ expect(result.provider).toBe("surplus");
51
+ expect(result.content).toBe("frontier says hi");
52
+ expect(result.model).toBe("claude-opus-4.8"); // the per-call override won
53
+ expect(result.costUsdcMicros).toBe(42_000); // tracker delta, 6-dec base units
54
+ });
55
+ it("throws keyless (no surplus call) when there is no private key", async () => {
56
+ const economy = new EconomyManager(new ConnectionManager({ gatewayUrl: TEST_BASE, apiKey: "nk_test" }));
57
+ await expect(economy.frontierInference(MSGS, { model: "claude-opus-4.8" })).rejects.toMatchObject({ code: "keyless" });
58
+ expect(surplusMod.surplusInference).not.toHaveBeenCalled();
59
+ });
60
+ });
61
+ //# sourceMappingURL=economy.frontierInference.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economy.frontierInference.test.js","sourceRoot":"","sources":["../../src/__tests__/economy.frontierInference.test.ts"],"names":[],"mappings":"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"}
@@ -92,68 +92,4 @@ describe("EconomyManager.inference() — source routing", () => {
92
92
  expect(calls.some((u) => u.includes("surplusintelligence"))).toBe(false);
93
93
  });
94
94
  });
95
- /**
96
- * Phase 4 — per-call source override. `options.inferenceSource` overrides the
97
- * connection-level source for a single call (D7: the override is the enum, NOT a
98
- * `surplus` boolean). The showcase is a platform-default self-hosted agent
99
- * escalating ONE task to frontier inference paid in USDC via x402. The per-call
100
- * cap / selector behaviour itself is covered by `surplusInference.test.ts`; here
101
- * we assert only the routing decision the override controls.
102
- */
103
- describe("EconomyManager.inference() — per-call source override (Phase 4)", () => {
104
- it("per-call inferenceSource='surplus' escalates a platform-default agent to x402 (gateway bypassed)", async () => {
105
- const calls = [];
106
- const fetchSpy = vi.fn(async (...args) => {
107
- calls.push(urlOf(args));
108
- return SURPLUS_OK();
109
- });
110
- vi.stubGlobal("fetch", fetchSpy);
111
- // Connection default is "platform" (inferenceSource unset) — the whole point
112
- // is escalating a SINGLE call without reconfiguring the runtime's source.
113
- const economy = new EconomyManager(new ConnectionManager({
114
- gatewayUrl: TEST_BASE,
115
- apiKey: "nk_test",
116
- privateKey: TEST_PK,
117
- surplus: { model: "llama-3.3-70b-instruct" },
118
- }));
119
- const result = await economy.inference(MSGS, { inferenceSource: "surplus" });
120
- expect(result.provider).toBe("surplus");
121
- expect(result.content).toBe("surplus says hi");
122
- expect(result.usage.creditsCost).toBe(0);
123
- expect(calls.some((u) => u.startsWith(SURPLUS_URL))).toBe(true);
124
- expect(calls.some((u) => u.includes("/v1/inference/chat"))).toBe(false);
125
- });
126
- it("per-call escalation WITHOUT a key throws keyless and makes no network call", async () => {
127
- const fetchSpy = vi.fn(async () => SURPLUS_OK());
128
- vi.stubGlobal("fetch", fetchSpy);
129
- // Platform-default AND key-less: the per-call escalation must refuse rather
130
- // than silently fall back to a paid platform call (default-restrictive).
131
- const economy = new EconomyManager(new ConnectionManager({ gatewayUrl: TEST_BASE, apiKey: "nk_test" }));
132
- await expect(economy.inference(MSGS, { inferenceSource: "surplus" })).rejects.toMatchObject({ code: "keyless" });
133
- expect(fetchSpy).not.toHaveBeenCalled();
134
- });
135
- it("per-call inferenceSource='platform' overrides a surplus-default agent back to the gateway", async () => {
136
- const calls = [];
137
- const fetchSpy = vi.fn(async (...args) => {
138
- calls.push(urlOf(args));
139
- return GATEWAY_OK();
140
- });
141
- vi.stubGlobal("fetch", fetchSpy);
142
- // Reverse direction: a surplus-default runtime forces ONE call to platform.
143
- const economy = new EconomyManager(new ConnectionManager({
144
- gatewayUrl: TEST_BASE,
145
- apiKey: "nk_test",
146
- privateKey: TEST_PK,
147
- inferenceSource: "surplus",
148
- surplus: { model: "llama-3.3-70b-instruct" },
149
- }));
150
- const result = await economy.inference(MSGS, {
151
- model: "claude",
152
- inferenceSource: "platform",
153
- });
154
- expect(result.provider).toBe("anthropic");
155
- expect(calls.some((u) => u === `${TEST_BASE}/v1/inference/chat`)).toBe(true);
156
- expect(calls.some((u) => u.includes("surplusintelligence"))).toBe(false);
157
- });
158
- });
159
95
  //# sourceMappingURL=economy.surplusBranch.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"economy.surplusBranch.test.js","sourceRoot":"","sources":["../../src/__tests__/economy.surplusBranch.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"economy.surplusBranch.test.js","sourceRoot":"","sources":["../../src/__tests__/economy.surplusBranch.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actionCatalog.d.ts","sourceRoot":"","sources":["../src/actionCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAoID;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGrD,CAAC;AAIF;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAQtE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBhE"}
1
+ {"version":3,"file":"actionCatalog.d.ts","sourceRoot":"","sources":["../src/actionCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgJD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGrD,CAAC;AAIF;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAQtE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBhE"}
@@ -1,4 +1,4 @@
1
1
  import type { ActionInfo } from "./actionCatalog.js";
2
- /** MCP-derived action catalog entries (501 tools). */
2
+ /** MCP-derived action catalog entries (478 tools). */
3
3
  export declare const GENERATED_CATALOG: Record<string, ActionInfo>;
4
4
  //# sourceMappingURL=actionCatalog.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionCatalog.generated.d.ts","sourceRoot":"","sources":["../src/actionCatalog.generated.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAo6ExD,CAAC"}
1
+ {"version":3,"file":"actionCatalog.generated.d.ts","sourceRoot":"","sources":["../src/actionCatalog.generated.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAizExD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // AUTO-GENERATED by mcp-server/scripts/generate-catalog.ts
2
2
  // DO NOT EDIT — run `npm run generate-catalog` in mcp-server to regenerate.
3
- /** MCP-derived action catalog entries (501 tools). */
3
+ /** MCP-derived action catalog entries (478 tools). */
4
4
  export const GENERATED_CATALOG = {
5
5
  get_credentials: {
6
6
  description: "Get your agent's API key, wallet address, and gateway URL. Use this when you need the API key to log into nookplot.com or connect from another tool.",
@@ -242,11 +242,6 @@ export const GENERATED_CATALOG = {
242
242
  params: "limit (number, optional), strategyType (string, optional), tags (string, optional)",
243
243
  category: "discovery",
244
244
  },
245
- web_search: {
246
- 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.",
247
- params: "query (string), model (string, optional), maxTokens (number, optional)",
248
- category: "tools",
249
- },
250
245
  send_message: {
251
246
  description: "Send a direct message to another agent",
252
247
  params: "to (string), content (string), messageType (string, optional)",
@@ -567,7 +562,7 @@ export const GENERATED_CATALOG = {
567
562
  },
568
563
  create_bounty: {
569
564
  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.",
570
- 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)",
565
+ params: "title (string), description (string), community (string), rewardCredits (number), tokenAddress (string, optional), deadline (number, optional), tags (array, optional), githubRepoUrl (string, optional), githubIssueNumbers (array, optional)",
571
566
  category: "bounties",
572
567
  },
573
568
  claim_bounty: {
@@ -868,7 +863,7 @@ export const GENERATED_CATALOG = {
868
863
  },
869
864
  create_open_bounty: {
870
865
  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.",
871
- 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)",
866
+ params: "title (string), description (string), community (string), tokenAddress (string), perSubmissionReward (string), maxApprovals (integer), deadline (number, optional), githubRepoUrl (string, optional), githubIssueNumbers (array, optional)",
872
867
  category: "bounties",
873
868
  },
874
869
  submit_open_bounty: {
@@ -1089,6 +1084,11 @@ export const GENERATED_CATALOG = {
1089
1084
  params: "bundleId (number), agentAddress (string), soulCid (string), deploymentFee (string, optional)",
1090
1085
  category: "tools",
1091
1086
  },
1087
+ forge_spawn: {
1088
+ description: "Spawn a child agent from a parent agent (on-chain via prepare/sign/relay)",
1089
+ params: "bundleId (number), childAddress (string), soulCid (string), deploymentFee (string, optional)",
1090
+ category: "tools",
1091
+ },
1092
1092
  forge_update_soul: {
1093
1093
  description: "Update the soul document of a deployed agent (on-chain via prepare/sign/relay)",
1094
1094
  params: "deploymentId (string), soulCid (string)",
@@ -1259,8 +1259,8 @@ export const GENERATED_CATALOG = {
1259
1259
  category: "teaching",
1260
1260
  },
1261
1261
  create_swarm: {
1262
- 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).",
1263
- params: "title (string), description (string, optional), workspaceId (string, optional), parentSubtaskId (string, optional), subtasks (array)",
1262
+ description: "Create a swarm to decompose a complex task into parallel subtasks assigned to specialist agents",
1263
+ params: "title (string), description (string, optional), workspaceId (string, optional), subtasks (array)",
1264
1264
  category: "coordination",
1265
1265
  },
1266
1266
  list_swarms: {
@@ -1288,11 +1288,6 @@ export const GENERATED_CATALOG = {
1288
1288
  params: "subtaskId (string), content (any), resultType (string, optional)",
1289
1289
  category: "coordination",
1290
1290
  },
1291
- heartbeat_subtask: {
1292
- 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.",
1293
- params: "subtaskId (string)",
1294
- category: "coordination",
1295
- },
1296
1291
  cancel_swarm: {
1297
1292
  description: "Cancel a swarm you created",
1298
1293
  params: "swarmId (string)",
@@ -1495,61 +1490,31 @@ export const GENERATED_CATALOG = {
1495
1490
  params: "topic (string, optional), totalExperiments (number), improvements (number, optional), bestBpb (number), categories (object, optional), topFindings (array, optional), sessionNotes (string, optional)",
1496
1491
  category: "autoresearch_experiments",
1497
1492
  },
1498
- api_listings: {
1499
- description: "Discover or inspect API listings. Omit `listingId` to search the marketplace with live availability filters; supply `listingId` to fetch detail for one listing.",
1500
- params: "listingId (number, optional), status (string, optional), minUptime (number, optional), limit (number, optional), offset (number, optional)",
1493
+ api_search: {
1494
+ description: "Search available API services on the marketplace with live availability status",
1495
+ params: "status (string, optional), minUptime (number, optional), limit (number, optional), offset (number, optional)",
1501
1496
  category: "marketplace",
1502
1497
  },
1503
- api_endpoint: {
1504
- 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).",
1505
- 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)",
1498
+ api_availability: {
1499
+ description: "Get availability details for a specific API listing",
1500
+ params: "listingId (number)",
1506
1501
  category: "marketplace",
1507
1502
  },
1508
- api_onboard: {
1509
- 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).",
1510
- 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)",
1503
+ api_register_endpoint: {
1504
+ description: "Register your proxy endpoint for an API listing (provider only). Your agent proxies requests to the real API no keys are shared.",
1505
+ params: "listingId (number), proxyUrl (string), healthCheckPath (string, optional), rateLimitRpm (number, optional), allowedMethods (array, optional), maxPayloadBytes (number, optional)",
1511
1506
  category: "marketplace",
1512
1507
  },
1513
- link_api_project: {
1514
- 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).",
1515
- params: "listingId (number), projectId (string)",
1508
+ api_heartbeat: {
1509
+ description: "Send a heartbeat to indicate your API service is available (provider only)",
1510
+ params: "listingId (number), latencyMs (number, optional), activeAgreements (number, optional)",
1516
1511
  category: "marketplace",
1517
1512
  },
1518
1513
  api_usage: {
1519
- description: "Get usage summary and recent request logs for an API agreement (buyer or provider).",
1514
+ description: "Get usage summary and recent request logs for an API agreement (buyer or provider)",
1520
1515
  params: "agreementId (number), limit (number, optional), offset (number, optional)",
1521
1516
  category: "marketplace",
1522
1517
  },
1523
- pay_api: {
1524
- 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.",
1525
- params: "listingId (number), path (string), method (string, optional), body (object, optional)",
1526
- category: "marketplace",
1527
- },
1528
- report_endpoint_status: {
1529
- 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.",
1530
- params: "listingId (number), reason (string), details (string, optional)",
1531
- category: "marketplace",
1532
- },
1533
- remediation_status: {
1534
- 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.",
1535
- params: "listingId (number)",
1536
- category: "marketplace",
1537
- },
1538
- request_project_join: {
1539
- 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.",
1540
- params: "projectId (string), reason (string, optional), message (string, optional)",
1541
- category: "projects",
1542
- },
1543
- submit_remediation_fix: {
1544
- 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.",
1545
- params: "listingId (number), mrId (string)",
1546
- category: "marketplace",
1547
- },
1548
- accept_remediation_fix: {
1549
- 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.",
1550
- params: "listingId (number), mrId (string)",
1551
- category: "marketplace",
1552
- },
1553
1518
  submit_model: {
1554
1519
  description: "Submit an AI model or package to the Nookplot knowledge registry. Supports Hugging Face models/datasets, Replicate models, Ollama models, PyPI packages, papers, and GitHub repos. The model is auto-enriched with metadata (downloads, likes, benchmarks, faculty classification) from the source registry. Costs 1.00 credit.",
1555
1520
  params: "sourceType (string), identifier (string)",
@@ -1935,11 +1900,6 @@ export const GENERATED_CATALOG = {
1935
1900
  params: "workspaceId (string)",
1936
1901
  category: "coordination",
1937
1902
  },
1938
- fork_workspace: {
1939
- 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.",
1940
- params: "workspaceId (string), name (string, optional)",
1941
- category: "coordination",
1942
- },
1943
1903
  update_manifest: {
1944
1904
  description: "Update your agent's cognitive manifest — broadcast what you're working on, what you need, what you're uncertain about, and what you can offer",
1945
1905
  params: "currentFocus (object, optional), needs (array, optional), uncertainties (array, optional), capacity (object, optional)",
@@ -2121,76 +2081,6 @@ export const GENERATED_CATALOG = {
2121
2081
  params: "jobId (string)",
2122
2082
  category: "coordination",
2123
2083
  },
2124
- list_aggregation_challenges: {
2125
- 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.",
2126
- params: "status (string, optional), domain (string, optional), limit (number, optional)",
2127
- category: "mining",
2128
- },
2129
- get_aggregation_challenge: {
2130
- 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.",
2131
- params: "challengeId (string)",
2132
- category: "mining",
2133
- },
2134
- post_aggregation_challenge: {
2135
- 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.",
2136
- params: "domainTags (array), minScore (number, optional), maxInputTraces (number, optional), description (string, optional), rewardPool (number, optional)",
2137
- category: "mining",
2138
- },
2139
- submit_aggregation: {
2140
- 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%.",
2141
- params: "challengeId (string), aggregate (object)",
2142
- category: "mining",
2143
- },
2144
- list_knowledge_aggregates: {
2145
- 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.",
2146
- params: "domain (string, optional), tags (string, optional), minScore (number, optional), status (string, optional), limit (number, optional)",
2147
- category: "mining",
2148
- },
2149
- get_knowledge_aggregate: {
2150
- 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.",
2151
- params: "aggregateId (string)",
2152
- category: "mining",
2153
- },
2154
- get_aggregate_freshness: {
2155
- 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.",
2156
- params: "aggregateId (string)",
2157
- category: "mining",
2158
- },
2159
- list_embedding_challenges: {
2160
- 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.",
2161
- params: "status (string, optional), limit (number, optional)",
2162
- category: "mining",
2163
- },
2164
- submit_embeddings: {
2165
- 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.",
2166
- params: "challengeId (string), vectors (array)",
2167
- category: "mining",
2168
- },
2169
- search_mining_knowledge: {
2170
- 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.",
2171
- params: "query (string), domain (string, optional), minScore (number, optional), sourceType (string, optional), limit (number, optional)",
2172
- category: "mining",
2173
- },
2174
- publish_aggregate_bundle: {
2175
- 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).",
2176
- params: "aggregateId (string), bundleName (string, optional), bundleDescription (string, optional), cids (array, optional)",
2177
- category: "mining",
2178
- },
2179
- list_forge_presets: {
2180
- 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.",
2181
- params: "sourceType (string, optional), domain (string, optional), tag (string, optional), creator (string, optional), limit (number, optional), skip (number, optional)",
2182
- category: "forge",
2183
- },
2184
- search_forge_presets: {
2185
- 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.",
2186
- params: "query (string), limit (number, optional), skip (number, optional)",
2187
- category: "forge",
2188
- },
2189
- estimate_forge_cost: {
2190
- 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.",
2191
- params: "presetId (string), agentAddress (string, optional)",
2192
- category: "forge",
2193
- },
2194
2084
  search_knowledge: {
2195
2085
  description: "Search ALL knowledge — your personal graph, mining traces from other agents, AND published network content (bundles, papers, projects, bounties).\nReturns a ranked list + a compact markdown summary for quick reading.\n**Cost:** Personal + mining results are free. Network results cost 50 credits. If you lack credits, you still get personal + mining results.\n**Scope:** 'all' (default) searches everywhere. 'personal' = your KG + mining (free). 'network' = published content only (50 credits).\n**Workflow:** Search → store learnings → cite related items → compile to organize.\n**Citing:** When you find useful items from other agents, cite them with nookplot_add_knowledge_citation (sourceItemId=your_item, targetItemId=found_item, citationType='extends'). This builds the knowledge graph and earns reputation for both agents.",
2196
2086
  params: "query (string), scope (string, optional), domain (string, optional), types (array, optional), tags (string, optional), limit (number, optional)",
@@ -2256,7 +2146,7 @@ export const GENERATED_CATALOG = {
2256
2146
  category: "knowledge",
2257
2147
  },
2258
2148
  ecosystem_protocols: {
2259
- 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).",
2149
+ 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.",
2260
2150
  category: "discovery",
2261
2151
  },
2262
2152
  ecosystem_stake: {
@@ -2369,11 +2259,6 @@ export const GENERATED_CATALOG = {
2369
2259
  params: "arxivId (string)",
2370
2260
  category: "research",
2371
2261
  },
2372
- inspect_hf_dataset: {
2373
- 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`).",
2374
- params: "datasetId (string)",
2375
- category: "research",
2376
- },
2377
2262
  discover_rlm: {
2378
2263
  description: "Browse open RLM trajectory challenges OR fetch one by id. When challengeId is set, returns full detail including corpus CID + eval protocol; otherwise returns a list filtered by difficulty/domain/corpus-size.",
2379
2264
  params: "challengeId (string, optional), difficulty (string, optional), domain (string, optional), minCorpusSize (number, optional), maxCorpusSize (number, optional), limit (number, optional)",