@eddyskywalker/dsh-chatgpt-subscription 0.31.0 → 0.33.0

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 (131) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +112 -1
  3. package/lib/client.js +34731 -3832
  4. package/lib/client.js.map +1 -1
  5. package/lib/index.js +12922 -2851
  6. package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts +20 -0
  7. package/lib/types/client/cline-pass/ClinePassComposerQuota.d.ts.map +1 -0
  8. package/lib/types/client/cline-pass/ClinePassSection.d.ts +17 -0
  9. package/lib/types/client/cline-pass/ClinePassSection.d.ts.map +1 -0
  10. package/lib/types/client/cline-pass/api.d.ts +84 -0
  11. package/lib/types/client/cline-pass/api.d.ts.map +1 -0
  12. package/lib/types/client/cline-pass/locales.d.ts +1025 -0
  13. package/lib/types/client/cline-pass/locales.d.ts.map +1 -0
  14. package/lib/types/client/cline-pass/styles.d.ts +7 -0
  15. package/lib/types/client/cline-pass/styles.d.ts.map +1 -0
  16. package/lib/types/client/hub/brand-icons.d.ts +18 -2
  17. package/lib/types/client/hub/brand-icons.d.ts.map +1 -1
  18. package/lib/types/client/hub/hub-styles.d.ts.map +1 -1
  19. package/lib/types/client/hub/providers.d.ts.map +1 -1
  20. package/lib/types/client/index.d.ts +4 -0
  21. package/lib/types/client/index.d.ts.map +1 -1
  22. package/lib/types/client/mermaid/renderer.d.ts +23 -0
  23. package/lib/types/client/mermaid/renderer.d.ts.map +1 -1
  24. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts +31 -14
  25. package/lib/types/client/minimax-code/MinimaxVideoDocumentBody.d.ts.map +1 -1
  26. package/lib/types/client/minimax-code/MinimaxVideoToolView.d.ts.map +1 -1
  27. package/lib/types/client/minimax-code/VideoFormDialog.d.ts +46 -50
  28. package/lib/types/client/minimax-code/VideoFormDialog.d.ts.map +1 -1
  29. package/lib/types/client/minimax-code/locales.d.ts +80 -20
  30. package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
  31. package/lib/types/client/minimax-code/styles.d.ts.map +1 -1
  32. package/lib/types/client/minimax-code/video-command-host.d.ts +17 -11
  33. package/lib/types/client/minimax-code/video-command-host.d.ts.map +1 -1
  34. package/lib/types/client/minimax-code/video-command-icon.d.ts +38 -0
  35. package/lib/types/client/minimax-code/video-command-icon.d.ts.map +1 -0
  36. package/lib/types/client/minimax-code/video-command.d.ts +53 -59
  37. package/lib/types/client/minimax-code/video-command.d.ts.map +1 -1
  38. package/lib/types/client/minimax-code/video-contract.d.ts +36 -0
  39. package/lib/types/client/minimax-code/video-contract.d.ts.map +1 -1
  40. package/lib/types/client/minimax-code/video-media-dropzone.d.ts +57 -0
  41. package/lib/types/client/minimax-code/video-media-dropzone.d.ts.map +1 -0
  42. package/lib/types/client/minimax-code/video-media-input.d.ts +173 -0
  43. package/lib/types/client/minimax-code/video-media-input.d.ts.map +1 -0
  44. package/lib/types/client/minimax-code/video-presets.d.ts +67 -0
  45. package/lib/types/client/minimax-code/video-presets.d.ts.map +1 -0
  46. package/lib/types/client/minimax-code/video-slots.d.ts +58 -5
  47. package/lib/types/client/minimax-code/video-slots.d.ts.map +1 -1
  48. package/lib/types/client/minimax-code/video-workspace.d.ts +41 -0
  49. package/lib/types/client/minimax-code/video-workspace.d.ts.map +1 -0
  50. package/lib/types/client/progress-updates/markdown-lite.d.ts +19 -6
  51. package/lib/types/client/progress-updates/markdown-lite.d.ts.map +1 -1
  52. package/lib/types/client/qoder/QoderComposerQuota.d.ts +41 -0
  53. package/lib/types/client/qoder/QoderComposerQuota.d.ts.map +1 -0
  54. package/lib/types/client/qoder/QoderSection.d.ts +26 -0
  55. package/lib/types/client/qoder/QoderSection.d.ts.map +1 -0
  56. package/lib/types/client/qoder/api.d.ts +4 -0
  57. package/lib/types/client/qoder/api.d.ts.map +1 -0
  58. package/lib/types/client/qoder/locales.d.ts +310 -0
  59. package/lib/types/client/qoder/locales.d.ts.map +1 -0
  60. package/lib/types/client/qoder/styles.d.ts +16 -0
  61. package/lib/types/client/qoder/styles.d.ts.map +1 -0
  62. package/lib/types/client/qoder/useQoderSection.d.ts +97 -0
  63. package/lib/types/client/qoder/useQoderSection.d.ts.map +1 -0
  64. package/lib/types/host/antigravity/adapter.d.ts.map +1 -1
  65. package/lib/types/host/cline-pass/account-pool.d.ts +63 -0
  66. package/lib/types/host/cline-pass/account-pool.d.ts.map +1 -0
  67. package/lib/types/host/cline-pass/adapter.d.ts +49 -0
  68. package/lib/types/host/cline-pass/adapter.d.ts.map +1 -0
  69. package/lib/types/host/cline-pass/catalog.d.ts +49 -0
  70. package/lib/types/host/cline-pass/catalog.d.ts.map +1 -0
  71. package/lib/types/host/cline-pass/client.d.ts +118 -0
  72. package/lib/types/host/cline-pass/client.d.ts.map +1 -0
  73. package/lib/types/host/cline-pass/engine.d.ts +223 -0
  74. package/lib/types/host/cline-pass/engine.d.ts.map +1 -0
  75. package/lib/types/host/cline-pass/line.d.ts +55 -0
  76. package/lib/types/host/cline-pass/line.d.ts.map +1 -0
  77. package/lib/types/host/cline-pass/mapper.d.ts +112 -0
  78. package/lib/types/host/cline-pass/mapper.d.ts.map +1 -0
  79. package/lib/types/host/cline-pass/oauth.d.ts +134 -0
  80. package/lib/types/host/cline-pass/oauth.d.ts.map +1 -0
  81. package/lib/types/host/cline-pass/protocol.d.ts +186 -0
  82. package/lib/types/host/cline-pass/protocol.d.ts.map +1 -0
  83. package/lib/types/host/cline-pass/routes.d.ts +71 -0
  84. package/lib/types/host/cline-pass/routes.d.ts.map +1 -0
  85. package/lib/types/host/cline-pass/store.d.ts +97 -0
  86. package/lib/types/host/cline-pass/store.d.ts.map +1 -0
  87. package/lib/types/host/cline-pass/token-store.d.ts +168 -0
  88. package/lib/types/host/cline-pass/token-store.d.ts.map +1 -0
  89. package/lib/types/host/cline-pass/tools.d.ts +21 -0
  90. package/lib/types/host/cline-pass/tools.d.ts.map +1 -0
  91. package/lib/types/host/cline-pass/types.d.ts +168 -0
  92. package/lib/types/host/cline-pass/types.d.ts.map +1 -0
  93. package/lib/types/host/common/model-request-control.d.ts +1 -1
  94. package/lib/types/host/common/model-request-control.d.ts.map +1 -1
  95. package/lib/types/host/common/request-diagnostics.d.ts +1 -1
  96. package/lib/types/host/common/request-diagnostics.d.ts.map +1 -1
  97. package/lib/types/host/kimi-code/adapter.d.ts +3 -1
  98. package/lib/types/host/kimi-code/adapter.d.ts.map +1 -1
  99. package/lib/types/host/kimi-code/mapper.d.ts.map +1 -1
  100. package/lib/types/host/qoder/account-pool.d.ts +137 -0
  101. package/lib/types/host/qoder/account-pool.d.ts.map +1 -0
  102. package/lib/types/host/qoder/adapter.d.ts +134 -0
  103. package/lib/types/host/qoder/adapter.d.ts.map +1 -0
  104. package/lib/types/host/qoder/adopt.d.ts +146 -0
  105. package/lib/types/host/qoder/adopt.d.ts.map +1 -0
  106. package/lib/types/host/qoder/client.d.ts +189 -0
  107. package/lib/types/host/qoder/client.d.ts.map +1 -0
  108. package/lib/types/host/qoder/cosy.d.ts +173 -0
  109. package/lib/types/host/qoder/cosy.d.ts.map +1 -0
  110. package/lib/types/host/qoder/mapper.d.ts +235 -0
  111. package/lib/types/host/qoder/mapper.d.ts.map +1 -0
  112. package/lib/types/host/qoder/model-catalog.d.ts +185 -0
  113. package/lib/types/host/qoder/model-catalog.d.ts.map +1 -0
  114. package/lib/types/host/qoder/oauth.d.ts +134 -0
  115. package/lib/types/host/qoder/oauth.d.ts.map +1 -0
  116. package/lib/types/host/qoder/routes.d.ts +96 -0
  117. package/lib/types/host/qoder/routes.d.ts.map +1 -0
  118. package/lib/types/host/qoder/token-store.d.ts +231 -0
  119. package/lib/types/host/qoder/token-store.d.ts.map +1 -0
  120. package/lib/types/host/qoder/types.d.ts +257 -0
  121. package/lib/types/host/qoder/types.d.ts.map +1 -0
  122. package/lib/types/host/workbuddy/adapter.d.ts.map +1 -1
  123. package/lib/types/host/workbuddy/mapper.d.ts +1 -0
  124. package/lib/types/host/workbuddy/mapper.d.ts.map +1 -1
  125. package/lib/types/index.d.ts +17 -0
  126. package/lib/types/index.d.ts.map +1 -1
  127. package/lib/types/shared/cline-pass-contracts.d.ts +267 -0
  128. package/lib/types/shared/cline-pass-contracts.d.ts.map +1 -0
  129. package/lib/types/shared/qoder-contracts.d.ts +293 -0
  130. package/lib/types/shared/qoder-contracts.d.ts.map +1 -0
  131. package/package.json +2 -1
@@ -0,0 +1,20 @@
1
+ import type { ModelDirectoryState } from '@deepseek-ai/dsh-client-ui-model-selection/client';
2
+ import type { SnapshotStore } from '../store.ts';
3
+ import { type ComposerQuotaFacts } from '../common/ComposerQuotaBadge.tsx';
4
+ import type { ClinePassWebStatus } from '../../shared/cline-pass-contracts.ts';
5
+ export interface ClinePassComposerQuotaProps {
6
+ directory: SnapshotStore<ModelDirectoryState>;
7
+ loadModelDirectory(): void;
8
+ }
9
+ /**
10
+ * The composer badge for this line.
11
+ *
12
+ * Quota follows the ACCOUNT, and a pool has several. The badge therefore shows
13
+ * the most-consumed window across the accounts the host has already read, which
14
+ * is the one that will stop the next request first; it never triggers a quota
15
+ * read of its own, so a poll cannot fan out one upstream call per account.
16
+ */
17
+ export declare function ClinePassComposerQuota(props: ClinePassComposerQuotaProps): React.JSX.Element;
18
+ /** The line's own number picker, exported so a test can pin the rule. */
19
+ export declare function selectClinePassFacts(status: ClinePassWebStatus | null, _modelId?: string): ComposerQuotaFacts | null;
20
+ //# sourceMappingURL=ClinePassComposerQuota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClinePassComposerQuota.d.ts","sourceRoot":"","sources":["../../../../src/client/cline-pass/ClinePassComposerQuota.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAM9E,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC7C,kBAAkB,IAAI,IAAI,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAS5F;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,GAAG,IAAI,EACjC,QAAQ,CAAC,EAAE,MAAM,GAChB,kBAAkB,GAAG,IAAI,CAe3B"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ onModelChange?: () => void;
4
+ loadModelDirectory?: () => void;
5
+ }
6
+ /**
7
+ * The Cline Pass tab.
8
+ *
9
+ * The account card, its badges and the rotation picker are the shared
10
+ * {@link AccountPoolSection}, so this line looks like every other provider tab
11
+ * by construction. What is written here is only what is genuinely Cline Pass's:
12
+ * pasting a key, the upstream channel panel, the official quota windows and the
13
+ * in-process request history.
14
+ */
15
+ export declare function ClinePassSection(props: Props): React.ReactElement;
16
+ export {};
17
+ //# sourceMappingURL=ClinePassSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClinePassSection.d.ts","sourceRoot":"","sources":["../../../../src/client/cline-pass/ClinePassSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAsBxE,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;CAChC;AAsDD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAsyBjE"}
@@ -0,0 +1,84 @@
1
+ import { type ClinePassAccountAction, type ClinePassAuthResult, type ClinePassHistoryRowDto, type ClinePassLoginFlowDto, type ClinePassProbeResultDto, type ClinePassSettingsUpdateDto, type ClinePassTestResultDto, type ClinePassUsageDto, type ClinePassValidateResultDto, type ClinePassWebStatus } from '../../shared/cline-pass-contracts.ts';
2
+ /** What one pin write answers with. */
3
+ export interface ClinePassPinResult {
4
+ pin: {
5
+ upstreams: string[];
6
+ exclude: string[];
7
+ pinMode: 'strict' | 'preferred';
8
+ sort: string;
9
+ };
10
+ warnings: string[];
11
+ status: ClinePassWebStatus;
12
+ }
13
+ /**
14
+ * The Cline Pass settings API, as the card uses it.
15
+ *
16
+ * Deliberately the same envelope and the same fetch shape every other provider
17
+ * section uses, so the shared account-pool card and this helper read alike.
18
+ */
19
+ export declare class ClinePassApi {
20
+ status(): Promise<ClinePassWebStatus>;
21
+ updateSettings(patch: ClinePassSettingsUpdateDto): Promise<ClinePassWebStatus>;
22
+ accountAction(action: ClinePassAccountAction, body?: {
23
+ accountId?: string;
24
+ alias?: string;
25
+ strategy?: string;
26
+ apiKey?: string;
27
+ baseURL?: string;
28
+ }): Promise<ClinePassWebStatus>;
29
+ /** Verify a key without storing it; the host answers the verdict directly. */
30
+ testKey(body: {
31
+ apiKey?: string;
32
+ accountId?: string;
33
+ baseURL?: string;
34
+ }): Promise<ClinePassAuthResult>;
35
+ /** Start the Cline device-code sign-in. */
36
+ startLogin(): Promise<ClinePassLoginFlowDto>;
37
+ /** One poll of the pending sign-in; the host throttles it to WorkOS's interval. */
38
+ loginStatus(id: string): Promise<ClinePassLoginFlowDto>;
39
+ cancelLogin(id: string): Promise<{
40
+ cancelled: boolean;
41
+ }>;
42
+ setEnabledModels(enabledModelIds: string[] | null): Promise<ClinePassWebStatus>;
43
+ setContextWindow(model: string, contextWindow: number | null): Promise<ClinePassWebStatus>;
44
+ pinModel(model: string, pin: {
45
+ upstreams?: string[];
46
+ exclude?: string[];
47
+ pinMode?: string;
48
+ sort?: string;
49
+ }): Promise<ClinePassPinResult>;
50
+ resetPin(model: string): Promise<{
51
+ status: ClinePassWebStatus;
52
+ }>;
53
+ probe(model: string): Promise<{
54
+ result: ClinePassProbeResultDto;
55
+ status: ClinePassWebStatus;
56
+ }>;
57
+ validate(model: string): Promise<{
58
+ result: ClinePassValidateResultDto;
59
+ status: ClinePassWebStatus;
60
+ }>;
61
+ test(model: string, pin?: {
62
+ upstreams?: string[];
63
+ exclude?: string[];
64
+ }): Promise<{
65
+ result: ClinePassTestResultDto;
66
+ status: ClinePassWebStatus;
67
+ }>;
68
+ setVisibility(model: string, visible: boolean): Promise<ClinePassWebStatus>;
69
+ setVisibilityAll(mode: 'all' | 'none' | 'invert'): Promise<ClinePassWebStatus>;
70
+ refreshCatalog(): Promise<{
71
+ added: string[];
72
+ sources: string[];
73
+ status: ClinePassWebStatus;
74
+ }>;
75
+ readUsage(): Promise<{
76
+ usage: ClinePassUsageDto;
77
+ status: ClinePassWebStatus;
78
+ }>;
79
+ history(limit?: number, model?: string): Promise<{
80
+ total: number;
81
+ entries: ClinePassHistoryRowDto[];
82
+ }>;
83
+ }
84
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/client/cline-pass/api.ts"],"names":[],"mappings":"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"}