@daweifu/capability-menu 0.1.2 → 0.1.4
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.en.md +50 -19
- package/README.md +55 -24
- package/cordis.patch.yml +15 -24
- package/lib/client.d.ts +239 -32
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1955 -198
- package/lib/constants.js +33 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/invoke.js +72 -2
- package/lib/invoke.js.map +1 -1
- package/lib/locations.js +541 -0
- package/lib/locations.js.map +1 -0
- package/lib/patch-file.js +192 -0
- package/lib/patch-file.js.map +1 -0
- package/lib/policy.js +235 -27
- package/lib/policy.js.map +1 -1
- package/lib/registry.js +279 -42
- package/lib/registry.js.map +1 -1
- package/lib/search.js +10 -2
- package/lib/search.js.map +1 -1
- package/lib/server/remote.js +164 -4
- package/lib/server/remote.js.map +1 -1
- package/lib/types/constants.d.ts +33 -0
- package/lib/types/constants.d.ts.map +1 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/invoke.d.ts.map +1 -1
- package/lib/types/locations.d.ts +142 -0
- package/lib/types/locations.d.ts.map +1 -0
- package/lib/types/patch-file.d.ts +46 -0
- package/lib/types/patch-file.d.ts.map +1 -0
- package/lib/types/policy.d.ts +45 -0
- package/lib/types/policy.d.ts.map +1 -1
- package/lib/types/registry.d.ts +71 -16
- package/lib/types/registry.d.ts.map +1 -1
- package/lib/types/search.d.ts.map +1 -1
- package/lib/types/server/remote.d.ts +65 -2
- package/lib/types/server/remote.d.ts.map +1 -1
- package/package.json +24 -23
package/lib/client.d.ts
CHANGED
|
@@ -3,33 +3,39 @@ var module = { exports: {} };
|
|
|
3
3
|
var exports = module.exports;
|
|
4
4
|
|
|
5
5
|
import { ClientContext } from "@deepseek-ai/dsh-client-runtime/client";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
* Types + small helpers for the 能力管理 (Capability Management) settings
|
|
11
|
-
* section. The component reads/writes the Host `ctx.capabilityPolicy` through
|
|
12
|
-
* the generated `remote.capabilityPolicy` face (see `./remote.ts`), mirroring
|
|
13
|
-
* how `dsh-client-ui-settings-plugin-inventory` consumes
|
|
14
|
-
* `ctx.remote.pluginInventory`.
|
|
15
|
-
*/
|
|
16
|
-
/** One capability's Resident/On-demand/Disabled row, as surfaced by the server. */
|
|
6
|
+
import { RemoteResult } from "@deepseek-ai/dsh-typert-protocol";
|
|
7
|
+
//#region src/client/remote.d.ts
|
|
8
|
+
/** Read-only row: one capability's Resident/On-demand/Disabled classification. */
|
|
17
9
|
interface CapabilityRow {
|
|
18
10
|
readonly id: string;
|
|
19
11
|
readonly kind: 'tool' | 'skill';
|
|
20
12
|
readonly name: string;
|
|
21
|
-
/** Server namespace for tools (`built-in` groups harness-native tools); undefined for skills. */
|
|
22
13
|
readonly server?: string;
|
|
23
14
|
/** Skill source root label (`project-dsh`/`user-agents`/…), present only for skills. */
|
|
24
15
|
readonly source?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Agent preset id, present only for skills that live in a preset's own layer.
|
|
18
|
+
* The source label is `custom` for these as well, so this is what tells a
|
|
19
|
+
* preset skill apart from one in a user-configured `customSkillDirs` root.
|
|
20
|
+
*/
|
|
21
|
+
readonly preset?: string;
|
|
22
|
+
/** The skill's own directory on disk, present only for skills whose provider has one. */
|
|
23
|
+
readonly path?: string;
|
|
25
24
|
readonly class: 'resident' | 'on-demand' | 'disabled';
|
|
26
|
-
/** Human-friendly display: `Resident · 常驻(直接调用)` / `On-demand · 按需(目录渐进加载)` / `Disabled · 禁用`. */
|
|
27
25
|
readonly classLabel?: string;
|
|
28
26
|
readonly mandatory: boolean;
|
|
29
27
|
}
|
|
30
|
-
/**
|
|
31
|
-
interface
|
|
32
|
-
|
|
28
|
+
/** 能力目录查看负载:两份只读「文件」+ 缺失原因。 */
|
|
29
|
+
interface CatalogDocs {
|
|
30
|
+
/** 当前生效的三档策略配置 YAML。 */
|
|
31
|
+
readonly policyYaml: string;
|
|
32
|
+
/** 按需能力目录物化文件(path + content)。 */
|
|
33
|
+
readonly catalog?: {
|
|
34
|
+
readonly path: string;
|
|
35
|
+
readonly content: string;
|
|
36
|
+
};
|
|
37
|
+
/** catalog 不可用原因:'disabled' = 物化未启用;'read-failed' = 读盘失败。 */
|
|
38
|
+
readonly catalogMissing?: 'disabled' | 'read-failed';
|
|
33
39
|
}
|
|
34
40
|
/** One direct child in a skill directory listing. */
|
|
35
41
|
interface SkillFileEntry {
|
|
@@ -51,6 +57,7 @@ interface ToolDetail {
|
|
|
51
57
|
readonly serverName?: string;
|
|
52
58
|
readonly path?: string;
|
|
53
59
|
readonly source?: string;
|
|
60
|
+
readonly preset?: string;
|
|
54
61
|
};
|
|
55
62
|
readonly tags: readonly string[];
|
|
56
63
|
readonly stats: {
|
|
@@ -61,17 +68,100 @@ interface ToolDetail {
|
|
|
61
68
|
readonly lastUsedAt?: number;
|
|
62
69
|
};
|
|
63
70
|
}
|
|
64
|
-
/**
|
|
65
|
-
interface
|
|
66
|
-
|
|
67
|
-
readonly
|
|
68
|
-
|
|
69
|
-
readonly
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
readonly
|
|
71
|
+
/** One MCP server declared in the patch file. */
|
|
72
|
+
interface McpLocation {
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly serverName: string;
|
|
75
|
+
readonly transport: 'stdio' | 'streamable-http';
|
|
76
|
+
readonly disabled: boolean;
|
|
77
|
+
readonly command?: string;
|
|
78
|
+
readonly args?: readonly string[];
|
|
79
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
80
|
+
readonly cwd?: string;
|
|
81
|
+
readonly url?: string;
|
|
82
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
83
|
+
readonly toolCallTimeoutMs?: number;
|
|
84
|
+
}
|
|
85
|
+
/** One skill entry under a managed skill root (the user root or a project's). */
|
|
86
|
+
interface SkillLocation {
|
|
87
|
+
/** The entry's own name under `entryDir`; what update and remove address. */
|
|
88
|
+
readonly name: string;
|
|
89
|
+
/** The name the skill declares in its `SKILL.md` — dsh's identity for it, and what a capability row is named. */
|
|
90
|
+
readonly skillName?: string;
|
|
91
|
+
readonly path: string;
|
|
92
|
+
readonly linked: boolean;
|
|
93
|
+
readonly valid: boolean;
|
|
94
|
+
/** `user` for the default root, `project` for a project's own skill root. */
|
|
95
|
+
readonly root: 'user' | 'project';
|
|
96
|
+
/** The skills directory holding the entry; pass it back to update or remove. */
|
|
97
|
+
readonly entryDir: string;
|
|
98
|
+
/** The directory the entry points at, with symlinks resolved. */
|
|
99
|
+
readonly target?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Input for registering a new MCP server. */
|
|
102
|
+
interface McpInput {
|
|
103
|
+
readonly serverName: string;
|
|
104
|
+
readonly transport: 'stdio' | 'streamable-http';
|
|
105
|
+
readonly command?: string;
|
|
106
|
+
readonly args?: readonly string[];
|
|
107
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
108
|
+
readonly cwd?: string;
|
|
109
|
+
readonly url?: string;
|
|
110
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
111
|
+
readonly toolCallTimeoutMs?: number;
|
|
112
|
+
}
|
|
113
|
+
/** Input for editing a declared server (`serverName` is immutable). */
|
|
114
|
+
type McpUpdateInput = Omit<McpInput, 'serverName'>;
|
|
115
|
+
declare module '@deepseek-ai/dsh-typert-protocol' {
|
|
116
|
+
interface TypertRemoteNamespace$6361706162696c697479506f6c696379 {
|
|
117
|
+
getConfig: () => Promise<RemoteResult<Record<string, unknown>>>;
|
|
118
|
+
updateConfig: (partial: Record<string, unknown>) => Promise<RemoteResult<void>>;
|
|
119
|
+
classifyAll: () => Promise<RemoteResult<CapabilityRow[]>>;
|
|
120
|
+
refresh: () => Promise<RemoteResult<void>>;
|
|
121
|
+
catalogVersion: () => Promise<RemoteResult<number>>;
|
|
122
|
+
listSkillDir: (id: string, relPath?: string) => Promise<RemoteResult<SkillFileEntry[] | undefined>>;
|
|
123
|
+
readSkillFile: (id: string, relPath: string) => Promise<RemoteResult<string | undefined>>;
|
|
124
|
+
getDetail: (id: string) => Promise<RemoteResult<ToolDetail | undefined>>;
|
|
125
|
+
getCatalogDocs: () => Promise<RemoteResult<CatalogDocs>>;
|
|
126
|
+
listLocations: () => Promise<RemoteResult<McpLocation[]>>;
|
|
127
|
+
addLocation: (input: McpInput) => Promise<RemoteResult<string>>;
|
|
128
|
+
removeLocation: (id: string) => Promise<RemoteResult<boolean>>;
|
|
129
|
+
updateLocation: (id: string, input: McpUpdateInput) => Promise<RemoteResult<boolean>>;
|
|
130
|
+
listSkillLocations: () => Promise<RemoteResult<SkillLocation[]>>;
|
|
131
|
+
addSkillLocation: (dir: string, projectPath?: string) => Promise<RemoteResult<string>>;
|
|
132
|
+
removeSkillLocation: (name: string, entryDir?: string) => Promise<RemoteResult<boolean>>;
|
|
133
|
+
adoptSkillLocation: (name: string) => Promise<RemoteResult<string>>;
|
|
134
|
+
updateSkillLocation: (name: string, dir: string, entryDir?: string) => Promise<RemoteResult<boolean>>;
|
|
135
|
+
}
|
|
136
|
+
interface TypertRemoteMap {
|
|
137
|
+
'capabilityPolicy/getConfig': () => Promise<RemoteResult<Record<string, unknown>>>;
|
|
138
|
+
'capabilityPolicy/updateConfig': (partial: Record<string, unknown>) => Promise<RemoteResult<void>>;
|
|
139
|
+
'capabilityPolicy/classifyAll': () => Promise<RemoteResult<CapabilityRow[]>>;
|
|
140
|
+
'capabilityPolicy/refresh': () => Promise<RemoteResult<void>>;
|
|
141
|
+
'capabilityPolicy/catalogVersion': () => Promise<RemoteResult<number>>;
|
|
142
|
+
'capabilityPolicy/listSkillDir': (id: string, relPath?: string) => Promise<RemoteResult<SkillFileEntry[] | undefined>>;
|
|
143
|
+
'capabilityPolicy/readSkillFile': (id: string, relPath: string) => Promise<RemoteResult<string | undefined>>;
|
|
144
|
+
'capabilityPolicy/getDetail': (id: string) => Promise<RemoteResult<ToolDetail | undefined>>;
|
|
145
|
+
'capabilityPolicy/getCatalogDocs': () => Promise<RemoteResult<CatalogDocs>>;
|
|
146
|
+
'capabilityPolicy/listLocations': () => Promise<RemoteResult<McpLocation[]>>;
|
|
147
|
+
'capabilityPolicy/addLocation': (input: McpInput) => Promise<RemoteResult<string>>;
|
|
148
|
+
'capabilityPolicy/removeLocation': (id: string) => Promise<RemoteResult<boolean>>;
|
|
149
|
+
'capabilityPolicy/updateLocation': (id: string, input: McpUpdateInput) => Promise<RemoteResult<boolean>>;
|
|
150
|
+
'capabilityPolicy/listSkillLocations': () => Promise<RemoteResult<SkillLocation[]>>;
|
|
151
|
+
'capabilityPolicy/addSkillLocation': (dir: string, projectPath?: string) => Promise<RemoteResult<string>>;
|
|
152
|
+
'capabilityPolicy/removeSkillLocation': (name: string, entryDir?: string) => Promise<RemoteResult<boolean>>;
|
|
153
|
+
'capabilityPolicy/adoptSkillLocation': (name: string) => Promise<RemoteResult<string>>;
|
|
154
|
+
'capabilityPolicy/updateSkillLocation': (name: string, dir: string, entryDir?: string) => Promise<RemoteResult<boolean>>;
|
|
155
|
+
}
|
|
156
|
+
interface TypertRemoteNamespaceMap {
|
|
157
|
+
'capabilityPolicy': TypertRemoteNamespace$6361706162696c697479506f6c696379;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/client/store.d.ts
|
|
162
|
+
/** Snapshot of the management surface. */
|
|
163
|
+
interface CapabilitySnapshot {
|
|
164
|
+
readonly rows: readonly CapabilityRow[];
|
|
75
165
|
}
|
|
76
166
|
/** The Host `capabilityPolicy` remote face (generated contribution). */
|
|
77
167
|
interface CapabilityPolicyRemote {
|
|
@@ -105,6 +195,27 @@ interface CapabilityPolicyRemote {
|
|
|
105
195
|
message: string;
|
|
106
196
|
};
|
|
107
197
|
}>;
|
|
198
|
+
refresh(): Promise<{
|
|
199
|
+
ok: true;
|
|
200
|
+
value: void;
|
|
201
|
+
} | {
|
|
202
|
+
ok: false;
|
|
203
|
+
error: {
|
|
204
|
+
code: string;
|
|
205
|
+
message: string;
|
|
206
|
+
};
|
|
207
|
+
}>;
|
|
208
|
+
/** One number naming the host's current catalog state; see the registry's `version()`. */
|
|
209
|
+
catalogVersion(): Promise<{
|
|
210
|
+
ok: true;
|
|
211
|
+
value: number;
|
|
212
|
+
} | {
|
|
213
|
+
ok: false;
|
|
214
|
+
error: {
|
|
215
|
+
code: string;
|
|
216
|
+
message: string;
|
|
217
|
+
};
|
|
218
|
+
}>;
|
|
108
219
|
listSkillDir(id: string, relPath?: string): Promise<{
|
|
109
220
|
ok: true;
|
|
110
221
|
value: SkillFileEntry[] | undefined;
|
|
@@ -145,6 +256,96 @@ interface CapabilityPolicyRemote {
|
|
|
145
256
|
message: string;
|
|
146
257
|
};
|
|
147
258
|
}>;
|
|
259
|
+
listLocations(): Promise<{
|
|
260
|
+
ok: true;
|
|
261
|
+
value: McpLocation[];
|
|
262
|
+
} | {
|
|
263
|
+
ok: false;
|
|
264
|
+
error: {
|
|
265
|
+
code: string;
|
|
266
|
+
message: string;
|
|
267
|
+
};
|
|
268
|
+
}>;
|
|
269
|
+
addLocation(input: McpInput): Promise<{
|
|
270
|
+
ok: true;
|
|
271
|
+
value: string;
|
|
272
|
+
} | {
|
|
273
|
+
ok: false;
|
|
274
|
+
error: {
|
|
275
|
+
code: string;
|
|
276
|
+
message: string;
|
|
277
|
+
};
|
|
278
|
+
}>;
|
|
279
|
+
removeLocation(id: string): Promise<{
|
|
280
|
+
ok: true;
|
|
281
|
+
value: boolean;
|
|
282
|
+
} | {
|
|
283
|
+
ok: false;
|
|
284
|
+
error: {
|
|
285
|
+
code: string;
|
|
286
|
+
message: string;
|
|
287
|
+
};
|
|
288
|
+
}>;
|
|
289
|
+
updateLocation(id: string, input: McpUpdateInput): Promise<{
|
|
290
|
+
ok: true;
|
|
291
|
+
value: boolean;
|
|
292
|
+
} | {
|
|
293
|
+
ok: false;
|
|
294
|
+
error: {
|
|
295
|
+
code: string;
|
|
296
|
+
message: string;
|
|
297
|
+
};
|
|
298
|
+
}>;
|
|
299
|
+
listSkillLocations(): Promise<{
|
|
300
|
+
ok: true;
|
|
301
|
+
value: SkillLocation[];
|
|
302
|
+
} | {
|
|
303
|
+
ok: false;
|
|
304
|
+
error: {
|
|
305
|
+
code: string;
|
|
306
|
+
message: string;
|
|
307
|
+
};
|
|
308
|
+
}>;
|
|
309
|
+
addSkillLocation(dir: string, projectPath?: string): Promise<{
|
|
310
|
+
ok: true;
|
|
311
|
+
value: string;
|
|
312
|
+
} | {
|
|
313
|
+
ok: false;
|
|
314
|
+
error: {
|
|
315
|
+
code: string;
|
|
316
|
+
message: string;
|
|
317
|
+
};
|
|
318
|
+
}>;
|
|
319
|
+
removeSkillLocation(name: string, entryDir?: string): Promise<{
|
|
320
|
+
ok: true;
|
|
321
|
+
value: boolean;
|
|
322
|
+
} | {
|
|
323
|
+
ok: false;
|
|
324
|
+
error: {
|
|
325
|
+
code: string;
|
|
326
|
+
message: string;
|
|
327
|
+
};
|
|
328
|
+
}>;
|
|
329
|
+
adoptSkillLocation(name: string): Promise<{
|
|
330
|
+
ok: true;
|
|
331
|
+
value: string;
|
|
332
|
+
} | {
|
|
333
|
+
ok: false;
|
|
334
|
+
error: {
|
|
335
|
+
code: string;
|
|
336
|
+
message: string;
|
|
337
|
+
};
|
|
338
|
+
}>;
|
|
339
|
+
updateSkillLocation(name: string, dir: string, entryDir?: string): Promise<{
|
|
340
|
+
ok: true;
|
|
341
|
+
value: boolean;
|
|
342
|
+
} | {
|
|
343
|
+
ok: false;
|
|
344
|
+
error: {
|
|
345
|
+
code: string;
|
|
346
|
+
message: string;
|
|
347
|
+
};
|
|
348
|
+
}>;
|
|
148
349
|
}
|
|
149
350
|
//#endregion
|
|
150
351
|
//#region src/client/CapabilitySection.d.ts
|
|
@@ -154,16 +355,22 @@ interface CapabilitySectionInjected {
|
|
|
154
355
|
t(key: CapabilityKey, params?: Record<string, unknown>): string;
|
|
155
356
|
/** Diagnostic: `$mount` failure surfaced instead of crashing the section. */
|
|
156
357
|
mountError?: string;
|
|
157
|
-
/**
|
|
158
|
-
|
|
358
|
+
/**
|
|
359
|
+
* Subscribe to signals that the host catalog may have moved without this page
|
|
360
|
+
* asking: a settings document edit (registering a source, editing a
|
|
361
|
+
* composition file outside the browser) or a carrier reconnect. Returns a
|
|
362
|
+
* disposer. Optional so the section still mounts on a runtime that predates
|
|
363
|
+
* the forwarded-event API — it then falls back to the version poll alone.
|
|
364
|
+
*/
|
|
365
|
+
subscribeSignals?: (listener: () => void) => () => void;
|
|
159
366
|
}
|
|
160
367
|
type CapabilitySectionProps = CapabilitySectionInjected;
|
|
161
|
-
type CapabilityKey = 'nav' | 'title' | 'desc' | 'resident' | 'on-demand' | 'disabled' | '
|
|
368
|
+
type CapabilityKey = 'nav' | 'title' | 'desc' | 'resident' | 'on-demand' | 'disabled' | 'tool' | 'skill' | 'mandatory' | 'toolsGroup' | 'skillsGroup' | 'builtInGroup' | 'globalSkills' | 'projectSkills' | 'presetSkills' | 'emptyTools' | 'emptySkills' | 'emptyGlobalSkills' | 'emptyProjectSkills' | 'filterByName' | 'filterHint' | 'filterNoMatch' | 'toolCount' | 'residentShort' | 'onDemandShort' | 'disabledShort' | 'cycleHint' | 'notPreviewable' | 'previewClose' | 'detailNotFound' | 'cycleOverridden' | 'refreshFailed' | 'retry' | 'carrierFailureHint' | 'registerCapability' | 'editMcp' | 'editSkillNamed' | 'edit' | 'save' | 'remove' | 'cancel' | 'confirmRemove' | 'confirmRemoveMcp' | 'confirmRemoveSkillLink' | 'confirmRemoveSkillDir' | 'confirmSaveAnyway' | 'saveConfirmRealDir' | 'register' | 'notEditable' | 'entryNotFound' | 'mcpServers' | 'skillDirs' | 'skillDirPath' | 'skillDirHint' | 'skillRoot' | 'skillRootUser' | 'skillRootProject' | 'skillRootHintUser' | 'skillRootHintProject' | 'skillProjectPath' | 'skillProjectPathHint' | 'skillRegisteredAt' | 'skillRepointed' | 'skillAdopted' | 'skillSource' | 'skillSourceHint' | 'skillFromPreset' | 'skillFromPresetHint' | 'skillUnmanaged' | 'adoptSkill' | 'adoptSkillHint' | 'adoptSkillTitle' | 'sourceCustom' | 'sourceBundled' | 'serverName' | 'serverNameImmutable' | 'transport' | 'transportStdio' | 'transportHttp' | 'transportHintStdio' | 'transportHintHttp' | 'command' | 'args' | 'cwd' | 'env' | 'url' | 'headers' | 'headersHint' | 'timeout' | 'timeoutInvalid' | 'viewCatalog' | 'catalogPolicy' | 'catalogOnDemand' | 'catalogPolicyNote' | 'catalogDisabled' | 'catalogUnreadable';
|
|
162
369
|
//#endregion
|
|
163
370
|
//#region src/client/index.d.ts
|
|
164
371
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
165
372
|
interface LocaleNamespaceMap {
|
|
166
|
-
/**
|
|
373
|
+
/** 能力菜单 tab copy. */
|
|
167
374
|
'settings.capability': Record<CapabilityKey, string>;
|
|
168
375
|
}
|
|
169
376
|
}
|
|
@@ -172,7 +379,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
172
379
|
* ("waiting for service"). Access it via `ctx.get('remote.capabilityPolicy')`,
|
|
173
380
|
* which resolves the mounted namespace service without the inject gate. */
|
|
174
381
|
declare const inject: string[];
|
|
175
|
-
/** Register the
|
|
382
|
+
/** Register the 能力菜单 section once `settings.section` is on the ledger. */
|
|
176
383
|
declare function apply(ctx: ClientContext): Promise<() => void>;
|
|
177
384
|
//#endregion
|
|
178
385
|
export { type CapabilityKey, type CapabilityPolicyRemote, type CapabilityRow, type CapabilitySectionInjected, type CapabilitySectionProps, type CapabilitySnapshot, apply, inject };
|
package/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","names":[],"sources":["../src/client/store.ts","../src/client/CapabilitySection.tsx","../src/client/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","names":[],"sources":["../src/client/remote.ts","../src/client/store.ts","../src/client/CapabilitySection.tsx","../src/client/index.ts"],"mappings":"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"}
|