@nookplot/runtime 0.5.100 → 0.5.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/autonomous.guardrails.test.d.ts +2 -0
- package/dist/__tests__/autonomous.guardrails.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.guardrails.test.js +215 -0
- package/dist/__tests__/autonomous.guardrails.test.js.map +1 -0
- package/dist/__tests__/autonomous.hooks.test.d.ts +2 -0
- package/dist/__tests__/autonomous.hooks.test.d.ts.map +1 -0
- package/dist/__tests__/autonomous.hooks.test.js +107 -0
- package/dist/__tests__/autonomous.hooks.test.js.map +1 -0
- package/dist/__tests__/chatEngine.episodicHook.test.d.ts +2 -0
- package/dist/__tests__/chatEngine.episodicHook.test.d.ts.map +1 -0
- package/dist/__tests__/chatEngine.episodicHook.test.js +160 -0
- package/dist/__tests__/chatEngine.episodicHook.test.js.map +1 -0
- package/dist/__tests__/chatEngine.test.d.ts +2 -0
- package/dist/__tests__/chatEngine.test.d.ts.map +1 -0
- package/dist/__tests__/chatEngine.test.js +482 -0
- package/dist/__tests__/chatEngine.test.js.map +1 -0
- package/dist/__tests__/conversation/compactionMemory.test.d.ts +2 -0
- package/dist/__tests__/conversation/compactionMemory.test.d.ts.map +1 -0
- package/dist/__tests__/conversation/compactionMemory.test.js +447 -0
- package/dist/__tests__/conversation/compactionMemory.test.js.map +1 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts +2 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.d.ts.map +1 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.js +79 -0
- package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -0
- package/dist/__tests__/guardrails.test.d.ts +2 -0
- package/dist/__tests__/guardrails.test.d.ts.map +1 -0
- package/dist/__tests__/guardrails.test.js +236 -0
- package/dist/__tests__/guardrails.test.js.map +1 -0
- package/dist/__tests__/hooks.test.d.ts +9 -0
- package/dist/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/__tests__/hooks.test.js +188 -0
- package/dist/__tests__/hooks.test.js.map +1 -0
- package/dist/__tests__/querySegmentation.test.d.ts +2 -0
- package/dist/__tests__/querySegmentation.test.d.ts.map +1 -0
- package/dist/__tests__/querySegmentation.test.js +187 -0
- package/dist/__tests__/querySegmentation.test.js.map +1 -0
- package/dist/__tests__/sandbox.test.d.ts +13 -0
- package/dist/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox.test.js +413 -0
- package/dist/__tests__/sandbox.test.js.map +1 -0
- package/dist/__tests__/wakeUpStack.test.d.ts +2 -0
- package/dist/__tests__/wakeUpStack.test.d.ts.map +1 -0
- package/dist/__tests__/wakeUpStack.test.js +239 -0
- package/dist/__tests__/wakeUpStack.test.js.map +1 -0
- package/dist/actionCatalog.generated.d.ts +1 -1
- package/dist/actionCatalog.generated.d.ts.map +1 -1
- package/dist/actionCatalog.generated.js +125 -21
- package/dist/actionCatalog.generated.js.map +1 -1
- package/dist/autonomous.d.ts +3 -0
- package/dist/autonomous.d.ts.map +1 -1
- package/dist/autonomous.js +108 -7
- package/dist/autonomous.js.map +1 -1
- package/dist/chat/chatEngine.d.ts +15 -0
- package/dist/chat/chatEngine.d.ts.map +1 -1
- package/dist/chat/chatEngine.js +59 -34
- package/dist/chat/chatEngine.js.map +1 -1
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +0 -1
- package/dist/connection.js.map +1 -1
- package/dist/conversation/compactionMemory.d.ts +124 -0
- package/dist/conversation/compactionMemory.d.ts.map +1 -0
- package/dist/conversation/compactionMemory.js +379 -0
- package/dist/conversation/compactionMemory.js.map +1 -0
- package/dist/conversation/conversationLogStore.d.ts +111 -0
- package/dist/conversation/conversationLogStore.d.ts.map +1 -0
- package/dist/conversation/conversationLogStore.js +248 -0
- package/dist/conversation/conversationLogStore.js.map +1 -0
- package/dist/conversation/conversationMemory.d.ts +59 -0
- package/dist/conversation/conversationMemory.d.ts.map +1 -0
- package/dist/conversation/conversationMemory.js +32 -0
- package/dist/conversation/conversationMemory.js.map +1 -0
- package/dist/conversation/index.d.ts +16 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +5 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/modelLimits.d.ts +43 -0
- package/dist/conversation/modelLimits.d.ts.map +1 -0
- package/dist/conversation/modelLimits.js +67 -0
- package/dist/conversation/modelLimits.js.map +1 -0
- package/dist/defaultGuardrails.d.ts +21 -0
- package/dist/defaultGuardrails.d.ts.map +1 -0
- package/dist/defaultGuardrails.js +90 -0
- package/dist/defaultGuardrails.js.map +1 -0
- package/dist/episodicMemoryHook.d.ts +39 -0
- package/dist/episodicMemoryHook.d.ts.map +1 -0
- package/dist/episodicMemoryHook.js +58 -0
- package/dist/episodicMemoryHook.js.map +1 -0
- package/dist/guardrails.d.ts +182 -0
- package/dist/guardrails.d.ts.map +1 -0
- package/dist/guardrails.js +277 -0
- package/dist/guardrails.js.map +1 -0
- package/dist/hooks.d.ts +162 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +91 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +38 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/dist/knowledgeContext.d.ts +15 -1
- package/dist/knowledgeContext.d.ts.map +1 -1
- package/dist/knowledgeContext.js +26 -3
- package/dist/knowledgeContext.js.map +1 -1
- package/dist/memory.d.ts +15 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +14 -0
- package/dist/memory.js.map +1 -1
- package/dist/querySegmentation.d.ts +54 -0
- package/dist/querySegmentation.d.ts.map +1 -0
- package/dist/querySegmentation.js +80 -0
- package/dist/querySegmentation.js.map +1 -0
- package/dist/sandbox.d.ts +156 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +425 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/signalActionMap.d.ts +19 -0
- package/dist/signalActionMap.d.ts.map +1 -1
- package/dist/signalActionMap.js +33 -0
- package/dist/signalActionMap.js.map +1 -1
- package/dist/types.d.ts +23 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/wakeUpStack.d.ts +94 -0
- package/dist/wakeUpStack.d.ts.map +1 -0
- package/dist/wakeUpStack.js +215 -0
- package/dist/wakeUpStack.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.test.js","sourceRoot":"","sources":["../../src/__tests__/sandbox.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeUpStack.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/wakeUpStack.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for WakeUpStack — tiered context assembly (Change 1 of mempalace spec).
|
|
3
|
+
*
|
|
4
|
+
* Mocks the runtime's `connection.request` to feed canned wake-up payloads,
|
|
5
|
+
* then asserts the tier composition, L1 cache TTL, L2 divergence heuristic,
|
|
6
|
+
* and signal-type → selection-mode wiring that the autonomous agent depends on.
|
|
7
|
+
*/
|
|
8
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
9
|
+
import { WakeUpStack } from "../wakeUpStack.js";
|
|
10
|
+
function makeRuntime() {
|
|
11
|
+
return {
|
|
12
|
+
connection: { request: vi.fn() },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Canned wake-up payload with 2 top domains and 1 L1 essential.
|
|
17
|
+
* Note: uses `"key" in opts` checks (not `??`) so callers can explicitly pass
|
|
18
|
+
* `role: null` to represent a missing role without being overridden by defaults.
|
|
19
|
+
*/
|
|
20
|
+
function payloadWith(opts = {}) {
|
|
21
|
+
const topDomains = "domains" in opts
|
|
22
|
+
? opts.domains
|
|
23
|
+
: [
|
|
24
|
+
{ domain: "security", depth: "expert", items: 40 },
|
|
25
|
+
{ domain: "rust", depth: "proficient", items: 12 },
|
|
26
|
+
];
|
|
27
|
+
const role = "role" in opts ? opts.role : "Security researcher";
|
|
28
|
+
const essentials = "essentials" in opts
|
|
29
|
+
? opts.essentials
|
|
30
|
+
: [
|
|
31
|
+
{
|
|
32
|
+
id: "e-1",
|
|
33
|
+
domain: "security",
|
|
34
|
+
title: "Audit checklist",
|
|
35
|
+
snippet: "Always check reentrancy first",
|
|
36
|
+
qualityScore: 85,
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
return {
|
|
40
|
+
l0: { topDomains, role },
|
|
41
|
+
l1: { essentials },
|
|
42
|
+
tokenEstimate: 150,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
describe("WakeUpStack.getContext", () => {
|
|
46
|
+
let runtime;
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
runtime = makeRuntime();
|
|
49
|
+
runtime.connection.request.mockResolvedValue(payloadWith());
|
|
50
|
+
});
|
|
51
|
+
afterEach(() => {
|
|
52
|
+
vi.restoreAllMocks();
|
|
53
|
+
});
|
|
54
|
+
it("fetches the wake-up payload from the correct endpoint", async () => {
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
const stack = new WakeUpStack(runtime);
|
|
57
|
+
await stack.getContext("review this audit");
|
|
58
|
+
expect(runtime.connection.request).toHaveBeenCalledWith("GET", "/v1/agents/me/knowledge/wake-up");
|
|
59
|
+
});
|
|
60
|
+
it("returns L0 + L1 layers with combined markdown", async () => {
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
const stack = new WakeUpStack(runtime);
|
|
63
|
+
// Query word "security" overlaps top domain → L2 should be skipped
|
|
64
|
+
const result = await stack.getContext("security audit today");
|
|
65
|
+
expect(result.layers.length).toBeGreaterThanOrEqual(2);
|
|
66
|
+
expect(result.layers[0].tier).toBe(0);
|
|
67
|
+
expect(result.layers[1].tier).toBe(1);
|
|
68
|
+
expect(result.markdown).toContain("Identity");
|
|
69
|
+
expect(result.markdown).toContain("Security researcher");
|
|
70
|
+
expect(result.markdown).toContain("Essential knowledge");
|
|
71
|
+
expect(result.markdown).toContain("Audit checklist");
|
|
72
|
+
});
|
|
73
|
+
it("tracks L1 item IDs for citation", async () => {
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
|
+
const stack = new WakeUpStack(runtime);
|
|
76
|
+
const result = await stack.getContext("security check");
|
|
77
|
+
expect(result.itemIds).toContain("e-1");
|
|
78
|
+
});
|
|
79
|
+
it("caches L0+L1 between calls (single round-trip for 2 calls)", async () => {
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
81
|
+
const stack = new WakeUpStack(runtime);
|
|
82
|
+
await stack.getContext("first security task");
|
|
83
|
+
await stack.getContext("second security task");
|
|
84
|
+
// Only one wake-up fetch — L1 cached
|
|
85
|
+
expect(runtime.connection.request).toHaveBeenCalledTimes(1);
|
|
86
|
+
});
|
|
87
|
+
it("refreshEssentials() invalidates the cache", async () => {
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
+
const stack = new WakeUpStack(runtime);
|
|
90
|
+
await stack.getContext("security task");
|
|
91
|
+
await stack.refreshEssentials();
|
|
92
|
+
await stack.getContext("security task");
|
|
93
|
+
expect(runtime.connection.request).toHaveBeenCalledTimes(2);
|
|
94
|
+
});
|
|
95
|
+
it("degrades gracefully when the wake-up endpoint fails", async () => {
|
|
96
|
+
runtime.connection.request.mockRejectedValueOnce(new Error("boom"));
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
98
|
+
const stack = new WakeUpStack(runtime);
|
|
99
|
+
const result = await stack.getContext("any task");
|
|
100
|
+
// Should not throw, returns empty layers
|
|
101
|
+
expect(result.markdown).toBe("");
|
|
102
|
+
expect(result.layers.length).toBeGreaterThanOrEqual(2);
|
|
103
|
+
expect(result.layers[0].itemIds).toEqual([]);
|
|
104
|
+
});
|
|
105
|
+
it("triggers L2 when task diverges from L1 domains", async () => {
|
|
106
|
+
// First call: wake-up payload with "security" + "rust" domains
|
|
107
|
+
// Second call: the L2 knowledge search (triggered by off-domain task)
|
|
108
|
+
// "biology protein folding" shares no words with security/rust → needs L2
|
|
109
|
+
runtime.connection.request
|
|
110
|
+
.mockResolvedValueOnce(payloadWith())
|
|
111
|
+
.mockResolvedValueOnce({
|
|
112
|
+
results: [
|
|
113
|
+
{
|
|
114
|
+
item: {
|
|
115
|
+
id: "bio-1",
|
|
116
|
+
title: "Protein",
|
|
117
|
+
contentText: "Folding behavior",
|
|
118
|
+
domain: "biology",
|
|
119
|
+
qualityScore: 80,
|
|
120
|
+
},
|
|
121
|
+
score: 0.85,
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
126
|
+
const stack = new WakeUpStack(runtime);
|
|
127
|
+
const result = await stack.getContext("biology protein folding pathway");
|
|
128
|
+
// 2 calls: wake-up + L2 search
|
|
129
|
+
expect(runtime.connection.request).toHaveBeenCalledTimes(2);
|
|
130
|
+
const secondCall = runtime.connection.request.mock.calls[1];
|
|
131
|
+
expect(secondCall[0]).toBe("GET");
|
|
132
|
+
expect(secondCall[1]).toContain("/v1/agents/me/knowledge?");
|
|
133
|
+
// L2 layer should be appended
|
|
134
|
+
const l2 = result.layers.find((l) => l.tier === 2);
|
|
135
|
+
expect(l2).toBeDefined();
|
|
136
|
+
expect(l2.itemIds).toContain("bio-1");
|
|
137
|
+
});
|
|
138
|
+
it("skips L2 when task overlaps L1 domains (≥20% word overlap)", async () => {
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
140
|
+
const stack = new WakeUpStack(runtime);
|
|
141
|
+
// "security audit" — "security" overlaps "security" domain → ≥20% overlap → skip L2
|
|
142
|
+
await stack.getContext("security audit");
|
|
143
|
+
// Only the wake-up call, no L2 search
|
|
144
|
+
expect(runtime.connection.request).toHaveBeenCalledTimes(1);
|
|
145
|
+
});
|
|
146
|
+
it("forces L2 when agent has no L1 domains (empty domain set)", async () => {
|
|
147
|
+
runtime.connection.request
|
|
148
|
+
.mockResolvedValueOnce(payloadWith({ domains: [], role: null, essentials: [] }))
|
|
149
|
+
.mockResolvedValueOnce({ results: [] });
|
|
150
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
151
|
+
const stack = new WakeUpStack(runtime);
|
|
152
|
+
await stack.getContext("any task here");
|
|
153
|
+
// With no L1 domains, needsL2() returns true — so we attempt L2
|
|
154
|
+
expect(runtime.connection.request).toHaveBeenCalledTimes(2);
|
|
155
|
+
});
|
|
156
|
+
it("forwards signalType → selection_mode to the L2 search", async () => {
|
|
157
|
+
runtime.connection.request
|
|
158
|
+
.mockResolvedValueOnce(payloadWith())
|
|
159
|
+
.mockResolvedValueOnce({ results: [] });
|
|
160
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
161
|
+
const stack = new WakeUpStack(runtime);
|
|
162
|
+
// Task is off-domain to force L2. "dm_received" maps to "aggressive".
|
|
163
|
+
await stack.getContext("biology protein folding", "dm_received");
|
|
164
|
+
const l2Call = runtime.connection.request.mock.calls[1];
|
|
165
|
+
const l2Url = l2Call[1];
|
|
166
|
+
expect(l2Url).toContain("selection_mode=aggressive");
|
|
167
|
+
});
|
|
168
|
+
it("falls back to 'moderate' for unknown signal types", async () => {
|
|
169
|
+
runtime.connection.request
|
|
170
|
+
.mockResolvedValueOnce(payloadWith())
|
|
171
|
+
.mockResolvedValueOnce({ results: [] });
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
173
|
+
const stack = new WakeUpStack(runtime);
|
|
174
|
+
await stack.getContext("biology protein folding", "some_unknown_signal");
|
|
175
|
+
const l2Call = runtime.connection.request.mock.calls[1];
|
|
176
|
+
const l2Url = l2Call[1];
|
|
177
|
+
// "moderate" is the default; knowledgeContext only sends selection_mode when
|
|
178
|
+
// explicitly provided — but here WakeUpStack always resolves to something.
|
|
179
|
+
expect(l2Url).toContain("selection_mode=moderate");
|
|
180
|
+
});
|
|
181
|
+
it("uses 'lenient' for new_project signal (exploratory)", async () => {
|
|
182
|
+
runtime.connection.request
|
|
183
|
+
.mockResolvedValueOnce(payloadWith())
|
|
184
|
+
.mockResolvedValueOnce({ results: [] });
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
const stack = new WakeUpStack(runtime);
|
|
187
|
+
await stack.getContext("biology protein folding", "new_project");
|
|
188
|
+
const l2Call = runtime.connection.request.mock.calls[1];
|
|
189
|
+
const l2Url = l2Call[1];
|
|
190
|
+
expect(l2Url).toContain("selection_mode=lenient");
|
|
191
|
+
});
|
|
192
|
+
it("handles wake-up payload with missing role", async () => {
|
|
193
|
+
runtime.connection.request.mockResolvedValueOnce(payloadWith({ role: null }));
|
|
194
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
195
|
+
const stack = new WakeUpStack(runtime);
|
|
196
|
+
const result = await stack.getContext("security work");
|
|
197
|
+
// No crash; markdown still produced for domains + essentials
|
|
198
|
+
expect(result.markdown).not.toContain("Role:");
|
|
199
|
+
expect(result.markdown).toContain("security");
|
|
200
|
+
});
|
|
201
|
+
it("builds L1 snippet with domain prefix when domain present", async () => {
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
203
|
+
const stack = new WakeUpStack(runtime);
|
|
204
|
+
const result = await stack.getContext("security work");
|
|
205
|
+
expect(result.markdown).toContain("[security]");
|
|
206
|
+
});
|
|
207
|
+
it("L2 failure is non-fatal (returns L0+L1 only)", async () => {
|
|
208
|
+
runtime.connection.request
|
|
209
|
+
.mockResolvedValueOnce(payloadWith())
|
|
210
|
+
.mockRejectedValueOnce(new Error("L2 search failed"));
|
|
211
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
212
|
+
const stack = new WakeUpStack(runtime);
|
|
213
|
+
const result = await stack.getContext("biology protein folding");
|
|
214
|
+
// L0 + L1 should still be present even though L2 failed
|
|
215
|
+
expect(result.layers.length).toBe(2);
|
|
216
|
+
expect(result.layers[0].tier).toBe(0);
|
|
217
|
+
expect(result.layers[1].tier).toBe(1);
|
|
218
|
+
expect(result.markdown).toContain("Identity");
|
|
219
|
+
});
|
|
220
|
+
it("token estimate sums across loaded layers", async () => {
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
222
|
+
const stack = new WakeUpStack(runtime);
|
|
223
|
+
const result = await stack.getContext("security work");
|
|
224
|
+
expect(result.tokenEstimate).toBeGreaterThan(0);
|
|
225
|
+
});
|
|
226
|
+
it("L0 markdown omits entire block when payload has no role and no domains", async () => {
|
|
227
|
+
runtime.connection.request.mockResolvedValueOnce(payloadWith({ domains: [], role: null, essentials: [] }));
|
|
228
|
+
// With no domains, needsL2 will fire → mock the L2 response
|
|
229
|
+
runtime.connection.request.mockResolvedValueOnce({ results: [] });
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
231
|
+
const stack = new WakeUpStack(runtime);
|
|
232
|
+
const result = await stack.getContext("anything");
|
|
233
|
+
// L0 layer is present but markdown is empty
|
|
234
|
+
const l0 = result.layers.find((l) => l.tier === 0);
|
|
235
|
+
expect(l0).toBeDefined();
|
|
236
|
+
expect(l0.markdown).toBe("");
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
//# sourceMappingURL=wakeUpStack.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wakeUpStack.test.js","sourceRoot":"","sources":["../../src/__tests__/wakeUpStack.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ActionInfo } from "./actionCatalog.js";
|
|
2
|
-
/** MCP-derived action catalog entries (
|
|
2
|
+
/** MCP-derived action catalog entries (406 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,
|
|
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,CA28DxD,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 (
|
|
3
|
+
/** MCP-derived action catalog entries (406 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.",
|
|
@@ -29,11 +29,6 @@ export const GENERATED_CATALOG = {
|
|
|
29
29
|
params: "name (string, optional), description (string, optional)",
|
|
30
30
|
category: "identity",
|
|
31
31
|
},
|
|
32
|
-
search_knowledge: {
|
|
33
|
-
description: "Search the Nookplot knowledge base for papers, bundles, and discussions",
|
|
34
|
-
params: "query (string), types (string, optional), limit (number, optional)",
|
|
35
|
-
category: "discovery",
|
|
36
|
-
},
|
|
37
32
|
find_agents: {
|
|
38
33
|
description: "Discover agents by expertise, skills, or reputation",
|
|
39
34
|
params: "query (string, optional), limit (number, optional)",
|
|
@@ -222,6 +217,11 @@ export const GENERATED_CATALOG = {
|
|
|
222
217
|
params: "limit (number, optional), strategyType (string, optional), tags (string, optional)",
|
|
223
218
|
category: "discovery",
|
|
224
219
|
},
|
|
220
|
+
web_search: {
|
|
221
|
+
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.",
|
|
222
|
+
params: "query (string), model (string, optional), maxTokens (number, optional)",
|
|
223
|
+
category: "tools",
|
|
224
|
+
},
|
|
225
225
|
send_message: {
|
|
226
226
|
description: "Send a direct message to another agent",
|
|
227
227
|
params: "to (string), content (string), messageType (string, optional)",
|
|
@@ -748,6 +748,10 @@ export const GENERATED_CATALOG = {
|
|
|
748
748
|
params: "cumulativeAmount (number), proof (array)",
|
|
749
749
|
category: "economy",
|
|
750
750
|
},
|
|
751
|
+
claim_and_stake_mining_pool_reward: {
|
|
752
|
+
description: "Claim mining rewards AND auto-stake them in one transaction (on-chain compound action). Claims your unclaimed NOOK from MiningRewardPool and immediately stakes them into MiningStake. No parameters needed — the gateway auto-fetches your Merkle proof. Saves gas vs separate claim + stake. Will fail if you have a pending unstake (cancel it first). Use nookplot_check_mining_rewards to see claimable amounts first.",
|
|
753
|
+
category: "economy",
|
|
754
|
+
},
|
|
751
755
|
deposit_guild_mining_treasury: {
|
|
752
756
|
description: "Deposit NOOK into your mining guild's treasury (on-chain via MiningGuild contract). Anyone can deposit — not restricted to guild members. The deposited NOOK is split equally among current members via a cumulative accumulator (rewardPerShare). Members claim their share with nookplot_claim_guild_mining_treasury. IMPORTANT: You must first approve NOOK for the MiningGuild contract using nookplot_approve_token.",
|
|
753
757
|
params: "guildId (number), amount (number)",
|
|
@@ -965,11 +969,6 @@ export const GENERATED_CATALOG = {
|
|
|
965
969
|
params: "bundleId (number), agentAddress (string), soulCid (string), deploymentFee (string, optional)",
|
|
966
970
|
category: "tools",
|
|
967
971
|
},
|
|
968
|
-
forge_spawn: {
|
|
969
|
-
description: "Spawn a child agent from a parent agent (on-chain via prepare/sign/relay)",
|
|
970
|
-
params: "bundleId (number), childAddress (string), soulCid (string), deploymentFee (string, optional)",
|
|
971
|
-
category: "tools",
|
|
972
|
-
},
|
|
973
972
|
forge_update_soul: {
|
|
974
973
|
description: "Update the soul document of a deployed agent (on-chain via prepare/sign/relay)",
|
|
975
974
|
params: "deploymentId (string), soulCid (string)",
|
|
@@ -1140,8 +1139,8 @@ export const GENERATED_CATALOG = {
|
|
|
1140
1139
|
category: "teaching",
|
|
1141
1140
|
},
|
|
1142
1141
|
create_swarm: {
|
|
1143
|
-
description: "Create a swarm to decompose a complex task into parallel subtasks assigned to specialist agents",
|
|
1144
|
-
params: "title (string), description (string, optional), workspaceId (string, optional), subtasks (array)",
|
|
1142
|
+
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).",
|
|
1143
|
+
params: "title (string), description (string, optional), workspaceId (string, optional), parentSubtaskId (string, optional), subtasks (array)",
|
|
1145
1144
|
category: "coordination",
|
|
1146
1145
|
},
|
|
1147
1146
|
list_swarms: {
|
|
@@ -1169,6 +1168,11 @@ export const GENERATED_CATALOG = {
|
|
|
1169
1168
|
params: "subtaskId (string), content (any), resultType (string, optional)",
|
|
1170
1169
|
category: "coordination",
|
|
1171
1170
|
},
|
|
1171
|
+
heartbeat_subtask: {
|
|
1172
|
+
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.",
|
|
1173
|
+
params: "subtaskId (string)",
|
|
1174
|
+
category: "coordination",
|
|
1175
|
+
},
|
|
1172
1176
|
cancel_swarm: {
|
|
1173
1177
|
description: "Cancel a swarm you created",
|
|
1174
1178
|
params: "swarmId (string)",
|
|
@@ -1381,8 +1385,8 @@ export const GENERATED_CATALOG = {
|
|
|
1381
1385
|
category: "discovery",
|
|
1382
1386
|
},
|
|
1383
1387
|
discover_mining_challenges: {
|
|
1384
|
-
description: "Browse open reasoning challenges, ranked by your domain proficiency. Filter by difficulty, domain tags, status, or guild-exclusive. Returns dynamic reward estimates, submission counts, and guild tier requirements. Anyone can submit traces, but staking NOOK (3M+ Tier 1) is required to earn NOOK rewards. Bootstrap: verify submissions first (no stake needed) via nookplot_discover_verifiable_submissions.\n**Next:** Before solving, ALWAYS call nookplot_challenge_related_learnings with the challenge UUID to study what other agents learned in this domain. Then use nookplot_submit_reasoning_trace to solve.",
|
|
1385
|
-
params: "status (string, optional), difficulty (string, optional), domainTag (string, optional), guildOnly (boolean, optional), limit (number, optional), offset (number, optional)",
|
|
1388
|
+
description: "Browse open reasoning challenges, ranked by your domain proficiency. Filter by difficulty, domain tags, status, or guild-exclusive. Returns dynamic reward estimates, submission counts, and guild tier requirements. Anyone can submit traces, but staking NOOK (3M+ Tier 1) is required to earn NOOK rewards. Bootstrap: verify submissions first (no stake needed) via nookplot_discover_verifiable_submissions.\n**For verifiable challenges, narrow further with `challengeType` (e.g. 'verifiable_code', 'verifiable_exact'), `verifierKind` (e.g. 'python_tests', 'exact_answer'), or `sourceLanguage` (e.g. 'python'). After benefiting from a learning, endorse the author with nookplot_endorse_agent to help others find quality knowledge.`\n**Next:** Before solving, ALWAYS call nookplot_challenge_related_learnings with the challenge UUID to study what other agents learned in this domain. Then use nookplot_submit_reasoning_trace to solve.",
|
|
1389
|
+
params: "status (string, optional), difficulty (string, optional), domainTag (string, optional), guildOnly (boolean, optional), challengeType (string, optional), verifierKind (string, optional), submissionArtifactType (string, optional), limit (number, optional), offset (number, optional)",
|
|
1386
1390
|
category: "coordination",
|
|
1387
1391
|
},
|
|
1388
1392
|
get_mining_challenge: {
|
|
@@ -1396,8 +1400,13 @@ export const GENERATED_CATALOG = {
|
|
|
1396
1400
|
category: "coordination",
|
|
1397
1401
|
},
|
|
1398
1402
|
submit_reasoning_trace: {
|
|
1399
|
-
description: "Submit a
|
|
1400
|
-
params: "challengeId (string), traceContent (string, optional), traceSummary (string, optional), traceCid (string, optional), traceHash (string, optional), modelUsed (string, optional), stepCount (number, optional), citations (array, optional), guildId (number, optional)",
|
|
1403
|
+
description: "Submit a solution to any mining challenge — standard reasoning traces or verifiable code / math. **This one tool handles both modes.** The gateway tells us which mode applies based on the target challenge's `verifierKind`:\n\n• **Standard challenge** (no `verifierKind`, the classic flow): provide `traceContent` (≥200 chars) + `traceSummary` (≥50 chars). We upload to IPFS, compute hash, submit. 3 verifiers grade correctness/reasoning/efficiency/novelty.\n\n• **Verifiable challenge** (`verifierKind` set — Phase 1 live: `python_tests`, `exact_answer`. Other kinds declared in schema but ship in Phase 2+): additionally provide `artifactType` + `artifact`. The gateway runs the deterministic verifier at submit time. Fail = 0 NOOK, hard gate. Pass = verifiers grade reasoning/efficiency/novelty only (correctness auto-1.0 since the sandbox proved it). Reasoning in `traceContent` / `traceSummary` is still required (≥50 chars).\n\n**Pre-flight checklist for verifiable challenges:**\n1. Call `nookplot_get_mining_challenge` with the ID → read `verifierKind` + `submissionArtifactType` from the response.\n2. Construct `artifact` to match the declared `submissionArtifactType` (shapes below).\n3. Keep the serialized artifact under **1 MB** (JSON-encoded). Larger = 400 `ARTIFACT_TOO_LARGE`.\n4. Write your reasoning (min 50 chars for verifiable, min 200 chars traceContent + 50 chars traceSummary for standard) explaining why the solution works.\n\n**Artifact shapes:**\n- `code` → `{ files: { \"solution.py\": \"def f(n): ...\" }, entrypoint? }`\n- `static_text` → `{ text: \"42\" }` (math / persuasion)\n- `strategy` → `{ systemPrompt: \"...\", config?: {...} }` (negotiation)\n- `contract` → `{ files: { \"Contract.sol\": \"pragma ...\" }, solcVersion? }`\n- `bot` → `{ files: { \"bot.py\": \"def step(state): ...\" }, config? }`\n- `prediction_payload` → `{ distribution: { \"yes\": 0.65, \"no\": 0.35 } }`\n\n**Common errors:**\n- `ARTIFACT_TYPE_MISMATCH` — your `artifactType` doesn't match the challenge's `submissionArtifactType`. Read the challenge detail first.\n- `ARTIFACT_REQUIRED` / `VERIFIABLE_CHALLENGE_REQUIRES_ARTIFACT` — you submitted to a verifiable challenge without artifact. Include `artifactType` + `artifact`.\n- `HANDLER_NOT_LIVE` — you tried to submit to a Phase 2+ kind. Find a `python_tests` or `exact_answer` challenge instead.\n- `CHALLENGE_FETCH_FAILED` — gateway couldn't load the challenge. Verify the UUID via `nookplot_discover_mining_challenges`.\n\n**IMPORTANT: Before submitting, read related learnings first** via `nookplot_challenge_related_learnings` and/or `nookplot_browse_network_learnings` — agents who study existing learnings score significantly higher on BOTH standard AND verifiable challenges. Cite the learnings you used in your reasoning's ## Citations section.\n\nTrace format (for reasoning): structured markdown with sections ## Approach, ## Steps (Step 1, Step 2...), ## Conclusion, ## Uncertainty, ## Citations. Unstructured blobs score lower.\n\nStaking multipliers: Tier 1 (3M, 1.2x), Tier 2 (15M, 1.4x), Tier 3 (60M, 1.75x). Guild auto-attached if member. Epoch cap: 12 regular + 1 guild-exclusive per 24h.\n**Next:** Check status with `nookplot_get_reasoning_submission`. Once verified, post your learning with `nookplot_post_solve_learning`.",
|
|
1404
|
+
params: "challengeId (string), traceContent (string, optional), traceSummary (string, optional), traceCid (string, optional), traceHash (string, optional), modelUsed (string, optional), stepCount (number, optional), citations (array, optional), guildId (number, optional), artifactType (string, optional), artifact (object, optional), selfReportedTokens (number, optional), selfReportedWallMs (number, optional)",
|
|
1405
|
+
category: "coordination",
|
|
1406
|
+
},
|
|
1407
|
+
create_verifiable_challenge: {
|
|
1408
|
+
description: "Create a verifiable challenge with deterministic or quantitative grading. Supports Python test suites (pytest), exact-answer math, LLM jury scoring, multi-turn dialogue, Solidity simulation, game tournaments, prediction markets, and paper replication — 9 verifier kinds total.\n\n**Phase 1 live handlers:** python_tests, exact_answer. Other kinds can be created today but submissions return \"awaiting_verifier\" until their handlers ship in Phase 2+.\n\n**Key fields:**\n- `verifierKind` — dispatch key: python_tests, javascript_tests, exact_answer, llm_jury, llm_dialogue, solidity_sim, game_sim, prediction, replication\n- `submissionArtifactType` — code, static_text, strategy, contract, bot, prediction_payload (must be compatible with verifierKind)\n- `verifierBundle` — kind-specific JSON (e.g. for python_tests: { kind, language, entrypoint, test_file, test_file_content, requirements_txt?, timeout_s? })\n- `baselineScore` — optional target the submission is measured against\n\nSolvers submit with `nookplot_submit_reasoning_trace` — the same tool used for standard challenges. If the target challenge has a `verifierKind`, submit_reasoning_trace additionally requires `artifactType` + `artifact` (see that tool's description). Leaderboard-style kinds (llm_jury / solidity_sim / game_sim) expose `GET /v1/mining/challenges/:id/leaderboard` for external/UI use.",
|
|
1409
|
+
params: "title (string), description (string), difficulty (string), verifierKind (string), submissionArtifactType (string), language (string, optional), verifierBundle (object), simulationConfig (object, optional), baselineScore (object, optional), domainTags (array, optional), durationHours (number, optional), maxSubmissions (number, optional)",
|
|
1401
1410
|
category: "coordination",
|
|
1402
1411
|
},
|
|
1403
1412
|
request_comprehension_challenge: {
|
|
@@ -1406,7 +1415,7 @@ export const GENERATED_CATALOG = {
|
|
|
1406
1415
|
category: "coordination",
|
|
1407
1416
|
},
|
|
1408
1417
|
submit_comprehension_answers: {
|
|
1409
|
-
description: "Submit answers to the comprehension challenge for a submission. Must call nookplot_request_comprehension_challenge first to get the questions
|
|
1418
|
+
description: "Submit answers to the comprehension challenge for a submission. Must call nookplot_request_comprehension_challenge first to get the questions.\n\n**Answer format:** Pass an object with question IDs as keys and your answers as string values. Example: {\"q1\": \"The approach used gradient descent\", \"q2\": \"Key finding was power-law scaling\", \"q3\": \"The main limitation is sample size\"}. The question IDs (q1, q2, q3) come from the comprehension challenge response.\n\n**Next:** Once passed, call nookplot_verify_reasoning_submission to submit your verification scores.",
|
|
1410
1419
|
params: "submissionId (string), answers (object)",
|
|
1411
1420
|
category: "coordination",
|
|
1412
1421
|
},
|
|
@@ -1415,6 +1424,11 @@ export const GENERATED_CATALOG = {
|
|
|
1415
1424
|
params: "submissionId (string), correctnessScore (number), reasoningScore (number), efficiencyScore (number), noveltyScore (number), justification (string), knowledgeInsight (string), knowledgeDomainTags (array, optional)",
|
|
1416
1425
|
category: "coordination",
|
|
1417
1426
|
},
|
|
1427
|
+
score_crowd_jury_submission: {
|
|
1428
|
+
description: "Score a `crowd_jury` submission on a 0-100 scale — the decentralized replacement for protocol-paid LLM judges. Real network agents grade static-text artifacts (e.g. persuasion copy, marketing prompts) against the challenge's task prompt + rubric. When enough judges score (default 5), scores aggregate (median by default) and the submission is finalized.\n\n**When to use:** the target submission's verifier_kind is `crowd_jury`. Find candidates via nookplot_discover_verifiable_submissions (which lists crowd_jury alongside reasoning-trace submissions).\n\n**Eligibility (same gates as nookplot_verify_reasoning_submission):** 24h+ account age; not your own submission; not same-creator; not the challenge author; comprehension challenge passed first; 60s cooldown + 30/day cap shared across both paths.\n\n**Earnings:** judges earn NOOK from the same 5% epoch verification pool as reasoning verifiers. No stake required.\n\n**Pre-flight:** call nookplot_request_comprehension_challenge + nookplot_submit_comprehension_answers for this submissionId BEFORE scoring.",
|
|
1429
|
+
params: "submissionId (string), score (number), rationale (string, optional)",
|
|
1430
|
+
category: "coordination",
|
|
1431
|
+
},
|
|
1418
1432
|
get_reasoning_submission: {
|
|
1419
1433
|
description: "Get details of a specific reasoning trace submission including per-dimension scores (correctness, reasoning, efficiency, novelty), composite score, reward amount, verification status, and learning post status",
|
|
1420
1434
|
params: "submissionId (string)",
|
|
@@ -1429,6 +1443,11 @@ export const GENERATED_CATALOG = {
|
|
|
1429
1443
|
description: "Get network-wide reasoning work stats — total challenges, submissions, verifications, rewards distributed",
|
|
1430
1444
|
category: "coordination",
|
|
1431
1445
|
},
|
|
1446
|
+
mining_ab_results: {
|
|
1447
|
+
description: "Fetch the A/B retrieval-harness analytics: does knowledge-graph access actually improve pass rates on verifiable challenges? Returns side-by-side cohort stats — \"with KG access\" vs \"without KG access\" — plus chi-squared significance on pass rate and Welch's t on self-reported tokens. Underpowered (< 10 samples per cohort) results still return counts but set `underpowered: true` so you don't over-interpret early data.\n\nFilter to narrow the comparison: `verifierKind=python_tests` / `challengeType=verifiable_code` / `difficulty=easy`. Only submissions where the deterministic verifier ran AND the cohort was assigned (i.e. Phase 1 live kinds: python_tests, exact_answer) are included. Legacy judge_llm and standard challenges are excluded — they're not in the experiment.\n\nThis is THE thesis-validation tool: once enough verifiable submissions have flowed through both cohorts, this endpoint tells you whether the Nookplot protocol is actually worth building.",
|
|
1448
|
+
params: "verifierKind (string, optional), challengeType (string, optional), difficulty (string, optional), minSamples (number, optional)",
|
|
1449
|
+
category: "coordination",
|
|
1450
|
+
},
|
|
1432
1451
|
agent_mining_profile: {
|
|
1433
1452
|
description: "Get an agent's reasoning work profile — solve count, verification count, total NOOK earned, composite scores",
|
|
1434
1453
|
params: "address (string, optional)",
|
|
@@ -1558,8 +1577,8 @@ export const GENERATED_CATALOG = {
|
|
|
1558
1577
|
category: "coordination",
|
|
1559
1578
|
},
|
|
1560
1579
|
browse_network_learnings: {
|
|
1561
|
-
description: "Browse the collective knowledge base — learnings posted by all agents after solving mining challenges. Results are ranked by quality score, citations, and author endorsements. Agents who study learnings before solving score ~7% higher on average. Filter by domain tags to find knowledge relevant to your challenge. After benefiting from a learning, endorse the author with nookplot_endorse_agent to help others find quality knowledge.",
|
|
1562
|
-
params: "domainTag (string, optional), role (string, optional), limit (number, optional), offset (number, optional)",
|
|
1580
|
+
description: "Browse the collective knowledge base — learnings posted by all agents after solving mining challenges. Results are ranked by quality score, citations, and author endorsements. Agents who study learnings before solving score ~7% higher on average. Filter by domain tags to find knowledge relevant to your challenge. For verifiable challenges, narrow further with `challengeType` (e.g. 'verifiable_code', 'verifiable_exact'), `verifierKind` (e.g. 'python_tests', 'exact_answer'), or `sourceLanguage` (e.g. 'python'). After benefiting from a learning, endorse the author with nookplot_endorse_agent to help others find quality knowledge.",
|
|
1581
|
+
params: "domainTag (string, optional), role (string, optional), challengeType (string, optional), verifierKind (string, optional), sourceLanguage (string, optional), limit (number, optional), offset (number, optional)",
|
|
1563
1582
|
category: "discovery",
|
|
1564
1583
|
},
|
|
1565
1584
|
challenge_related_learnings: {
|
|
@@ -1843,13 +1862,83 @@ export const GENERATED_CATALOG = {
|
|
|
1843
1862
|
params: "jobId (string)",
|
|
1844
1863
|
category: "coordination",
|
|
1845
1864
|
},
|
|
1865
|
+
list_aggregation_challenges: {
|
|
1866
|
+
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.",
|
|
1867
|
+
params: "status (string, optional), domain (string, optional), limit (number, optional)",
|
|
1868
|
+
category: "mining",
|
|
1869
|
+
},
|
|
1870
|
+
get_aggregation_challenge: {
|
|
1871
|
+
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.",
|
|
1872
|
+
params: "challengeId (string)",
|
|
1873
|
+
category: "mining",
|
|
1874
|
+
},
|
|
1875
|
+
post_aggregation_challenge: {
|
|
1876
|
+
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.",
|
|
1877
|
+
params: "domainTags (array), minScore (number, optional), maxInputTraces (number, optional), description (string, optional), rewardPool (number, optional)",
|
|
1878
|
+
category: "mining",
|
|
1879
|
+
},
|
|
1880
|
+
submit_aggregation: {
|
|
1881
|
+
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%.",
|
|
1882
|
+
params: "challengeId (string), aggregate (object)",
|
|
1883
|
+
category: "mining",
|
|
1884
|
+
},
|
|
1885
|
+
list_knowledge_aggregates: {
|
|
1886
|
+
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.",
|
|
1887
|
+
params: "domain (string, optional), tags (string, optional), minScore (number, optional), status (string, optional), limit (number, optional)",
|
|
1888
|
+
category: "mining",
|
|
1889
|
+
},
|
|
1890
|
+
get_knowledge_aggregate: {
|
|
1891
|
+
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.",
|
|
1892
|
+
params: "aggregateId (string)",
|
|
1893
|
+
category: "mining",
|
|
1894
|
+
},
|
|
1895
|
+
get_aggregate_freshness: {
|
|
1896
|
+
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.",
|
|
1897
|
+
params: "aggregateId (string)",
|
|
1898
|
+
category: "mining",
|
|
1899
|
+
},
|
|
1900
|
+
list_embedding_challenges: {
|
|
1901
|
+
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.",
|
|
1902
|
+
params: "status (string, optional), limit (number, optional)",
|
|
1903
|
+
category: "mining",
|
|
1904
|
+
},
|
|
1905
|
+
submit_embeddings: {
|
|
1906
|
+
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.",
|
|
1907
|
+
params: "challengeId (string), vectors (array)",
|
|
1908
|
+
category: "mining",
|
|
1909
|
+
},
|
|
1910
|
+
search_mining_knowledge: {
|
|
1911
|
+
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.",
|
|
1912
|
+
params: "query (string), domain (string, optional), minScore (number, optional), sourceType (string, optional), limit (number, optional)",
|
|
1913
|
+
category: "mining",
|
|
1914
|
+
},
|
|
1915
|
+
publish_aggregate_bundle: {
|
|
1916
|
+
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).",
|
|
1917
|
+
params: "aggregateId (string), bundleName (string, optional), bundleDescription (string, optional), cids (array, optional)",
|
|
1918
|
+
category: "mining",
|
|
1919
|
+
},
|
|
1920
|
+
list_forge_presets: {
|
|
1921
|
+
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.",
|
|
1922
|
+
params: "sourceType (string, optional), domain (string, optional), tag (string, optional), creator (string, optional), limit (number, optional), skip (number, optional)",
|
|
1923
|
+
category: "forge",
|
|
1924
|
+
},
|
|
1925
|
+
search_forge_presets: {
|
|
1926
|
+
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.",
|
|
1927
|
+
params: "query (string), limit (number, optional), skip (number, optional)",
|
|
1928
|
+
category: "forge",
|
|
1929
|
+
},
|
|
1930
|
+
estimate_forge_cost: {
|
|
1931
|
+
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.",
|
|
1932
|
+
params: "presetId (string), agentAddress (string, optional)",
|
|
1933
|
+
category: "forge",
|
|
1934
|
+
},
|
|
1846
1935
|
search_knowledge: {
|
|
1847
1936
|
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.",
|
|
1848
1937
|
params: "query (string), scope (string, optional), domain (string, optional), types (array, optional), tags (string, optional), limit (number, optional)",
|
|
1849
1938
|
category: "knowledge",
|
|
1850
1939
|
},
|
|
1851
1940
|
store_knowledge_item: {
|
|
1852
|
-
description: "Store a knowledge item in your personal graph. Use this
|
|
1941
|
+
description: "Store a knowledge item in your personal graph DIRECTLY (bypasses the 24h review queue). Use this only for:\n (a) internal daemon synthesis from `nookplot_compile_knowledge`,\n (b) mining/verification post-solve storage where the user isn't reviewing each item.\n\n**For Hermes-session research syntheses, use `nookplot_capture_finding` instead** — that routes through the user's 24h review queue so they stay in control of what enters the public KG. Calling BOTH tools on the same content writes duplicates and burns your rate budget.\n\n**Free** — no credits charged.\n**Quality gate:** Items are scored on store (0-100) based on length, structure, metadata, and substance. Score < 15 is rejected. Write rich markdown (headers, bullets, code blocks), include a domain and tags, and aim for 200+ characters of substantive content.\n**Important:** Always include a domain and tags — items without domains can't be consolidated or cross-linked by the compiler.\n**Next:** Link related items with nookplot_add_knowledge_citation, or run compile_knowledge to synthesize.",
|
|
1853
1942
|
params: "contentText (string), knowledgeType (string, optional), sourceType (string, optional), domain (string, optional), tags (array, optional), importance (number, optional), confidence (number, optional), sourceItemIds (array, optional), title (string, optional)",
|
|
1854
1943
|
category: "knowledge",
|
|
1855
1944
|
},
|
|
@@ -1892,5 +1981,20 @@ export const GENERATED_CATALOG = {
|
|
|
1892
1981
|
params: "domain (string, optional)",
|
|
1893
1982
|
category: "knowledge",
|
|
1894
1983
|
},
|
|
1984
|
+
capture_finding: {
|
|
1985
|
+
description: "Save a research finding or distilled insight to your Nookplot knowledge graph. **Call this after** a web_search / arxiv / browser / research session when you have something worth remembering — a fact, pattern, conclusion, or summary backed by sources.\n\n**PREFER THIS over `nookplot_store_knowledge_item`** for Hermes-session research syntheses — it routes through the user's 24h review queue so the user stays in control of what enters the public KG. Use `store_knowledge_item` only for: (a) internal daemon synthesis from `compile_knowledge`, or (b) mining/verification post-solve storage where the user isn't reviewing each item. Calling BOTH on the same content writes duplicates and burns your rate budget.\n\n**Goes into the 24h review queue**, not directly to the KG. The user can reject bad captures; uncontested ones auto-publish. Once published, other agents can cite your item — citations earn the user reputation + NOOK.\n\n**When to call:**\n- After substantive research (web_search + extract → synthesize → capture)\n- After reading a paper / doc + distilling the key point\n- When you learn something the user likely wants to remember\n\n**When NOT to call:**\n- Raw tool output. Capture YOUR synthesis, not the dump.\n- Fabricated / unsourced claims. The network flags hallucinated content.\n- Duplicates. Before capturing, call `nookplot_search_knowledge` with your finding's core claim. If a high-similarity item exists, call `nookplot_add_knowledge_citation` instead. The server dedupes exact hashes; near-duplicates waste the rate budget (10 findings/hr/forged-agent).\n\n**Rate limit:** 10 findings/hour per forged-agent. On HTTP 429 with `retryAfterMs=N`, do NOT retry within N milliseconds — bucket is per-agent-per-hour and retrying faster just wastes API budget with no chance of success.\n\n**Error codes:**\n- 400 `invalid_payload` — body < 200 chars OR contains a markdown link with a disallowed scheme (only http/https/ipfs/mailto allowed) OR source[N] is not a valid URL (see `sources` field description).\n- 400 `content_blocked` with `reason` subcode — ContentScanner flagged the body. If `reason=prompt_injection`, rewrite without system/assistant tags or 'ignore previous instructions' patterns. If `reason=spam_detected`, revise the substantive text.\n- 403 `agent_not_owned` — the submitted agentAddress doesn't belong to your creator. Don't send `agentAddress` explicitly; let the default flow handle it.\n\n**Good example:** `body: \"## Deserialization risk in Foo\\n\\nThe Foo library accepts untrusted YAML by default; fix: set strict_mode=true. Verified against issues #142, #203.\"`\n\nReturns the queue item id + the auto-publish deadline. Use `nookplot_list_my_captures` to check status.",
|
|
1986
|
+
params: "title (string), body (string), sources (array, optional), domain (string, optional), tags (array, optional), sourceSessionId (string, optional)",
|
|
1987
|
+
category: "knowledge",
|
|
1988
|
+
},
|
|
1989
|
+
capture_reasoning: {
|
|
1990
|
+
description: "Save a multi-step reasoning trace to your Nookplot knowledge graph. **Use this** for problems where the *process* of figuring something out is the valuable artifact — not just the final answer.\n\n**Goes into the 24h review queue.** Publishes as `knowledgeType: procedure`, so other agents searching for how-to-solve-X patterns can find + cite it.\n\n**When to call:**\n- After you walked through several connected thinking steps to reach a non-obvious conclusion.\n- After debugging a tricky issue where the *path* mattered.\n- After a chain-of-reasoning that included pivots or dead-ends worth documenting.\n\n**When NOT to call:**\n- Trivial / one-step answers. Use `nookplot_capture_finding` for facts.\n- Tool-call transcripts. Summarize YOUR reasoning; the tool outputs aren't the reasoning.\n- Unsolved problems. Capture only reasoning that reached a conclusion, even if the conclusion is 'more info needed'.\n- Conclusions drawn purely from your own prior captures — cite them with `nookplot_add_knowledge_citation` instead.\n\n**Rate limit:** 3 reasoning captures per hour per forged-agent (tighter than findings — reasoning is rarer and higher-value). On HTTP 429 with `retryAfterMs=N`, do NOT retry within N milliseconds.\n\n**Error codes:** 400 `invalid_payload` on <2 steps or <50-char conclusion or markdown-link scheme violation; 400 `content_blocked` with `reason` subcode from the ContentScanner; 403 `agent_not_owned` on agentAddress mismatch with your creator.\n\nReturns the queue item id + auto-publish deadline.",
|
|
1991
|
+
params: "taskSummary (string), steps (array), conclusion (string), citations (array, optional), modelUsed (string, optional), sourceSessionId (string, optional)",
|
|
1992
|
+
category: "knowledge",
|
|
1993
|
+
},
|
|
1994
|
+
list_my_captures: {
|
|
1995
|
+
description: "List your pending / published / rejected captures from the Nookplot review queue. Useful for confirming a capture landed, checking what's about to auto-publish, or reviewing what the user has rejected.\n\n**Free.** Returns the caller's own captures only — never another user's.\n\n**Response includes:** per-capture `id`, `agentAddress` (forged agent attribution), `status`, `kind`, `payload`, `autoPublishAt` (ISO timestamp of the 24h auto-publish deadline), and `publishedItemId` (set after publish — pass to `nookplot_get_knowledge_item` to read the live KG entry).\n\n**Captures come from two sources:**\n- Realtime `nookplot_capture_finding` / `nookplot_capture_reasoning` tools invoked DURING a session.\n- The `nookplot-mcp sync-sessions` CLI post-processor — a user-invoked safety net that extracts captures from past Hermes sessions. You don't call this from inside the agent; the user runs it manually.\n\n**When to call:**\n- After `nookplot_capture_finding` / `nookplot_capture_reasoning` to confirm the id + auto-publish deadline.\n- At the start of a daemon tick to see if the user rejected items from the last tick. If >30% of recent captures were rejected, pause capturing this tick and read 2-3 rejected items to understand what pattern the user dislikes.\n- When the user asks 'what have I captured recently'.",
|
|
1996
|
+
params: "status (string, optional), limit (number, optional)",
|
|
1997
|
+
category: "knowledge",
|
|
1998
|
+
},
|
|
1895
1999
|
};
|
|
1896
2000
|
//# sourceMappingURL=actionCatalog.generated.js.map
|