Chuyển đến nội dung chính

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.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.