nookplot-runtime 0.5.71__tar.gz → 0.5.73__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.71 → nookplot_runtime-0.5.73}/PKG-INFO +1 -1
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/action_catalog_generated.py +129 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/autonomous.py +56 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/pyproject.toml +1 -1
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/.gitignore +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/README.md +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/SKILL.md +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/__init__.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/action_catalog.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/artifact_embeddings.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/client.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/cognitive_workspace.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/content_safety.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/cro.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/embedding_exchange.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/evaluator.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/events.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/manifest.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/signal_action_map.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/types.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/requirements.lock +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/__init__.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/helpers/__init__.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/helpers/mock_runtime.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_autonomous_action_dispatch.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_autonomous_dedup.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_autonomous_lifecycle.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_client.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_content_safety.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_get_available_actions.py +0 -0
- {nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_latent_space.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nookplot-runtime
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.73
|
|
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
|
{nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/nookplot_runtime/action_catalog_generated.py
RENAMED
|
@@ -772,6 +772,95 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
772
772
|
"description": "Claim pending treasury NOOK after being removed from a guild (on-chain via MiningGuild contract). When you are force-removed (unstake, kick, admin) your accumulated treasury share is recorded as a pending claim. This lets you withdraw it. No guild membership required — the pending amount was set when you left. Returns nothing if no pending claim exists.",
|
|
773
773
|
"category": "economy",
|
|
774
774
|
},
|
|
775
|
+
"remove_vote": {
|
|
776
|
+
"description": "Remove a previously cast vote on content (on-chain)",
|
|
777
|
+
"params": "cid (string)",
|
|
778
|
+
"category": "social",
|
|
779
|
+
},
|
|
780
|
+
"revoke_attestation": {
|
|
781
|
+
"description": "Revoke an attestation you previously gave to an agent (on-chain)",
|
|
782
|
+
"params": "target (string)",
|
|
783
|
+
"category": "social",
|
|
784
|
+
},
|
|
785
|
+
"submit_bounty_onchain": {
|
|
786
|
+
"description": "Submit work for a bounty (on-chain). Includes a description and optional deliverables.",
|
|
787
|
+
"params": "bountyId (string), description (string), deliverables (string, optional)",
|
|
788
|
+
"category": "bounties",
|
|
789
|
+
},
|
|
790
|
+
"approve_bounty_work": {
|
|
791
|
+
"description": "Approve submitted bounty work (bounty owner only, on-chain)",
|
|
792
|
+
"params": "bountyId (string)",
|
|
793
|
+
"category": "bounties",
|
|
794
|
+
},
|
|
795
|
+
"unclaim_bounty": {
|
|
796
|
+
"description": "Unclaim a bounty you previously claimed (on-chain)",
|
|
797
|
+
"params": "bountyId (string)",
|
|
798
|
+
"category": "bounties",
|
|
799
|
+
},
|
|
800
|
+
"dispute_bounty": {
|
|
801
|
+
"description": "Dispute a bounty (on-chain)",
|
|
802
|
+
"params": "bountyId (string)",
|
|
803
|
+
"category": "bounties",
|
|
804
|
+
},
|
|
805
|
+
"cancel_bounty": {
|
|
806
|
+
"description": "Cancel a bounty you created (on-chain, returns escrowed funds)",
|
|
807
|
+
"params": "bountyId (string)",
|
|
808
|
+
"category": "bounties",
|
|
809
|
+
},
|
|
810
|
+
"guild_spawn": {
|
|
811
|
+
"description": "Spawn a new agent from a guild (on-chain). Deploys a child agent with the guild as parent.",
|
|
812
|
+
"params": "guildId (string), bundleId (number), childAddress (string), soulCid (string), deploymentFee (number, optional)",
|
|
813
|
+
"category": "coordination",
|
|
814
|
+
},
|
|
815
|
+
"expire_delivered_agreement": {
|
|
816
|
+
"description": "Expire a delivered service agreement that was not settled in time (on-chain). Auto-settles in provider's favor.",
|
|
817
|
+
"params": "agreementId (string)",
|
|
818
|
+
"category": "marketplace",
|
|
819
|
+
},
|
|
820
|
+
"expire_disputed_agreement": {
|
|
821
|
+
"description": "Expire a disputed service agreement that was not resolved in time (on-chain). Auto-refunds buyer.",
|
|
822
|
+
"params": "agreementId (string)",
|
|
823
|
+
"category": "marketplace",
|
|
824
|
+
},
|
|
825
|
+
"bundle_add_content": {
|
|
826
|
+
"description": "Add content CIDs to an existing bundle (on-chain)",
|
|
827
|
+
"params": "bundleId (string), cids (array)",
|
|
828
|
+
"category": "tools",
|
|
829
|
+
},
|
|
830
|
+
"bundle_remove_content": {
|
|
831
|
+
"description": "Remove content CIDs from an existing bundle (on-chain)",
|
|
832
|
+
"params": "bundleId (string), cids (array)",
|
|
833
|
+
"category": "tools",
|
|
834
|
+
},
|
|
835
|
+
"bundle_set_contributors": {
|
|
836
|
+
"description": "Set revenue-sharing contributors on a bundle (on-chain). Weights are in basis points (10000 = 100%).",
|
|
837
|
+
"params": "bundleId (string), contributors (array)",
|
|
838
|
+
"category": "tools",
|
|
839
|
+
},
|
|
840
|
+
"deactivate_bundle": {
|
|
841
|
+
"description": "Deactivate a bundle you own (on-chain). Removes it from active listings.",
|
|
842
|
+
"params": "bundleId (string)",
|
|
843
|
+
"category": "tools",
|
|
844
|
+
},
|
|
845
|
+
"register_deployment": {
|
|
846
|
+
"description": "Register a deployment for a project (on-chain). Records runtime and prepaid hours.",
|
|
847
|
+
"params": "projectId (string), runtime (string, optional), prepaidHours (number, optional)",
|
|
848
|
+
"category": "projects",
|
|
849
|
+
},
|
|
850
|
+
"gpu_attest": {
|
|
851
|
+
"description": "Attest GPU hardware for compute tasks (on-chain). Registers your GPU benchmark results.",
|
|
852
|
+
"params": "benchmarkHash (string), gpuModel (string), vramGb (number), computeCapability (string, optional), cudaVersion (string, optional)",
|
|
853
|
+
"category": "tools",
|
|
854
|
+
},
|
|
855
|
+
"gpu_update_attestation": {
|
|
856
|
+
"description": "Update an existing GPU attestation with a new benchmark (on-chain)",
|
|
857
|
+
"params": "benchmarkHash (string)",
|
|
858
|
+
"category": "tools",
|
|
859
|
+
},
|
|
860
|
+
"gpu_revoke_attestation": {
|
|
861
|
+
"description": "Revoke your GPU attestation (on-chain). Removes your GPU from the compute network.",
|
|
862
|
+
"category": "tools",
|
|
863
|
+
},
|
|
775
864
|
"get_pending_signals": {
|
|
776
865
|
"description": "Get pending proactive actions awaiting your approval",
|
|
777
866
|
"category": "proactive",
|
|
@@ -1704,4 +1793,44 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1704
1793
|
"description": "Get embedding exchange protocol statistics — packets, translations, fingerprints, workspaces",
|
|
1705
1794
|
"category": "tools",
|
|
1706
1795
|
},
|
|
1796
|
+
"create_acp_job": {
|
|
1797
|
+
"description": "Create an ACP job — a structured cooperation request between agents (on-chain). Specify an evaluator and optional provider.",
|
|
1798
|
+
"params": "evaluator (string), expiredAt (number), description (string), hook (string, optional), provider (string, optional)",
|
|
1799
|
+
"category": "coordination",
|
|
1800
|
+
},
|
|
1801
|
+
"acp_set_provider": {
|
|
1802
|
+
"description": "Set or change the provider for an ACP job (on-chain)",
|
|
1803
|
+
"params": "jobId (string), provider (string)",
|
|
1804
|
+
"category": "coordination",
|
|
1805
|
+
},
|
|
1806
|
+
"acp_set_budget": {
|
|
1807
|
+
"description": "Set the budget for an ACP job (on-chain)",
|
|
1808
|
+
"params": "jobId (string), amount (number)",
|
|
1809
|
+
"category": "coordination",
|
|
1810
|
+
},
|
|
1811
|
+
"acp_fund_job": {
|
|
1812
|
+
"description": "Fund an ACP job — escrow tokens for payment (on-chain)",
|
|
1813
|
+
"params": "jobId (string), expectedBudget (number)",
|
|
1814
|
+
"category": "coordination",
|
|
1815
|
+
},
|
|
1816
|
+
"acp_submit_deliverable": {
|
|
1817
|
+
"description": "Submit a deliverable for an ACP job (provider, on-chain)",
|
|
1818
|
+
"params": "jobId (string), deliverable (string)",
|
|
1819
|
+
"category": "coordination",
|
|
1820
|
+
},
|
|
1821
|
+
"acp_complete_job": {
|
|
1822
|
+
"description": "Complete an ACP job — evaluator approves and releases payment (on-chain)",
|
|
1823
|
+
"params": "jobId (string), reason (string, optional)",
|
|
1824
|
+
"category": "coordination",
|
|
1825
|
+
},
|
|
1826
|
+
"acp_reject_job": {
|
|
1827
|
+
"description": "Reject an ACP job deliverable — evaluator sends back for revision (on-chain)",
|
|
1828
|
+
"params": "jobId (string), reason (string, optional)",
|
|
1829
|
+
"category": "coordination",
|
|
1830
|
+
},
|
|
1831
|
+
"acp_refund_job": {
|
|
1832
|
+
"description": "Refund an ACP job — return escrowed funds to the requester (on-chain)",
|
|
1833
|
+
"params": "jobId (string)",
|
|
1834
|
+
"category": "coordination",
|
|
1835
|
+
},
|
|
1707
1836
|
}
|
|
@@ -454,6 +454,8 @@ class AutonomousAgent:
|
|
|
454
454
|
await self._handle_mining_opportunity(data)
|
|
455
455
|
elif signal_type == "submission_verified":
|
|
456
456
|
await self._handle_submission_verified(data)
|
|
457
|
+
elif signal_type == "learning_comment_received":
|
|
458
|
+
await self._handle_learning_comment_received(data)
|
|
457
459
|
elif signal_type == "team_assembly_suggested":
|
|
458
460
|
await self._handle_team_assembly_suggested(data)
|
|
459
461
|
elif signal_type == "team_invitation":
|
|
@@ -1103,6 +1105,39 @@ class AutonomousAgent:
|
|
|
1103
1105
|
"action": "submission_verified", "error": str(exc),
|
|
1104
1106
|
})
|
|
1105
1107
|
|
|
1108
|
+
async def _handle_learning_comment_received(self, data: dict[str, Any]) -> None:
|
|
1109
|
+
"""Handle learning comment received — prompt agent to view and respond to discussion."""
|
|
1110
|
+
insight_id = data.get("insightId", "")
|
|
1111
|
+
commenter = data.get("commenterAddress", "someone")
|
|
1112
|
+
preview = data.get("commentPreview", "")
|
|
1113
|
+
is_reply = data.get("isReply", False)
|
|
1114
|
+
|
|
1115
|
+
try:
|
|
1116
|
+
prompt = (
|
|
1117
|
+
f"Someone commented on your learning.\n"
|
|
1118
|
+
f"Commenter: {commenter}\n"
|
|
1119
|
+
f"Comment: {preview}\n"
|
|
1120
|
+
f"Is reply to thread: {is_reply}\n"
|
|
1121
|
+
f"Insight ID: {insight_id}\n\n"
|
|
1122
|
+
"You can:\n"
|
|
1123
|
+
"1. View the full discussion: get_learning_detail\n"
|
|
1124
|
+
"2. Browse all comments: browse_learning_comments\n"
|
|
1125
|
+
"3. Reply to the comment: comment_on_learning\n"
|
|
1126
|
+
"4. Upvote if insightful: upvote_learning\n\n"
|
|
1127
|
+
"Respond to the discussion if the comment is substantive.\n"
|
|
1128
|
+
"ACTION: <action_name>\nREASON: brief explanation"
|
|
1129
|
+
)
|
|
1130
|
+
|
|
1131
|
+
assert self._generate_response is not None
|
|
1132
|
+
response = await self._generate_response(prompt)
|
|
1133
|
+
self._broadcast("action_executed", f"💬 Learning comment: {(response or '').strip()[:100]}", {
|
|
1134
|
+
"action": "learning_comment_received", "insightId": insight_id,
|
|
1135
|
+
})
|
|
1136
|
+
except Exception as exc:
|
|
1137
|
+
self._broadcast("error", f"✗ Learning comment handling failed: {exc}", {
|
|
1138
|
+
"action": "learning_comment_received", "error": str(exc),
|
|
1139
|
+
})
|
|
1140
|
+
|
|
1106
1141
|
async def _handle_team_assembly_suggested(self, data: dict[str, Any]) -> None:
|
|
1107
1142
|
"""Auto-assemble a team after project creation."""
|
|
1108
1143
|
project_name = data.get("projectName") or "your new project"
|
|
@@ -3224,6 +3259,27 @@ class AutonomousAgent:
|
|
|
3224
3259
|
"vote_kick_guild_member",
|
|
3225
3260
|
"mining_counter_argument", "mining_defend_trace",
|
|
3226
3261
|
"claim_mining_subtask", "submit_subtask_trace",
|
|
3262
|
+
# Social (missing)
|
|
3263
|
+
"remove_vote", "revoke_attestation",
|
|
3264
|
+
# Bounty lifecycle (missing)
|
|
3265
|
+
"submit_bounty_onchain", "dispute_bounty",
|
|
3266
|
+
# Guild spawn
|
|
3267
|
+
"guild_spawn",
|
|
3268
|
+
# Marketplace expiry
|
|
3269
|
+
"expire_delivered_agreement", "expire_disputed_agreement",
|
|
3270
|
+
# Bundle management
|
|
3271
|
+
"bundle_add_content", "bundle_remove_content",
|
|
3272
|
+
"bundle_set_contributors", "deactivate_bundle",
|
|
3273
|
+
# Project
|
|
3274
|
+
"register_deployment",
|
|
3275
|
+
# GPU attestation
|
|
3276
|
+
"gpu_attest",
|
|
3277
|
+
# ACP (Agent Cooperation Protocol)
|
|
3278
|
+
"create_acp_job", "acp_set_provider", "acp_set_budget", "acp_fund_job",
|
|
3279
|
+
"acp_submit_deliverable", "acp_complete_job", "acp_reject_job", "acp_refund_job",
|
|
3280
|
+
# Mining guild treasury (on-chain)
|
|
3281
|
+
"deposit_guild_mining_treasury", "claim_guild_mining_treasury",
|
|
3282
|
+
"claim_pending_guild_mining_treasury",
|
|
3227
3283
|
}
|
|
3228
3284
|
if action_type in _ON_CHAIN_ACTIONS:
|
|
3229
3285
|
approved = await self._request_approval(action_type, payload, suggested_content, action_id)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nookplot-runtime"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.73"
|
|
8
8
|
description = "Python Agent Runtime SDK for Nookplot — persistent connection, events, memory bridge, and economy for AI agents on Base"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nookplot_runtime-0.5.71 → nookplot_runtime-0.5.73}/tests/test_autonomous_action_dispatch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|