Skip to main content

How to use dsh-composer-tools

Composer input toolkit: arrow-key session history (first/last-line gated, IME and command-menu safe) and related input conveniences.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

Composer input toolkit: arrow-key session history (first/last-line gated, IME and command-menu safe) and related input conveniences.

— source: plugins.ai_summary

Install & verify

dsh plugin --profile web add dsh-composer-tools

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • skin.json 缺 id / name / author / license 任一拒绝(author 与 license 必填,尊重 BSD-3 保留要求);声明 bodyAttr 时必须匹配 /^data-[a-z0-9-]{1,64}$/。
  • client.js 必须 window.__ModuleLoader__.load({ id, factory })、factory 导出 apply(ctx),且 apply 只消费 ctx.effect / ctx.get。
  • 高危能力拒绝:含 eval(、new Function(、import(、非内联 require(、<script src=、fetch(、XMLHttpRequest(、WebSocket(、localStorage/sessionStorage 直读写、document.cookie、chrome.runtime 任一的包拒绝导入。
  • a11y.css 只允许 data: 与相对路径的 url(),http / // / file: / ftp / ws 一律拒绝(防止皮肤包向外部发起请求)。
  • 单包(skin.json + client.js)UTF-8 安全的 base64 后 ≤ 256KB;自定义皮肤总数 ≤ 8 个。

— source: plugin_wiki.readme_en (fallback readme_raw)

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule