@rayadesu/dsh-llm-billing 0.1.0 → 0.2.1

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.
package/lib/invariant.js CHANGED
@@ -1,9 +1,9 @@
1
- //#region ../../../../DeepSeek-Harness-chat-billing/packages/llm-billing/lib/types/invariant.js
1
+ //#region lib/types/invariant.js
2
2
  /**
3
- * Package-owned invariant companion for `@rayadesu/dsh-llm-billing`.
4
- * @module @rayadesu/dsh-llm-billing/invariant
3
+ * Package-owned invariant companion for `@deepseek-ai/dsh-llm-billing`.
4
+ * @module @deepseek-ai/dsh-llm-billing/invariant
5
5
  */
6
- const PACKAGE_NAME = "@rayadesu/dsh-llm-billing";
6
+ const PACKAGE_NAME = "@deepseek-ai/dsh-llm-billing";
7
7
  /** Cordis companion plugin name. */
8
8
  const name = "llm-billing-invariant";
9
9
  /** Service required before the companion can reserve package ownership. */
@@ -45,13 +45,13 @@ const _deepseek_ai_dsh_llm_billing_billing_getTodaySpend_result$schema = z.objec
45
45
  })
46
46
 
47
47
  export const TYPERT = {
48
- package: '@rayadesu/dsh-llm-billing',
48
+ package: '@deepseek-ai/dsh-llm-billing',
49
49
  face: 'host',
50
50
  schemas: [
51
51
  ],
52
52
  invocations: [
53
53
  {
54
- id: '@rayadesu/dsh-llm-billing#billing/getBalance',
54
+ id: '@deepseek-ai/dsh-llm-billing#billing/getBalance',
55
55
  service: 'billing',
56
56
  namespace: 'billing',
57
57
  method: 'getBalance',
@@ -60,13 +60,13 @@ export const TYPERT = {
60
60
  ],
61
61
  result: {
62
62
  mode: 'strict',
63
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekBalance',
63
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekBalance',
64
64
  schema: _deepseek_ai_dsh_llm_billing_billing_getBalance_result$schema,
65
65
  },
66
66
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":139,"column":3},
67
67
  },
68
68
  {
69
- id: '@rayadesu/dsh-llm-billing#billing/getSessionSpend',
69
+ id: '@deepseek-ai/dsh-llm-billing#billing/getSessionSpend',
70
70
  service: 'billing',
71
71
  namespace: 'billing',
72
72
  method: 'getSessionSpend',
@@ -85,13 +85,13 @@ export const TYPERT = {
85
85
  ],
86
86
  result: {
87
87
  mode: 'strict',
88
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekSessionSpend',
88
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekSessionSpend',
89
89
  schema: _deepseek_ai_dsh_llm_billing_billing_getSessionSpend_result$schema,
90
90
  },
91
91
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":149,"column":3},
92
92
  },
93
93
  {
94
- id: '@rayadesu/dsh-llm-billing#billing/getTodaySpend',
94
+ id: '@deepseek-ai/dsh-llm-billing#billing/getTodaySpend',
95
95
  service: 'billing',
96
96
  namespace: 'billing',
97
97
  method: 'getTodaySpend',
@@ -100,7 +100,7 @@ export const TYPERT = {
100
100
  ],
101
101
  result: {
102
102
  mode: 'strict',
103
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekTodaySpend',
103
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekTodaySpend',
104
104
  schema: _deepseek_ai_dsh_llm_billing_billing_getTodaySpend_result$schema,
105
105
  },
106
106
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":159,"column":3},
@@ -3,7 +3,7 @@ import type {
3
3
  RemoteResult,
4
4
  TypertRemoteContribution,
5
5
  } from '@deepseek-ai/dsh-typert-protocol'
6
- import type { DeepSeekBalance, DeepSeekSessionSpend, DeepSeekTodaySpend } from '@rayadesu/dsh-llm-billing/types'
6
+ import type { DeepSeekBalance, DeepSeekSessionSpend, DeepSeekTodaySpend } from '@deepseek-ai/dsh-llm-billing/types'
7
7
  import type { SessionId } from '@deepseek-ai/dsh-session/types'
8
8
 
9
9
  declare module '@deepseek-ai/dsh-typert-protocol' {
@@ -45,10 +45,10 @@ const _deepseek_ai_dsh_llm_billing_billing_getTodaySpend_result$schema = z.objec
45
45
  })
46
46
 
47
47
  export const TYPERT_REMOTE = {
48
- package: '@rayadesu/dsh-llm-billing',
48
+ package: '@deepseek-ai/dsh-llm-billing',
49
49
  descriptors: [
50
50
  {
51
- id: '@rayadesu/dsh-llm-billing#billing/getBalance',
51
+ id: '@deepseek-ai/dsh-llm-billing#billing/getBalance',
52
52
  service: 'billing',
53
53
  namespace: 'billing',
54
54
  method: 'getBalance',
@@ -57,13 +57,13 @@ export const TYPERT_REMOTE = {
57
57
  ],
58
58
  result: {
59
59
  mode: 'strict',
60
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekBalance',
60
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekBalance',
61
61
  schema: _deepseek_ai_dsh_llm_billing_billing_getBalance_result$schema,
62
62
  },
63
63
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":139,"column":3},
64
64
  },
65
65
  {
66
- id: '@rayadesu/dsh-llm-billing#billing/getSessionSpend',
66
+ id: '@deepseek-ai/dsh-llm-billing#billing/getSessionSpend',
67
67
  service: 'billing',
68
68
  namespace: 'billing',
69
69
  method: 'getSessionSpend',
@@ -82,13 +82,13 @@ export const TYPERT_REMOTE = {
82
82
  ],
83
83
  result: {
84
84
  mode: 'strict',
85
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekSessionSpend',
85
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekSessionSpend',
86
86
  schema: _deepseek_ai_dsh_llm_billing_billing_getSessionSpend_result$schema,
87
87
  },
88
88
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":149,"column":3},
89
89
  },
90
90
  {
91
- id: '@rayadesu/dsh-llm-billing#billing/getTodaySpend',
91
+ id: '@deepseek-ai/dsh-llm-billing#billing/getTodaySpend',
92
92
  service: 'billing',
93
93
  namespace: 'billing',
94
94
  method: 'getTodaySpend',
@@ -97,7 +97,7 @@ export const TYPERT_REMOTE = {
97
97
  ],
98
98
  result: {
99
99
  mode: 'strict',
100
- typeSymbol: '@rayadesu/dsh-llm-billing/types#DeepSeekTodaySpend',
100
+ typeSymbol: '@deepseek-ai/dsh-llm-billing/types#DeepSeekTodaySpend',
101
101
  schema: _deepseek_ai_dsh_llm_billing_billing_getTodaySpend_result$schema,
102
102
  },
103
103
  sourceLocation: {"file":"packages/llm/llm-billing/src/balance.ts","line":159,"column":3},
@@ -4,7 +4,7 @@
4
4
  * takes an already-resolved endpoint and bearer token so the registering
5
5
  * plugin stays the one owner of credential policy; the gateway carries only a
6
6
  * `fetchBalance` thunk for the same reason.
7
- * @module @rayadesu/dsh-llm-billing/balance
7
+ * @module @deepseek-ai/dsh-llm-billing/balance
8
8
  */
9
9
  import type { Context } from '@deepseek-ai/cordis';
10
10
  import type { SessionId } from '@deepseek-ai/dsh-session';
@@ -55,15 +55,14 @@ export declare class DeepSeekBalanceGateway extends TypertRemoteService {
55
55
  */
56
56
  getBalance(): Promise<DeepSeekBalance>;
57
57
  /**
58
- * Read one session's billed spend, priced per event by its Beijing-time
59
- * peak/off-peak hour and weekday (weekends are always off-peak).
58
+ * Read one session's billed spend, priced per event by its peak/off-peak hour.
60
59
  * @param sessionId - the session whose spend to compute.
61
60
  * @returns the session's total cost plus one row per priced model.
62
61
  */
63
62
  getSessionSpend(sessionId: SessionId): Promise<DeepSeekSessionSpend>;
64
63
  /**
65
64
  * Read today's billed spend across every session, priced per event by its
66
- * Beijing-time calendar day, hour, and weekday (weekends are always off-peak).
65
+ * Beijing-time calendar day and peak/off-peak hour.
67
66
  * @returns today's total cost plus one row per priced model.
68
67
  */
69
68
  getTodaySpend(): Promise<DeepSeekTodaySpend>;
@@ -4,7 +4,7 @@
4
4
  * takes an already-resolved endpoint and bearer token so the registering
5
5
  * plugin stays the one owner of credential policy; the gateway carries only a
6
6
  * `fetchBalance` thunk for the same reason.
7
- * @module @rayadesu/dsh-llm-billing/balance
7
+ * @module @deepseek-ai/dsh-llm-billing/balance
8
8
  */
9
9
  var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
10
10
  var useValue = arguments.length > 2;
@@ -165,8 +165,7 @@ let DeepSeekBalanceGateway = (() => {
165
165
  return this.options.fetchBalance();
166
166
  }
167
167
  /**
168
- * Read one session's billed spend, priced per event by its Beijing-time
169
- * peak/off-peak hour and weekday (weekends are always off-peak).
168
+ * Read one session's billed spend, priced per event by its peak/off-peak hour.
170
169
  * @param sessionId - the session whose spend to compute.
171
170
  * @returns the session's total cost plus one row per priced model.
172
171
  */
@@ -175,7 +174,7 @@ let DeepSeekBalanceGateway = (() => {
175
174
  }
176
175
  /**
177
176
  * Read today's billed spend across every session, priced per event by its
178
- * Beijing-time calendar day, hour, and weekday (weekends are always off-peak).
177
+ * Beijing-time calendar day and peak/off-peak hour.
179
178
  * @returns today's total cost plus one row per priced model.
180
179
  */
181
180
  getTodaySpend() {
@@ -3,7 +3,7 @@
3
3
  * pricing. Pure functions over session events and the pricing table, so the
4
4
  * Remote gateway stays transport-free and the whole spend is testable without
5
5
  * a key.
6
- * @module @rayadesu/dsh-llm-billing/billing
6
+ * @module @deepseek-ai/dsh-llm-billing/billing
7
7
  */
8
8
  import type { SessionEvent } from '@deepseek-ai/dsh-session';
9
9
  import type { DeepSeekSessionSpend, DeepSeekTodaySpend } from './types.ts';
@@ -32,7 +32,7 @@ export interface BillingConfigModel {
32
32
  /** Off-peak price. */
33
33
  offPeak: DeepSeekTokenPrice;
34
34
  }
35
- /** One peak-hour window on a 24h Beijing-time clock, applied weekdays only. */
35
+ /** One peak-hour window on a 24h Beijing-time clock. */
36
36
  export interface PeakHourWindow {
37
37
  /** Inclusive start hour, `0`–`23`. */
38
38
  start: number;
@@ -41,19 +41,12 @@ export interface PeakHourWindow {
41
41
  }
42
42
  /** Optional billing configuration; omission uses the published defaults. */
43
43
  export interface BillingConfig {
44
- /**
45
- * Peak-hour windows in Beijing time, applied on weekdays (Monday–Friday)
46
- * only; weekends (Saturday and Sunday) are always off-peak.
47
- */
44
+ /** Peak-hour windows in Beijing time. */
48
45
  peakHours?: PeakHourWindow[];
49
- /** Per-model pricing rows; omission uses the V4 Flash, V4 Pro, and V4 Flash Vision defaults. */
46
+ /** Per-model pricing rows; omission uses the V4 Flash and V4 Pro defaults. */
50
47
  models?: BillingConfigModel[];
51
48
  }
52
- /**
53
- * Published peak-hour windows (Beijing time): 09:00–12:00 and 14:00–18:00,
54
- * applied on weekdays (Monday–Friday) only — weekends are always off-peak
55
- * (effective 2026-08-23).
56
- */
49
+ /** Published peak-hour windows (Beijing time): 09:00–12:00 and 14:00–18:00. */
57
50
  export declare const DEFAULT_PEAK_HOURS: {
58
51
  start: number;
59
52
  end: number;
@@ -79,12 +72,10 @@ export interface ResolvedBilling {
79
72
  */
80
73
  export declare function resolveBilling(config: BillingConfig | undefined): ResolvedBilling;
81
74
  /**
82
- * Whether a timestamp falls inside any peak-hour window (Beijing time,
83
- * weekdays Monday–Friday only). Weekends (Saturday and Sunday) are always
84
- * off-peak, matching the published peak-hours rule.
75
+ * Whether a timestamp falls inside any peak-hour window (Beijing time).
85
76
  * @param billing - resolved pricing with peak-hour windows.
86
77
  * @param now - the moment to classify.
87
- * @returns true during a weekday peak hour.
78
+ * @returns true during peak hours.
88
79
  */
89
80
  export declare function isPeak(billing: ResolvedBilling, now: Date): boolean;
90
81
  /**
@@ -3,13 +3,9 @@
3
3
  * pricing. Pure functions over session events and the pricing table, so the
4
4
  * Remote gateway stays transport-free and the whole spend is testable without
5
5
  * a key.
6
- * @module @rayadesu/dsh-llm-billing/billing
7
- */
8
- /**
9
- * Published peak-hour windows (Beijing time): 09:00–12:00 and 14:00–18:00,
10
- * applied on weekdays (Monday–Friday) only — weekends are always off-peak
11
- * (effective 2026-08-23).
6
+ * @module @deepseek-ai/dsh-llm-billing/billing
12
7
  */
8
+ /** Published peak-hour windows (Beijing time): 09:00–12:00 and 14:00–18:00. */
13
9
  export const DEFAULT_PEAK_HOURS = [
14
10
  { start: 9, end: 12 },
15
11
  { start: 14, end: 18 },
@@ -26,13 +22,6 @@ export const DEFAULT_MODEL_PRICING = [
26
22
  peak: { cacheHitInput: 0.30, cacheMissInput: 9.0, output: 27.0 },
27
23
  offPeak: { cacheHitInput: 0.15, cacheMissInput: 4.5, output: 13.5 },
28
24
  },
29
- // deepseek-v4-flash-vision-exp bills at the same rates as deepseek-v4-flash;
30
- // images are converted to tokens at the same per-token price.
31
- {
32
- model: 'deepseek-v4-flash-vision-exp',
33
- peak: { cacheHitInput: 0.10, cacheMissInput: 3.0, output: 9.0 },
34
- offPeak: { cacheHitInput: 0.05, cacheMissInput: 1.5, output: 4.5 },
35
- },
36
25
  ];
37
26
  /**
38
27
  * Resolve optional configuration to a pricing table, defaulting omitted or
@@ -59,36 +48,23 @@ export function resolveBilling(config) {
59
48
  function beijingHour(now) {
60
49
  return new Date(now.getTime() + 8 * 3_600_000).getUTCHours();
61
50
  }
62
- /**
63
- * The Beijing (Asia/Shanghai, UTC+8, no DST) weekday of a timestamp, as
64
- * `getUTCDay()`: `0` is Sunday, `6` is Saturday.
65
- */
66
- function beijingWeekday(now) {
67
- return new Date(now.getTime() + 8 * 3_600_000).getUTCDay();
68
- }
69
51
  /** The Beijing (Asia/Shanghai, UTC+8, no DST) calendar-day key of a timestamp. */
70
52
  function beijingDayKey(now) {
71
53
  return new Date(now.getTime() + 8 * 3_600_000).toISOString().slice(0, 10);
72
54
  }
73
55
  /**
74
- * Whether a timestamp falls inside any peak-hour window (Beijing time,
75
- * weekdays Monday–Friday only). Weekends (Saturday and Sunday) are always
76
- * off-peak, matching the published peak-hours rule.
56
+ * Whether a timestamp falls inside any peak-hour window (Beijing time).
77
57
  * @param billing - resolved pricing with peak-hour windows.
78
58
  * @param now - the moment to classify.
79
- * @returns true during a weekday peak hour.
59
+ * @returns true during peak hours.
80
60
  */
81
61
  export function isPeak(billing, now) {
82
- const weekday = beijingWeekday(now);
83
- if (weekday === 0 || weekday === 6)
84
- return false;
85
62
  const hour = beijingHour(now);
86
63
  return billing.peakHours.some(({ start, end }) => hour >= start && hour < end);
87
64
  }
88
65
  /**
89
66
  * Price a set of billed events at the official per-model rates, applying the
90
- * peak/off-peak table per event by its Beijing-time hour and weekday (peak
91
- * windows apply Monday–Friday only; weekends are off-peak). Each
67
+ * peak/off-peak table per event by its Beijing-time hour. Each
92
68
  * `assistant/message` event with usage contributes cache-hit input, cache-miss
93
69
  * input (uncached input plus cache writes), and output (reasoning included)
94
70
  * tokens at the rate of its own timestamp, with the three component costs
@@ -4,7 +4,7 @@
4
4
  * the credential/environment seams, prices each session's billed usage with the
5
5
  * peak/off-peak table, and exposes the `billing` Remote (`getBalance`, the
6
6
  * per-session `getSessionSpend`, and the all-sessions `getTodaySpend`).
7
- * @module @rayadesu/dsh-llm-billing
7
+ * @module @deepseek-ai/dsh-llm-billing
8
8
  */
9
9
  import type { Context } from '@deepseek-ai/cordis';
10
10
  import z from '@deepseek-ai/schemastery';
@@ -34,9 +34,9 @@ export interface Config {
34
34
  apiKeyEnv?: string;
35
35
  /** Endpoint base; defaults to `$DEEPSEEK_BASE_URL`, then `https://api.deepseek.com`. */
36
36
  baseURL?: string;
37
- /** Advisory display rows, in presentation order; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
37
+ /** Advisory display rows, in presentation order; defaults to V4 Flash and V4 Pro. */
38
38
  models?: BillingModel[];
39
- /** Pricing table and peak-hour windows; omission uses the published defaults. Peak windows apply weekdays (Monday–Friday) only; weekends are always off-peak. */
39
+ /** Pricing table and peak-hour windows; omission uses the published defaults. */
40
40
  billing?: BillingConfig;
41
41
  }
42
42
  export declare const Config: z<Config>;
@@ -4,7 +4,7 @@
4
4
  * the credential/environment seams, prices each session's billed usage with the
5
5
  * peak/off-peak table, and exposes the `billing` Remote (`getBalance`, the
6
6
  * per-session `getSessionSpend`, and the all-sessions `getTodaySpend`).
7
- * @module @rayadesu/dsh-llm-billing
7
+ * @module @deepseek-ai/dsh-llm-billing
8
8
  */
9
9
  import z from '@deepseek-ai/schemastery';
10
10
  import { assertUsableApiKey, LlmError } from '@deepseek-ai/dsh-llm';
@@ -22,7 +22,6 @@ export const PUBLIC_BASE_URL = 'https://api.deepseek.com';
22
22
  const DEFAULT_MODELS = [
23
23
  { id: 'deepseek-v4-flash', name: 'DeepSeek-V4-Flash' },
24
24
  { id: 'deepseek-v4-pro', name: 'DeepSeek-V4-Pro' },
25
- { id: 'deepseek-v4-flash-vision-exp', name: 'DeepSeek-V4-Flash-Vision-Exp' },
26
25
  ];
27
26
  const billingModel = z.object({
28
27
  id: z.string().required(),
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Package-owned invariant companion for `@rayadesu/dsh-llm-billing`.
3
- * @module @rayadesu/dsh-llm-billing/invariant
2
+ * Package-owned invariant companion for `@deepseek-ai/dsh-llm-billing`.
3
+ * @module @deepseek-ai/dsh-llm-billing/invariant
4
4
  */
5
5
  import type { Context } from '@deepseek-ai/cordis';
6
6
  /** Cordis companion plugin name. */
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Package-owned invariant companion for `@rayadesu/dsh-llm-billing`.
3
- * @module @rayadesu/dsh-llm-billing/invariant
2
+ * Package-owned invariant companion for `@deepseek-ai/dsh-llm-billing`.
3
+ * @module @deepseek-ai/dsh-llm-billing/invariant
4
4
  */
5
- const PACKAGE_NAME = '@rayadesu/dsh-llm-billing';
5
+ const PACKAGE_NAME = '@deepseek-ai/dsh-llm-billing';
6
6
  /** Cordis companion plugin name. */
7
7
  export const name = 'llm-billing-invariant';
8
8
  /** Service required before the companion can reserve package ownership. */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Client-safe balance and spend vocabulary shared by the `billing` Remote,
3
3
  * its generated artifacts, and the web UI.
4
- * @module @rayadesu/dsh-llm-billing/types
4
+ * @module @deepseek-ai/dsh-llm-billing/types
5
5
  */
6
6
  /** One currency line of the account balance returned by `GET /user/balance`. */
7
7
  export interface DeepSeekBalanceLine {
@@ -46,14 +46,14 @@ export interface DeepSeekSessionSpendModel {
46
46
  /** Billed cost of output tokens (reasoning included) in CNY. */
47
47
  outputCost: number;
48
48
  }
49
- /** The billed spend of one session, priced per event by its Beijing-time hour and weekday (peak hours apply Monday–Friday only; weekends are off-peak). */
49
+ /** The billed spend of one session, priced per event by its Beijing-time peak/off-peak hour. */
50
50
  export interface DeepSeekSessionSpend {
51
51
  /** Total billed cost in CNY across every priced model. */
52
52
  total: number;
53
53
  /** One row per model that reported usage AND has a pricing row; empty when the session has no priced usage. */
54
54
  models: readonly DeepSeekSessionSpendModel[];
55
55
  }
56
- /** The billed spend of every session on one Beijing-time calendar day, priced per event by its Beijing-time hour and weekday (peak hours apply Monday–Friday only; weekends are off-peak). */
56
+ /** The billed spend of every session on one Beijing-time calendar day, priced per event by its peak/off-peak hour. */
57
57
  export interface DeepSeekTodaySpend {
58
58
  /** Total billed cost in CNY across every priced model and every session. */
59
59
  total: number;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Client-safe balance and spend vocabulary shared by the `billing` Remote,
3
3
  * its generated artifacts, and the web UI.
4
- * @module @rayadesu/dsh-llm-billing/types
4
+ * @module @deepseek-ai/dsh-llm-billing/types
5
5
  */
6
6
  export {};
7
7
  //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rayadesu/dsh-llm-billing",
3
3
  "description": "Standalone DeepSeek account-balance and session-spend provider exposed through the billing Remote",
4
- "version": "0.1.0",
4
+ "version": "0.2.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -55,6 +55,7 @@
55
55
  "@deepseek-ai/dsh-llm": "^0.1.0-rc.8",
56
56
  "@deepseek-ai/dsh-session": "^0.1.0-rc.8",
57
57
  "@deepseek-ai/dsh-session-persistence": "^0.1.0-rc.8",
58
+ "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.8",
58
59
  "@deepseek-ai/dsh-typert-protocol": "^0.1.0-rc.8",
59
60
  "@deepseek-ai/cordis": "^4.0.1"
60
61
  },
@@ -69,6 +70,7 @@
69
70
  "@deepseek-ai/dsh-llm": "^0.1.0-rc.8",
70
71
  "@deepseek-ai/dsh-session": "^0.1.0-rc.8",
71
72
  "@deepseek-ai/dsh-session-persistence": "^0.1.0-rc.8",
73
+ "@deepseek-ai/dsh-session-projection": "^0.1.0-rc.8",
72
74
  "@deepseek-ai/dsh-typert-protocol": "^0.1.0-rc.8",
73
75
  "@deepseek-ai/cordis": "^4.0.1"
74
76
  }