dsh-connect 0.2.0 → 0.5.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 +21 -0
- package/lib/commands.d.ts +4 -1
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +26 -25
- package/lib/commands.js.map +1 -1
- package/lib/i18n.d.ts +158 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +309 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +23 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -1
- package/lib/index.js.map +1 -1
- package/lib/runner.d.ts +33 -0
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js +439 -129
- package/lib/runner.js.map +1 -1
- package/lib/types.d.ts +14 -0
- package/lib/types.d.ts.map +1 -1
- package/package.json +10 -1
package/lib/index.d.ts
CHANGED
|
@@ -14,8 +14,10 @@ export type { ConnectConfig, ResolvedConnectConfig } from "./runner.js";
|
|
|
14
14
|
export { BindingStore } from "./binding.js";
|
|
15
15
|
export type { ChatBinding, ChatSessionRecord } from "./binding.js";
|
|
16
16
|
export { createAsyncQueue } from "./stream.js";
|
|
17
|
-
export { parseCommand,
|
|
17
|
+
export { parseCommand, helpText } from "./commands.js";
|
|
18
18
|
export type { Command } from "./commands.js";
|
|
19
|
+
export { messages } from "./i18n.js";
|
|
20
|
+
export type { Language, Messages } from "./i18n.js";
|
|
19
21
|
export type { ChatType, ChoiceOption, ChoicePrompt, ChoiceResult, InboundMessage, OutboundTarget, SummaryCard, TurnReason, TurnOutcome, AsyncQueue, ChannelAdapter, } from "./types.js";
|
|
20
22
|
/** Cordis plugin name used by loader diagnostics. */
|
|
21
23
|
export declare const name = "connect";
|
|
@@ -29,6 +31,16 @@ export declare const Config: z<Schemastery.ObjectS<{
|
|
|
29
31
|
workDir: z<string, string>;
|
|
30
32
|
/** Optional workspace directories offered by the `/dir` chooser. */
|
|
31
33
|
workspaces: z<string[], string[]>;
|
|
34
|
+
/** Vision-capable model used to describe images when the main model can't see them. */
|
|
35
|
+
visionModel: z<Schemastery.ObjectS<{
|
|
36
|
+
provider: z<string, string>;
|
|
37
|
+
model: z<string, string>;
|
|
38
|
+
}>, Schemastery.ObjectT<{
|
|
39
|
+
provider: z<string, string>;
|
|
40
|
+
model: z<string, string>;
|
|
41
|
+
}>>;
|
|
42
|
+
/** User-facing message language: `zh` (default) or `en`. */
|
|
43
|
+
language: z<"zh" | "en", "zh" | "en">;
|
|
32
44
|
/** Sender allowlist; empty = all senders allowed. */
|
|
33
45
|
allowUsers: z<string[], string[]>;
|
|
34
46
|
/** Chat allowlist; empty = all chats allowed. */
|
|
@@ -42,6 +54,16 @@ export declare const Config: z<Schemastery.ObjectS<{
|
|
|
42
54
|
workDir: z<string, string>;
|
|
43
55
|
/** Optional workspace directories offered by the `/dir` chooser. */
|
|
44
56
|
workspaces: z<string[], string[]>;
|
|
57
|
+
/** Vision-capable model used to describe images when the main model can't see them. */
|
|
58
|
+
visionModel: z<Schemastery.ObjectS<{
|
|
59
|
+
provider: z<string, string>;
|
|
60
|
+
model: z<string, string>;
|
|
61
|
+
}>, Schemastery.ObjectT<{
|
|
62
|
+
provider: z<string, string>;
|
|
63
|
+
model: z<string, string>;
|
|
64
|
+
}>>;
|
|
65
|
+
/** User-facing message language: `zh` (default) or `en`. */
|
|
66
|
+
language: z<"zh" | "en", "zh" | "en">;
|
|
45
67
|
/** Sender allowlist; empty = all senders allowed. */
|
|
46
68
|
allowUsers: z<string[], string[]>;
|
|
47
69
|
/** Chat allowlist; empty = all chats allowed. */
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,qDAAqD;AACrD,eAAO,MAAM,IAAI,YAAY,CAAC;AAE9B,6EAA6E;AAC7E,eAAO,MAAM,MAAM,UAA8C,CAAC;AAElE,wEAAwE;AACxE,eAAO,MAAM,MAAM;IACjB,qFAAqF;;IAErF,yEAAyE;;IAEzE,oEAAoE;;IAEpE,uFAAuF;;;;;;;;IAEvF,4DAA4D;;IAE5D,qDAAqD;;IAErD,iDAAiD;;IAEjD,qDAAqD;;;IAdrD,qFAAqF;;IAErF,yEAAyE;;IAEzE,oEAAoE;;IAEpE,uFAAuF;;;;;;;;IAEvF,4DAA4D;;IAE5D,qDAAqD;;IAErD,iDAAiD;;IAEjD,qDAAqD;;GAErD,CAAC;AAEH,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,OAAO,EAAE,cAAc,CAAC;KACzB;CACF;AAED,qFAAqF;AACrF,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,aAAkB,GAAG,IAAI,CAEpE;AAED,eAAe,cAAc,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -4,7 +4,8 @@ export { ConnectService } from "./service.js";
|
|
|
4
4
|
export { AgentRunner, resolveConnectConfig, summarizeTurn } from "./runner.js";
|
|
5
5
|
export { BindingStore } from "./binding.js";
|
|
6
6
|
export { createAsyncQueue } from "./stream.js";
|
|
7
|
-
export { parseCommand,
|
|
7
|
+
export { parseCommand, helpText } from "./commands.js";
|
|
8
|
+
export { messages } from "./i18n.js";
|
|
8
9
|
/** Cordis plugin name used by loader diagnostics. */
|
|
9
10
|
export const name = "connect";
|
|
10
11
|
/** Host-plane services this plugin requires before it can route messages. */
|
|
@@ -17,6 +18,10 @@ export const Config = z.object({
|
|
|
17
18
|
workDir: z.string(),
|
|
18
19
|
/** Optional workspace directories offered by the `/dir` chooser. */
|
|
19
20
|
workspaces: z.array(z.string()),
|
|
21
|
+
/** Vision-capable model used to describe images when the main model can't see them. */
|
|
22
|
+
visionModel: z.object({ provider: z.string(), model: z.string() }),
|
|
23
|
+
/** User-facing message language: `zh` (default) or `en`. */
|
|
24
|
+
language: z.union([z.const("zh"), z.const("en")]),
|
|
20
25
|
/** Sender allowlist; empty = all senders allowed. */
|
|
21
26
|
allowUsers: z.array(z.string()),
|
|
22
27
|
/** Chat allowlist; empty = all chats allowed. */
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAgBrC,qDAAqD;AACrD,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;AAE9B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAElE,wEAAwE;AACxE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,qFAAqF;IACrF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,yEAAyE;IACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,uFAAuF;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAClE,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,qDAAqD;IACrD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,iDAAiD;IACjD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAQH,qFAAqF;AACrF,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAwB,EAAE;IAC5D,KAAK,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,cAAc,CAAC"}
|
package/lib/runner.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Context } from "@deepseek-ai/cordis";
|
|
|
2
2
|
import { type Session, type SessionEvent } from "@deepseek-ai/dsh-session";
|
|
3
3
|
import type { ChannelAdapter, InboundMessage, TurnOutcome } from "./types.js";
|
|
4
4
|
import type { BindingStore } from "./binding.js";
|
|
5
|
+
import { type Language } from "./i18n.js";
|
|
5
6
|
export interface ConnectConfig {
|
|
6
7
|
/** Agent preset id composed into each session; `undefined` = roster default. */
|
|
7
8
|
agentPreset?: string;
|
|
@@ -9,6 +10,13 @@ export interface ConnectConfig {
|
|
|
9
10
|
workDir?: string;
|
|
10
11
|
/** Optional workspace directories offered by the `/dir` chooser. */
|
|
11
12
|
workspaces?: string[];
|
|
13
|
+
/** Vision-capable model used to describe images when the main model can't. */
|
|
14
|
+
visionModel?: {
|
|
15
|
+
provider: string;
|
|
16
|
+
model: string;
|
|
17
|
+
};
|
|
18
|
+
/** User-facing message language: `zh` (default) or `en`. */
|
|
19
|
+
language?: Language;
|
|
12
20
|
allowUsers?: string[];
|
|
13
21
|
allowChats?: string[];
|
|
14
22
|
stateDir?: string;
|
|
@@ -17,6 +25,11 @@ export interface ResolvedConnectConfig {
|
|
|
17
25
|
agentPreset?: string;
|
|
18
26
|
workDir?: string;
|
|
19
27
|
workspaces: string[];
|
|
28
|
+
visionModel?: {
|
|
29
|
+
provider: string;
|
|
30
|
+
model: string;
|
|
31
|
+
};
|
|
32
|
+
language: Language;
|
|
20
33
|
allowUsers: string[];
|
|
21
34
|
allowChats: string[];
|
|
22
35
|
stateDir?: string;
|
|
@@ -39,7 +52,11 @@ export declare class AgentRunner {
|
|
|
39
52
|
private workDir;
|
|
40
53
|
private streamEnabled;
|
|
41
54
|
private summaryEnabled;
|
|
55
|
+
private readonly t;
|
|
42
56
|
constructor(ctx: Context, config: ResolvedConnectConfig, channel: string, chatKey: string, chatType: "p2p" | "group", adapter: ChannelAdapter, bindings: BindingStore);
|
|
57
|
+
private menuTitle;
|
|
58
|
+
private rootMenuSections;
|
|
59
|
+
private reasonLabel;
|
|
43
60
|
/** Prefer the user's first DSH workspace over the process cwd as default. */
|
|
44
61
|
private resolveDefaultWorkDir;
|
|
45
62
|
enqueue(msg: InboundMessage): void;
|
|
@@ -55,6 +72,20 @@ export declare class AgentRunner {
|
|
|
55
72
|
private composeSetup;
|
|
56
73
|
private watchAgent;
|
|
57
74
|
private driveAgent;
|
|
75
|
+
/**
|
|
76
|
+
* Build the user content for one inbound message. When the message carries
|
|
77
|
+
* images, either pass them directly to the main model (if it supports
|
|
78
|
+
* vision) or run a vision sub-task with a capable model and inject its
|
|
79
|
+
* description as text — so a text-only main model never stalls on images.
|
|
80
|
+
*/
|
|
81
|
+
private buildUserContent;
|
|
82
|
+
/** Copy images into `<workDir>/.dsh-connect-images` so the agent's tools can reach them. */
|
|
83
|
+
private stageImages;
|
|
84
|
+
private imageBlocks;
|
|
85
|
+
private describeImages;
|
|
86
|
+
private modelSupportsVision;
|
|
87
|
+
private findVisionModel;
|
|
88
|
+
private log;
|
|
58
89
|
private readTodos;
|
|
59
90
|
private touchBinding;
|
|
60
91
|
private sendSummary;
|
|
@@ -80,6 +111,8 @@ export declare class AgentRunner {
|
|
|
80
111
|
private compact;
|
|
81
112
|
private showHistory;
|
|
82
113
|
private showGoals;
|
|
114
|
+
private goalPhaseLabel;
|
|
115
|
+
private showSchedule;
|
|
83
116
|
private showAllWorkspaces;
|
|
84
117
|
}
|
|
85
118
|
//# sourceMappingURL=runner.d.ts.map
|
package/lib/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAGnH,OAAO,KAAK,EAAE,cAAc,EAAgB,cAAc,EAA+B,WAAW,EAAc,MAAM,YAAY,CAAC;AAGrI,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAY,KAAK,QAAQ,EAAiB,MAAM,WAAW,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,qBAAqB,CAWjF;AAuBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CA6B5F;AAiFD,qBAAa,WAAW;IAYpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAW;gBAGV,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,GAAG,OAAO,EACzB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,YAAY;IAMzC,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,WAAW;IAmBnB,6EAA6E;IAC7E,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAUlC,qEAAqE;IACrE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAiB3D,OAAO,CAAC,MAAM;YAQA,KAAK;YAcL,OAAO;YAgBP,WAAW;IAgDzB,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,gBAAgB;YAKV,YAAY;IA0B1B,OAAO,CAAC,UAAU;YAOJ,UAAU;IAmCxB;;;;;OAKG;YACW,gBAAgB;IA+B9B,4FAA4F;YAC9E,WAAW;YAoBX,WAAW;YAmBX,cAAc;YAgEd,mBAAmB;YAgBnB,eAAe;IA4C7B,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,YAAY;YAKN,WAAW;YASX,aAAa;YA2Gb,YAAY;IAa1B,OAAO,CAAC,aAAa;YAmBP,OAAO;YAQP,SAAS;YAUT,QAAQ;IAQtB,OAAO,CAAC,cAAc;YAmBR,QAAQ;YAiCR,SAAS;YAkFT,UAAU;YA2BV,SAAS;YAaT,YAAY;YAuBZ,cAAc;YAiBd,gBAAgB;YAuBhB,QAAQ;IAatB,OAAO,CAAC,kBAAkB;YA8BZ,YAAY;YAaZ,WAAW;YAkBX,eAAe;YA6Bf,OAAO;YAoCP,WAAW;YAyBX,SAAS;IAiCvB,OAAO,CAAC,cAAc;YAeR,YAAY;YAuBZ,iBAAiB;CAehC"}
|