@jingyi0605/codingns4dsh 0.2.1-rc.4 → 0.2.1-rc.6

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.
Files changed (239) hide show
  1. package/README.en.md +4 -4
  2. package/README.md +5 -5
  3. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.d.ts +1 -1
  4. package/data/build/dist/bootstrap/dsh-peer-host-preboot-shim.js +1 -1
  5. package/data/build/dist/client/bundle.js +1808 -221
  6. package/data/build/dist/client/bundle.js.map +1 -1
  7. package/data/build/dist/client/cli-session-config-cache.d.ts.map +1 -1
  8. package/data/build/dist/client/cli-session-config-cache.js +9 -3
  9. package/data/build/dist/client/cli-session-config-cache.js.map +1 -1
  10. package/data/build/dist/client/cli-slots.js +2 -2
  11. package/data/build/dist/client/cli-slots.js.map +1 -1
  12. package/data/build/dist/client/client.delegate-command.js +3 -2
  13. package/data/build/dist/client/client.delegate-command.js.map +1 -1
  14. package/data/build/dist/client/client.magpie-model-tag.js +24 -8
  15. package/data/build/dist/client/client.magpie-model-tag.js.map +1 -1
  16. package/data/build/dist/client/client.native-workspace-store.js +32 -15
  17. package/data/build/dist/client/client.native-workspace-store.js.map +1 -1
  18. package/data/build/dist/client/client.session-translation.js +25 -0
  19. package/data/build/dist/client/client.session-translation.js.map +1 -1
  20. package/data/build/dist/client/client.transport.js +266 -50
  21. package/data/build/dist/client/client.transport.js.map +1 -1
  22. package/data/build/dist/client/delegate-command.js +2 -1
  23. package/data/build/dist/client/delegate-command.js.map +1 -1
  24. package/data/build/dist/client/desktop-assistant.js +264 -48
  25. package/data/build/dist/client/features/cli-adapters.d.ts.map +1 -1
  26. package/data/build/dist/client/features/cli-adapters.js +13 -1
  27. package/data/build/dist/client/features/cli-adapters.js.map +1 -1
  28. package/data/build/dist/client/features/index.d.ts.map +1 -1
  29. package/data/build/dist/client/features/index.js +2 -0
  30. package/data/build/dist/client/features/index.js.map +1 -1
  31. package/data/build/dist/client/features/magpie-management-page.d.ts.map +1 -1
  32. package/data/build/dist/client/features/magpie-management-page.js +80 -31
  33. package/data/build/dist/client/features/magpie-management-page.js.map +1 -1
  34. package/data/build/dist/client/features/magpie-management.d.ts.map +1 -1
  35. package/data/build/dist/client/features/magpie-management.js +3 -2
  36. package/data/build/dist/client/features/magpie-management.js.map +1 -1
  37. package/data/build/dist/client/features/plugin-update.d.ts +3 -0
  38. package/data/build/dist/client/features/plugin-update.d.ts.map +1 -0
  39. package/data/build/dist/client/features/plugin-update.js +8 -0
  40. package/data/build/dist/client/features/plugin-update.js.map +1 -0
  41. package/data/build/dist/client/features/types.d.ts +3 -0
  42. package/data/build/dist/client/features/types.d.ts.map +1 -1
  43. package/data/build/dist/client/locale.d.ts.map +1 -1
  44. package/data/build/dist/client/locale.js +7 -0
  45. package/data/build/dist/client/locale.js.map +1 -1
  46. package/data/build/dist/client/locales/magpie.d.ts.map +1 -1
  47. package/data/build/dist/client/locales/magpie.js +60 -2
  48. package/data/build/dist/client/locales/magpie.js.map +1 -1
  49. package/data/build/dist/client/locales/panels.d.ts.map +1 -1
  50. package/data/build/dist/client/locales/panels.js +18 -0
  51. package/data/build/dist/client/locales/panels.js.map +1 -1
  52. package/data/build/dist/client/locales/pluginUpdate.d.ts +3 -0
  53. package/data/build/dist/client/locales/pluginUpdate.d.ts.map +1 -0
  54. package/data/build/dist/client/locales/pluginUpdate.js +131 -0
  55. package/data/build/dist/client/locales/pluginUpdate.js.map +1 -0
  56. package/data/build/dist/client/locales/usage.d.ts.map +1 -1
  57. package/data/build/dist/client/locales/usage.js +2 -0
  58. package/data/build/dist/client/locales/usage.js.map +1 -1
  59. package/data/build/dist/client/magpie-context-meter.d.ts +18 -0
  60. package/data/build/dist/client/magpie-context-meter.d.ts.map +1 -0
  61. package/data/build/dist/client/magpie-context-meter.js +274 -0
  62. package/data/build/dist/client/magpie-context-meter.js.map +1 -0
  63. package/data/build/dist/client/magpie-context-store.d.ts +32 -0
  64. package/data/build/dist/client/magpie-context-store.d.ts.map +1 -0
  65. package/data/build/dist/client/magpie-context-store.js +165 -0
  66. package/data/build/dist/client/magpie-context-store.js.map +1 -0
  67. package/data/build/dist/client/magpie-model-tag.d.ts +4 -2
  68. package/data/build/dist/client/magpie-model-tag.d.ts.map +1 -1
  69. package/data/build/dist/client/magpie-model-tag.js +25 -8
  70. package/data/build/dist/client/magpie-model-tag.js.map +1 -1
  71. package/data/build/dist/client/native-model-translation-menu.d.ts +1 -0
  72. package/data/build/dist/client/native-model-translation-menu.d.ts.map +1 -1
  73. package/data/build/dist/client/native-model-translation-menu.js +2 -2
  74. package/data/build/dist/client/native-model-translation-menu.js.map +1 -1
  75. package/data/build/dist/client/session-translation-chat.d.ts.map +1 -1
  76. package/data/build/dist/client/session-translation-chat.js +6 -2
  77. package/data/build/dist/client/session-translation-chat.js.map +1 -1
  78. package/data/build/dist/client/settings-promo-styles.d.ts +5 -0
  79. package/data/build/dist/client/settings-promo-styles.d.ts.map +1 -1
  80. package/data/build/dist/client/settings-promo-styles.js +15 -2
  81. package/data/build/dist/client/settings-promo-styles.js.map +1 -1
  82. package/data/build/dist/client/settings-promo.d.ts +4 -2
  83. package/data/build/dist/client/settings-promo.d.ts.map +1 -1
  84. package/data/build/dist/client/settings-promo.js +4 -4
  85. package/data/build/dist/client/settings-promo.js.map +1 -1
  86. package/data/build/dist/client/settings-section.d.ts +2 -3
  87. package/data/build/dist/client/settings-section.d.ts.map +1 -1
  88. package/data/build/dist/client/settings-section.js +12 -9
  89. package/data/build/dist/client/settings-section.js.map +1 -1
  90. package/data/build/dist/client/settings-update.d.ts +8 -0
  91. package/data/build/dist/client/settings-update.d.ts.map +1 -0
  92. package/data/build/dist/client/settings-update.js +57 -0
  93. package/data/build/dist/client/settings-update.js.map +1 -0
  94. package/data/build/dist/client/subscription-slot.d.ts.map +1 -1
  95. package/data/build/dist/client/subscription-slot.js +47 -21
  96. package/data/build/dist/client/subscription-slot.js.map +1 -1
  97. package/data/build/dist/client/update-panel-styles.d.ts +29 -0
  98. package/data/build/dist/client/update-panel-styles.d.ts.map +1 -0
  99. package/data/build/dist/client/update-panel-styles.js +69 -0
  100. package/data/build/dist/client/update-panel-styles.js.map +1 -0
  101. package/data/build/dist/client/update-panel.d.ts +7 -0
  102. package/data/build/dist/client/update-panel.d.ts.map +1 -0
  103. package/data/build/dist/client/update-panel.js +52 -0
  104. package/data/build/dist/client/update-panel.js.map +1 -0
  105. package/data/build/dist/client/update-store.d.ts +43 -0
  106. package/data/build/dist/client/update-store.d.ts.map +1 -0
  107. package/data/build/dist/client/update-store.js +207 -0
  108. package/data/build/dist/client/update-store.js.map +1 -0
  109. package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.d.ts +4 -0
  110. package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.d.ts.map +1 -0
  111. package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.js +6 -0
  112. package/data/build/dist/dsh-capabilities/client/plugin-reload-adapter.js.map +1 -0
  113. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts +15 -1
  114. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.d.ts.map +1 -1
  115. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js +53 -21
  116. package/data/build/dist/dsh-capabilities/client/session-performance-adapter.js.map +1 -1
  117. package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.d.ts +22 -0
  118. package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.d.ts.map +1 -0
  119. package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.js +71 -0
  120. package/data/build/dist/dsh-capabilities/host/plugin-update-adapter.js.map +1 -0
  121. package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts +4 -0
  122. package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.d.ts.map +1 -1
  123. package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js +16 -1
  124. package/data/build/dist/dsh-capabilities/host/session-model-selection-adapter.js.map +1 -1
  125. package/data/build/dist/dsh-capabilities/matrix.d.ts.map +1 -1
  126. package/data/build/dist/dsh-capabilities/matrix.js +16 -12
  127. package/data/build/dist/dsh-capabilities/matrix.js.map +1 -1
  128. package/data/build/dist/dsh-capabilities/routes.d.ts.map +1 -1
  129. package/data/build/dist/dsh-capabilities/routes.js +19 -9
  130. package/data/build/dist/dsh-capabilities/routes.js.map +1 -1
  131. package/data/build/dist/dsh-capabilities/types.d.ts +1 -1
  132. package/data/build/dist/dsh-capabilities/types.d.ts.map +1 -1
  133. package/data/build/dist/dsh-capabilities/types.js.map +1 -1
  134. package/data/build/dist/host/cli-adapters/dsh-message-projector.d.ts.map +1 -1
  135. package/data/build/dist/host/cli-adapters/dsh-message-projector.js +5 -2
  136. package/data/build/dist/host/cli-adapters/dsh-message-projector.js.map +1 -1
  137. package/data/build/dist/host/cli-adapters/feature.d.ts.map +1 -1
  138. package/data/build/dist/host/cli-adapters/feature.js +181 -29
  139. package/data/build/dist/host/cli-adapters/feature.js.map +1 -1
  140. package/data/build/dist/host/cli-adapters/magpie-context.d.ts +9 -0
  141. package/data/build/dist/host/cli-adapters/magpie-context.d.ts.map +1 -0
  142. package/data/build/dist/host/cli-adapters/magpie-context.js +128 -0
  143. package/data/build/dist/host/cli-adapters/magpie-context.js.map +1 -0
  144. package/data/build/dist/host/cli-adapters/magpie-update.d.ts.map +1 -1
  145. package/data/build/dist/host/cli-adapters/magpie-update.js +14 -4
  146. package/data/build/dist/host/cli-adapters/magpie-update.js.map +1 -1
  147. package/data/build/dist/host/cli-adapters/magpie-usage.d.ts +12 -2
  148. package/data/build/dist/host/cli-adapters/magpie-usage.d.ts.map +1 -1
  149. package/data/build/dist/host/cli-adapters/magpie-usage.js +120 -51
  150. package/data/build/dist/host/cli-adapters/magpie-usage.js.map +1 -1
  151. package/data/build/dist/host/cli-adapters/registry.d.ts.map +1 -1
  152. package/data/build/dist/host/cli-adapters/registry.js +6 -5
  153. package/data/build/dist/host/cli-adapters/registry.js.map +1 -1
  154. package/data/build/dist/host/dsh-runtime-version.d.ts.map +1 -1
  155. package/data/build/dist/host/dsh-runtime-version.js +4 -1
  156. package/data/build/dist/host/dsh-runtime-version.js.map +1 -1
  157. package/data/build/dist/host/features/index.d.ts.map +1 -1
  158. package/data/build/dist/host/features/index.js +2 -0
  159. package/data/build/dist/host/features/index.js.map +1 -1
  160. package/data/build/dist/host/features/plugin-update.d.ts +6 -0
  161. package/data/build/dist/host/features/plugin-update.d.ts.map +1 -0
  162. package/data/build/dist/host/features/plugin-update.js +45 -0
  163. package/data/build/dist/host/features/plugin-update.js.map +1 -0
  164. package/data/build/dist/host/index.d.ts.map +1 -1
  165. package/data/build/dist/host/index.js +31 -1
  166. package/data/build/dist/host/index.js.map +1 -1
  167. package/data/build/dist/host/native-session-bridge.d.ts +8 -0
  168. package/data/build/dist/host/native-session-bridge.d.ts.map +1 -1
  169. package/data/build/dist/host/native-session-bridge.js +43 -0
  170. package/data/build/dist/host/native-session-bridge.js.map +1 -1
  171. package/data/build/dist/host/rpc.d.ts +4 -1
  172. package/data/build/dist/host/rpc.d.ts.map +1 -1
  173. package/data/build/dist/host/rpc.js +33 -7
  174. package/data/build/dist/host/rpc.js.map +1 -1
  175. package/data/build/dist/host/session-handle-eviction.d.ts +29 -0
  176. package/data/build/dist/host/session-handle-eviction.d.ts.map +1 -0
  177. package/data/build/dist/host/session-handle-eviction.js +413 -0
  178. package/data/build/dist/host/session-handle-eviction.js.map +1 -0
  179. package/data/build/dist/host/settings.d.ts.map +1 -1
  180. package/data/build/dist/host/settings.js +12 -1
  181. package/data/build/dist/host/settings.js.map +1 -1
  182. package/data/build/dist/host/update/application-result.d.ts +3 -0
  183. package/data/build/dist/host/update/application-result.d.ts.map +1 -0
  184. package/data/build/dist/host/update/application-result.js +13 -0
  185. package/data/build/dist/host/update/application-result.js.map +1 -0
  186. package/data/build/dist/host/update/http.d.ts +7 -0
  187. package/data/build/dist/host/update/http.d.ts.map +1 -0
  188. package/data/build/dist/host/update/http.js +55 -0
  189. package/data/build/dist/host/update/http.js.map +1 -0
  190. package/data/build/dist/host/update/metadata.d.ts +14 -0
  191. package/data/build/dist/host/update/metadata.d.ts.map +1 -0
  192. package/data/build/dist/host/update/metadata.js +75 -0
  193. package/data/build/dist/host/update/metadata.js.map +1 -0
  194. package/data/build/dist/host/update/release-notes.d.ts +6 -0
  195. package/data/build/dist/host/update/release-notes.d.ts.map +1 -0
  196. package/data/build/dist/host/update/release-notes.js +52 -0
  197. package/data/build/dist/host/update/release-notes.js.map +1 -0
  198. package/data/build/dist/host/update/service.d.ts +25 -0
  199. package/data/build/dist/host/update/service.d.ts.map +1 -0
  200. package/data/build/dist/host/update/service.js +209 -0
  201. package/data/build/dist/host/update/service.js.map +1 -0
  202. package/data/build/dist/shared/contracts/cli-adapter.d.ts +2 -0
  203. package/data/build/dist/shared/contracts/cli-adapter.d.ts.map +1 -1
  204. package/data/build/dist/shared/contracts/config.d.ts +17 -0
  205. package/data/build/dist/shared/contracts/config.d.ts.map +1 -1
  206. package/data/build/dist/shared/contracts/config.js +8 -0
  207. package/data/build/dist/shared/contracts/config.js.map +1 -1
  208. package/data/build/dist/shared/contracts/errors.d.ts +2 -2
  209. package/data/build/dist/shared/contracts/errors.d.ts.map +1 -1
  210. package/data/build/dist/shared/contracts/errors.js +1 -1
  211. package/data/build/dist/shared/contracts/errors.js.map +1 -1
  212. package/data/build/dist/shared/contracts/magpie-management.d.ts +40 -0
  213. package/data/build/dist/shared/contracts/magpie-management.d.ts.map +1 -1
  214. package/data/build/dist/shared/contracts/plugin-update.d.ts +93 -0
  215. package/data/build/dist/shared/contracts/plugin-update.d.ts.map +1 -0
  216. package/data/build/dist/shared/contracts/plugin-update.js +128 -0
  217. package/data/build/dist/shared/contracts/plugin-update.js.map +1 -0
  218. package/data/build/dist/shared/contracts/session-translation.d.ts +4 -0
  219. package/data/build/dist/shared/contracts/session-translation.d.ts.map +1 -1
  220. package/data/build/dist/shared/contracts/session-translation.js +21 -0
  221. package/data/build/dist/shared/contracts/session-translation.js.map +1 -1
  222. package/data/build/dist/shared/contracts/subscription.d.ts +3 -0
  223. package/data/build/dist/shared/contracts/subscription.d.ts.map +1 -1
  224. package/data/build/dist/shared/contracts/subscription.js.map +1 -1
  225. package/data/build/dist/shared/contracts/version.d.ts +7 -7
  226. package/data/build/dist/shared/contracts/version.d.ts.map +1 -1
  227. package/data/build/dist/shared/contracts/version.js +11 -17
  228. package/data/build/dist/shared/contracts/version.js.map +1 -1
  229. package/data/build/dist/shared/index.d.ts +1 -1
  230. package/data/build/dist/shared/index.d.ts.map +1 -1
  231. package/data/build/dist/shared/index.js +1 -1
  232. package/data/build/dist/shared/index.js.map +1 -1
  233. package/package.json +4 -3
  234. package/profile/README.md +6 -6
  235. package/profile/package.json +3 -3
  236. package/profile/scripts/check-dsh-install.mjs +14 -1
  237. package/profile/version.json +2 -2
  238. package/scripts/check-dsh-install.mjs +14 -1
  239. package/version.json +2 -2
@@ -0,0 +1,18 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { CodingNsRpcClient } from './features/types.js';
3
+ import { type CodingNsLocale } from './locale.js';
4
+ import type { SessionSnapshot } from './cli-slots.js';
5
+ export interface MagpieContextMeterProps {
6
+ readonly rpc?: CodingNsRpcClient;
7
+ readonly sessionId?: string;
8
+ readonly locale?: CodingNsLocale;
9
+ readonly useSession?: <Selected>(selector: (value: SessionSnapshot) => Selected) => Selected;
10
+ readonly useProjection?: (key: string) => unknown;
11
+ }
12
+ /**
13
+ * Enhance DSH's native ContextMeter without adding another visible trigger.
14
+ * The native button receives Magpie's pressure through the composer projection;
15
+ * this zero-layout entry only redirects its dialog to the Magpie inspector.
16
+ */
17
+ export declare function MagpieContextMeter({ rpc, sessionId, locale, useSession, useProjection }: MagpieContextMeterProps): ReactElement | null;
18
+ //# sourceMappingURL=magpie-context-meter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magpie-context-meter.d.ts","sourceRoot":"","sources":["../../../../src/client/magpie-context-meter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,YAAY,EAAa,MAAM,OAAO,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAoD,KAAK,cAAc,EAA2B,MAAM,aAAa,CAAA;AAK5H,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AA6CrD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,QAAQ,KAAK,QAAQ,CAAA;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAClD;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,uBAAuB,GAAG,YAAY,GAAG,IAAI,CA0GtI"}
@@ -0,0 +1,274 @@
1
+ import { createElement, useCallback, useEffect, useRef, useState } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ import { resolveCodingNsTranslator, useCodingNsTranslator } from './locale.js';
4
+ import { useDismissOnOutsidePointer } from './popup-dismiss.js';
5
+ import { dshThemeColor } from './theme.js';
6
+ import { uiFontSize } from './font-scale.js';
7
+ import { getMagpieContextStore, useMagpieContext } from './magpie-context-store.js';
8
+ const STYLE_ID = 'codingns4dsh-magpie-context-meter';
9
+ const COLORS = {
10
+ system: '#8b5cf6',
11
+ tools: '#1ea7d9',
12
+ memory: '#f1a31a',
13
+ files: '#20b98b',
14
+ results: '#e13d8d',
15
+ chat: '#4f46d8',
16
+ };
17
+ const PART_LABEL_KEYS = {
18
+ system: 'magpie.context.system',
19
+ tools: 'magpie.context.tools',
20
+ memory: 'magpie.context.memory',
21
+ files: 'magpie.context.files',
22
+ results: 'magpie.context.results',
23
+ chat: 'magpie.context.chat',
24
+ };
25
+ const PART_ORDER = ['system', 'tools', 'memory', 'files', 'results', 'chat'];
26
+ const NATIVE_PARTS = [
27
+ { key: 'systemTokens', label: 'magpie.context.system', color: 'var(--dsw-static-neutral-bluish-400, #aeb3bc)' },
28
+ { key: 'toolsTokens', label: 'magpie.context.nativeTools', color: '#a78bfa' },
29
+ { key: 'messageTokens', label: 'magpie.context.nativeMessages', color: 'var(--dsw-static-blue-450, #4b8df8)' },
30
+ ];
31
+ const FALLBACK_LOCALE = {
32
+ bind: () => resolveCodingNsTranslator(),
33
+ getSnapshot: () => ({ active: 'en', locales: [], revision: 0 }),
34
+ subscribe: () => () => undefined,
35
+ register: () => () => undefined,
36
+ };
37
+ /**
38
+ * Enhance DSH's native ContextMeter without adding another visible trigger.
39
+ * The native button receives Magpie's pressure through the composer projection;
40
+ * this zero-layout entry only redirects its dialog to the Magpie inspector.
41
+ */
42
+ export function MagpieContextMeter({ rpc, sessionId, locale, useSession, useProjection }) {
43
+ const state = useMagpieContext(rpc, sessionId);
44
+ const store = rpc === undefined || sessionId === undefined ? undefined : getMagpieContextStore(rpc, sessionId);
45
+ const running = useSession?.(value => value.running) === true;
46
+ const revision = useSession?.(value => JSON.stringify([value.modelSelection, value.running]));
47
+ // Dock standard props expose the original projections, before the composer overrides Magpie pressure.
48
+ const nativePressure = useProjection?.('contextPressure');
49
+ const nativeBreakdown = useProjection?.('contextBreakdown');
50
+ const [open, setOpen] = useState(false);
51
+ const [activeKind, setActiveKind] = useState('all');
52
+ const [placement, setPlacement] = useState({ left: 12, bottom: 52 });
53
+ const rootRef = useRef(null);
54
+ const anchorRef = useRef(null);
55
+ const panelRef = useRef(null);
56
+ const openRef = useRef(open);
57
+ const t = useCodingNsTranslator(locale ?? FALLBACK_LOCALE);
58
+ useEffect(() => { installStyles(); }, []);
59
+ useEffect(() => {
60
+ if (revision !== undefined)
61
+ void store?.refresh();
62
+ }, [revision, store]);
63
+ useEffect(() => {
64
+ openRef.current = open;
65
+ store?.setPolling(open || running || state.status === 'ready');
66
+ return () => store?.setPolling(false);
67
+ }, [open, running, state.status, store]);
68
+ useEffect(() => {
69
+ if (state.status !== 'ready' && open)
70
+ setOpen(false);
71
+ }, [open, state.status]);
72
+ const updatePlacement = useCallback(() => {
73
+ if (typeof window === 'undefined')
74
+ return;
75
+ const rect = anchorRef.current?.getBoundingClientRect();
76
+ if (rect === undefined)
77
+ return;
78
+ const panelWidth = Math.min(980, Math.max(280, window.innerWidth - 24));
79
+ const left = Math.max(12, Math.min(rect.left - Math.max(0, (panelWidth - rect.width) / 2), window.innerWidth - panelWidth - 12));
80
+ setPlacement({ left, bottom: Math.max(12, window.innerHeight - rect.top + 8) });
81
+ }, []);
82
+ useEffect(() => {
83
+ if (state.status !== 'ready' || typeof document === 'undefined')
84
+ return;
85
+ const root = rootRef.current;
86
+ // SlotOutlet adds a display:contents wrapper; the native meter is its sibling.
87
+ const dock = root?.closest('[data-composer-dock]');
88
+ if (dock === null || dock === undefined)
89
+ return;
90
+ let attached = null;
91
+ let nativeExpanded = null;
92
+ const onClick = (event) => {
93
+ event.preventDefault();
94
+ event.stopImmediatePropagation();
95
+ updatePlacement();
96
+ setOpen(value => !value);
97
+ };
98
+ const detach = () => {
99
+ if (attached === null)
100
+ return;
101
+ attached.removeEventListener('click', onClick, true);
102
+ if (nativeExpanded === null)
103
+ attached.removeAttribute('aria-expanded');
104
+ else
105
+ attached.setAttribute('aria-expanded', nativeExpanded);
106
+ if (anchorRef.current === attached)
107
+ anchorRef.current = null;
108
+ };
109
+ const bind = () => {
110
+ const next = findNativeContextTrigger(dock);
111
+ if (next === attached)
112
+ return;
113
+ detach();
114
+ attached = next;
115
+ anchorRef.current = next;
116
+ if (next !== null) {
117
+ nativeExpanded = next.getAttribute('aria-expanded');
118
+ next.setAttribute('aria-expanded', String(openRef.current));
119
+ next.addEventListener('click', onClick, true);
120
+ }
121
+ if (openRef.current)
122
+ updatePlacement();
123
+ };
124
+ bind();
125
+ const observer = typeof MutationObserver === 'undefined' ? undefined : new MutationObserver(bind);
126
+ observer?.observe(dock, { childList: true, subtree: true });
127
+ return () => {
128
+ observer?.disconnect();
129
+ detach();
130
+ };
131
+ }, [state.status, updatePlacement]);
132
+ useEffect(() => {
133
+ if (!open)
134
+ return;
135
+ updatePlacement();
136
+ window.addEventListener('resize', updatePlacement);
137
+ window.addEventListener('scroll', updatePlacement, true);
138
+ return () => {
139
+ window.removeEventListener('resize', updatePlacement);
140
+ window.removeEventListener('scroll', updatePlacement, true);
141
+ };
142
+ }, [open]);
143
+ useDismissOnOutsidePointer(anchorRef, open, () => setOpen(false), { portal: panelRef });
144
+ useEffect(() => {
145
+ const trigger = anchorRef.current;
146
+ if (trigger === null)
147
+ return;
148
+ trigger.setAttribute('aria-expanded', String(open));
149
+ }, [open]);
150
+ if (state.status !== 'ready')
151
+ return createElement('span', { ref: rootRef, 'data-codingns-magpie-context-enhancer': true, style: hiddenEnhancerStyle });
152
+ const value = state.value;
153
+ const panel = open && typeof document !== 'undefined'
154
+ ? createPortal(createContextPanel(value, t, activeKind, setActiveKind, () => setOpen(false), placement, panelRef, createNativeContextSummary(nativePressure, nativeBreakdown, t)), document.body)
155
+ : null;
156
+ return createElement('span', { ref: rootRef, 'data-codingns-magpie-context-enhancer': true, style: hiddenEnhancerStyle }, panel);
157
+ }
158
+ const hiddenEnhancerStyle = { display: 'none' };
159
+ function findNativeContextTrigger(dock) {
160
+ for (const button of dock.querySelectorAll('button.JObwrW_trigger')) {
161
+ if (button.closest('[data-composer-dock]') === dock
162
+ && button.closest('[data-codingns-magpie-context-enhancer]') === null
163
+ && button.closest('.JObwrW_root') !== null)
164
+ return button;
165
+ }
166
+ return null;
167
+ }
168
+ function createNativeContextSummary(pressure, breakdown, t) {
169
+ const used = pressure?.projectedTokens ?? pressure?.pressureTokens;
170
+ const capacity = pressure?.contextWindow;
171
+ if (!isTokenCount(used) || !isTokenCount(capacity) || capacity === 0)
172
+ return null;
173
+ const percent = Math.min(100, Math.round(used / capacity * 100));
174
+ const parts = breakdown !== undefined && NATIVE_PARTS.every(part => isTokenCount(breakdown?.[part.key]))
175
+ ? NATIVE_PARTS.map(part => ({ ...part, tokens: breakdown[part.key] }))
176
+ : [];
177
+ const total = parts.reduce((sum, part) => sum + part.tokens, 0);
178
+ return createElement('section', {
179
+ className: 'codingns4dsh-magpie-context-native',
180
+ 'aria-label': t('magpie.context.native'),
181
+ }, createElement('strong', { className: 'codingns4dsh-magpie-context-heading-label' }, t('magpie.context.native')), createElement('div', { className: 'codingns4dsh-magpie-context-native-usage' }, createElement('span', undefined, t('magpie.context.usedPercent', { percent })), createElement('strong', undefined, `~${formatTokens(used)} / ${formatTokens(capacity)}`)), createElement('div', {
182
+ className: 'codingns4dsh-magpie-context-native-bar',
183
+ role: 'meter',
184
+ 'aria-label': t('magpie.context.used'),
185
+ 'aria-valuemin': 0,
186
+ 'aria-valuemax': 100,
187
+ 'aria-valuenow': percent,
188
+ }, total > 0
189
+ ? parts.map(part => createElement('span', { key: part.key, style: { width: `${percent * part.tokens / total}%`, background: part.color } }))
190
+ : createElement('span', { style: { width: `${percent}%`, background: dshThemeColor.labelTertiary } })), parts.length > 0 && createElement('div', { className: 'codingns4dsh-magpie-context-caption' }, t('magpie.context.nativeComposition')), parts.length > 0 && createElement('dl', { className: 'codingns4dsh-magpie-context-native-parts' }, parts.map(part => createElement('div', { key: part.key }, createElement('dt', undefined, createElement('i', { 'aria-hidden': true, style: { background: part.color } }), t(part.label)), createElement('dd', undefined, createElement('span', undefined, `~${formatTokens(part.tokens)}`), createElement('span', { className: 'codingns4dsh-magpie-context-caption' }, `${total > 0 ? trimDecimal(part.tokens / total * 100) : '0'}%`))))));
191
+ }
192
+ function isTokenCount(value) {
193
+ return typeof value === 'number' && Number.isFinite(value) && value >= 0;
194
+ }
195
+ function createContextPanel(value, t, activeKind, setActiveKind, close, placement, panelRef, nativeSummary) {
196
+ const used = formatTokens(value.usedTokens);
197
+ const windowSize = formatTokens(value.contextWindow);
198
+ const cache = `${Math.round(value.cacheRate * 100)}%`;
199
+ const parts = PART_ORDER.map(kind => value.parts.find(part => part.kind === kind) ?? emptyPart(kind));
200
+ const total = Math.max(1, parts.reduce((sum, part) => sum + part.tokens, 0));
201
+ const visibleParts = activeKind === 'all' ? parts : parts.filter(part => part.kind === activeKind);
202
+ const contentItems = visibleParts.flatMap(part => part.items.map(item => ({ ...item, kind: part.kind })))
203
+ .sort((left, right) => right.tokens - left.tokens);
204
+ const rounds = value.points.slice(-12).reverse();
205
+ return createElement('div', {
206
+ ref: panelRef,
207
+ className: 'codingns4dsh-magpie-context-panel',
208
+ role: 'dialog',
209
+ 'aria-label': t('magpie.context.window'),
210
+ style: { left: placement.left, bottom: placement.bottom },
211
+ }, nativeSummary, createElement('div', { className: 'codingns4dsh-magpie-context-heading' }, createElement('div', undefined, createElement('div', { className: 'codingns4dsh-magpie-context-heading-label' }, t('magpie.context.used')), createElement('strong', { className: 'codingns4dsh-magpie-context-heading-value' }, used), createElement('span', { className: 'codingns4dsh-magpie-context-heading-unit' }, ' token'), createElement('div', { className: 'codingns4dsh-magpie-context-caption' }, t('magpie.context.modelWindow', { value: windowSize }))), createElement('div', { className: 'codingns4dsh-magpie-context-cache' }, createElement('div', { className: 'codingns4dsh-magpie-context-heading-label' }, t('magpie.context.cache')), createElement('strong', { className: 'codingns4dsh-magpie-context-cache-value' }, cache), createElement('div', { className: 'codingns4dsh-magpie-context-caption' }, t('magpie.context.hit')), createElement('div', { className: 'codingns4dsh-magpie-context-cache-track' }, createElement('span', { style: { width: `${Math.round(value.cacheRate * 100)}%` } }))), createElement('div', { className: 'codingns4dsh-magpie-context-model' }, createElement('span', undefined, value.model), createElement('button', { type: 'button', onClick: close, 'aria-label': t('magpie.context.close') }, '×'))), createElement('div', { className: 'codingns4dsh-magpie-context-treemap', 'aria-label': t('magpie.context.composition') }, parts.map(part => createElement('div', {
212
+ key: part.kind,
213
+ className: `codingns4dsh-magpie-context-block codingns4dsh-magpie-context-block-${part.kind}`,
214
+ style: {
215
+ '--codingns-magpie-part-color': COLORS[part.kind],
216
+ '--codingns-magpie-part-size': `${Math.max(4, part.tokens / total * 100)}%`,
217
+ flex: `${Math.max(0.04, part.tokens / total)} 1 0`,
218
+ },
219
+ }, createElement('strong', undefined, labelFor(part.kind, t)), createElement('span', undefined, formatTokens(part.tokens))))), createElement('div', { className: 'codingns4dsh-magpie-context-legend' }, parts.map(part => createElement('button', {
220
+ key: part.kind,
221
+ type: 'button',
222
+ className: activeKind === part.kind ? 'is-active' : '',
223
+ onClick: () => setActiveKind(activeKind === part.kind ? 'all' : part.kind),
224
+ }, createElement('i', { style: { background: COLORS[part.kind] } }), labelFor(part.kind, t), formatTokens(part.tokens)))), createElement('div', { className: 'codingns4dsh-magpie-context-content-heading' }, createElement('strong', undefined, t('magpie.context.content')), createElement('span', undefined, t('magpie.context.allCount', { count: contentItems.length }))), createElement('div', { className: 'codingns4dsh-magpie-context-tabs' }, createElement('button', { type: 'button', className: activeKind === 'all' ? 'is-active' : '', onClick: () => setActiveKind('all') }, t('magpie.context.all')), parts.map(part => createElement('button', { key: part.kind, type: 'button', className: activeKind === part.kind ? 'is-active' : '', onClick: () => setActiveKind(part.kind) }, labelFor(part.kind, t)))), createElement('div', { className: 'codingns4dsh-magpie-context-list' }, contentItems.length === 0
225
+ ? createElement('div', { className: 'codingns4dsh-magpie-context-empty' }, t('magpie.context.empty'))
226
+ : contentItems.slice(0, 61).map((item, index) => createElement('div', { key: `${item.kind}-${item.name}-${index}`, className: 'codingns4dsh-magpie-context-row' }, createElement('span', { className: 'codingns4dsh-magpie-context-row-name' }, displayItemName(item.name, item.kind, item.count, t)), createElement('span', { className: 'codingns4dsh-magpie-context-row-tag' }, item.tag ?? labelFor(item.kind, t)), createElement('span', { className: 'codingns4dsh-magpie-context-row-bar' }, createElement('i', { style: { width: `${Math.min(100, Math.max(2, item.tokens / Math.max(1, contentItems[0].tokens) * 100))}%`, background: COLORS[item.kind] } })), createElement('span', { className: 'codingns4dsh-magpie-context-row-value' }, formatTokens(item.tokens))))), createElement('div', { className: 'codingns4dsh-magpie-context-session' }, createElement('div', { className: 'codingns4dsh-magpie-context-breadcrumb' }, `${value.agent} › ${truncate(value.key)} › #${value.latestId ?? '—'}`), createElement('span', undefined, `${t('magpie.context.rounds', { count: value.turns })} · ${t('magpie.context.requests', { count: value.requests })}`)), rounds.length > 0 && createElement('div', { className: 'codingns4dsh-magpie-context-rounds' }, rounds.map((point, index) => createElement('div', { key: point.id, className: 'codingns4dsh-magpie-context-round' }, createElement('span', undefined, t('magpie.context.request', { count: value.points.length - index })), createElement('i', undefined, createElement('b', { style: { width: `${Math.min(100, point.tokens / Math.max(1, value.contextWindow) * 100)}%` } })), createElement('span', undefined, formatTokens(point.tokens))))));
227
+ }
228
+ function installStyles() {
229
+ if (typeof document === 'undefined' || document.getElementById(STYLE_ID) !== null)
230
+ return null;
231
+ const style = document.createElement('style');
232
+ style.id = STYLE_ID;
233
+ style.textContent = `
234
+ .codingns4dsh-magpie-context-panel{position:fixed;z-index:10000;width:min(980px,calc(100vw - 24px));max-height:min(82vh,780px);overflow:auto;box-sizing:border-box;padding:18px 20px 12px;color:${dshThemeColor.labelPrimary};background:${dshThemeColor.menuBackground};border:1px solid ${dshThemeColor.menuBorder};border-radius:14px;box-shadow:${dshThemeColor.prominentShadow};font-size:${uiFontSize(12)};line-height:1.35}
235
+ .codingns4dsh-magpie-context-native{border-bottom:1px solid ${dshThemeColor.fieldBorder};padding-bottom:14px;margin-bottom:16px}.codingns4dsh-magpie-context-native-usage{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:7px;color:${dshThemeColor.labelSecondary};font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-native-usage strong{margin-left:auto;color:${dshThemeColor.labelPrimary};font-weight:500}.codingns4dsh-magpie-context-native-bar{display:flex;height:4px;overflow:hidden;margin:10px 0 12px;border-radius:99px;background:${dshThemeColor.surfaceSubtle}}.codingns4dsh-magpie-context-native-bar span{flex:none;height:100%;border-radius:1px}.codingns4dsh-magpie-context-native-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 24px;margin:8px 0 0}.codingns4dsh-magpie-context-native-parts>div{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}.codingns4dsh-magpie-context-native-parts dt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:${dshThemeColor.labelSecondary}}.codingns4dsh-magpie-context-native-parts dt i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}.codingns4dsh-magpie-context-native-parts dd{display:flex;gap:8px;margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-native-parts dd .codingns4dsh-magpie-context-caption{margin:0}
236
+ @media (max-width:640px){.codingns4dsh-magpie-context-native-parts{grid-template-columns:minmax(0,1fr)}}
237
+ .codingns4dsh-magpie-context-heading{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) minmax(160px,1fr);gap:18px;align-items:start;margin-bottom:14px}.codingns4dsh-magpie-context-heading-label{color:${dshThemeColor.labelTertiary};font-size:${uiFontSize(12)};font-weight:600}.codingns4dsh-magpie-context-heading-value{font-size:${uiFontSize(28)};line-height:1;font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-heading-unit{color:${dshThemeColor.labelSecondary};margin-left:4px}.codingns4dsh-magpie-context-caption{color:${dshThemeColor.labelTertiary};margin-top:4px}.codingns4dsh-magpie-context-cache-value{display:block;color:#6bbd99;font-size:${uiFontSize(28)};line-height:1;font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-cache-track{height:6px;margin-top:8px;border-radius:99px;background:var(--dsw-alias-fill-tertiary,rgba(127,127,127,.12));overflow:hidden}.codingns4dsh-magpie-context-cache-track span{display:block;height:100%;background:#8bcfae;border-radius:inherit}.codingns4dsh-magpie-context-model{display:flex;justify-content:space-between;gap:8px;color:${dshThemeColor.labelSecondary};font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-model button{border:0;background:transparent;color:${dshThemeColor.labelTertiary};font-size:20px;line-height:18px;cursor:pointer}
238
+ .codingns4dsh-magpie-context-treemap{display:flex;min-height:168px;gap:4px;margin:8px 0 10px}.codingns4dsh-magpie-context-block{min-width:0;display:flex;flex-direction:column;justify-content:flex-start;padding:9px 10px;border:1px solid color-mix(in srgb,var(--codingns-magpie-part-color) 25%,transparent);border-radius:8px;background:color-mix(in srgb,var(--codingns-magpie-part-color) 9%,transparent);color:var(--codingns-magpie-part-color);overflow:hidden}.codingns4dsh-magpie-context-block strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:${uiFontSize(12)}}.codingns4dsh-magpie-context-block span{font-size:${uiFontSize(11)};color:${dshThemeColor.labelTertiary};font-variant-numeric:tabular-nums}
239
+ .codingns4dsh-magpie-context-legend{display:flex;flex-wrap:wrap;gap:5px 13px;border-bottom:1px solid ${dshThemeColor.fieldBorder};padding-bottom:10px}.codingns4dsh-magpie-context-legend button,.codingns4dsh-magpie-context-tabs button{border:0;background:transparent;color:${dshThemeColor.labelSecondary};cursor:pointer;padding:3px 0;font-size:${uiFontSize(11)};font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-legend button.is-active,.codingns4dsh-magpie-context-tabs button.is-active{color:${dshThemeColor.labelPrimary};font-weight:700}.codingns4dsh-magpie-context-legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:2px}
240
+ .codingns4dsh-magpie-context-content-heading{display:flex;justify-content:space-between;align-items:center;margin-top:13px;font-size:${uiFontSize(13)}}.codingns4dsh-magpie-context-content-heading span{color:${dshThemeColor.labelTertiary};font-size:${uiFontSize(11)}}.codingns4dsh-magpie-context-tabs{display:flex;gap:13px;overflow:auto;margin:8px 0 2px;border-bottom:1px solid ${dshThemeColor.fieldBorder}}.codingns4dsh-magpie-context-list{display:flex;flex-direction:column;min-height:60px}.codingns4dsh-magpie-context-row{display:grid;grid-template-columns:minmax(90px,1.1fr) minmax(70px,.7fr) minmax(100px,1fr) 52px;gap:9px;align-items:center;min-height:27px;border-bottom:1px solid color-mix(in srgb,currentColor 7%,transparent)}.codingns4dsh-magpie-context-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.codingns4dsh-magpie-context-row-tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:${dshThemeColor.labelTertiary};font-size:${uiFontSize(10)}}.codingns4dsh-magpie-context-row-bar{height:5px;border-radius:99px;background:var(--dsw-alias-fill-tertiary,rgba(127,127,127,.12));overflow:hidden}.codingns4dsh-magpie-context-row-bar i{display:block;height:100%;border-radius:inherit}.codingns4dsh-magpie-context-row-value{text-align:right;color:${dshThemeColor.labelSecondary};font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-empty{padding:22px;text-align:center;color:${dshThemeColor.labelTertiary}}
241
+ .codingns4dsh-magpie-context-session{display:flex;justify-content:space-between;gap:10px;margin-top:13px;color:${dshThemeColor.labelTertiary};font-size:${uiFontSize(11)};font-variant-numeric:tabular-nums}.codingns4dsh-magpie-context-breadcrumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.codingns4dsh-magpie-context-rounds{display:flex;flex-direction:column;gap:3px;margin-top:7px}.codingns4dsh-magpie-context-round{display:grid;grid-template-columns:75px minmax(80px,1fr) 50px;gap:8px;align-items:center;color:${dshThemeColor.labelTertiary};font-size:${uiFontSize(10)}}.codingns4dsh-magpie-context-round i{height:4px;border-radius:99px;background:var(--dsw-alias-fill-tertiary,rgba(127,127,127,.12));overflow:hidden}.codingns4dsh-magpie-context-round b{display:block;height:100%;border-radius:inherit;background:#4f46d8}.codingns4dsh-magpie-context-round>span:last-child{text-align:right;font-variant-numeric:tabular-nums}
242
+ @media (max-width:640px){.codingns4dsh-magpie-context-panel{padding:13px 12px 10px}.codingns4dsh-magpie-context-heading{grid-template-columns:1fr 1fr;gap:10px}.codingns4dsh-magpie-context-model{grid-column:1 / -1}.codingns4dsh-magpie-context-treemap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,54px)}.codingns4dsh-magpie-context-block{flex:initial!important}.codingns4dsh-magpie-context-row{grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) 52px}.codingns4dsh-magpie-context-row-tag{display:none}.codingns4dsh-magpie-context-session{display:block}.codingns4dsh-magpie-context-session>span{display:block;margin-top:3px}}
243
+ @media (prefers-reduced-motion:reduce){.codingns4dsh-magpie-context-panel{transition:none}}
244
+ `;
245
+ document.head.appendChild(style);
246
+ return null;
247
+ }
248
+ function formatTokens(value) {
249
+ if (value < 1_000)
250
+ return String(Math.round(value));
251
+ if (value < 1_000_000)
252
+ return `${trimDecimal(value / 1_000)}K`;
253
+ return `${trimDecimal(value / 1_000_000)}M`;
254
+ }
255
+ function trimDecimal(value) {
256
+ return (value >= 100 ? Math.round(value) : Math.round(value * 10) / 10).toString();
257
+ }
258
+ function labelFor(kind, t) {
259
+ return t(PART_LABEL_KEYS[kind]);
260
+ }
261
+ function emptyPart(kind) {
262
+ return { kind, tokens: 0, items: [] };
263
+ }
264
+ function displayItemName(name, kind, count, t) {
265
+ if (kind === 'chat' && name === 'earlier')
266
+ return t('magpie.context.earlierRounds', { count: count ?? 0 });
267
+ if (kind === 'chat' && /^\d+$/u.test(name))
268
+ return t('magpie.context.round', { count: name });
269
+ return name;
270
+ }
271
+ function truncate(value) {
272
+ return value.length > 24 ? `${value.slice(0, 24)}…` : value;
273
+ }
274
+ //# sourceMappingURL=magpie-context-meter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magpie-context-meter.js","sourceRoot":"","sources":["../../../../src/client/magpie-context-meter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { MagpieContextSession } from '../shared/contracts/magpie-management.js';
2
+ import type { CodingNsRpcClient } from './features/types.js';
3
+ export type MagpieContextState = {
4
+ readonly status: 'idle' | 'loading';
5
+ } | {
6
+ readonly status: 'ready';
7
+ readonly value: MagpieContextSession;
8
+ } | {
9
+ readonly status: 'native' | 'error';
10
+ };
11
+ export declare class MagpieContextStore {
12
+ private readonly rpc;
13
+ private readonly sessionId;
14
+ private readonly listeners;
15
+ private state;
16
+ private request;
17
+ private timer;
18
+ private polling;
19
+ constructor(rpc: CodingNsRpcClient, sessionId: string);
20
+ getSnapshot: () => MagpieContextState;
21
+ getServerSnapshot: () => MagpieContextState;
22
+ subscribe: (listener: () => void) => (() => void);
23
+ setPolling(enabled: boolean): void;
24
+ refresh(): Promise<void>;
25
+ private load;
26
+ private schedulePoll;
27
+ private stopPolling;
28
+ private setState;
29
+ }
30
+ export declare function getMagpieContextStore(rpc: CodingNsRpcClient, sessionId: string): MagpieContextStore;
31
+ export declare function useMagpieContext(rpc: CodingNsRpcClient | undefined, sessionId: string | undefined): MagpieContextState;
32
+ //# sourceMappingURL=magpie-context-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magpie-context-store.d.ts","sourceRoot":"","sources":["../../../../src/client/magpie-context-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG5D,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAA;AAY3C,qBAAa,kBAAkB;IAOjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAqB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN/E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,OAAO,CAAQ;gBAEM,GAAG,EAAE,iBAAiB,EAAmB,SAAS,EAAE,MAAM;IAEvF,WAAW,QAAO,kBAAkB,CAAc;IAClD,iBAAiB,QAAO,kBAAkB,CAAc;IAExD,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAO/C;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIV,IAAI;IAyBlB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,QAAQ;CAKjB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,CAanG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAKtH"}
@@ -0,0 +1,165 @@
1
+ import { useSyncExternalStore } from 'react';
2
+ import { callCodingNsRpcResult } from './rpc-call.js';
3
+ const POLL_INTERVAL_MS = 3_000;
4
+ const IDLE_STATE = { status: 'idle' };
5
+ const NATIVE_STATE = { status: 'native' };
6
+ const stores = new WeakMap();
7
+ const EMPTY_STORE = {
8
+ subscribe: () => () => undefined,
9
+ getSnapshot: () => NATIVE_STATE,
10
+ getServerSnapshot: () => NATIVE_STATE,
11
+ };
12
+ export class MagpieContextStore {
13
+ rpc;
14
+ sessionId;
15
+ listeners = new Set();
16
+ state = IDLE_STATE;
17
+ request;
18
+ timer;
19
+ polling = false;
20
+ constructor(rpc, sessionId) {
21
+ this.rpc = rpc;
22
+ this.sessionId = sessionId;
23
+ }
24
+ getSnapshot = () => this.state;
25
+ getServerSnapshot = () => IDLE_STATE;
26
+ subscribe = (listener) => {
27
+ this.listeners.add(listener);
28
+ if (this.listeners.size === 1)
29
+ void this.load(false);
30
+ return () => {
31
+ this.listeners.delete(listener);
32
+ if (this.listeners.size === 0)
33
+ this.stopPolling();
34
+ };
35
+ };
36
+ setPolling(enabled) {
37
+ this.polling = enabled;
38
+ if (!enabled) {
39
+ this.stopPolling();
40
+ return;
41
+ }
42
+ this.schedulePoll();
43
+ }
44
+ refresh() {
45
+ return this.load(true);
46
+ }
47
+ async load(force) {
48
+ if (this.request !== undefined)
49
+ return this.request;
50
+ if (!force && this.state.status === 'ready')
51
+ return;
52
+ // Keep a good snapshot mounted while a poll is in flight. Only the first
53
+ // read needs a loading state; replacing ready with loading makes the
54
+ // native ContextMeter disappear on every refresh.
55
+ if (this.state.status !== 'ready')
56
+ this.setState({ status: 'loading' });
57
+ const request = callCodingNsRpcResult(this.rpc, 'magpie/context', { sessionId: this.sessionId })
58
+ .then((result) => {
59
+ if (!result.ok) {
60
+ if (this.state.status !== 'ready')
61
+ this.setState({ status: 'error' });
62
+ return;
63
+ }
64
+ const value = readMagpieContextSession(result.value);
65
+ this.setState(value === null ? NATIVE_STATE : { status: 'ready', value });
66
+ })
67
+ .catch(() => { if (this.state.status !== 'ready')
68
+ this.setState({ status: 'error' }); })
69
+ .finally(() => {
70
+ if (this.request === request)
71
+ this.request = undefined;
72
+ this.schedulePoll();
73
+ });
74
+ this.request = request;
75
+ return request;
76
+ }
77
+ schedulePoll() {
78
+ if (!this.polling || this.listeners.size === 0 || this.timer !== undefined)
79
+ return;
80
+ this.timer = setTimeout(() => {
81
+ this.timer = undefined;
82
+ void this.load(true);
83
+ }, POLL_INTERVAL_MS);
84
+ }
85
+ stopPolling() {
86
+ if (this.timer !== undefined)
87
+ clearTimeout(this.timer);
88
+ this.timer = undefined;
89
+ }
90
+ setState(next) {
91
+ if (sameState(this.state, next))
92
+ return;
93
+ this.state = next;
94
+ for (const listener of [...this.listeners])
95
+ listener();
96
+ }
97
+ }
98
+ export function getMagpieContextStore(rpc, sessionId) {
99
+ const normalized = sessionId.trim();
100
+ let bySession = stores.get(rpc);
101
+ if (bySession === undefined) {
102
+ bySession = new Map();
103
+ stores.set(rpc, bySession);
104
+ }
105
+ let store = bySession.get(normalized);
106
+ if (store === undefined) {
107
+ store = new MagpieContextStore(rpc, normalized);
108
+ bySession.set(normalized, store);
109
+ }
110
+ return store;
111
+ }
112
+ export function useMagpieContext(rpc, sessionId) {
113
+ const store = rpc === undefined || sessionId === undefined || sessionId.trim() === ''
114
+ ? EMPTY_STORE
115
+ : getMagpieContextStore(rpc, sessionId);
116
+ return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getServerSnapshot);
117
+ }
118
+ function readMagpieContextSession(value) {
119
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
120
+ return null;
121
+ const record = value;
122
+ return typeof record.agent === 'string'
123
+ && typeof record.key === 'string'
124
+ && typeof record.model === 'string'
125
+ && Number.isSafeInteger(record.usedTokens)
126
+ && Number.isSafeInteger(record.contextWindow)
127
+ && Array.isArray(record.parts)
128
+ ? value
129
+ : null;
130
+ }
131
+ function sameState(left, right) {
132
+ if (left.status !== right.status)
133
+ return false;
134
+ return left.status === 'ready' && right.status === 'ready' ? sameContextSession(left.value, right.value) : true;
135
+ }
136
+ function sameContextSession(left, right) {
137
+ if (left.agent !== right.agent || left.key !== right.key || left.title !== right.title
138
+ || left.model !== right.model || left.requests !== right.requests || left.turns !== right.turns
139
+ || left.usedTokens !== right.usedTokens || left.contextWindow !== right.contextWindow
140
+ || left.cacheTokens !== right.cacheTokens || left.cacheRate !== right.cacheRate
141
+ || left.compacts !== right.compacts || left.latestId !== right.latestId
142
+ || left.parts.length !== right.parts.length || left.points.length !== right.points.length)
143
+ return false;
144
+ for (let index = 0; index < left.parts.length; index += 1) {
145
+ const a = left.parts[index];
146
+ const b = right.parts[index];
147
+ if (a.kind !== b.kind || a.tokens !== b.tokens || a.items.length !== b.items.length)
148
+ return false;
149
+ for (let itemIndex = 0; itemIndex < a.items.length; itemIndex += 1) {
150
+ const item = a.items[itemIndex];
151
+ const other = b.items[itemIndex];
152
+ if (item.name !== other.name || item.tag !== other.tag || item.count !== other.count || item.tokens !== other.tokens)
153
+ return false;
154
+ }
155
+ }
156
+ for (let index = 0; index < left.points.length; index += 1) {
157
+ const point = left.points[index];
158
+ const other = right.points[index];
159
+ if (point.id !== other.id || point.time !== other.time || point.tokens !== other.tokens
160
+ || point.window !== other.window || point.cacheTokens !== other.cacheTokens)
161
+ return false;
162
+ }
163
+ return true;
164
+ }
165
+ //# sourceMappingURL=magpie-context-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magpie-context-store.js","sourceRoot":"","sources":["../../../../src/client/magpie-context-store.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ export declare const MAGPIE_MODEL_TAG_ATTRIBUTE = "data-codingns-magpie-model-ta
10
10
  */
11
11
  export declare function magpieModelLogoUrl(): string;
12
12
  /** Compact visual source marker shared by every model-list surface. */
13
- export declare function MagpieModelTag(): ReactElement;
13
+ export declare function MagpieModelTag(props: {
14
+ readonly providerId?: string | undefined;
15
+ }): ReactElement;
14
16
  /** Native DSH owns its menu DOM, so its option rows receive the same badge imperatively. */
15
- export declare function createMagpieModelTagNode(document: Document, modelId?: string): HTMLSpanElement;
17
+ export declare function createMagpieModelTagNode(document: Document, modelId?: string, providerId?: string): HTMLSpanElement;
16
18
  //# sourceMappingURL=magpie-model-tag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"magpie-model-tag.d.ts","sourceRoot":"","sources":["../../../../src/client/magpie-model-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAIxD,eAAO,MAAM,0BAA0B,mCAAmC,CAAA;AAE1E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAuBD,uEAAuE;AACvE,wBAAgB,cAAc,IAAI,YAAY,CAQ7C;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAe9F"}
1
+ {"version":3,"file":"magpie-model-tag.d.ts","sourceRoot":"","sources":["../../../../src/client/magpie-model-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAIxD,eAAO,MAAM,0BAA0B,mCAAmC,CAAA;AAE1E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAiCD,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,YAAY,CAShG;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,CAsBnH"}