Files
bot/extensions/diffs/hanzo-bot.plugin.json
zeekay acaeda400a Eradicate OpenClaw — resolve merge conflicts and finish the rebrand
Three coordinated things:

1. Resolve the committed upstream/main merge conflicts. 94 files were
   sitting with raw <<<<<<< HEAD ... >>>>>>> upstream/main blocks. Every
   conflict had HanzoBot/Bot on HEAD and OpenClaw on upstream. Resolved
   by keeping HEAD everywhere — 540 conflict blocks.

2. Rewrite remaining OpenClaw text refs.
     OPENCLAW   → HANZO_BOT
     OpenClaw   → HanzoBot          (PascalCase type identifiers)
     openclaw   → bot               (codebase convention — botToken,
                                    botUsername etc.; avoids invalid
                                    hyphenated JS identifiers)
     openclaw[_]/openclaw[A-Z] → bot[_]/bot[A-Z]   (compound)
     ai.openclaw.x → ai.hanzo.bot.x  (JVM package path)

3. Delete or rename openclaw-named file paths (116 of them). Dead
   duplicates with a Bot-named canonical from the partial migration:
   deleted. Otherwise renamed.
     ai/openclaw/**           → deleted (ai/hanzo/bot/** canonical)
     Sources/OpenClaw*/       → deleted (Sources/Bot* canonical)
     Tests/OpenClawIPCTests/  → deleted (Tests/BotIPCTests canonical)
     OpenClawKit/             → deleted (BotKit canonical)
     openclaw-tools.*.ts      → deleted (bot-tools.*.ts canonical)
     openclaw-root.ts etc.    → deleted (bot-root.ts canonical)
     types.openclaw.ts        → deleted (types.bot.ts canonical)
     extensions/*/openclaw.plugin.json → renamed hanzo-bot.plugin.json
     docs/start/openclaw.md   → renamed hanzo-bot.md (+ zh-CN)
     docs/assets/openclaw-*.png, whatsapp-openclaw*.jpg → deleted
     scripts/.../openclaw-*   → deleted (bot/hanzo-bot parallels)
     openclaw.mjs             → deleted (hanzo-bot.mjs is package.bin)

Then patched 65 broken JS/TS import strings where hanzo-bot had ended
up inside an import path ('./types.hanzo-bot.js' → './types.bot.js'
etc., since the on-disk filename uses the brand-neutral bot- prefix).

Pre-existing lint debt cleaned up to get oxlint --type-aware to 0/0:
removed the dead i18n test that referenced a path no longer existing;
defined the missing DIDConfig and WalletConfig types in types.base.ts
(they were imported but never declared); dropped unused imports;
collapsed redundant type assertion and a tautological meta.bot lookup
that the openclaw→bot rename made redundant.

The a2ui.bundle.js generated artifact is kept at its pre-rebrand
contents — it gets regenerated by 'pnpm canvas:a2ui:bundle' from
sources I cannot rebuild in this commit; the source side is clean.

Verified: 0 occurrences of openclaw (case-insensitive) in tree source
content, 0 file or directory paths with openclaw in the name; oxlint
--type-aware src test reports 0/0.
2026-05-11 17:56:29 -07:00

183 lines
5.0 KiB
JSON

{
"id": "diffs",
"name": "Diffs",
"description": "Read-only diff viewer and file renderer for agents.",
"skills": ["./skills"],
"uiHints": {
"defaults.fontFamily": {
"label": "Default Font",
"help": "Preferred font family name for diff content and headers."
},
"defaults.fontSize": {
"label": "Default Font Size",
"help": "Base diff font size in pixels."
},
"defaults.lineSpacing": {
"label": "Default Line Spacing",
"help": "Line-height multiplier applied to diff rows."
},
"defaults.layout": {
"label": "Default Layout",
"help": "Initial diff layout shown in the viewer."
},
"defaults.showLineNumbers": {
"label": "Show Line Numbers",
"help": "Show line numbers by default."
},
"defaults.diffIndicators": {
"label": "Diff Indicator Style",
"help": "Choose added/removed indicators style."
},
"defaults.wordWrap": {
"label": "Default Word Wrap",
"help": "Wrap long lines by default."
},
"defaults.background": {
"label": "Default Background Highlights",
"help": "Show added/removed background highlights by default."
},
"defaults.theme": {
"label": "Default Theme",
"help": "Initial viewer theme."
},
"defaults.fileFormat": {
"label": "Default File Format",
"help": "Rendered file format for file mode (PNG or PDF)."
},
"defaults.fileQuality": {
"label": "Default File Quality",
"help": "Quality preset for PNG/PDF rendering."
},
"defaults.fileScale": {
"label": "Default File Scale",
"help": "Device scale factor used while rendering file artifacts."
},
"defaults.fileMaxWidth": {
"label": "Default File Max Width",
"help": "Maximum file render width in CSS pixels."
},
"defaults.mode": {
"label": "Default Output Mode",
"help": "Tool default when mode is omitted. Use view for canvas/gateway viewer, file for PNG/PDF, or both."
},
"security.allowRemoteViewer": {
"label": "Allow Remote Viewer",
"help": "Allow non-loopback access to diff viewer URLs when the token path is known."
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"defaults": {
"type": "object",
"additionalProperties": false,
"properties": {
"fontFamily": {
"type": "string",
"default": "Fira Code"
},
"fontSize": {
"type": "number",
"minimum": 10,
"maximum": 24,
"default": 15
},
"lineSpacing": {
"type": "number",
"minimum": 1,
"maximum": 3,
"default": 1.6
},
"layout": {
"type": "string",
"enum": ["unified", "split"],
"default": "unified"
},
"showLineNumbers": {
"type": "boolean",
"default": true
},
"diffIndicators": {
"type": "string",
"enum": ["bars", "classic", "none"],
"default": "bars"
},
"wordWrap": {
"type": "boolean",
"default": true
},
"background": {
"type": "boolean",
"default": true
},
"theme": {
"type": "string",
"enum": ["light", "dark"],
"default": "dark"
},
"fileFormat": {
"type": "string",
"enum": ["png", "pdf"],
"default": "png"
},
"format": {
"type": "string",
"enum": ["png", "pdf"]
},
"fileQuality": {
"type": "string",
"enum": ["standard", "hq", "print"],
"default": "standard"
},
"fileScale": {
"type": "number",
"minimum": 1,
"maximum": 4,
"default": 2
},
"fileMaxWidth": {
"type": "number",
"minimum": 640,
"maximum": 2400,
"default": 960
},
"imageFormat": {
"type": "string",
"enum": ["png", "pdf"]
},
"imageQuality": {
"type": "string",
"enum": ["standard", "hq", "print"]
},
"imageScale": {
"type": "number",
"minimum": 1,
"maximum": 4
},
"imageMaxWidth": {
"type": "number",
"minimum": 640,
"maximum": 2400
},
"mode": {
"type": "string",
"enum": ["view", "image", "file", "both"],
"default": "both"
}
}
},
"security": {
"type": "object",
"additionalProperties": false,
"properties": {
"allowRemoteViewer": {
"type": "boolean",
"default": false
}
}
}
}
}
}