跳到主要内容

dsh-deepseek-session-cost

已验证

@xorne/dsh-deepseek-session-cost · v0.1.4 · MIT · Web 界面

DSH harness plugin: shows live DeepSeek session cost in USD, priced per model (v4-flash / v4-pro), with peak/off-peak and weekend off-peak rules.

安装

dsh plugin add @xorne/dsh-deepseek-session-cost

dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南

源码

发布到 npm 但没有公开仓库。安装前请检查包内容。

标签

作者

说明文档

dsh-deepseek-session-cost

Plugin DeepSeek Harness : affiche le coût de la session (en USD) sous la zone de saisie, facturé par message selon le modèle utilisé (deepseek-v4-flash, deepseek-v4-pro, …), avec l'indicateur visuel off-peak / peak.

$0.0042  ● off-peak · DeepSeek · deepseek-v4-flash · in 1.2k · ⚡0.9k · out 0.3k

Fonctionnalités

  • Par message / par modèle : chaque message assistant est facturé au tarif de son propre modèle (lecture du usage + provenance.model / requestConfig.model).
  • Tarifs officiels : table src/pricing.js extraite de api-docs.deepseek.com/quick_start/pricing (modèles V4), avec rafraîchissement best-effort par l'hôte (web.fetch).
  • Peak / off-peak selon l'heure de Pékin : fenêtre 00:30–08:30 en semaine, et toute la journée le week-end (samedi/dimanche Pékin) depuis le 23/08/2026.
  • Pastille de créneau : vert = off-peak, ambre = peak (tokens de thème DSH).
  • Zéro dépendance hôte obligatoire : le client calcule le coût avec les tarifs intégrés et la logique de créneau locale ; il rafraîchit la table via le RPC hôte si disponible.

Architecture / fichiers

Fichier Rôle
src/pricing.js Modèle de tarif, isOffPeak() (règle week-end), costOfUsage(), formatTokens().
src/index.js Moitié hôte : fetch officiel + exposition des tarifs (harness.handle ou service deepseekPricing).
src/client.js Moitié navigateur : slot conversation.composer.dock, composant DeepSeekCostPanel.
cordis.patch.yml Entrée dual-face @xorne/dsh-deepseek-session-cost.

Installation dans un profil

  1. Publier (ou référencer localement) le paquet, puis l'ajouter au profil :

    cd ~/.dsh/profiles/web
    pnpm add @xorne/dsh-deepseek-session-cost
    dsh plugin --profile web add @xorne/dsh-deepseek-session-cost
    
  2. Le déclarer comme bundle dans package.json (section dsh.profile.bundles) : son cordis.patch.yml insère alors l'entrée dual-face.

    "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@xorne/dsh-deepseek-session-cost"] } }
    
  3. Redémarrer le profil (dsh --profile web).

⚠️ Build client : la moitié ./client doit être bundlée par le build frontend (servi sous /plugins/<id>/client.js). En dev, lancer le watcher (pnpm run dev:web depuis l'installation DSH) ; les plugins statiques n'apparaissent qu'après rebuild + refresh. Le plugin dynamique équivalent (via l'outil Cordis) n'a pas ce besoin — c'est ce qui a été testé ici.

Plugins DeepSeek Harness

Catalogue des plugins @deepseek-ai/dsh-* du Harness (hors utilitaires), avec version et description, regroupés par catégorie : voir plugins.md.

Ce catalogue est auto-généré depuis les package.json installés du déploiement. Pour la liste active d'un profil précis (plugins réellement chargés), préférez :

dsh --profile web --dump-config | grep "^- id:"

Publier sur npm

npm login
npm publish

Puis chacun peut faire dsh plugin --profile web add @xorne/dsh-deepseek-session-cost.

Différences avec le plugin dynamique

Le plugin dynamique (défini à l'exécution via l'outil Cordis) utilise le RPC package-privé harness.handle / host.call. Pour un bundle statique :

  • La liaison hôte → client doit suivre la convention du loader : soit harness.handle (si injecté), soit un service @Remote (activé dans src/index.js).
  • src/client.js est autonome : sans RPC, il retombe sur BASE_PRICING et la logique de créneau locale — le plugin reste fonctionnel même sans hôte.

Renommez DEFAULT_MODEL si besoin et vérifiez que le scope @xorne correspond bien à votre username/org npm avant publication.