nookplot-runtime 0.5.138__tar.gz → 0.5.139__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.
Files changed (78) hide show
  1. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/PKG-INFO +1 -1
  2. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/signal_action_map.py +15 -15
  3. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/pyproject.toml +1 -1
  4. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_get_available_actions.py +7 -6
  5. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/.gitignore +0 -0
  6. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/README.md +0 -0
  7. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/SKILL.md +0 -0
  8. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/__init__.py +0 -0
  9. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/action_catalog.py +0 -0
  10. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/action_catalog_generated.py +0 -0
  11. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/api_sub_categories.py +0 -0
  12. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/artifact_embeddings.py +0 -0
  13. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/autonomous.py +0 -0
  14. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/client.py +0 -0
  15. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/cognitive_workspace.py +0 -0
  16. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/content_safety.py +0 -0
  17. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/conversation/__init__.py +0 -0
  18. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/conversation/compaction_memory.py +0 -0
  19. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/conversation/conversation_log_store.py +0 -0
  20. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/conversation/conversation_memory.py +0 -0
  21. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/conversation/model_limits.py +0 -0
  22. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/cro.py +0 -0
  23. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/default_guardrails.py +0 -0
  24. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/doom_loop.py +0 -0
  25. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/embedding_exchange.py +0 -0
  26. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/evaluator.py +0 -0
  27. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/events.py +0 -0
  28. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/formatters.py +0 -0
  29. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/goal_loop.py +0 -0
  30. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/guardrails.py +0 -0
  31. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/hooks.py +0 -0
  32. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/knowledge_context.py +0 -0
  33. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/manifest.py +0 -0
  34. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/manifest_activation_hook.py +0 -0
  35. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/mining.py +0 -0
  36. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/profiles.py +0 -0
  37. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/query_segmentation.py +0 -0
  38. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/sandbox.py +0 -0
  39. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/surplus_inference.py +0 -0
  40. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/types.py +0 -0
  41. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/usdc_budget.py +0 -0
  42. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/wake_up_stack.py +0 -0
  43. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/nookplot_runtime/x402.py +0 -0
  44. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/requirements.lock +0 -0
  45. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/__init__.py +0 -0
  46. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/conversation/__init__.py +0 -0
  47. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/conversation/test_compaction_memory.py +0 -0
  48. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/helpers/__init__.py +0 -0
  49. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/helpers/mock_runtime.py +0 -0
  50. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_api_sub_categories.py +0 -0
  51. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_action_dispatch.py +0 -0
  52. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_dedup.py +0 -0
  53. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_doom_loop.py +0 -0
  54. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_guardrails.py +0 -0
  55. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_hooks.py +0 -0
  56. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_lifecycle.py +0 -0
  57. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_autonomous_loaded_skill_refs.py +0 -0
  58. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_bounty_create.py +0 -0
  59. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_client.py +0 -0
  60. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_content_safety.py +0 -0
  61. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_doom_loop.py +0 -0
  62. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_economy_frontier_inference.py +0 -0
  63. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_economy_surplus_branch.py +0 -0
  64. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_external_mcp_tools.py +0 -0
  65. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_goal_loop.py +0 -0
  66. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_guardrails.py +0 -0
  67. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_hooks.py +0 -0
  68. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_latent_space.py +0 -0
  69. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_manifest_activation_hook.py +0 -0
  70. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_pack_gating.py +0 -0
  71. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_profiles.py +0 -0
  72. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_query_segmentation.py +0 -0
  73. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_sandbox.py +0 -0
  74. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_surplus_inference.py +0 -0
  75. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_usdc_budget.py +0 -0
  76. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_wake_up_stack.py +0 -0
  77. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/tests/test_x402.py +0 -0
  78. {nookplot_runtime-0.5.138 → nookplot_runtime-0.5.139}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nookplot-runtime
3
- Version: 0.5.138
3
+ Version: 0.5.139
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
@@ -55,9 +55,9 @@ CORE_ACTIONS: list[str] = [
55
55
  # Meta
56
56
  "ignore", "browse_tools",
57
57
  # Communication
58
- "reply", "send_dm", "send_message", "send_channel_message",
58
+ "reply", "send_message", "send_channel_message",
59
59
  # Social
60
- "follow", "vote", "comment_on_content",
60
+ "follow_agent", "vote", "comment_on_content",
61
61
  # Discovery
62
62
  "find_agents", "discover", "search_knowledge", "read_feed", "leaderboard",
63
63
  # Swarm participation (available_subtasks is useless without claim/submit)
@@ -118,25 +118,25 @@ SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {
118
118
  "merge_request_created": ["get_commit_leaves", "get_commit_lineage"],
119
119
 
120
120
  # ── Marketplace ──
121
- "service": ["update_service", "create_listing", "create_agreement"],
122
- "time_to_post": ["create_post", "create_bounty", "create_open_bounty", "create_listing", "publish_skill"],
121
+ "service": ["update_service_listing", "create_service_listing", "create_agreement"],
122
+ "time_to_post": ["post_content", "create_bounty", "create_open_bounty", "create_service_listing", "publish_skill"],
123
123
  "agreement_created": ["deliver_work", "cancel_agreement", "send_agreement_message"],
124
- "work_delivered": ["settle_agreement", "dispute_agreement", "send_agreement_message", "expire_delivered"],
124
+ "work_delivered": ["settle_agreement", "dispute_service", "send_agreement_message", "expire_delivered_agreement"],
125
125
  "agreement_settled": ["submit_review"],
126
- "agreement_disputed": ["send_agreement_message", "expire_dispute"],
126
+ "agreement_disputed": ["send_agreement_message", "expire_disputed_agreement"],
127
127
  "agreement_cancelled": [],
128
128
  "revision_requested": ["deliver_work", "send_agreement_message"],
129
129
  "review_received": [],
130
130
 
131
131
  # ── Bounties (project-scoped) ──
132
- "bounty_posted_to_project": ["claim"],
132
+ "bounty_posted_to_project": ["claim_bounty"],
133
133
  "bounty_access_requested": ["grant", "deny"],
134
- "bounty_access_granted": ["claim"],
134
+ "bounty_access_granted": ["claim_bounty"],
135
135
  "bounty_access_denied": [],
136
136
  "project_bounty_claimed": [],
137
137
  "project_bounty_completed": [],
138
138
  # Workers seeing a bounty opportunity: apply_bounty for V10 Exclusive; submit_open_bounty for V11 Open.
139
- "bounty_opportunity": ["apply_bounty", "submit_open_bounty", "send_dm"],
139
+ "bounty_opportunity": ["apply_bounty", "submit_open_bounty", "send_message"],
140
140
 
141
141
  # ── Bounties (application/submission lifecycle) ──
142
142
  "bounty_application_submitted": ["approve_bounty_application", "approve_bounty_claimer", "reject_bounty_application", "get_verdict_summary"],
@@ -178,11 +178,11 @@ SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {
178
178
  "decline_open_submission", # off-chain triage: reject an invalid/duplicate/out-of-scope report without closing the bounty or paying
179
179
  "top_up_open_bounty",
180
180
  "close_open_bounty",
181
- "send_dm",
181
+ "send_message",
182
182
  ],
183
183
  # Worker side, happy path: payment arrived. Soft action: thank the creator
184
184
  # or follow up about future work.
185
- "bounty_open_approved": ["send_dm"],
185
+ "bounty_open_approved": ["send_message"],
186
186
  # Worker side, soft-failure: ERC-20 transfer didn't go through, amount is
187
187
  # sitting in pendingWorkerPayouts. Distinguished from bounty_open_approved
188
188
  # so the loop can prioritise sweep_worker_payout urgently rather than treat
@@ -262,13 +262,13 @@ SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {
262
262
  ],
263
263
 
264
264
  # ── Intents ──
265
- "intent_matched": ["submit_proposal", "browse_intents"],
265
+ "intent_matched": ["submit_proposal", "list_intents"],
266
266
  "proposal_received": ["accept_proposal", "reject_proposal"],
267
267
  "intent_accepted": ["complete_intent"],
268
268
 
269
269
  # ── Specialization ──
270
270
  # search_skills + load_skill moved to CORE_ACTIONS (universal capability).
271
- "specialization_path": ["record_gap", "update_proficiency", "install_skill"],
271
+ "specialization_path": ["record_gap", "update_proficiency"],
272
272
 
273
273
  # ── Teaching ──
274
274
  "teaching_proposed": ["accept_teaching", "reject_teaching"],
@@ -287,7 +287,7 @@ SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {
287
287
 
288
288
  # ── Latent Space Coordination ──
289
289
  "workspace_updated": ["workspace_add_cognitive_item", "workspace_transition_item", "workspace_link_items"],
290
- "manifest_matched": ["create_embedding_packet", "propose_collab", "send_dm"],
290
+ "manifest_matched": ["create_embedding_packet", "propose_collab", "send_message"],
291
291
  "embedding_received": ["discover_bundles_semantic", "suggest_citations"],
292
292
 
293
293
  # ── Clarification primitive ──
@@ -301,7 +301,7 @@ SIGNAL_CONTEXT_ACTIONS: dict[str, list[str]] = {
301
301
  "webhook_received": ["egress_request", "execute_tool"],
302
302
 
303
303
  # ── Onboarding ──
304
- "welcome_guide": ["create_post"],
304
+ "welcome_guide": ["post_content"],
305
305
  "onboarding_suggestion": [],
306
306
  }
307
307
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "nookplot-runtime"
7
- version = "0.5.138"
7
+ version = "0.5.139"
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"
@@ -58,9 +58,9 @@ class TestGetAvailableActions:
58
58
  def test_work_delivered(self):
59
59
  actions = get_available_actions("work_delivered")
60
60
  assert "settle_agreement" in actions
61
- assert "dispute_agreement" in actions
61
+ assert "dispute_service" in actions
62
62
  assert "send_agreement_message" in actions
63
- assert "expire_delivered" in actions
63
+ assert "expire_delivered_agreement" in actions
64
64
 
65
65
  def test_agreement_settled(self):
66
66
  assert "submit_review" in get_available_actions("agreement_settled")
@@ -108,9 +108,9 @@ class TestGetAvailableActions:
108
108
 
109
109
  def test_time_to_post(self):
110
110
  actions = get_available_actions("time_to_post")
111
- assert "create_post" in actions
111
+ assert "post_content" in actions
112
112
  assert "create_bounty" in actions
113
- assert "create_listing" in actions
113
+ assert "create_service_listing" in actions
114
114
  assert "publish_skill" in actions
115
115
  # publish_insight is in CORE, should also be present
116
116
  assert "publish_insight" in actions
@@ -118,7 +118,7 @@ class TestGetAvailableActions:
118
118
  def test_intent_matched(self):
119
119
  actions = get_available_actions("intent_matched")
120
120
  assert "submit_proposal" in actions
121
- assert "browse_intents" in actions
121
+ assert "list_intents" in actions
122
122
 
123
123
  def test_teaching_signals(self):
124
124
  assert "accept_teaching" in get_available_actions("teaching_proposed")
@@ -133,7 +133,8 @@ class TestGetAvailableActions:
133
133
  assert "record_gap" in actions
134
134
  assert "update_proficiency" in actions
135
135
  assert "search_skills" in actions
136
- assert "install_skill" in actions
136
+ # install_skill removed from the autonomous surface (dead-dispatched; manual CLI op only)
137
+ assert "install_skill" not in actions
137
138
 
138
139
  def test_credit_agreement_signals(self):
139
140
  assert "accept_credit_agreement" in get_available_actions("credit_agreement_created")