dsh-deepseek-session-cost
Đã xác minh@xorne/dsh-deepseek-session-cost · v0.1.4 · MIT · Giao diện 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.
Cài đặt
dsh plugin add @xorne/dsh-deepseek-session-cost Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.
Thẻ
Tác giả
Readme
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.jsextraite 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:30en 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
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-costLe déclarer comme bundle dans
package.json(sectiondsh.profile.bundles) : soncordis.patch.ymlinsère alors l'entrée dual-face."dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@xorne/dsh-deepseek-session-cost"] } }Redémarrer le profil (
dsh --profile web).
⚠️ Build client : la moitié
./clientdoit être bundlée par le build frontend (servi sous/plugins/<id>/client.js). En dev, lancer le watcher (pnpm run dev:webdepuis 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é danssrc/index.js). src/client.jsest autonome : sans RPC, il retombe surBASE_PRICINGet la logique de créneau locale — le plugin reste fonctionnel même sans hôte.
Renommez
DEFAULT_MODELsi besoin et vérifiez que le scope@xornecorrespond bien à votre username/org npm avant publication.