mirror of
https://github.com/hanzoai/cdn.git
synced 2026-10-30 15:06:53 +00:00
The Market read plane is files and nothing else. This makes that actually true
and actually deployable.
Catalog: was 10 mock "zoo-eco-agent" placeholders + 5 mock tools, which every
app would have shown to every user. Now generated from the curated flatfile
catalog (hanzoai/store data/{agents,tools}) -> 23 agents + 179 tools, each with
its own detail document. Drops purchases.json: per-user state has no business
on a public CDN. Strips upstream icon URLs, which are expired presigned R2 links
that carry an AWS credential + signature in the query string.
Versioning: index.json gains `schema` (breaking-shape gate, so a client that
does not recognise it keeps its bundle) and a `version` that is a content digest
over every served document. It changes iff what we serve changes, which is what
makes a deploy checkable rather than hopeful.
One writer: gen-market.py -> market.py with `gen` and `check`. It emits the CDN
documents AND each app's offline bundle, so the two cannot disagree about the
schema; `check` re-derives the digest and validates counts, ids, dangling
featured references and per-tool details, with no network and no other checkout.
Deploy: upload, then purge the Cloudflare edge for exactly the URLs written,
then verify the live manifest matches the repo and fail if it does not. Also
resolves wrangler once instead of re-resolving it per object.
CI: hanzo.yml + a 7-line cicd.yml importing hanzoai/ci. Static assets, so no
images:/deploy: — test: is the gate.
Co-authored-by: Hanzo Dev <[email protected]>
46 lines
2.2 KiB
JSON
46 lines
2.2 KiB
JSON
{
|
|
"author": "hanzo.ai",
|
|
"category": {
|
|
"description": "",
|
|
"examples": "",
|
|
"id": "productivity",
|
|
"name": "Productivity"
|
|
},
|
|
"changelog": "",
|
|
"created_at": "2025-04-30T15:48:04.131Z",
|
|
"description": "This tool manages text-based notes across multiple .txt files using natural language prompts.\nIt leverages an LLM to interpret user requests, identify which file to use, and perform actions : read, add, update, delete, move note to top or bottom.\nIt uses confirmation messages before modifying notes.\n\nHow to Use:\n\n1. Set up multiple .txt files by topic with short clear distinct names, and add their path to file paths in configuration.\n\n2. In configuration, also pick which note file to use as default.\n\n3. Type a request in the prompt input. Make it clear which note file to use, and which action to perform.\n\n4. Confirm actions via GUI dialogs when required.\n\nExample Prompts:\n\n- \"Personal notes, add birthday party is at 6 pm on Wednesday.\"\n\n- \"What's the most urgent in my work notes?\"\n\n- \"Update family notes, bike is better gift idea for brother\"\n\n- \"Delete word notes, we're good with all clients calls \" \u2192 Removes specified note.\n\n- \"Move exercise plan to top of personal notes\" \u2192 Reorganizes note to top.\n\n- \"Open family notes\" \u2192 Opens file in default .txt editor.\n\nAdditionally, the tool can also use the content from an image uploaded in the chat to interact with the notes.\n\nTo note, within each file, this tool considers that each distinct paragrah is a different note (uses \"\\n\\n\" as separator).",
|
|
"downloads": 14,
|
|
"icon_url": "",
|
|
"id": "note-manager",
|
|
"install_command": "",
|
|
"license": "MIT",
|
|
"mcp_config": {
|
|
"args": [
|
|
"local:::__gilles_test2_sep_shinkai:::note_manager"
|
|
],
|
|
"command": "any",
|
|
"env": {}
|
|
},
|
|
"name": "Note Manager",
|
|
"operating_system": [
|
|
"linux",
|
|
"macos",
|
|
"windows"
|
|
],
|
|
"path": "/tools/note-manager",
|
|
"price": 0,
|
|
"readme": "",
|
|
"repository": "github.com/hanzoai/tools",
|
|
"router_key": "@hanzo/note-manager",
|
|
"runner": "any",
|
|
"screenshots": [],
|
|
"tags": [
|
|
"note manager",
|
|
"notes",
|
|
"note"
|
|
],
|
|
"type": "Tool",
|
|
"updated_at": "2025-04-30T15:48:04.131Z",
|
|
"version": "1.0.0"
|
|
}
|