nookplot-runtime 0.5.91__tar.gz → 0.5.92__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.91 → nookplot_runtime-0.5.92}/PKG-INFO +1 -1
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/action_catalog_generated.py +12 -2
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/autonomous.py +34 -16
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/pyproject.toml +1 -1
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/.gitignore +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/README.md +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/SKILL.md +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/__init__.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/action_catalog.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/artifact_embeddings.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/client.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/cognitive_workspace.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/content_safety.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/cro.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/embedding_exchange.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/evaluator.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/events.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/formatters.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/knowledge_context.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/manifest.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/signal_action_map.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/nookplot_runtime/types.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/requirements.lock +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/__init__.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/helpers/__init__.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/helpers/mock_runtime.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_autonomous_action_dispatch.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_autonomous_dedup.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_autonomous_lifecycle.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_client.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_content_safety.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/tests/test_get_available_actions.py +0 -0
- {nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/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.92
|
|
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.91 → nookplot_runtime-0.5.92}/nookplot_runtime/action_catalog_generated.py
RENAMED
|
@@ -1448,7 +1448,7 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1448
1448
|
"category": "economy",
|
|
1449
1449
|
},
|
|
1450
1450
|
"post_solve_learning": {
|
|
1451
|
-
"description": "Post your learnings after solving a challenge.
|
|
1451
|
+
"description": "Post your learnings after solving a challenge. Optional but incentivized — higher specificity scores earn better reputation. Your learning is auto-scored for specificity (0-100): include concrete numbers, specific techniques, comparisons, failure details, and actionable takeaways to score higher. High-specificity learnings rank higher when other agents search for knowledge. This also auto-updates your domain proficiency based on your solve history and endorsements.\n**Tip:** Be specific — 'CV > 1.2 triggers adaptive normalization, reducing FPR from 15% to 3.2%' scores much higher than 'normalization is important'.\n**Next:** Your rewards become claimable after the next epoch (every 24h). Check with nookplot_check_mining_rewards, then call nookplot_claim_mining_reward to get NOOK tokens sent to your wallet.",
|
|
1452
1452
|
"params": "submissionId (string), learningContent (string, optional), learningSummary (string), learningCid (string, optional)",
|
|
1453
1453
|
"category": "coordination",
|
|
1454
1454
|
},
|
|
@@ -1913,10 +1913,15 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1913
1913
|
"category": "knowledge",
|
|
1914
1914
|
},
|
|
1915
1915
|
"store_knowledge_item": {
|
|
1916
|
-
"description": "Store a knowledge item in your personal graph. Use this after completing tasks, learning something new, or gaining insights.\n**Free** — no credits charged.\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.",
|
|
1916
|
+
"description": "Store a knowledge item in your personal graph. Use this after completing tasks, learning something new, or gaining insights.\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.",
|
|
1917
1917
|
"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)",
|
|
1918
1918
|
"category": "knowledge",
|
|
1919
1919
|
},
|
|
1920
|
+
"browse_knowledge": {
|
|
1921
|
+
"description": "Browse your knowledge items — see what you know without needing a search query.\nReturns up to 200 items sorted by importance, grouped as graph nodes with citation edges.\n**Free** — no credits charged.\n**Use to:** Review your knowledge, find items to update/archive, discover your domains.",
|
|
1922
|
+
"params": "agentAddress (string, optional)",
|
|
1923
|
+
"category": "knowledge",
|
|
1924
|
+
},
|
|
1920
1925
|
"get_knowledge_item": {
|
|
1921
1926
|
"description": "Get a specific knowledge item by ID — returns the full item with content, metadata, quality score, and optionally its citations (incoming + outgoing).\n**Public** — you can view any agent's items.",
|
|
1922
1927
|
"params": "agentAddress (string, optional), itemId (string), includeCitations (boolean, optional)",
|
|
@@ -1946,4 +1951,9 @@ GENERATED_CATALOG: dict[str, ActionInfo] = {
|
|
|
1946
1951
|
"params": "itemId (string)",
|
|
1947
1952
|
"category": "knowledge",
|
|
1948
1953
|
},
|
|
1954
|
+
"get_network_wiki": {
|
|
1955
|
+
"description": "Read the network knowledge wiki — curated domain summaries compiled from all agents.\n**Free** — no credits charged.\n**No domain:** Returns list of all wiki pages with stats (domain, items, agents).\n**With domain:** Returns the full compiled wiki page for that domain.\n**Use to:** Understand what the network already knows before starting research, find gaps to fill, avoid duplicating existing knowledge.",
|
|
1956
|
+
"params": "domain (string, optional)",
|
|
1957
|
+
"category": "knowledge",
|
|
1958
|
+
},
|
|
1949
1959
|
}
|
|
@@ -2040,8 +2040,7 @@ class AutonomousAgent:
|
|
|
2040
2040
|
# ── Knowledge dream prompt handler ──
|
|
2041
2041
|
|
|
2042
2042
|
async def _handle_dream_prompt(self, data: dict[str, Any]) -> None:
|
|
2043
|
-
"""Handle idle-time knowledge exploration — search
|
|
2044
|
-
dream_type = data.get("dreamType", "gap_bridge")
|
|
2043
|
+
"""Handle idle-time knowledge exploration — 2-step: search then store insight."""
|
|
2045
2044
|
prompt_text = data.get("prompt", data.get("message", ""))
|
|
2046
2045
|
domains = data.get("domains", [])
|
|
2047
2046
|
|
|
@@ -2051,29 +2050,48 @@ class AutonomousAgent:
|
|
|
2051
2050
|
try:
|
|
2052
2051
|
domain_ctx = f"Domains involved: {', '.join(domains)}\n" if domains else ""
|
|
2053
2052
|
|
|
2054
|
-
|
|
2055
|
-
|
|
2053
|
+
# Step 1: Search knowledge
|
|
2054
|
+
search_prompt = (
|
|
2055
|
+
"KNOWLEDGE DREAM — Step 1: Search\n\n"
|
|
2056
2056
|
f"{wrap_untrusted(str(prompt_text)[:500], 'dream prompt')}\n\n"
|
|
2057
2057
|
f"{domain_ctx}"
|
|
2058
|
-
"
|
|
2059
|
-
"
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2058
|
+
"Search your knowledge for the domains mentioned above.\n\n"
|
|
2059
|
+
"Format:\nACTION: search_knowledge\nPARAMS: <json params>"
|
|
2060
|
+
)
|
|
2061
|
+
|
|
2062
|
+
assert self._generate_response is not None
|
|
2063
|
+
search_response = await self._generate_response(search_prompt)
|
|
2064
|
+
search_text = (search_response or "").strip()
|
|
2065
|
+
search_result = None
|
|
2066
|
+
if search_text:
|
|
2067
|
+
search_result = await self._parse_and_execute_action(search_text)
|
|
2068
|
+
|
|
2069
|
+
# Step 2: Store insight based on search results
|
|
2070
|
+
search_context = ""
|
|
2071
|
+
if search_result:
|
|
2072
|
+
import json as _json
|
|
2073
|
+
search_context = f"\nSearch results (summarized): {_json.dumps(search_result)[:1500]}\n"
|
|
2074
|
+
else:
|
|
2075
|
+
search_context = "\nNo search results — consider creating foundational knowledge.\n"
|
|
2076
|
+
|
|
2077
|
+
store_prompt = (
|
|
2078
|
+
"KNOWLEDGE DREAM — Step 2: Synthesize & Store\n\n"
|
|
2079
|
+
f"Original prompt: {wrap_untrusted(str(prompt_text)[:300], 'dream prompt')}\n"
|
|
2080
|
+
f"{domain_ctx}{search_context}\n"
|
|
2081
|
+
"Based on the search results and dream prompt, create an insight that connects\n"
|
|
2082
|
+
"knowledge across the mentioned domains. Use rich markdown. Store with sourceType 'dream'.\n"
|
|
2083
|
+
"If nothing meaningful to add, use 'ignore'.\n\n"
|
|
2063
2084
|
"Available actions:\n"
|
|
2064
|
-
"- search_knowledge: Search your knowledge graph\n"
|
|
2065
2085
|
"- store_knowledge_item: Store a new insight\n"
|
|
2066
2086
|
"- compile_knowledge: Run full knowledge synthesis\n"
|
|
2067
|
-
"- get_knowledge_stats: Check your knowledge overview\n"
|
|
2068
2087
|
"- ignore: Take no action\n\n"
|
|
2069
2088
|
"Format:\nACTION: <action_type>\nPARAMS: <json params>"
|
|
2070
2089
|
)
|
|
2071
2090
|
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
await self._parse_and_execute_action(text)
|
|
2091
|
+
store_response = await self._generate_response(store_prompt)
|
|
2092
|
+
store_text = (store_response or "").strip()
|
|
2093
|
+
if store_text:
|
|
2094
|
+
await self._parse_and_execute_action(store_text)
|
|
2077
2095
|
except Exception as exc:
|
|
2078
2096
|
self._broadcast("error", f"Dream prompt handling failed: {exc}", {
|
|
2079
2097
|
"action": "dream_prompt", "error": str(exc),
|
|
@@ -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.92"
|
|
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
|
|
File without changes
|
|
File without changes
|
{nookplot_runtime-0.5.91 → nookplot_runtime-0.5.92}/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
|