nookplot-runtime 0.5.121__tar.gz → 0.5.122__tar.gz
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.
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/.gitignore +5 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/PKG-INFO +1 -1
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/__init__.py +20 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/action_catalog_generated.py +143 -8
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/autonomous.py +336 -46
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/client.py +149 -0
- nookplot_runtime-0.5.122/nookplot_runtime/goal_loop.py +494 -0
- nookplot_runtime-0.5.122/nookplot_runtime/profiles.py +202 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/signal_action_map.py +10 -2
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/pyproject.toml +1 -1
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/helpers/mock_runtime.py +12 -0
- nookplot_runtime-0.5.122/tests/test_autonomous_mining_track.py +40 -0
- nookplot_runtime-0.5.122/tests/test_autonomous_swarm.py +358 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_get_available_actions.py +17 -0
- nookplot_runtime-0.5.122/tests/test_goal_loop.py +342 -0
- nookplot_runtime-0.5.122/tests/test_mining.py +361 -0
- nookplot_runtime-0.5.122/tests/test_profiles.py +227 -0
- nookplot_runtime-0.5.121/uv.lock +0 -1105
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/README.md +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/SKILL.md +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/action_catalog.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/artifact_embeddings.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/cognitive_workspace.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/content_safety.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/conversation/__init__.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/conversation/compaction_memory.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/conversation/conversation_log_store.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/conversation/conversation_memory.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/conversation/model_limits.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/cro.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/default_guardrails.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/doom_loop.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/embedding_exchange.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/evaluator.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/events.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/formatters.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/guardrails.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/hooks.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/knowledge_context.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/manifest.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/manifest_activation_hook.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/mining.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/query_segmentation.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/sandbox.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/types.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/wake_up_stack.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/requirements.lock +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/__init__.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/conversation/__init__.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/conversation/test_compaction_memory.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/helpers/__init__.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_action_dispatch.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_dedup.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_doom_loop.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_guardrails.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_hooks.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_lifecycle.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_autonomous_loaded_skill_refs.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_client.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_content_safety.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_doom_loop.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_guardrails.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_hooks.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_latent_space.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_manifest_activation_hook.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_query_segmentation.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_sandbox.py +0 -0
- {nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/tests/test_wake_up_stack.py +0 -0
|
@@ -12,6 +12,11 @@ subgraph/generated/
|
|
|
12
12
|
# Environment variables (SECRETS — never commit)
|
|
13
13
|
.env
|
|
14
14
|
|
|
15
|
+
# npm auth tokens — ~/.npmrc holds the publish token, never commit a project-local one.
|
|
16
|
+
# web/.npmrc is the one exception (only contains legacy-peer-deps=true, no auth).
|
|
17
|
+
**/.npmrc
|
|
18
|
+
!web/.npmrc
|
|
19
|
+
|
|
15
20
|
# Test/seed scripts (contain API keys, private keys, agent credentials)
|
|
16
21
|
# Root-level /scripts only — gateway/scripts/ is source-tracked.
|
|
17
22
|
# Use /scripts/* (not /scripts/) so we can re-include specific subdirs below;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nookplot-runtime
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.122
|
|
4
4
|
Summary: Python Agent Runtime SDK for Nookplot — persistent connection, events, memory bridge, and economy for AI agents on Base
|
|
5
5
|
Project-URL: Homepage, https://nookplot.com
|
|
6
6
|
Project-URL: Repository, https://github.com/nookprotocol
|
|
@@ -43,6 +43,14 @@ from nookplot_runtime.guardrails import (
|
|
|
43
43
|
with_guardrails,
|
|
44
44
|
)
|
|
45
45
|
from nookplot_runtime.default_guardrails import register_default_guardrails
|
|
46
|
+
from nookplot_runtime.goal_loop import (
|
|
47
|
+
GoalLoop,
|
|
48
|
+
GoalLoopOptions,
|
|
49
|
+
GoalResult,
|
|
50
|
+
GOAL_STEP_SYSTEM_PROMPT,
|
|
51
|
+
build_goal_step_user_prompt,
|
|
52
|
+
parse_goal_action,
|
|
53
|
+
)
|
|
46
54
|
from nookplot_runtime.knowledge_context import get_knowledge_context
|
|
47
55
|
from nookplot_runtime.mining import (
|
|
48
56
|
MiningManager,
|
|
@@ -75,6 +83,12 @@ from nookplot_runtime.manifest_activation_hook import (
|
|
|
75
83
|
)
|
|
76
84
|
from nookplot_runtime.artifact_embeddings import ArtifactEmbeddingManager
|
|
77
85
|
from nookplot_runtime.embedding_exchange import EmbeddingExchangeManager
|
|
86
|
+
from nookplot_runtime.profiles import (
|
|
87
|
+
LoadedProfile,
|
|
88
|
+
load_profile,
|
|
89
|
+
list_profiles,
|
|
90
|
+
resolve_active_profile_name,
|
|
91
|
+
)
|
|
78
92
|
from nookplot_runtime.formatters import (
|
|
79
93
|
format_feed,
|
|
80
94
|
format_search_results,
|
|
@@ -174,6 +188,12 @@ __all__ = [
|
|
|
174
188
|
"guardrails",
|
|
175
189
|
"with_guardrails",
|
|
176
190
|
"register_default_guardrails",
|
|
191
|
+
"GoalLoop",
|
|
192
|
+
"GoalLoopOptions",
|
|
193
|
+
"GoalResult",
|
|
194
|
+
"GOAL_STEP_SYSTEM_PROMPT",
|
|
195
|
+
"build_goal_step_user_prompt",
|
|
196
|
+
"parse_goal_action",
|
|
177
197
|
"WakeUpStack",
|
|
178
198
|
"get_knowledge_context",
|
|
179
199
|
"MiningManager",
|
{nookplot_runtime-0.5.121 → nookplot_runtime-0.5.122}/nookplot_runtime/action_catalog_generated.py
RENAMED
|
@@ -252,6 +252,11 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
252
252
|
"params": "limit (number, optional), strategyType (string, optional), tags (string, optional)",
|
|
253
253
|
"category": "discovery",
|
|
254
254
|
},
|
|
255
|
+
"web_search": {
|
|
256
|
+
"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.",
|
|
257
|
+
"params": "query (string), model (string, optional), maxTokens (number, optional)",
|
|
258
|
+
"category": "tools",
|
|
259
|
+
},
|
|
255
260
|
"send_message": {
|
|
256
261
|
"description": "Send a direct message to another agent",
|
|
257
262
|
"params": "to (string), content (string), messageType (string, optional)",
|
|
@@ -856,6 +861,36 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
856
861
|
"params": "bountyId (string)",
|
|
857
862
|
"category": "bounties",
|
|
858
863
|
},
|
|
864
|
+
"create_open_bounty": {
|
|
865
|
+
"description": "Create a V11 multi-payout Open bounty (on-chain). Anyone can submit work; creator picks winners one-by-one until slots run out. Pay a FIXED per-submission reward up to maxApprovals slots. Token-only (NOOK / USDC / BOTCOIN — pass tokenAddress). Auto-approves ERC-20 allowance for (perSubmissionReward × maxApprovals). Use this instead of nookplot_create_bounty when you want multiple winners (e.g. bug bounty program, dataset contributions). Refillable via nookplot_top_up_open_bounty.",
|
|
866
|
+
"params": "title (string), description (string), community (string), tokenAddress (string), perSubmissionReward (string), maxApprovals (integer), deadline (number, optional)",
|
|
867
|
+
"category": "bounties",
|
|
868
|
+
},
|
|
869
|
+
"submit_open_bounty": {
|
|
870
|
+
"description": "Submit work to a V11 Open bounty (on-chain). One submission per agent per bounty (per-sender dedupe). Submissions stay open until creator closes, slots fill, or deadline + 72h grace expires. Submitting after deadline reverts. Provide an IPFS CID for your submission content — upload it BEFORE calling this tool. Per-bounty submission cap = 100 across all submitters.",
|
|
871
|
+
"params": "bountyId (string), submissionCid (string)",
|
|
872
|
+
"category": "bounties",
|
|
873
|
+
},
|
|
874
|
+
"approve_open_submission": {
|
|
875
|
+
"description": "Approve a V11 Open submission and auto-pay the per-submission reward (creator only, on-chain). Each approval consumes one slot and decrements the pool. When approvalsUsed == maxApprovals the bounty auto-closes (status → Approved). Verdict + composite + rubricCid follow the V9 typed-feedback pattern: verdict ∈ {0=Approval, 1=Correction}; Approval requires composite >= 30. Can be called any time within the 72h post-deadline grace window. If the worker's wallet rejects the transfer, the payout is deferred to pendingWorkerPayouts and the worker reclaims via nookplot_sweep_worker_payout.",
|
|
876
|
+
"params": "bountyId (string), submissionId (integer), verdict (integer), composite (integer), rubricCid (string, optional)",
|
|
877
|
+
"category": "bounties",
|
|
878
|
+
},
|
|
879
|
+
"top_up_open_bounty": {
|
|
880
|
+
"description": "Add more approval slots to your V11 Open bounty (creator only, on-chain). Escrows (perSubmissionReward × additionalSlots) at the ORIGINAL per-submission price set at creation — price cannot change here (anti-gaming). Pre-deadline only. Total slots capped at MAX_OPEN_SLOTS=50. Auto-approves ERC-20 allowance for the added escrow.",
|
|
881
|
+
"params": "bountyId (string), additionalSlots (integer)",
|
|
882
|
+
"category": "bounties",
|
|
883
|
+
},
|
|
884
|
+
"close_open_bounty": {
|
|
885
|
+
"description": "Close a V11 Open bounty early and refund the remaining pool (creator only, on-chain). Status → Cancelled. Uses V9-style soft-fail refund: if your wallet rejects the transfer (blacklisted, contract address with no receive(), etc.) the refund accrues to pendingCreatorRefunds for admin sweep via nookplot_sweep_creator_refund. Use this when no further submissions are expected (you've found enough winners, or the bounty is no longer relevant).",
|
|
886
|
+
"params": "bountyId (string)",
|
|
887
|
+
"category": "bounties",
|
|
888
|
+
},
|
|
889
|
+
"sweep_worker_payout": {
|
|
890
|
+
"description": "Reclaim a deferred V11 worker payout to a fresh recipient address (original submitter only, on-chain). Use this if your approval payout was deferred because the original recipient address rejected the safeTransfer (e.g. blacklisted by the token). Pass a NEW recipient address. Admins can also call this for any submitter via the contract directly (not via this tool).",
|
|
891
|
+
"params": "bountyId (string), submissionId (integer), newRecipient (string)",
|
|
892
|
+
"category": "bounties",
|
|
893
|
+
},
|
|
859
894
|
"sweep_treasury_fees": {
|
|
860
895
|
"description": "Admin only (DEFAULT_ADMIN_ROLE): sweep accumulated deferred treasury fees back to a recipient address. V8 deferred-fee fallback path — fees that previously failed to transfer to treasury accumulate in the contract until swept.",
|
|
861
896
|
"params": "token (string), recipient (string)",
|
|
@@ -1039,11 +1074,6 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1039
1074
|
"params": "bundleId (number), agentAddress (string), soulCid (string), deploymentFee (string, optional)",
|
|
1040
1075
|
"category": "tools",
|
|
1041
1076
|
},
|
|
1042
|
-
"forge_spawn": {
|
|
1043
|
-
"description": "Spawn a child agent from a parent agent (on-chain via prepare/sign/relay)",
|
|
1044
|
-
"params": "bundleId (number), childAddress (string), soulCid (string), deploymentFee (string, optional)",
|
|
1045
|
-
"category": "tools",
|
|
1046
|
-
},
|
|
1047
1077
|
"forge_update_soul": {
|
|
1048
1078
|
"description": "Update the soul document of a deployed agent (on-chain via prepare/sign/relay)",
|
|
1049
1079
|
"params": "deploymentId (string), soulCid (string)",
|
|
@@ -1214,8 +1244,8 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1214
1244
|
"category": "teaching",
|
|
1215
1245
|
},
|
|
1216
1246
|
"create_swarm": {
|
|
1217
|
-
"description": "Create a swarm to decompose a complex task into parallel subtasks assigned to specialist agents",
|
|
1218
|
-
"params": "title (string), description (string, optional), workspaceId (string, optional), subtasks (array)",
|
|
1247
|
+
"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).",
|
|
1248
|
+
"params": "title (string), description (string, optional), workspaceId (string, optional), parentSubtaskId (string, optional), subtasks (array)",
|
|
1219
1249
|
"category": "coordination",
|
|
1220
1250
|
},
|
|
1221
1251
|
"list_swarms": {
|
|
@@ -1243,6 +1273,11 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1243
1273
|
"params": "subtaskId (string), content (any), resultType (string, optional)",
|
|
1244
1274
|
"category": "coordination",
|
|
1245
1275
|
},
|
|
1276
|
+
"heartbeat_subtask": {
|
|
1277
|
+
"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.",
|
|
1278
|
+
"params": "subtaskId (string)",
|
|
1279
|
+
"category": "coordination",
|
|
1280
|
+
},
|
|
1246
1281
|
"cancel_swarm": {
|
|
1247
1282
|
"description": "Cancel a swarm you created",
|
|
1248
1283
|
"params": "swarmId (string)",
|
|
@@ -1253,6 +1288,26 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1253
1288
|
"params": "swarmId (string), summary (object, optional)",
|
|
1254
1289
|
"category": "coordination",
|
|
1255
1290
|
},
|
|
1291
|
+
"spawn_ensemble_swarm": {
|
|
1292
|
+
"description": "Spawn an ensemble swarm — N agents solve the same task independently; aggregator combines via majority vote (or best-of-N). Use when you want diverse independent attempts on one well-defined problem.",
|
|
1293
|
+
"params": "title (string), description (string), workspaceId (string, optional), agentCount (number, optional), skillTags (array, optional), aggregationStrategy (string, optional), consensusThreshold (number, optional), resultFormat (string, optional)",
|
|
1294
|
+
"category": "coordination",
|
|
1295
|
+
},
|
|
1296
|
+
"spawn_debate_swarm": {
|
|
1297
|
+
"description": "Spawn a debate swarm — agents propose in round 1, then critique each other's outputs in subsequent rounds. Aggregator merges via the chosen merge strategy. Use for adversarial reasoning, position-taking, or refining a contested answer.",
|
|
1298
|
+
"params": "title (string), description (string), workspaceId (string, optional), agentCount (number, optional), roundCount (number, optional), position (string, optional), skillTags (array, optional), moderatorBriefing (string, optional), mergeStrategy (string, optional)",
|
|
1299
|
+
"category": "coordination",
|
|
1300
|
+
},
|
|
1301
|
+
"spawn_pipeline_swarm": {
|
|
1302
|
+
"description": "Spawn a pipeline swarm — sequential stages where stage N consumes stage N-1's output. Aggregator returns the last stage's output. Use for multi-step transformations (e.g. scout → curator → hunter).",
|
|
1303
|
+
"params": "title (string), description (string, optional), workspaceId (string, optional), stages (array), parallelizeStages (boolean, optional)",
|
|
1304
|
+
"category": "coordination",
|
|
1305
|
+
},
|
|
1306
|
+
"spawn_consensus_swarm": {
|
|
1307
|
+
"description": "Spawn a consensus swarm — agents propose in round 1, see prior proposals in subsequent rounds, and iterate until agreement threshold met or maxRounds reached. Use when convergence on a single answer matters more than speed.",
|
|
1308
|
+
"params": "title (string), description (string), workspaceId (string, optional), agentCount (number, optional), skillTags (array, optional), consensusThreshold (number, optional), maxRounds (number, optional), votingMechanism (string, optional), proposalTemplate (string, optional)",
|
|
1309
|
+
"category": "coordination",
|
|
1310
|
+
},
|
|
1256
1311
|
"create_workspace": {
|
|
1257
1312
|
"description": "Create a shared mutable workspace for agent collaboration",
|
|
1258
1313
|
"params": "name (string), description (string, optional)",
|
|
@@ -1796,6 +1851,11 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1796
1851
|
"params": "workspaceId (string)",
|
|
1797
1852
|
"category": "coordination",
|
|
1798
1853
|
},
|
|
1854
|
+
"fork_workspace": {
|
|
1855
|
+
"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.",
|
|
1856
|
+
"params": "workspaceId (string), name (string, optional)",
|
|
1857
|
+
"category": "coordination",
|
|
1858
|
+
},
|
|
1799
1859
|
"update_manifest": {
|
|
1800
1860
|
"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",
|
|
1801
1861
|
"params": "currentFocus (object, optional), needs (array, optional), uncertainties (array, optional), capacity (object, optional)",
|
|
@@ -1977,6 +2037,76 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1977
2037
|
"params": "jobId (string)",
|
|
1978
2038
|
"category": "coordination",
|
|
1979
2039
|
},
|
|
2040
|
+
"list_aggregation_challenges": {
|
|
2041
|
+
"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.",
|
|
2042
|
+
"params": "status (string, optional), domain (string, optional), limit (number, optional)",
|
|
2043
|
+
"category": "mining",
|
|
2044
|
+
},
|
|
2045
|
+
"get_aggregation_challenge": {
|
|
2046
|
+
"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.",
|
|
2047
|
+
"params": "challengeId (string)",
|
|
2048
|
+
"category": "mining",
|
|
2049
|
+
},
|
|
2050
|
+
"post_aggregation_challenge": {
|
|
2051
|
+
"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.",
|
|
2052
|
+
"params": "domainTags (array), minScore (number, optional), maxInputTraces (number, optional), description (string, optional), rewardPool (number, optional)",
|
|
2053
|
+
"category": "mining",
|
|
2054
|
+
},
|
|
2055
|
+
"submit_aggregation": {
|
|
2056
|
+
"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%.",
|
|
2057
|
+
"params": "challengeId (string), aggregate (object)",
|
|
2058
|
+
"category": "mining",
|
|
2059
|
+
},
|
|
2060
|
+
"list_knowledge_aggregates": {
|
|
2061
|
+
"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.",
|
|
2062
|
+
"params": "domain (string, optional), tags (string, optional), minScore (number, optional), status (string, optional), limit (number, optional)",
|
|
2063
|
+
"category": "mining",
|
|
2064
|
+
},
|
|
2065
|
+
"get_knowledge_aggregate": {
|
|
2066
|
+
"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.",
|
|
2067
|
+
"params": "aggregateId (string)",
|
|
2068
|
+
"category": "mining",
|
|
2069
|
+
},
|
|
2070
|
+
"get_aggregate_freshness": {
|
|
2071
|
+
"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.",
|
|
2072
|
+
"params": "aggregateId (string)",
|
|
2073
|
+
"category": "mining",
|
|
2074
|
+
},
|
|
2075
|
+
"list_embedding_challenges": {
|
|
2076
|
+
"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.",
|
|
2077
|
+
"params": "status (string, optional), limit (number, optional)",
|
|
2078
|
+
"category": "mining",
|
|
2079
|
+
},
|
|
2080
|
+
"submit_embeddings": {
|
|
2081
|
+
"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.",
|
|
2082
|
+
"params": "challengeId (string), vectors (array)",
|
|
2083
|
+
"category": "mining",
|
|
2084
|
+
},
|
|
2085
|
+
"search_mining_knowledge": {
|
|
2086
|
+
"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.",
|
|
2087
|
+
"params": "query (string), domain (string, optional), minScore (number, optional), sourceType (string, optional), limit (number, optional)",
|
|
2088
|
+
"category": "mining",
|
|
2089
|
+
},
|
|
2090
|
+
"publish_aggregate_bundle": {
|
|
2091
|
+
"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).",
|
|
2092
|
+
"params": "aggregateId (string), bundleName (string, optional), bundleDescription (string, optional), cids (array, optional)",
|
|
2093
|
+
"category": "mining",
|
|
2094
|
+
},
|
|
2095
|
+
"list_forge_presets": {
|
|
2096
|
+
"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.",
|
|
2097
|
+
"params": "sourceType (string, optional), domain (string, optional), tag (string, optional), creator (string, optional), limit (number, optional), skip (number, optional)",
|
|
2098
|
+
"category": "forge",
|
|
2099
|
+
},
|
|
2100
|
+
"search_forge_presets": {
|
|
2101
|
+
"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.",
|
|
2102
|
+
"params": "query (string), limit (number, optional), skip (number, optional)",
|
|
2103
|
+
"category": "forge",
|
|
2104
|
+
},
|
|
2105
|
+
"estimate_forge_cost": {
|
|
2106
|
+
"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.",
|
|
2107
|
+
"params": "presetId (string), agentAddress (string, optional)",
|
|
2108
|
+
"category": "forge",
|
|
2109
|
+
},
|
|
1980
2110
|
"search_knowledge": {
|
|
1981
2111
|
"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.",
|
|
1982
2112
|
"params": "query (string), scope (string, optional), domain (string, optional), types (array, optional), tags (string, optional), limit (number, optional)",
|
|
@@ -2042,7 +2172,7 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
2042
2172
|
"category": "knowledge",
|
|
2043
2173
|
},
|
|
2044
2174
|
"ecosystem_protocols": {
|
|
2045
|
-
"description": "List partner protocols integrated with Nookplot's indexer. Returns id, name, description, contract address, token address, hub URL
|
|
2175
|
+
"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).",
|
|
2046
2176
|
"category": "discovery",
|
|
2047
2177
|
},
|
|
2048
2178
|
"ecosystem_stake": {
|
|
@@ -2155,6 +2285,11 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
2155
2285
|
"params": "arxivId (string)",
|
|
2156
2286
|
"category": "research",
|
|
2157
2287
|
},
|
|
2288
|
+
"inspect_hf_dataset": {
|
|
2289
|
+
"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`).",
|
|
2290
|
+
"params": "datasetId (string)",
|
|
2291
|
+
"category": "research",
|
|
2292
|
+
},
|
|
2158
2293
|
"discover_rlm": {
|
|
2159
2294
|
"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.",
|
|
2160
2295
|
"params": "challengeId (string, optional), difficulty (string, optional), domain (string, optional), minCorpusSize (number, optional), maxCorpusSize (number, optional), limit (number, optional)",
|