ai4paper/ipaper--packages-dsh-ipaper ↗★ 0
@isomoes/dsh-ipaper
Academic paper-writing Web product bundle for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ai4paper/ipaper#e65da2a49a736e9bd18a2bbb05fd745c7937ddb4&path:packages/dsh-ipaper说明文档
阅读完整 README ↗@isomoes/dsh-ipaper
IPaper is the DeepSeek Harness (DSH) product bundle for planning, researching, drafting, and revising academic papers. It owns the academic-writing preset and IPaper branding while reusing the exact external shared browser dependency @isomoes/dsh-web-ui@0.5.1; no shared Web UI source is copied into this package.
Install and run
Both packages must be direct dependencies of the same DSH profile because browser modules resolve from that profile root:
DSH_HOME="$HOME/.ipaper" dsh plugin --profile ipaper add @isomoes/dsh-ipaper @isomoes/dsh-web-ui@0.5.1 --registry=https://registry.npmjs.org
DSH_HOME="$HOME/.ipaper" dsh --profile ipaper
Only @isomoes/dsh-ipaper belongs in dsh.profile.bundles. @isomoes/dsh-web-ui is a direct plain dependency, not a second bundle. Use --host, --port, or repeated --trusted-host options when the browser must be reachable beyond the default 127.0.0.1:3090.
Update or remove
Keep the Web UI version exact when updating the product:
DSH_HOME="$HOME/.ipaper" dsh plugin --profile ipaper add @isomoes/dsh-ipaper@latest @isomoes/dsh-web-ui@0.5.1 --registry=https://registry.npmjs.org
DSH_HOME="$HOME/.ipaper" dsh plugin --profile ipaper remove @isomoes/dsh-ipaper @isomoes/dsh-web-ui
After an update, restart DSH and refresh the existing browser page.
Built-in preset
ipaper is the product's only visible agent preset. It is installed as a read-only system-trust preset and is the default for new sessions; general and code-agent presets are intentionally excluded. Its persona preserves author intent, separates sourced claims from inference, identifies uncertainty and verification gaps, and prohibits fabricated citations, quotations, bibliographic metadata, data, and results.
Architecture
The Cordis patch composes the shared DSH host/session/transport services, a complete shared Web client roster, the IPaper brand client, and the academic preset. Host registry identities remain product-neutral; product wording is confined to user-facing CLI text, prompts, metadata, branding, and preset content.
The package build:
- compiles product host adapters;
- bundles only
ui-brand-ipaperinto shared sidebar/conversation brand slots; - resolves
@isomoes/dsh-web-ui/web/index.htmlthrough the dependency's public export; - copies the prebuilt shell, applies locally owned IPaper title/manifest/favicon metadata, and removes dangling upstream source-map directives.
The Web shell requires DSH to inject window.__DSH_BOOT__; it is not a standalone Vite application.
Extension recipe
IPaper deliberately adds no private editor or citation API. Extensions use DSH services, Typert contracts, and the shared Web UI slot contract:
- Publish the extension as its own package and install it directly in the same profile so host and browser entry resolution is deterministic.
- Define the host service and Remote/Typert contract in that package. Add its Typert package to the
typert-loader.config.packageslist in a profile patch when browser RPC is required. - Publish a
dsh.cliententry whose manifest lists every injected shared client and whose browser module contributes only to documented shared slots such as conversation, composer, reference, or settings seats. - Add host rows before dependent browser rows in a later profile
cordis.patch.ymllayer; do not edit IPaper's published roster. Use unique row and plugin IDs, and declare ordering/injection explicitly. - For reference providers, normalize results through the DSH file/session reference contracts. For citation providers, keep bibliographic retrieval and validation in a typed host service and render through shared composer/conversation slots. Editor integrations should preserve author-owned files and use an explicit save/write service rather than browser-local hidden state.
- Test the extension against an isolated profile: verify package resolution, Typert registration, host service availability, slot occupancy/order, and operation with the unmodified IPaper composition.
This layering lets later editor, reference, and citation backends extend the product without forking the shell or coupling to IPaper internals.
Development
Requires Node ^22.19.0 || >=24.0.0, pnpm 11.7.0, and a configured DSH model provider.
pnpm install --frozen-lockfile
pnpm typecheck
pnpm build
pnpm test
pnpm pack:check
pnpm dev # builds, installs profile ipaper-dev, starts brand watcher + DSH
pnpm dev:config # print the effective installed composition
pnpm dev:remove removes both direct profile dependencies. Product-brand HMR requires the watcher started by pnpm dev; shared shell updates always require rebuilding, restarting DSH, and refreshing the existing URL.
License
MIT