dsh-ssh-tui 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -359,16 +359,22 @@ export interface QuotaSnapshot {
359
359
  windows: QuotaWindow[];
360
360
  }
361
361
  export declare function remainingPercentFromUsed(usedPercent: number): number;
362
- /** Cross a remaining-percent threshold from above (50 / 25 / 10 / 5). */
362
+ /** Cross a remaining-percent threshold from above (50 / 25 / 10 / 5).
363
+ * Only the tightest (lowest) crossed threshold is returned, so one drop
364
+ * never paints 50/25/10 as three identical warnings. */
363
365
  export declare function crossedQuotaThresholds(previousRemaining: number | undefined, remaining: number): number[];
364
366
  export declare function quotaAlertText(snapshot: QuotaSnapshot, window: QuotaWindow): string;
365
367
  /**
366
368
  * How often to re-fetch quota, based on the tightest window.
367
- * Hourly/5h: every 10 turns, every 4 when near a threshold.
368
- * Weekly: every 50 turns, every 10 when near.
369
- * Monthly: every 80 turns, every 20 when near.
369
+ * Counted in model steps (not conversation turns): a turn with several
370
+ * tool/LLM steps should refresh more often because it spends more quota.
371
+ * Hourly/5h: every 10 steps, every 4 when near a threshold.
372
+ * Weekly: every 50 steps, every 10 when near.
373
+ * Monthly: every 80 steps, every 20 when near.
370
374
  */
371
- export declare function quotaRefreshEveryTurns(window: QuotaWindow | undefined): number;
375
+ export declare function quotaRefreshEverySteps(window: QuotaWindow | undefined): number;
376
+ /** @deprecated Same cadence as {@link quotaRefreshEverySteps}; the name predates step accounting. */
377
+ export declare const quotaRefreshEveryTurns: typeof quotaRefreshEverySteps;
372
378
  export declare function parseSuperGrokBilling(payload: unknown): QuotaSnapshot;
373
379
  export declare function parseOpenCodeGoQuota(payload: unknown, provider: string): QuotaSnapshot;
374
380
  export declare function formatQuotaSnapshot(snapshot: QuotaSnapshot): string;
@@ -577,6 +583,7 @@ export declare class SshTui {
577
583
  private lastPaintWidth;
578
584
  private lastPaintHeight;
579
585
  private lastChromeStart;
586
+ private lastTranscriptStart;
580
587
  private paintIntervalMs;
581
588
  private paintLink;
582
589
  private paintProbed;
@@ -585,7 +592,7 @@ export declare class SshTui {
585
592
  private llmRetry;
586
593
  private quotaSnapshot;
587
594
  private quotaAlerted;
588
- private quotaTurnsSinceRefresh;
595
+ private quotaStepsSinceRefresh;
589
596
  private quotaRefreshInFlight;
590
597
  private searchHits;
591
598
  private searchIndex;
@@ -755,7 +762,7 @@ export declare class SshTui {
755
762
  private runSubmodelCommand;
756
763
  /** /subeffort: pick the reasoning effort subagent children use. */
757
764
  private runSubeffortCommand;
758
- /** /mode: pick an agent preset (standard / minimal / code / cordis / routing-suite / ...). */
765
+ /** /mode: pick an agent preset (standard / minimal / ptc / cordis / routing-suite / ...). */
759
766
  private runModeCommand;
760
767
  /** /resume: switch to a past session, or open a picker when no id is given. */
761
768
  private runResumeCommand;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-ssh-tui",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "SSH-friendly interactive terminal TUI plugin for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -80,20 +80,20 @@
80
80
  },
81
81
  "peerDependencies": {
82
82
  "@deepseek-ai/cordis": "^4.0.1",
83
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
84
- "@deepseek-ai/dsh-agent-default-model": "^0.1.1-rc.2",
85
- "@deepseek-ai/dsh-agent-loop": "^0.1.1-rc.2",
86
- "@deepseek-ai/dsh-agent-presets": "^0.1.1-rc.2",
87
- "@deepseek-ai/dsh-cmdline": "^0.1.1-rc.2",
88
- "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
89
- "@deepseek-ai/dsh-credentials": "^0.1.1-rc.2",
90
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
91
- "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
92
- "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
93
- "@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
94
- "@deepseek-ai/dsh-user-approval": "^0.1.1-rc.2",
95
- "@deepseek-ai/dsh-user-questions": "^0.1.1-rc.2",
96
- "@deepseek-ai/dsh-session-persistence": "^0.1.1-rc.2"
83
+ "@deepseek-ai/dsh-agent": ">=0.1.1-rc.2",
84
+ "@deepseek-ai/dsh-agent-default-model": ">=0.1.1-rc.2",
85
+ "@deepseek-ai/dsh-agent-loop": ">=0.1.1-rc.2",
86
+ "@deepseek-ai/dsh-agent-presets": ">=0.1.1-rc.2",
87
+ "@deepseek-ai/dsh-cmdline": ">=0.1.1-rc.2",
88
+ "@deepseek-ai/dsh-commands": ">=0.1.1-rc.2",
89
+ "@deepseek-ai/dsh-credentials": ">=0.1.1-rc.2",
90
+ "@deepseek-ai/dsh-llm": ">=0.1.1-rc.2",
91
+ "@deepseek-ai/dsh-session": ">=0.1.1-rc.2",
92
+ "@deepseek-ai/dsh-settings": ">=0.1.1-rc.2",
93
+ "@deepseek-ai/dsh-subagent": ">=0.1.1-rc.2",
94
+ "@deepseek-ai/dsh-user-approval": ">=0.1.1-rc.2",
95
+ "@deepseek-ai/dsh-user-questions": ">=0.1.1-rc.2",
96
+ "@deepseek-ai/dsh-session-persistence": ">=0.1.1-rc.2"
97
97
  },
98
98
  "peerDependenciesMeta": {
99
99
  "@deepseek-ai/dsh-user-approval": {
@@ -111,21 +111,21 @@
111
111
  },
112
112
  "devDependencies": {
113
113
  "@deepseek-ai/cordis": "^4.0.1",
114
- "@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
115
- "@deepseek-ai/dsh-agent-default-model": "^0.1.1-rc.2",
116
- "@deepseek-ai/dsh-agent-loop": "^0.1.1-rc.2",
117
- "@deepseek-ai/dsh-agent-presets": "^0.1.1-rc.2",
118
- "@deepseek-ai/dsh-cmdline": "^0.1.1-rc.2",
119
- "@deepseek-ai/dsh-commands": "^0.1.1-rc.2",
120
- "@deepseek-ai/dsh-credentials": "^0.1.1-rc.2",
121
- "@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
122
- "@deepseek-ai/dsh-session": "^0.1.1-rc.2",
123
- "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
124
- "@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
125
- "@deepseek-ai/dsh-user-approval": "^0.1.1-rc.2",
126
- "@deepseek-ai/dsh-user-questions": "^0.1.1-rc.2",
114
+ "@deepseek-ai/dsh-agent": ">=0.1.1-rc.2",
115
+ "@deepseek-ai/dsh-agent-default-model": ">=0.1.1-rc.2",
116
+ "@deepseek-ai/dsh-agent-loop": ">=0.1.1-rc.2",
117
+ "@deepseek-ai/dsh-agent-presets": ">=0.1.1-rc.2",
118
+ "@deepseek-ai/dsh-cmdline": ">=0.1.1-rc.2",
119
+ "@deepseek-ai/dsh-commands": ">=0.1.1-rc.2",
120
+ "@deepseek-ai/dsh-credentials": ">=0.1.1-rc.2",
121
+ "@deepseek-ai/dsh-llm": ">=0.1.1-rc.2",
122
+ "@deepseek-ai/dsh-session": ">=0.1.1-rc.2",
123
+ "@deepseek-ai/dsh-settings": ">=0.1.1-rc.2",
124
+ "@deepseek-ai/dsh-subagent": ">=0.1.1-rc.2",
125
+ "@deepseek-ai/dsh-user-approval": ">=0.1.1-rc.2",
126
+ "@deepseek-ai/dsh-user-questions": ">=0.1.1-rc.2",
127
127
  "@types/node": "^24.0.0",
128
128
  "typescript": "^5.9.0",
129
- "@deepseek-ai/dsh-session-persistence": "^0.1.1-rc.2"
129
+ "@deepseek-ai/dsh-session-persistence": ">=0.1.1-rc.2"
130
130
  }
131
131
  }