dsh-llm-ustc 0.2.0 → 0.3.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.
- package/README.md +17 -8
- package/lib/adapter.js +28 -24
- package/lib/adapter.js.map +1 -1
- package/lib/client.js +256 -125
- package/lib/config.js +7 -4
- package/lib/config.js.map +1 -1
- package/lib/constants.js +3 -2
- package/lib/constants.js.map +1 -1
- package/lib/index.js +25 -17
- package/lib/index.js.map +1 -1
- package/lib/model-catalog.js +5 -9
- package/lib/model-catalog.js.map +1 -1
- package/lib/state.js +9 -9
- package/lib/state.js.map +1 -1
- package/lib/tokenworks.js +379 -0
- package/lib/tokenworks.js.map +1 -0
- package/lib/types/adapter.d.ts +3 -1
- package/lib/types/adapter.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +24 -6
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/config.d.ts +16 -3
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/constants.d.ts +3 -2
- package/lib/types/constants.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/model-catalog.d.ts +2 -3
- package/lib/types/model-catalog.d.ts.map +1 -1
- package/lib/types/state.d.ts +1 -1
- package/lib/types/state.d.ts.map +1 -1
- package/lib/types/tokenworks.d.ts +44 -0
- package/lib/types/tokenworks.d.ts.map +1 -0
- package/lib/types/web.d.ts +23 -1
- package/lib/types/web.d.ts.map +1 -1
- package/lib/web.js +80 -51
- package/lib/web.js.map +1 -1
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +63 -43
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EACL,UAAU,EAIV,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAW7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAatD,qBAAa,WAAY,SAAQ,UAAU;IAKvC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAPhC,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4F;gBAG9F,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC;IAK9C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAK5D,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAKpD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IAa9D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe3E,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC;IAY5E,UAAU,IAAI,IAAI;YAIJ,eAAe;IAiB7B,OAAO,CAAC,cAAc;CAGvB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOtE"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type { ClientContext } from '@deepseek-ai/
|
|
1
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
2
2
|
declare const en: {
|
|
3
|
-
readonly title: "USTC LLM";
|
|
4
|
-
readonly intro: "Manage the USTC API credential, model catalog, and iWAN access.";
|
|
5
|
-
readonly expand: "Show settings";
|
|
6
|
-
readonly collapse: "Hide settings";
|
|
7
3
|
readonly apiKeyLabel: "USTC API Key";
|
|
4
|
+
readonly keySource: "Key source";
|
|
5
|
+
readonly manualKey: "Enter API Key";
|
|
6
|
+
readonly tokenworksKey: "Tokenworks sign-in";
|
|
7
|
+
readonly beginTokenworks: "Sign in to Tokenworks";
|
|
8
|
+
readonly awaitingLogin: "Waiting for browser sign-in...";
|
|
9
|
+
readonly cancelLogin: "Cancel sign-in";
|
|
10
|
+
readonly signedIn: "Signed in";
|
|
8
11
|
readonly apiKeyPlaceholder: "Enter a new key";
|
|
9
12
|
readonly configured: "Configured";
|
|
10
13
|
readonly readOnly: "The active credential or settings provider is read-only.";
|
|
@@ -31,6 +34,8 @@ declare const en: {
|
|
|
31
34
|
readonly models: "Model catalog";
|
|
32
35
|
readonly syncModels: "Sync models";
|
|
33
36
|
readonly syncingModels: "Syncing...";
|
|
37
|
+
readonly removeModel: "Remove model";
|
|
38
|
+
readonly modelsEmpty: "No models";
|
|
34
39
|
readonly refreshedAt: "Refreshed";
|
|
35
40
|
readonly never: "Never";
|
|
36
41
|
readonly loading: "Loading...";
|
|
@@ -53,11 +58,19 @@ interface SettingsSnapshot {
|
|
|
53
58
|
writable: boolean;
|
|
54
59
|
revision: number;
|
|
55
60
|
selectedServerId?: string;
|
|
61
|
+
keySource: 'manual' | 'tokenworks';
|
|
56
62
|
apiKey: {
|
|
57
63
|
configured: boolean;
|
|
58
64
|
source?: string;
|
|
59
65
|
writable: boolean;
|
|
60
66
|
};
|
|
67
|
+
tokenworks: {
|
|
68
|
+
configured: boolean;
|
|
69
|
+
writable: boolean;
|
|
70
|
+
pending: boolean;
|
|
71
|
+
name?: string;
|
|
72
|
+
error?: string;
|
|
73
|
+
};
|
|
61
74
|
iwan: {
|
|
62
75
|
configured: boolean;
|
|
63
76
|
source?: string;
|
|
@@ -75,18 +88,21 @@ interface OidcBegin {
|
|
|
75
88
|
authUrl: string;
|
|
76
89
|
expiresInSeconds: number;
|
|
77
90
|
}
|
|
78
|
-
type Action = 'load' | 'saveApiKey' | 'unsetApiKey' | 'beginOidc' | 'completeOidc' | 'logoutIwan' | 'refreshRoute' | 'selectServer' | 'syncModels';
|
|
91
|
+
type Action = 'load' | 'saveApiKey' | 'unsetApiKey' | 'selectKeySource' | 'beginTokenworks' | 'cancelTokenworks' | 'logoutTokenworks' | 'beginOidc' | 'completeOidc' | 'logoutIwan' | 'refreshRoute' | 'selectServer' | 'syncModels' | 'removeModel';
|
|
79
92
|
interface ViewState {
|
|
80
93
|
status: 'idle' | 'loading' | 'ready' | 'error';
|
|
81
94
|
snapshot?: SettingsSnapshot | undefined;
|
|
82
95
|
oidc?: OidcBegin | undefined;
|
|
96
|
+
tokenworksUrl?: string | undefined;
|
|
83
97
|
action?: Action | undefined;
|
|
84
98
|
error?: string | undefined;
|
|
99
|
+
errorAction?: Action | undefined;
|
|
85
100
|
}
|
|
86
101
|
export declare class UstcSettingsController {
|
|
87
102
|
private current;
|
|
88
103
|
private readonly listeners;
|
|
89
104
|
private generation;
|
|
105
|
+
private polling;
|
|
90
106
|
subscribe: (listener: () => void) => (() => void);
|
|
91
107
|
snapshot: () => ViewState;
|
|
92
108
|
private set;
|
|
@@ -95,6 +111,8 @@ export declare class UstcSettingsController {
|
|
|
95
111
|
run<T>(action: Action, request: Record<string, unknown>, apply: (value: T, state: ViewState) => ViewState): Promise<void>;
|
|
96
112
|
mutateSnapshot(action: Action, request?: Record<string, unknown>): Promise<void>;
|
|
97
113
|
beginOidc(): Promise<void>;
|
|
114
|
+
beginTokenworks(): Promise<void>;
|
|
115
|
+
pollLogin(): Promise<void>;
|
|
98
116
|
completeOidc(callbackUrl: string): Promise<void>;
|
|
99
117
|
}
|
|
100
118
|
export declare const inject: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/types/config.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
+
import type { Volatile } from '@deepseek-ai/cordis';
|
|
1
2
|
import z from '@deepseek-ai/schemastery';
|
|
2
3
|
export interface Config {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
apiKeyEnv: Volatile<string>;
|
|
5
|
+
keySource: Volatile<'manual' | 'tokenworks'>;
|
|
6
|
+
selectedServerId: Volatile<string | undefined>;
|
|
7
|
+
directRecoverySeconds: Volatile<number>;
|
|
5
8
|
}
|
|
6
|
-
export declare const Config: z<
|
|
9
|
+
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
10
|
+
apiKeyEnv: z<string, string, "volatile-defined">;
|
|
11
|
+
keySource: z<"manual" | "tokenworks", "manual" | "tokenworks", "volatile-defined">;
|
|
12
|
+
selectedServerId: z<string, string, "volatile">;
|
|
13
|
+
directRecoverySeconds: z<number, number, "volatile-defined">;
|
|
14
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
15
|
+
apiKeyEnv: z<string, string, "volatile-defined">;
|
|
16
|
+
keySource: z<"manual" | "tokenworks", "manual" | "tokenworks", "volatile-defined">;
|
|
17
|
+
selectedServerId: z<string, string, "volatile">;
|
|
18
|
+
directRecoverySeconds: z<number, number, "volatile-defined">;
|
|
19
|
+
}>>, "plain">;
|
|
7
20
|
export interface ResolvedConfig {
|
|
8
21
|
selectedServerId?: string;
|
|
9
22
|
directRecoverySeconds: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAGxC,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3B,SAAS,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAA;IAC5C,gBAAgB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CACxC;AAED,eAAO,MAAM,MAAM;;;;;;;;;;aAKjB,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAU5D"}
|
package/lib/types/constants.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ export declare const PROVIDER = "ustc";
|
|
|
2
2
|
export declare const PROVIDER_NAME = "USTC LLM";
|
|
3
3
|
export declare const SETTINGS_NS = "llm-ustc";
|
|
4
4
|
export declare const API_KEY_REF = "USTC_LLM_API_KEY";
|
|
5
|
+
export declare const TOKENWORKS_SESSION_REF = "USTC_LLM_TOKENWORKS_SESSION";
|
|
5
6
|
export declare const IWAN_CONFIG_REF = "USTC_LLM_IWAN_CONFIG";
|
|
6
|
-
export declare const DEFAULT_MODEL = "deepseek-
|
|
7
|
+
export declare const DEFAULT_MODEL = "deepseek-flash";
|
|
7
8
|
export declare const DEFAULT_CONTEXT_WINDOW = 262144;
|
|
8
9
|
export declare const DEFAULT_MAX_TOKENS = 32768;
|
|
9
10
|
export declare const HELPER_PROTOCOL = "v2";
|
|
10
|
-
export declare const SETTINGS_ROUTE = "/
|
|
11
|
+
export declare const SETTINGS_ROUTE = "/api/llm-ustc/settings";
|
|
11
12
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAS,CAAA;AAC9B,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,WAAW,aAAa,CAAA;AACrC,eAAO,MAAM,WAAW,qBAAqB,CAAA;AAC7C,eAAO,MAAM,eAAe,yBAAyB,CAAA;AACrD,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAS,CAAA;AAC9B,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,WAAW,aAAa,CAAA;AACrC,eAAO,MAAM,WAAW,qBAAqB,CAAA;AAC7C,eAAO,MAAM,sBAAsB,gCAAgC,CAAA;AACnE,eAAO,MAAM,eAAe,yBAAyB,CAAA;AACrD,eAAO,MAAM,aAAa,mBAAmB,CAAA;AAC7C,eAAO,MAAM,sBAAsB,SAAU,CAAA;AAC7C,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,eAAO,MAAM,eAAe,OAAO,CAAA;AACnC,eAAO,MAAM,cAAc,2BAA2B,CAAA"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { Config, type Config as PluginConfig } from './config.ts';
|
|
|
3
3
|
export declare const name = "dsh-llm-ustc";
|
|
4
4
|
export declare const inject: string[];
|
|
5
5
|
export { Config };
|
|
6
|
-
export declare function apply(ctx: Context, config
|
|
6
|
+
export declare function apply(ctx: Context, config: PluginConfig): Promise<() => Promise<void>>;
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAiB,KAAK,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AAQhF,eAAO,MAAM,IAAI,iBAAiB,CAAA;AAClC,eAAO,MAAM,MAAM,UAAqC,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAiC5F"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type { Context } from '@deepseek-ai/cordis';
|
|
2
1
|
import type { HelperManager } from './helper.ts';
|
|
3
2
|
import { StateStore } from './state.ts';
|
|
4
3
|
import type { CachedModel } from './types.ts';
|
|
5
4
|
export declare class ModelCatalog {
|
|
6
|
-
private readonly
|
|
5
|
+
private readonly resolveApiKey;
|
|
7
6
|
private readonly helper;
|
|
8
7
|
private readonly store;
|
|
9
|
-
constructor(
|
|
8
|
+
constructor(resolveApiKey: () => Promise<string>, helper: HelperManager, store: StateStore);
|
|
10
9
|
models(): CachedModel[];
|
|
11
10
|
refresh(signal?: AbortSignal): Promise<CachedModel[]>;
|
|
12
11
|
accept(input: readonly CachedModel[]): Promise<CachedModel[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/model-catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/model-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EACpC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU;IAKpC,MAAM,IAAI,WAAW,EAAE;IAIjB,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmBrD,MAAM,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAMpE"}
|
package/lib/types/state.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { CachedModel, PluginState } from './types.ts';
|
|
2
|
-
export declare function resolveDshHome(): string;
|
|
3
2
|
export declare class StateStore {
|
|
4
3
|
readonly filename: string;
|
|
5
4
|
private current;
|
|
@@ -9,6 +8,7 @@ export declare class StateStore {
|
|
|
9
8
|
snapshot(): PluginState;
|
|
10
9
|
models(): CachedModel[];
|
|
11
10
|
setModels(models: readonly CachedModel[]): Promise<void>;
|
|
11
|
+
removeModel(id: string): Promise<void>;
|
|
12
12
|
private persist;
|
|
13
13
|
}
|
|
14
14
|
export declare function normalizeModels(models: readonly CachedModel[]): CachedModel[];
|
package/lib/types/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM1D,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM1D,qBAAa,UAAU;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,MAAM,CAAmC;gBAErC,OAAO,SAAmB;IAIhC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,QAAQ,IAAI,WAAW;IAIvB,MAAM,IAAI,WAAW,EAAE;IAIjB,SAAS,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAK9B,OAAO;CAUtB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,EAAE,CAc7E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
export type TokenworksRequester = (url: string, init?: RequestInit) => Promise<Response>;
|
|
3
|
+
/** Only obtains a gateway key; inference still uses the existing USTC helper. */
|
|
4
|
+
export declare class TokenworksAuth {
|
|
5
|
+
private readonly ctx;
|
|
6
|
+
private readonly request;
|
|
7
|
+
private readonly publisherKey;
|
|
8
|
+
private pending;
|
|
9
|
+
private config;
|
|
10
|
+
private key;
|
|
11
|
+
private fetching;
|
|
12
|
+
private credentialWrites;
|
|
13
|
+
private generation;
|
|
14
|
+
private error;
|
|
15
|
+
private readonly ref;
|
|
16
|
+
constructor(ctx: Context, request?: TokenworksRequester, publisherKey?: string);
|
|
17
|
+
snapshot(): Promise<{
|
|
18
|
+
configured: boolean;
|
|
19
|
+
writable: boolean;
|
|
20
|
+
pending: boolean;
|
|
21
|
+
name?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
}>;
|
|
24
|
+
begin(): Promise<{
|
|
25
|
+
authUrl: string;
|
|
26
|
+
}>;
|
|
27
|
+
cancel(): void;
|
|
28
|
+
logout(): Promise<void>;
|
|
29
|
+
dispose(): void;
|
|
30
|
+
apiKey(): Promise<string>;
|
|
31
|
+
private closeLogin;
|
|
32
|
+
private complete;
|
|
33
|
+
private fetchKey;
|
|
34
|
+
private readSession;
|
|
35
|
+
private writeSession;
|
|
36
|
+
private exchange;
|
|
37
|
+
private sessionFromToken;
|
|
38
|
+
private bootstrap;
|
|
39
|
+
private loginConfig;
|
|
40
|
+
private loadLoginConfig;
|
|
41
|
+
private verifyIdToken;
|
|
42
|
+
private json;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=tokenworks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenworks.d.ts","sourceRoot":"","sources":["../../src/tokenworks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AA2ClD,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAExF,iFAAiF;AACjF,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,GAAG,CAAqE;IAChF,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwC;gBAGzC,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,mBAAmC,EAC5C,YAAY,SAAgB;IAGzC,QAAQ,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAWhH,KAAK,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D3C,MAAM,IAAI,IAAI;IAMR,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,OAAO,IAAI,IAAI;IAKT,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAS/B,OAAO,CAAC,UAAU;YAOJ,QAAQ;YAmBR,QAAQ;YAkCR,WAAW;IAMzB,OAAO,CAAC,YAAY;YASN,QAAQ;IAYtB,OAAO,CAAC,gBAAgB;YAWV,SAAS;IAqBvB,OAAO,CAAC,WAAW;YAKL,eAAe;YA2Bf,aAAa;YAoBb,IAAI;CAKnB"}
|
package/lib/types/web.d.ts
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import type { Config } from './config.ts';
|
|
2
3
|
import type { HelperManager } from './helper.ts';
|
|
3
4
|
import type { ModelCatalog } from './model-catalog.ts';
|
|
4
5
|
import { IwanAuthenticator } from './oidc.ts';
|
|
5
6
|
import type { StateStore } from './state.ts';
|
|
6
7
|
import type { PublicServer } from './types.ts';
|
|
8
|
+
import { TokenworksAuth } from './tokenworks.ts';
|
|
7
9
|
export interface SettingsSnapshot {
|
|
8
10
|
writable: boolean;
|
|
9
11
|
revision: number;
|
|
10
12
|
selectedServerId?: string;
|
|
13
|
+
keySource: 'manual' | 'tokenworks';
|
|
11
14
|
apiKey: {
|
|
12
15
|
configured: boolean;
|
|
13
16
|
source?: string;
|
|
14
17
|
writable: boolean;
|
|
15
18
|
};
|
|
19
|
+
tokenworks: {
|
|
20
|
+
configured: boolean;
|
|
21
|
+
writable: boolean;
|
|
22
|
+
pending: boolean;
|
|
23
|
+
name?: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
};
|
|
16
26
|
iwan: {
|
|
17
27
|
configured: boolean;
|
|
18
28
|
source?: string;
|
|
@@ -27,6 +37,12 @@ export interface SettingsSnapshot {
|
|
|
27
37
|
modelsUpdatedAt?: string;
|
|
28
38
|
}
|
|
29
39
|
type WebRequest = {
|
|
40
|
+
action: 'selectKeySource';
|
|
41
|
+
keySource: 'manual' | 'tokenworks';
|
|
42
|
+
expectedRevision: number;
|
|
43
|
+
} | {
|
|
44
|
+
action: 'beginTokenworks' | 'cancelTokenworks' | 'logoutTokenworks';
|
|
45
|
+
} | {
|
|
30
46
|
action: 'saveApiKey';
|
|
31
47
|
value: string;
|
|
32
48
|
} | {
|
|
@@ -47,6 +63,9 @@ type WebRequest = {
|
|
|
47
63
|
expectedRevision: number;
|
|
48
64
|
} | {
|
|
49
65
|
action: 'syncModels';
|
|
66
|
+
} | {
|
|
67
|
+
action: 'removeModel';
|
|
68
|
+
modelId: string;
|
|
50
69
|
};
|
|
51
70
|
export declare class UstcWebBackend {
|
|
52
71
|
private readonly ctx;
|
|
@@ -54,7 +73,10 @@ export declare class UstcWebBackend {
|
|
|
54
73
|
private readonly catalog;
|
|
55
74
|
private readonly store;
|
|
56
75
|
private readonly iwanAuth;
|
|
57
|
-
|
|
76
|
+
private readonly settingsId;
|
|
77
|
+
private readonly config?;
|
|
78
|
+
private readonly tokenworks;
|
|
79
|
+
constructor(ctx: Context, helper: HelperManager, catalog: ModelCatalog, store: StateStore, iwanAuth?: IwanAuthenticator, settingsId?: string, config?: Config | undefined, tokenworks?: TokenworksAuth);
|
|
58
80
|
snapshot(): Promise<SettingsSnapshot>;
|
|
59
81
|
handle(request: WebRequest): Promise<unknown>;
|
|
60
82
|
}
|
package/lib/types/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
|
package/lib/web.js
CHANGED
|
@@ -1,37 +1,48 @@
|
|
|
1
1
|
import { credentialRef } from '@deepseek-ai/dsh-credentials';
|
|
2
|
-
import { SettingsConflictError
|
|
2
|
+
import { SettingsConflictError } from '@deepseek-ai/dsh-settings';
|
|
3
3
|
import { API_KEY_REF, IWAN_CONFIG_REF, SETTINGS_NS, SETTINGS_ROUTE } from "./constants.js";
|
|
4
|
+
import { resolveConfig } from "./config.js";
|
|
4
5
|
import { parseIwanConfig, publicIwanServers } from "./iwan.js";
|
|
5
6
|
import { IwanAuthenticator } from "./oidc.js";
|
|
7
|
+
import { TokenworksAuth } from "./tokenworks.js";
|
|
6
8
|
export class UstcWebBackend {
|
|
7
9
|
ctx;
|
|
8
10
|
helper;
|
|
9
11
|
catalog;
|
|
10
12
|
store;
|
|
11
13
|
iwanAuth;
|
|
12
|
-
|
|
14
|
+
settingsId;
|
|
15
|
+
config;
|
|
16
|
+
tokenworks;
|
|
17
|
+
constructor(ctx, helper, catalog, store, iwanAuth = new IwanAuthenticator(), settingsId = SETTINGS_NS, config, tokenworks = new TokenworksAuth(ctx)) {
|
|
13
18
|
this.ctx = ctx;
|
|
14
19
|
this.helper = helper;
|
|
15
20
|
this.catalog = catalog;
|
|
16
21
|
this.store = store;
|
|
17
22
|
this.iwanAuth = iwanAuth;
|
|
23
|
+
this.settingsId = settingsId;
|
|
24
|
+
this.config = config;
|
|
25
|
+
this.tokenworks = tokenworks;
|
|
18
26
|
}
|
|
19
27
|
async snapshot() {
|
|
20
|
-
const descriptor = this.ctx.settings.describe({ redactSecrets: true }).find(row => row.ns ===
|
|
28
|
+
const descriptor = this.ctx.settings.describe({ redactSecrets: true }).find(row => row.ns === this.settingsId);
|
|
21
29
|
if (descriptor === undefined)
|
|
22
30
|
throw new Error('llm-ustc settings namespace is not registered');
|
|
23
31
|
const value = descriptor.value;
|
|
24
|
-
const [apiKey, iwan, iwanSecret] = await Promise.all([
|
|
32
|
+
const [apiKey, iwan, iwanSecret, tokenworks] = await Promise.all([
|
|
25
33
|
this.ctx.credentials.describe(credentialRef(API_KEY_REF)),
|
|
26
34
|
this.ctx.credentials.describe(credentialRef(IWAN_CONFIG_REF)),
|
|
27
35
|
this.ctx.credentials.resolve(credentialRef(IWAN_CONFIG_REF)),
|
|
36
|
+
this.tokenworks.snapshot(),
|
|
28
37
|
]);
|
|
29
38
|
const state = this.store.snapshot();
|
|
30
39
|
return {
|
|
31
40
|
writable: this.ctx.settings.writable,
|
|
32
41
|
revision: descriptor.revision,
|
|
33
42
|
...(value.selectedServerId === undefined ? {} : { selectedServerId: value.selectedServerId }),
|
|
43
|
+
keySource: value.keySource ?? 'manual',
|
|
34
44
|
apiKey: publicCredential(apiKey),
|
|
45
|
+
tokenworks: { ...tokenworks, ...(tokenworks.error === undefined ? {} : { error: publicMessage(new Error(tokenworks.error)) }) },
|
|
35
46
|
iwan: {
|
|
36
47
|
...publicCredential(iwan),
|
|
37
48
|
servers: publicIwanServers(iwanSecret?.value),
|
|
@@ -43,6 +54,20 @@ export class UstcWebBackend {
|
|
|
43
54
|
}
|
|
44
55
|
async handle(request) {
|
|
45
56
|
switch (request.action) {
|
|
57
|
+
case 'selectKeySource':
|
|
58
|
+
await this.ctx.settings.update(this.settingsId, { keySource: request.keySource }, request.expectedRevision);
|
|
59
|
+
this.tokenworks.cancel();
|
|
60
|
+
return this.snapshot();
|
|
61
|
+
case 'beginTokenworks': {
|
|
62
|
+
const login = await this.tokenworks.begin();
|
|
63
|
+
return { ...login, snapshot: await this.snapshot() };
|
|
64
|
+
}
|
|
65
|
+
case 'cancelTokenworks':
|
|
66
|
+
this.tokenworks.cancel();
|
|
67
|
+
return this.snapshot();
|
|
68
|
+
case 'logoutTokenworks':
|
|
69
|
+
await this.tokenworks.logout();
|
|
70
|
+
return this.snapshot();
|
|
46
71
|
case 'saveApiKey': {
|
|
47
72
|
const key = request.value.trim();
|
|
48
73
|
if (key.length === 0)
|
|
@@ -64,8 +89,10 @@ export class UstcWebBackend {
|
|
|
64
89
|
return { servers: publicIwanServers(JSON.stringify(config)), snapshot: await this.snapshot() };
|
|
65
90
|
}
|
|
66
91
|
case 'logoutIwan':
|
|
67
|
-
await this.ctx.settings.mutate(
|
|
92
|
+
await this.ctx.settings.mutate(this.settingsId, [{ op: 'unset', path: ['selectedServerId'] }], request.expectedRevision);
|
|
68
93
|
await this.ctx.credentials.unset(credentialRef(IWAN_CONFIG_REF));
|
|
94
|
+
if (this.config !== undefined)
|
|
95
|
+
this.helper.reconfigure(resolveConfig(this.config));
|
|
69
96
|
await this.helper.stop();
|
|
70
97
|
return this.snapshot();
|
|
71
98
|
case 'refreshRoute': {
|
|
@@ -79,88 +106,79 @@ export class UstcWebBackend {
|
|
|
79
106
|
}
|
|
80
107
|
const rollback = this.helper.stageSelectedServer(request.serverId);
|
|
81
108
|
try {
|
|
82
|
-
await this.ctx.settings.update(
|
|
109
|
+
await this.ctx.settings.update(this.settingsId, { selectedServerId: request.serverId }, request.expectedRevision);
|
|
83
110
|
}
|
|
84
111
|
catch (error) {
|
|
85
112
|
rollback();
|
|
86
113
|
throw error;
|
|
87
114
|
}
|
|
115
|
+
if (this.config !== undefined)
|
|
116
|
+
this.helper.reconfigure(resolveConfig(this.config));
|
|
88
117
|
await this.helper.refreshRoute();
|
|
89
118
|
return this.snapshot();
|
|
90
119
|
}
|
|
91
120
|
case 'syncModels':
|
|
92
121
|
await this.catalog.refresh();
|
|
93
122
|
return this.snapshot();
|
|
123
|
+
case 'removeModel':
|
|
124
|
+
await this.store.removeModel(request.modelId);
|
|
125
|
+
return this.snapshot();
|
|
94
126
|
}
|
|
95
127
|
}
|
|
96
128
|
}
|
|
97
129
|
export function installWeb(ctx, backend) {
|
|
98
|
-
ctx.inject(['
|
|
99
|
-
|
|
100
|
-
kind: 'exact',
|
|
130
|
+
ctx.inject(['connection'], connectionCtx => {
|
|
131
|
+
connectionCtx.connection.fetch.register({
|
|
101
132
|
path: SETTINGS_ROUTE,
|
|
102
|
-
|
|
133
|
+
methods: ['GET', 'POST'],
|
|
134
|
+
requestBody: 'buffered',
|
|
135
|
+
fetch: async (request) => {
|
|
103
136
|
try {
|
|
104
|
-
if (
|
|
105
|
-
return responseJson(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (!sameOriginPost(req))
|
|
109
|
-
return responseError(res, 403, 'CROSS_ORIGIN', 'cross-origin request refused');
|
|
110
|
-
const request = parseWebRequest(await readJson(req));
|
|
111
|
-
responseJson(res, 200, { ok: true, value: await backend.handle(request) });
|
|
137
|
+
if (request.method === 'GET')
|
|
138
|
+
return responseJson(200, { ok: true, value: await backend.snapshot() });
|
|
139
|
+
const input = parseWebRequest(await readJson(request));
|
|
140
|
+
return responseJson(200, { ok: true, value: await backend.handle(input) });
|
|
112
141
|
}
|
|
113
142
|
catch (error) {
|
|
114
143
|
const status = error instanceof SettingsConflictError ? 409 : error instanceof TypeError ? 400 : 500;
|
|
115
|
-
responseError(
|
|
144
|
+
return responseError(status, error instanceof SettingsConflictError ? 'SETTINGS_CONFLICT' : 'REQUEST_FAILED', publicMessage(error));
|
|
116
145
|
}
|
|
117
146
|
},
|
|
118
147
|
});
|
|
119
|
-
webCtx.effect(() => dispose, 'dsh-llm-ustc: web settings route');
|
|
120
148
|
});
|
|
121
149
|
}
|
|
122
150
|
function publicCredential(info) {
|
|
123
151
|
return { configured: info.configured, ...(info.source === undefined ? {} : { source: info.source }), writable: info.writable };
|
|
124
152
|
}
|
|
125
|
-
function responseJson(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
res.writeHead(status);
|
|
133
|
-
res.end(bytes);
|
|
153
|
+
function responseJson(status, body) {
|
|
154
|
+
return new Response(JSON.stringify(body), { status, headers: {
|
|
155
|
+
'content-type': 'application/json; charset=utf-8',
|
|
156
|
+
'cache-control': 'no-store',
|
|
157
|
+
'x-content-type-options': 'nosniff',
|
|
158
|
+
'content-security-policy': "default-src 'none'; frame-ancestors 'none'",
|
|
159
|
+
} });
|
|
134
160
|
}
|
|
135
|
-
function responseError(
|
|
136
|
-
responseJson(
|
|
137
|
-
}
|
|
138
|
-
function sameOriginPost(req) {
|
|
139
|
-
if (req.headers['sec-fetch-site'] === 'cross-site')
|
|
140
|
-
return false;
|
|
141
|
-
const origin = req.headers.origin;
|
|
142
|
-
if (origin === undefined)
|
|
143
|
-
return ['same-origin', 'same-site', 'none'].includes(req.headers['sec-fetch-site'] ?? '');
|
|
144
|
-
if (req.headers.host === undefined)
|
|
145
|
-
return false;
|
|
146
|
-
try {
|
|
147
|
-
const parsed = new URL(origin);
|
|
148
|
-
return ['http:', 'https:'].includes(parsed.protocol) && parsed.host === req.headers.host;
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
161
|
+
function responseError(status, code, message) {
|
|
162
|
+
return responseJson(status, { ok: false, error: { code, message } });
|
|
153
163
|
}
|
|
154
164
|
async function readJson(req) {
|
|
155
|
-
if (req.headers
|
|
165
|
+
if (req.headers.get('content-type')?.split(';', 1)[0]?.trim().toLowerCase() !== 'application/json')
|
|
156
166
|
throw new TypeError('Content-Type must be application/json');
|
|
167
|
+
const reader = req.body?.getReader();
|
|
168
|
+
if (reader === undefined)
|
|
169
|
+
throw new TypeError('request body is empty');
|
|
157
170
|
const parts = [];
|
|
158
171
|
let size = 0;
|
|
159
|
-
|
|
160
|
-
const
|
|
172
|
+
while (true) {
|
|
173
|
+
const { done, value } = await reader.read();
|
|
174
|
+
if (done)
|
|
175
|
+
break;
|
|
176
|
+
const bytes = Buffer.from(value);
|
|
161
177
|
size += bytes.length;
|
|
162
|
-
if (size > 64 * 1024)
|
|
178
|
+
if (size > 64 * 1024) {
|
|
179
|
+
await reader.cancel();
|
|
163
180
|
throw new TypeError('request body exceeds 65536 bytes');
|
|
181
|
+
}
|
|
164
182
|
parts.push(bytes);
|
|
165
183
|
}
|
|
166
184
|
if (parts.length === 0)
|
|
@@ -171,6 +189,10 @@ function parseWebRequest(value) {
|
|
|
171
189
|
if (!isRecord(value) || typeof value.action !== 'string')
|
|
172
190
|
throw new TypeError('request action is required');
|
|
173
191
|
switch (value.action) {
|
|
192
|
+
case 'selectKeySource':
|
|
193
|
+
if ((value.keySource !== 'manual' && value.keySource !== 'tokenworks') || !Number.isSafeInteger(value.expectedRevision))
|
|
194
|
+
throw new TypeError('keySource and expectedRevision are required');
|
|
195
|
+
return { action: value.action, keySource: value.keySource, expectedRevision: value.expectedRevision };
|
|
174
196
|
case 'saveApiKey':
|
|
175
197
|
if (typeof value.value !== 'string')
|
|
176
198
|
throw new TypeError('API Key must be a string');
|
|
@@ -179,6 +201,10 @@ function parseWebRequest(value) {
|
|
|
179
201
|
if (typeof value.callbackUrl !== 'string')
|
|
180
202
|
throw new TypeError('callbackUrl must be a string');
|
|
181
203
|
return { action: value.action, callbackUrl: value.callbackUrl };
|
|
204
|
+
case 'removeModel':
|
|
205
|
+
if (typeof value.modelId !== 'string' || !value.modelId.trim())
|
|
206
|
+
throw new TypeError('modelId is required');
|
|
207
|
+
return { action: value.action, modelId: value.modelId };
|
|
182
208
|
case 'selectServer':
|
|
183
209
|
if (typeof value.serverId !== 'string' || !Number.isSafeInteger(value.expectedRevision))
|
|
184
210
|
throw new TypeError('serverId and expectedRevision are required');
|
|
@@ -191,6 +217,9 @@ function parseWebRequest(value) {
|
|
|
191
217
|
case 'beginOidc':
|
|
192
218
|
case 'refreshRoute':
|
|
193
219
|
case 'syncModels':
|
|
220
|
+
case 'beginTokenworks':
|
|
221
|
+
case 'cancelTokenworks':
|
|
222
|
+
case 'logoutTokenworks':
|
|
194
223
|
return { action: value.action };
|
|
195
224
|
default:
|
|
196
225
|
throw new TypeError(`unsupported action: ${value.action}`);
|
package/lib/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|