Files
cdn/hanzo/market/tools/csv-column-categorizer.json
zeekayandHanzo Dev edabf3842c feat(market): real catalog, verifiable versioning, purge-on-deploy
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]>
2026-07-27 20:40:33 -07:00

48 lines
3.2 KiB
JSON

{
"author": "hanzo.ai",
"category": {
"description": "",
"examples": "",
"id": "utilities",
"name": "Utilities"
},
"changelog": "",
"created_at": "2025-04-30T15:50:37.718Z",
"description": "This tool reads an input CSV file, categorizes values in a specified column into predefined categories using a LLM, and writes the results to a new CSV file with an additional column for the categories. It includes error handling, retries, skips empty values, and provides a summary of the processing results.\n\nThe output can either override the input file, or be saved to a new CSV file with a timestamp (e.g., \"input_processed_20250421_143022.csv\") and placed in the same folder as the input CSV.\n\nHow to Use :\n\n0. In configuration, set default CSV parameters : delimiter (e.g., ';'), encoding (e.g., 'utf-8'), and quotechar (e.g., '\"') ; and set the max number of retries for the LLM categorization (e.g., 2), and the default output behavior ('new_file' or 'override').\n\n1. Prepare an Input CSV File : Create or use an existing CSV file containing the data you want to categorize.\n\n2. Define Categories : Provide a comma-separated string of categories (e.g., \"Electronics, Clothing, Home Goods, Toys, Other\").\n\n3. Specify the Column to Categorize : Indicate the column name in the CSV that contains the data to be categorized (e.g., \"Description\").\n\n4. Choose a New Column Name : Set the name for the new column that will store the categorization results (e.g., \"Category\").\n\n5. Provide an Optional Data Description : Add a brief description of the data to assist the LLM in understanding the context (e.g., \"Product descriptions from an e-commerce store.\").\n\n6. Set Custom CSV Parameters (Optional), make sure they match the parameters of the input CSV file : Customize the delimiter (e.g., \";\"), encoding (e.g., \"utf-8\"), or quote character (e.g., '\"') if needed; otherwise, defaults from configuration will be applied.\n\n7. Choose Output Behavior (Optional): Select 'new_file' for a new output file or 'override' to replace the input file; defaults to configuration if not set.\n\n8. Run the Tool : Execute the tool with the provided inputs.\n\n9. Check the Summary : After processing, review the summary message for statistics (e.g., total rows, categorized rows, skipped rows, errors) and the path to the output CSV file.\n\n10. Check the output CSV file with the categorization.\n\nHigh LLM usage warning : this tool creates a LLM call for each cell to process.",
"downloads": 4,
"icon_url": "",
"id": "csv-column-categorizer",
"install_command": "",
"license": "MIT",
"mcp_config": {
"args": [
"local:::__gilles_test2_sep_shinkai:::csv_column_categorizer"
],
"command": "any",
"env": {}
},
"name": "CSV Column Categorizer",
"operating_system": [
"linux",
"macos",
"windows"
],
"path": "/tools/csv-column-categorizer",
"price": 0,
"readme": "",
"repository": "github.com/hanzoai/tools",
"router_key": "@hanzo/csv-column-categorizer",
"runner": "any",
"screenshots": [],
"tags": [
"csv",
"categorization",
"column",
"categorizer",
"data"
],
"type": "Tool",
"updated_at": "2025-04-30T15:50:37.718Z",
"version": "1.0.0"
}