@dsh-electron/dsh-plugin-multi-root-workspace 0.1.9 → 0.1.11
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/CHANGELOG.en.md +26 -1
- package/CHANGELOG.md +26 -1
- package/README.en.md +24 -8
- package/README.md +24 -8
- package/cordis.patch.yml +4 -0
- package/lib/auto-review.js +1 -1
- package/lib/client.js +727 -209
- package/lib/client.js.map +1 -1
- package/lib/{command-Bwd6EGNV.js → command-BGdz7VBH.js} +65 -5
- package/lib/command.js +1 -1
- package/lib/{compat-CagUNzRB.js → compat-BiW-m_q0.js} +14 -1
- package/lib/compat.js +1 -1
- package/lib/{contract-DZ4zczDT.js → contract-CStSEOcK.js} +44 -1
- package/lib/index.js +6 -5
- package/lib/{instructions-CGNS3H0H.js → instructions-MePoRigy.js} +2 -206
- package/lib/instructions.js +1 -1
- package/lib/llm-message-fYORacvh.js +206 -0
- package/lib/metadata-DgqSdVX_.js +35 -0
- package/lib/{registry-BClm6wfh.js → registry-KSsmU393.js} +60 -7
- package/lib/registry.js +1 -1
- package/lib/{review-context-D-ohSVmA.js → review-context-AH-SXHmj.js} +1 -1
- package/lib/review-context.js +1 -1
- package/lib/scope.js +6 -2
- package/lib/skills.js +790 -0
- package/lib/types/client/WorkspaceFoldersAction.d.ts +1 -1
- package/lib/types/client/locales.d.ts +26 -16
- package/lib/types/client/open-in-app/OpenInAppAction.d.ts +5 -3
- package/lib/types/client/open-in-app/OpenTargetButton.d.ts +16 -10
- package/lib/types/client/open-in-app/adapter.d.ts +5 -1
- package/lib/types/client/open-in-app/controller.d.ts +5 -2
- package/lib/types/client/open-in-app/device.d.ts +11 -0
- package/lib/types/client/open-in-app/locales.d.ts +1 -1
- package/lib/types/client/open-in-app/open-path.d.ts +6 -5
- package/lib/types/client/open-in-app/open-toast.d.ts +39 -0
- package/lib/types/client/open-in-app/outcome.d.ts +23 -0
- package/lib/types/client/skills-client.d.ts +23 -0
- package/lib/types/client/skills-settings.d.ts +10 -0
- package/lib/types/client/skills.d.ts +36 -0
- package/lib/types/client/styles.d.ts +1 -1
- package/lib/types/command.d.ts +1 -1
- package/lib/types/compat/client-session.d.ts +2 -0
- package/lib/types/compat/dsh-version.d.ts +5 -5
- package/lib/types/compat/open-in-app-device.d.ts +23 -0
- package/lib/types/compat/skill-content.d.ts +3 -0
- package/lib/types/compat/skills-client.d.ts +33 -0
- package/lib/types/compat/skills-settings.d.ts +8 -0
- package/lib/types/compat/skills.d.ts +13 -0
- package/lib/types/compat/storage-zod.d.ts +1 -0
- package/lib/types/contract.d.ts +12 -1
- package/lib/types/registry.d.ts +7 -0
- package/lib/types/roots.d.ts +4 -1
- package/lib/types/scope.d.ts +2 -0
- package/lib/types/skills/catalog.d.ts +34 -0
- package/lib/types/skills/invocation.d.ts +7 -0
- package/lib/types/skills/metadata.d.ts +13 -0
- package/lib/types/skills/pool.d.ts +19 -0
- package/lib/types/skills/reader.d.ts +3 -0
- package/lib/types/skills/routing.d.ts +2 -0
- package/lib/types/skills-contract.d.ts +39 -0
- package/lib/types/skills.d.ts +43 -0
- package/package.json +98 -85
- package/lib/types/client/open-in-app/open-failure-toast.d.ts +0 -11
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Structural client seams: older hosts have namespace forms and no UserTextRule registry. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
export interface SkillsForm {
|
|
4
|
+
getSnapshot(): {
|
|
5
|
+
value?: {
|
|
6
|
+
enabled?: boolean;
|
|
7
|
+
} | undefined;
|
|
8
|
+
status: string;
|
|
9
|
+
writable: boolean;
|
|
10
|
+
revision?: number | undefined;
|
|
11
|
+
};
|
|
12
|
+
subscribe(listener: () => void): () => void;
|
|
13
|
+
mutate(ops: readonly {
|
|
14
|
+
op: 'set';
|
|
15
|
+
path: string[];
|
|
16
|
+
value: boolean;
|
|
17
|
+
}[], revision?: number): Promise<boolean>;
|
|
18
|
+
}
|
|
19
|
+
export declare function bindSkillsForm(ctx: Context): SkillsForm | undefined;
|
|
20
|
+
export declare function clientInject(ctx: Context, services: string[], callback: (scope: Context) => void | (() => void)): void;
|
|
21
|
+
export interface NamespaceRule {
|
|
22
|
+
id: string;
|
|
23
|
+
order: number;
|
|
24
|
+
match(text: string, from: number): {
|
|
25
|
+
id: string;
|
|
26
|
+
start: number;
|
|
27
|
+
end: number;
|
|
28
|
+
data: {
|
|
29
|
+
name: string;
|
|
30
|
+
};
|
|
31
|
+
} | undefined;
|
|
32
|
+
}
|
|
33
|
+
export declare function registerNamespaceRule(ctx: Context, rule: NamespaceRule): (() => void) | undefined;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Legacy namespace sections and modern volatile Config forms share one live switch. */
|
|
2
|
+
import type { Context, Fiber } from '@deepseek-ai/cordis';
|
|
3
|
+
export declare const SKILLS_SETTINGS_ID = "multi-root-skills";
|
|
4
|
+
export declare const SKILLS_BUNDLE_KEY = "@dsh-electron/dsh-plugin-multi-root-workspace";
|
|
5
|
+
export declare function installSkillsSettings(ctx: Context, initial: () => unknown, changed: () => void): {
|
|
6
|
+
read(): unknown;
|
|
7
|
+
fiber: Fiber;
|
|
8
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Public native Skills seams. All borrowed-scope and optional-package coupling lives here. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
4
|
+
import type { SkillLookupOptions } from '@deepseek-ai/dsh-skill';
|
|
5
|
+
/** Never infer authority from cwd, a preset key, or a lookalike Agent. */
|
|
6
|
+
export declare function skillAgent(ctx: Context, options: SkillLookupOptions): Agent | undefined;
|
|
7
|
+
export declare function skillOrigin(ctx: Context, options: SkillLookupOptions): string | undefined;
|
|
8
|
+
/** Absence is optional; a present but broken module must fail visibly. */
|
|
9
|
+
export declare function filesystemSkillsApi(): Promise<typeof import('@deepseek-ai/dsh-skill-filesystem') | undefined>;
|
|
10
|
+
export declare function volatileField<S>(schema: S): S;
|
|
11
|
+
export declare function configValue(value: unknown): unknown;
|
|
12
|
+
/** Cold Browser Catalog supplies a Session header, never a fabricated Agent. */
|
|
13
|
+
export declare function observedSkillOrigin(ctx: Context, sessionId: string): Promise<string>;
|
package/lib/types/contract.d.ts
CHANGED
|
@@ -28,10 +28,15 @@
|
|
|
28
28
|
*
|
|
29
29
|
* @module @dsh-electron/dsh-plugin-multi-root-workspace/contract
|
|
30
30
|
*/
|
|
31
|
+
import type { SkillsResponseMap } from './skills-contract.ts';
|
|
32
|
+
export { SKILLS_ENDPOINTS, skillsRequestSchema, skillsCatalogSchema, skillsPreviewSchema, skillsStatusSchema } from './skills-contract.ts';
|
|
33
|
+
export type { SkillsEndpoint, SkillsStatusView, SkillsCatalogView, SkillsPreviewView } from './skills-contract.ts';
|
|
34
|
+
export interface WorkspaceResponseMap extends PanelResponseMap, SkillsResponseMap {
|
|
35
|
+
}
|
|
31
36
|
/** The absolute logical channel both halves speak over. */
|
|
32
37
|
export declare const PANEL_CHANNEL = "/multi-root-workspace";
|
|
33
38
|
/** Endpoint names, relative to {@link PANEL_CHANNEL}. */
|
|
34
|
-
export type PanelEndpoint = 'list' | 'add' | 'remove' | 'alias' | 'move' | 'setAccess' | 'reveal';
|
|
39
|
+
export type PanelEndpoint = 'list' | 'add' | 'remove' | 'alias' | 'move' | 'setAccess' | 'setSkillsEnabled' | 'setAliasId' | 'reveal';
|
|
35
40
|
/** Every endpoint name, for exhaustive iteration in tests and callers. */
|
|
36
41
|
export declare const PANEL_ENDPOINTS: readonly PanelEndpoint[];
|
|
37
42
|
/**
|
|
@@ -61,6 +66,8 @@ export interface RootView {
|
|
|
61
66
|
/** Canonical absolute directory. */
|
|
62
67
|
readonly path: string;
|
|
63
68
|
/** Display alias as stored; absent when cleared. */
|
|
69
|
+
readonly aliasId?: string;
|
|
70
|
+
readonly skillsEnabled?: boolean;
|
|
64
71
|
readonly alias?: string;
|
|
65
72
|
/** ISO-8601 registration instant. */
|
|
66
73
|
readonly addedAt: string;
|
|
@@ -119,6 +126,8 @@ export interface PanelResponseMap {
|
|
|
119
126
|
readonly remove: RootsView;
|
|
120
127
|
readonly alias: RootsView;
|
|
121
128
|
readonly move: RootsView;
|
|
129
|
+
readonly setSkillsEnabled: RootsView;
|
|
130
|
+
readonly setAliasId: RootsView;
|
|
122
131
|
readonly setAccess: RootsView;
|
|
123
132
|
readonly reveal: RevealedView;
|
|
124
133
|
}
|
|
@@ -138,6 +147,8 @@ export interface PanelRequest {
|
|
|
138
147
|
/** Candidate directory (add). */
|
|
139
148
|
readonly path?: string;
|
|
140
149
|
/** Display alias (add/alias); empty clears it. */
|
|
150
|
+
readonly aliasId?: string;
|
|
151
|
+
readonly skillsEnabled?: boolean;
|
|
141
152
|
readonly alias?: string;
|
|
142
153
|
/** Write authority (add — defaults to `inherit` — and setAccess). */
|
|
143
154
|
readonly access?: RootAccess;
|
package/lib/types/registry.d.ts
CHANGED
|
@@ -146,6 +146,8 @@ type PersistedRoot = {
|
|
|
146
146
|
readOnlyRecordedPath?: string | undefined;
|
|
147
147
|
readWriteRecordedPath?: string | undefined;
|
|
148
148
|
alias?: string | undefined;
|
|
149
|
+
aliasId?: unknown;
|
|
150
|
+
skillsEnabled?: unknown;
|
|
149
151
|
addedAt: string;
|
|
150
152
|
};
|
|
151
153
|
/**
|
|
@@ -347,6 +349,10 @@ export declare class MultiRootRegistry extends Service {
|
|
|
347
349
|
* @throws {RootValidationError} `not-found`/`invalid-alias`.
|
|
348
350
|
*/
|
|
349
351
|
setAlias(primaryRoot: string, ref: RootRef, alias: string | undefined): Promise<readonly RootStatus[]>;
|
|
352
|
+
/** Change a Skill switch without changing any grant field. */
|
|
353
|
+
setSkillsEnabled(primaryRoot: string, ref: RootRef, skillsEnabled: boolean): Promise<readonly RootStatus[]>;
|
|
354
|
+
setAliasId(primaryRoot: string, ref: RootRef, aliasId: string): Promise<readonly RootStatus[]>;
|
|
355
|
+
private setSkillsMetadata;
|
|
350
356
|
/**
|
|
351
357
|
* Move one registration within the display order.
|
|
352
358
|
* @param primaryRoot - the session workspace root the root belongs to.
|
|
@@ -438,6 +444,7 @@ export declare class MultiRootRegistry extends Service {
|
|
|
438
444
|
* under a shared byte budget, so a move must update the live scope immediately.
|
|
439
445
|
* Aliases and no-op moves still leave the signature unchanged.
|
|
440
446
|
*/
|
|
447
|
+
private readonly metadataPublished;
|
|
441
448
|
private publish;
|
|
442
449
|
/**
|
|
443
450
|
* The open table.
|
package/lib/types/roots.d.ts
CHANGED
|
@@ -105,6 +105,9 @@ export interface RegisteredRoot {
|
|
|
105
105
|
readonly readWriteRecordedPath?: string;
|
|
106
106
|
/** Optional display alias; absent when the operator cleared it. */
|
|
107
107
|
readonly alias?: string;
|
|
108
|
+
/** Untrusted stored metadata; consumers must validate both fields and uniqueness. */
|
|
109
|
+
readonly aliasId?: unknown;
|
|
110
|
+
readonly skillsEnabled?: unknown;
|
|
108
111
|
/** ISO-8601 instant of registration. */
|
|
109
112
|
readonly addedAt: string;
|
|
110
113
|
}
|
|
@@ -169,7 +172,7 @@ export type RootRef = {
|
|
|
169
172
|
readonly addedAt: string;
|
|
170
173
|
};
|
|
171
174
|
/** Every way root handling can fail, as a stable code the surfaces localize. */
|
|
172
|
-
export type RootValidationCode = 'not-absolute' | 'missing' | 'not-a-directory' | 'equals-primary' | 'primary-overlap' | 'duplicate' | 'nested' | 'invalid-alias' | 'not-found' | 'invalid-ref' | 'storage-unavailable' | 'registry-contended' | 'root-limit-reached' | 'config-invalid' | 'reveal-unavailable' | 'session-not-found' | 'unsupported-path' | 'root-unavailable';
|
|
175
|
+
export type RootValidationCode = 'not-absolute' | 'missing' | 'not-a-directory' | 'equals-primary' | 'primary-overlap' | 'duplicate' | 'nested' | 'invalid-alias' | 'invalid-alias-id' | 'not-found' | 'invalid-ref' | 'storage-unavailable' | 'registry-contended' | 'root-limit-reached' | 'config-invalid' | 'reveal-unavailable' | 'session-not-found' | 'unsupported-path' | 'root-unavailable';
|
|
173
176
|
/** A rejected root operation; `code` is the stable contract, `message` the fallback prose. */
|
|
174
177
|
export declare class RootValidationError extends Error {
|
|
175
178
|
readonly code: RootValidationCode;
|
package/lib/types/scope.d.ts
CHANGED
|
@@ -307,6 +307,8 @@ export declare class MultiRootScopeService extends Service {
|
|
|
307
307
|
* (before acquisition, on contention or storage failure, at teardown) and
|
|
308
308
|
* `available` only once its stored records have been published. Nothing
|
|
309
309
|
* else may call it, and it never touches the root table.
|
|
310
|
+
* Only transitions notify: a failed refresh may republish `unavailable`,
|
|
311
|
+
* and notifying on that no-op would re-arm Skills clients' refresh loop.
|
|
310
312
|
* @param available - whether this process holds the registry authority.
|
|
311
313
|
*/
|
|
312
314
|
setRegistryAuthority(available: boolean): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SkillReaderPool } from './pool.ts';
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { SkillCandidate, SkillLookupOptions, SkillDefinition } from '@deepseek-ai/dsh-skill';
|
|
4
|
+
import type { RootStatus } from '../roots.ts';
|
|
5
|
+
import { rootReader } from './reader.ts';
|
|
6
|
+
export declare const SKILLS_PROVIDER = "multi-root-workspace";
|
|
7
|
+
export declare function internalSkillName(primary: string, rootId: string, skillName: string): string;
|
|
8
|
+
export interface LocatedSkill {
|
|
9
|
+
readonly primary: string;
|
|
10
|
+
readonly rootId: string;
|
|
11
|
+
readonly aliasId: string;
|
|
12
|
+
readonly candidate: SkillCandidate;
|
|
13
|
+
}
|
|
14
|
+
export type Reader = NonNullable<Awaited<ReturnType<typeof rootReader>>>;
|
|
15
|
+
export declare class AdditionalSkillCatalog {
|
|
16
|
+
private readonly ctx;
|
|
17
|
+
private readonly signal;
|
|
18
|
+
private readonly enabled;
|
|
19
|
+
private readonly generation;
|
|
20
|
+
private readonly loadedReceipts;
|
|
21
|
+
private readonly locators;
|
|
22
|
+
private readonly requests;
|
|
23
|
+
readonly pool: SkillReaderPool;
|
|
24
|
+
constructor(ctx: Context, signal: AbortSignal, enabled: () => boolean, generation?: () => number, invalidate?: () => void);
|
|
25
|
+
/** Read synchronously after awaited receipt checks, immediately before batch delivery. */
|
|
26
|
+
get revision(): number;
|
|
27
|
+
current(primary: string, id: string): RootStatus | undefined;
|
|
28
|
+
private withReader;
|
|
29
|
+
list(primary: string, options: SkillLookupOptions): Promise<SkillCandidate[]>;
|
|
30
|
+
/** Locators are created here and are not accepted from a client path or object. */
|
|
31
|
+
load(primary: string, entry: SkillCandidate, options: SkillLookupOptions, user: boolean): Promise<SkillDefinition | undefined>;
|
|
32
|
+
admissionValid(definition: SkillDefinition): Promise<boolean>;
|
|
33
|
+
dispose(): Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Host-only explicit gesture parsing. External messages cannot forge user intent. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
4
|
+
import type { AdditionalSkillCatalog, LocatedSkill } from './catalog.ts';
|
|
5
|
+
export declare function installSkillInvocations(ctx: Context, catalog: AdditionalSkillCatalog, known: WeakMap<Agent, Map<string, LocatedSkill>>): void;
|
|
6
|
+
/** The tracked identity is an Agent object, never a process-global current Session. */
|
|
7
|
+
export type SkillCaller = Agent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface SkillsMetadata {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly alias?: string | undefined;
|
|
5
|
+
readonly aliasId?: unknown;
|
|
6
|
+
readonly skillsEnabled?: unknown;
|
|
7
|
+
readonly readOnlyRecordedPath?: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function validAliasId(value: unknown): value is string;
|
|
10
|
+
export declare function skillsMetadataValid(row: SkillsMetadata, rows: readonly SkillsMetadata[]): boolean;
|
|
11
|
+
export declare function validateAliasId(value: string, others: readonly SkillsMetadata[]): string;
|
|
12
|
+
/** Missing metadata is legacy; malformed supplied metadata is preserved and withheld. */
|
|
13
|
+
export declare function migrateRootSkills<T extends SkillsMetadata>(rows: readonly T[]): T[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Reader } from './catalog.ts';
|
|
2
|
+
export declare class SkillReaderPool {
|
|
3
|
+
private readonly invalidate;
|
|
4
|
+
readonly capacity: number;
|
|
5
|
+
private readonly entries;
|
|
6
|
+
private readonly waiters;
|
|
7
|
+
private closing;
|
|
8
|
+
private polling;
|
|
9
|
+
private readonly timer;
|
|
10
|
+
constructor(invalidate: () => void, capacity?: number, intervalMs?: number);
|
|
11
|
+
get size(): number;
|
|
12
|
+
get roots(): readonly string[];
|
|
13
|
+
use<T>(key: string, create: (signal: AbortSignal) => Promise<Reader | undefined>, run: (reader: Reader | undefined) => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
14
|
+
poll(): Promise<void>;
|
|
15
|
+
dispose(): Promise<void>;
|
|
16
|
+
private closeEntry;
|
|
17
|
+
}
|
|
18
|
+
/** No symlink target outside the Root is read or enumerated. Content reads stay on demand. */
|
|
19
|
+
export declare function skillTreeStamp(root: string): Promise<string>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
export declare function containsPath(root: string, target: string): boolean;
|
|
3
|
+
export declare function rootReader(ctx: Context, root: string, signal: AbortSignal, valid: () => boolean): Promise<import("@deepseek-ai/dsh-skill-filesystem").FileSystemSkillProvider | undefined>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Browser-safe Skills wire shapes. Session IDs select authority; clients never send paths. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const SKILLS_ENDPOINTS: readonly ["skillsList", "skillsPreview", "skillsChanges"];
|
|
4
|
+
export type SkillsEndpoint = typeof SKILLS_ENDPOINTS[number];
|
|
5
|
+
export declare const skillsRequestSchema: z.ZodObject<{
|
|
6
|
+
sessionId: z.ZodString;
|
|
7
|
+
name: z.ZodOptional<z.ZodString>;
|
|
8
|
+
generation: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, z.core.$strict>;
|
|
10
|
+
export declare const skillsStatusSchema: z.ZodObject<{
|
|
11
|
+
sessionId: z.ZodString;
|
|
12
|
+
generation: z.ZodNumber;
|
|
13
|
+
enabled: z.ZodBoolean;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const skillsCatalogSchema: z.ZodObject<{
|
|
16
|
+
skills: z.ZodArray<z.ZodObject<{
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
description: z.ZodString;
|
|
19
|
+
modelInvocable: z.ZodBoolean;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
sessionId: z.ZodString;
|
|
22
|
+
generation: z.ZodNumber;
|
|
23
|
+
enabled: z.ZodBoolean;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export declare const skillsPreviewSchema: z.ZodObject<{
|
|
26
|
+
name: z.ZodString;
|
|
27
|
+
content: z.ZodString;
|
|
28
|
+
sessionId: z.ZodString;
|
|
29
|
+
generation: z.ZodNumber;
|
|
30
|
+
enabled: z.ZodBoolean;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export type SkillsStatusView = z.infer<typeof skillsStatusSchema>;
|
|
33
|
+
export type SkillsCatalogView = z.infer<typeof skillsCatalogSchema>;
|
|
34
|
+
export type SkillsPreviewView = z.infer<typeof skillsPreviewSchema>;
|
|
35
|
+
export interface SkillsResponseMap {
|
|
36
|
+
skillsList: SkillsCatalogView;
|
|
37
|
+
skillsPreview: SkillsPreviewView;
|
|
38
|
+
skillsChanges: SkillsStatusView;
|
|
39
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Optional Skills host entry. Kept outside the carrier's module evaluation graph. */
|
|
2
|
+
import { Service, type Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import z from '@deepseek-ai/schemastery';
|
|
4
|
+
import type { SkillsCatalogView, SkillsPreviewView, SkillsStatusView } from './skills-contract.ts';
|
|
5
|
+
export interface Config {
|
|
6
|
+
readonly enabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
9
|
+
enabled: z<boolean, boolean, "defined">;
|
|
10
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
11
|
+
enabled: z<boolean, boolean, "defined">;
|
|
12
|
+
}>>, "plain">;
|
|
13
|
+
declare module '@deepseek-ai/cordis' {
|
|
14
|
+
interface Context {
|
|
15
|
+
multiRootSkills: MultiRootSkills;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Assembly owner; discovery is installed only after native services arrive. */
|
|
19
|
+
export declare class MultiRootSkills extends Service {
|
|
20
|
+
private readonly settingsConfig;
|
|
21
|
+
static Config: z<Schemastery.ObjectS<NoInfer<{
|
|
22
|
+
enabled: z<boolean, boolean, "defined">;
|
|
23
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
24
|
+
enabled: z<boolean, boolean, "defined">;
|
|
25
|
+
}>>, "plain">;
|
|
26
|
+
static provide: string;
|
|
27
|
+
static inject: string[];
|
|
28
|
+
constructor(ctx: Context, settingsConfig?: Config);
|
|
29
|
+
private settingsRead;
|
|
30
|
+
private revision;
|
|
31
|
+
private catalog;
|
|
32
|
+
private readonly changed;
|
|
33
|
+
private closing;
|
|
34
|
+
get generation(): number;
|
|
35
|
+
invalidate(): void;
|
|
36
|
+
private status;
|
|
37
|
+
listSession(sessionId: string, signal?: AbortSignal): Promise<SkillsCatalogView>;
|
|
38
|
+
previewSession(sessionId: string, name: string, signal?: AbortSignal): Promise<SkillsPreviewView>;
|
|
39
|
+
changes(sessionId: string, generation: number, signal?: AbortSignal): Promise<SkillsStatusView>;
|
|
40
|
+
protected [Service.init](): Promise<void>;
|
|
41
|
+
get enabled(): boolean;
|
|
42
|
+
}
|
|
43
|
+
export default MultiRootSkills;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-electron/dsh-plugin-multi-root-workspace",
|
|
3
3
|
"description": "Multi-root Workspace for DeepSeek Harness: adds N additional roots to the workspace sandbox scope as an out-of-tree bundle",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.11",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/types/index.d.ts",
|
|
@@ -70,6 +70,10 @@
|
|
|
70
70
|
"./auto-review": {
|
|
71
71
|
"types": "./lib/types/auto-review/entry.d.ts",
|
|
72
72
|
"default": "./lib/auto-review.js"
|
|
73
|
+
},
|
|
74
|
+
"./skills": {
|
|
75
|
+
"types": "./lib/types/skills.d.ts",
|
|
76
|
+
"default": "./lib/skills.js"
|
|
73
77
|
}
|
|
74
78
|
},
|
|
75
79
|
"files": [
|
|
@@ -101,29 +105,34 @@
|
|
|
101
105
|
},
|
|
102
106
|
"license": "MIT",
|
|
103
107
|
"peerDependencies": {
|
|
104
|
-
"@deepseek-ai/cordis": ">=4.0.1 <5.0.0 || 4.0.5-alpha.1 || 4.0.5-alpha.2",
|
|
105
|
-
"@deepseek-ai/dsh-agent": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
106
|
-
"@deepseek-ai/dsh-agent-instructions": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
107
|
-
"@deepseek-ai/dsh-api-workspace-files": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
108
|
-
"@deepseek-ai/dsh-client-connection": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
109
|
-
"@deepseek-ai/dsh-commands": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
110
|
-
"@deepseek-ai/dsh-fs": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
111
|
-
"@deepseek-ai/dsh-fs-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
112
|
-
"@deepseek-ai/dsh-llm": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
113
|
-
"@deepseek-ai/dsh-lsp": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
114
|
-
"@deepseek-ai/dsh-lsp-stdio": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
115
|
-
"@deepseek-ai/dsh-sandbox": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
116
|
-
"@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
117
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
118
|
-
"@deepseek-ai/dsh-sandbox-windows-acl": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
119
|
-
"@deepseek-ai/dsh-session": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
120
|
-
"@deepseek-ai/dsh-storage-domain": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
121
|
-
"@deepseek-ai/dsh-subprocess": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
122
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
123
|
-
"@deepseek-ai/dsh-tools": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
124
|
-
"@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
125
|
-
"@deepseek-ai/dsh-permission-presets": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2",
|
|
126
|
-
"@deepseek-ai/dsh-util-values": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2"
|
|
108
|
+
"@deepseek-ai/cordis": ">=4.0.1 <5.0.0 || 4.0.5-alpha.1 || 4.0.5-alpha.2 || 4.0.6-alpha.1",
|
|
109
|
+
"@deepseek-ai/dsh-agent": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
110
|
+
"@deepseek-ai/dsh-agent-instructions": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
111
|
+
"@deepseek-ai/dsh-api-workspace-files": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
112
|
+
"@deepseek-ai/dsh-client-connection": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
113
|
+
"@deepseek-ai/dsh-commands": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
114
|
+
"@deepseek-ai/dsh-fs": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
115
|
+
"@deepseek-ai/dsh-fs-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
116
|
+
"@deepseek-ai/dsh-llm": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
117
|
+
"@deepseek-ai/dsh-lsp": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
118
|
+
"@deepseek-ai/dsh-lsp-stdio": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
119
|
+
"@deepseek-ai/dsh-sandbox": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
120
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
121
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
122
|
+
"@deepseek-ai/dsh-sandbox-windows-acl": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
123
|
+
"@deepseek-ai/dsh-session": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
124
|
+
"@deepseek-ai/dsh-storage-domain": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
125
|
+
"@deepseek-ai/dsh-subprocess": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
126
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
127
|
+
"@deepseek-ai/dsh-tools": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
128
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
129
|
+
"@deepseek-ai/dsh-permission-presets": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
130
|
+
"@deepseek-ai/dsh-util-values": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
131
|
+
"@deepseek-ai/dsh-skill": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
132
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
133
|
+
"@deepseek-ai/dsh-settings": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
134
|
+
"@deepseek-ai/dsh-api-session-controller": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2",
|
|
135
|
+
"@deepseek-ai/dsh-session-query": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.2-alpha.2"
|
|
127
136
|
},
|
|
128
137
|
"peerDependenciesMeta": {
|
|
129
138
|
"@deepseek-ai/dsh-agent": {
|
|
@@ -173,51 +182,66 @@
|
|
|
173
182
|
},
|
|
174
183
|
"@deepseek-ai/dsh-util-values": {
|
|
175
184
|
"optional": true
|
|
185
|
+
},
|
|
186
|
+
"@deepseek-ai/dsh-skill": {
|
|
187
|
+
"optional": true
|
|
188
|
+
},
|
|
189
|
+
"@deepseek-ai/dsh-skill-filesystem": {
|
|
190
|
+
"optional": true
|
|
191
|
+
},
|
|
192
|
+
"@deepseek-ai/dsh-settings": {
|
|
193
|
+
"optional": true
|
|
194
|
+
},
|
|
195
|
+
"@deepseek-ai/dsh-api-session-controller": {
|
|
196
|
+
"optional": true
|
|
197
|
+
},
|
|
198
|
+
"@deepseek-ai/dsh-session-query": {
|
|
199
|
+
"optional": true
|
|
176
200
|
}
|
|
177
201
|
},
|
|
178
202
|
"devDependencies": {
|
|
179
|
-
"@deepseek-ai/cordis": "4.0.
|
|
180
|
-
"@deepseek-ai/dsh": "0.2.
|
|
181
|
-
"@deepseek-ai/dsh-agent": "0.2.
|
|
182
|
-
"@deepseek-ai/dsh-agent-instructions": "0.2.
|
|
183
|
-
"@deepseek-ai/dsh-api-remotes": "0.2.
|
|
184
|
-
"@deepseek-ai/dsh-api-workspace-files": "0.2.
|
|
185
|
-
"@deepseek-ai/dsh-app-boot": "0.2.
|
|
186
|
-
"@deepseek-ai/dsh-base": "0.2.
|
|
187
|
-
"@deepseek-ai/dsh-client-connection": "0.2.
|
|
188
|
-
"@deepseek-ai/dsh-client-locale": "0.2.
|
|
189
|
-
"@deepseek-ai/dsh-client-store": "0.2.
|
|
190
|
-
"@deepseek-ai/dsh-client-ui-dockkit": "0.2.
|
|
191
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.2.
|
|
192
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.
|
|
193
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.
|
|
194
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.
|
|
195
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.
|
|
196
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.2.
|
|
197
|
-
"@deepseek-ai/dsh-commands": "0.2.
|
|
198
|
-
"@deepseek-ai/dsh-fs": "0.2.
|
|
199
|
-
"@deepseek-ai/dsh-fs-local": "0.2.
|
|
200
|
-
"@deepseek-ai/dsh-fs-sandbox": "0.2.
|
|
201
|
-
"@deepseek-ai/dsh-host-open-in-app": "0.2.
|
|
202
|
-
"@deepseek-ai/dsh-llm": "0.2.
|
|
203
|
-
"@deepseek-ai/dsh-lsp": "0.2.
|
|
204
|
-
"@deepseek-ai/dsh-lsp-stdio": "0.2.
|
|
205
|
-
"@deepseek-ai/dsh-sandbox": "0.2.
|
|
206
|
-
"@deepseek-ai/dsh-sandbox-local": "0.2.
|
|
207
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.2.
|
|
208
|
-
"@deepseek-ai/dsh-sandbox-windows-acl": "0.2.
|
|
209
|
-
"@deepseek-ai/dsh-session": "0.2.
|
|
210
|
-
"@deepseek-ai/dsh-session-projection": "0.2.
|
|
211
|
-
"@deepseek-ai/dsh-storage": "0.2.
|
|
212
|
-
"@deepseek-ai/dsh-storage-domain": "0.2.
|
|
213
|
-
"@deepseek-ai/dsh-storage-json": "0.2.
|
|
214
|
-
"@deepseek-ai/dsh-subprocess": "0.2.
|
|
215
|
-
"@deepseek-ai/dsh-subprocess-local": "0.2.
|
|
216
|
-
"@deepseek-ai/dsh-system-prompt": "0.2.
|
|
217
|
-
"@deepseek-ai/dsh-tools": "0.2.
|
|
218
|
-
"@deepseek-ai/dsh-typert-protocol": "0.2.
|
|
219
|
-
"@deepseek-ai/dsh-util-workspace-path": "0.2.
|
|
220
|
-
"@deepseek-ai/dsh-workspace": "0.2.
|
|
203
|
+
"@deepseek-ai/cordis": "4.0.6-alpha.1",
|
|
204
|
+
"@deepseek-ai/dsh": "0.2.2-alpha.2",
|
|
205
|
+
"@deepseek-ai/dsh-agent": "0.2.2-alpha.2",
|
|
206
|
+
"@deepseek-ai/dsh-agent-instructions": "0.2.2-alpha.2",
|
|
207
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.2-alpha.2",
|
|
208
|
+
"@deepseek-ai/dsh-api-workspace-files": "0.2.2-alpha.2",
|
|
209
|
+
"@deepseek-ai/dsh-app-boot": "0.2.2-alpha.2",
|
|
210
|
+
"@deepseek-ai/dsh-base": "0.2.2-alpha.2",
|
|
211
|
+
"@deepseek-ai/dsh-client-connection": "0.2.2-alpha.2",
|
|
212
|
+
"@deepseek-ai/dsh-client-locale": "0.2.2-alpha.2",
|
|
213
|
+
"@deepseek-ai/dsh-client-store": "0.2.2-alpha.2",
|
|
214
|
+
"@deepseek-ai/dsh-client-ui-dockkit": "0.2.2-alpha.2",
|
|
215
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.2-alpha.2",
|
|
216
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.2-alpha.2",
|
|
217
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.2-alpha.2",
|
|
218
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-alpha.2",
|
|
219
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.2-alpha.2",
|
|
220
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.2-alpha.2",
|
|
221
|
+
"@deepseek-ai/dsh-commands": "0.2.2-alpha.2",
|
|
222
|
+
"@deepseek-ai/dsh-fs": "0.2.2-alpha.2",
|
|
223
|
+
"@deepseek-ai/dsh-fs-local": "0.2.2-alpha.2",
|
|
224
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.2.2-alpha.2",
|
|
225
|
+
"@deepseek-ai/dsh-host-open-in-app": "0.2.2-alpha.2",
|
|
226
|
+
"@deepseek-ai/dsh-llm": "0.2.2-alpha.2",
|
|
227
|
+
"@deepseek-ai/dsh-lsp": "0.2.2-alpha.2",
|
|
228
|
+
"@deepseek-ai/dsh-lsp-stdio": "0.2.2-alpha.2",
|
|
229
|
+
"@deepseek-ai/dsh-sandbox": "0.2.2-alpha.2",
|
|
230
|
+
"@deepseek-ai/dsh-sandbox-local": "0.2.2-alpha.2",
|
|
231
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.2",
|
|
232
|
+
"@deepseek-ai/dsh-sandbox-windows-acl": "0.2.2-alpha.2",
|
|
233
|
+
"@deepseek-ai/dsh-session": "0.2.2-alpha.2",
|
|
234
|
+
"@deepseek-ai/dsh-session-projection": "0.2.2-alpha.2",
|
|
235
|
+
"@deepseek-ai/dsh-storage": "0.2.2-alpha.2",
|
|
236
|
+
"@deepseek-ai/dsh-storage-domain": "0.2.2-alpha.2",
|
|
237
|
+
"@deepseek-ai/dsh-storage-json": "0.2.2-alpha.2",
|
|
238
|
+
"@deepseek-ai/dsh-subprocess": "0.2.2-alpha.2",
|
|
239
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.2-alpha.2",
|
|
240
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.2-alpha.2",
|
|
241
|
+
"@deepseek-ai/dsh-tools": "0.2.2-alpha.2",
|
|
242
|
+
"@deepseek-ai/dsh-typert-protocol": "0.2.2-alpha.2",
|
|
243
|
+
"@deepseek-ai/dsh-util-workspace-path": "0.2.2-alpha.2",
|
|
244
|
+
"@deepseek-ai/dsh-workspace": "0.2.2-alpha.2",
|
|
221
245
|
"@testing-library/react": "^16.3.3",
|
|
222
246
|
"@types/node": "^22.0.0",
|
|
223
247
|
"@types/react": "~18.3.31",
|
|
@@ -233,24 +257,12 @@
|
|
|
233
257
|
"vitest": "^4.1.8",
|
|
234
258
|
"yaml": "^2.9.0",
|
|
235
259
|
"zustand": "~4.5.7",
|
|
236
|
-
"@deepseek-ai/dsh-
|
|
237
|
-
"@deepseek-ai/dsh-
|
|
238
|
-
"@deepseek-ai/dsh-
|
|
239
|
-
"@deepseek-ai/dsh-
|
|
240
|
-
"@deepseek-ai/dsh-
|
|
241
|
-
"@deepseek-ai/dsh-
|
|
242
|
-
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.1-rc.2",
|
|
243
|
-
"@deepseek-ai/dsh-permission-presets": "0.2.1-rc.2",
|
|
244
|
-
"@deepseek-ai/dsh-ptc-runtime-node": "0.2.1-rc.2",
|
|
245
|
-
"@deepseek-ai/dsh-shell": "0.2.1-rc.2",
|
|
246
|
-
"@deepseek-ai/dsh-shell-env": "0.2.1-rc.2",
|
|
247
|
-
"@deepseek-ai/dsh-subagent": "0.2.1-rc.2",
|
|
248
|
-
"@deepseek-ai/dsh-tool-bash": "0.2.1-rc.2",
|
|
249
|
-
"@deepseek-ai/dsh-tool-fs": "0.2.1-rc.2",
|
|
250
|
-
"@deepseek-ai/dsh-tool-subagent": "0.2.1-rc.2",
|
|
251
|
-
"@deepseek-ai/dsh-user-approval": "0.2.1-rc.2",
|
|
252
|
-
"@deepseek-ai/dsh-working-directory": "0.2.1-rc.2",
|
|
253
|
-
"@deepseek-ai/dsh-util-values": "0.2.1-rc.2"
|
|
260
|
+
"@deepseek-ai/dsh-skill": "0.2.2-alpha.2",
|
|
261
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.2.2-alpha.2",
|
|
262
|
+
"@deepseek-ai/dsh-settings": "0.2.2-alpha.2",
|
|
263
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.2-alpha.2",
|
|
264
|
+
"@deepseek-ai/dsh-session-query": "0.2.2-alpha.2",
|
|
265
|
+
"@deepseek-ai/dsh-tool-skill": "0.2.2-alpha.2"
|
|
254
266
|
},
|
|
255
267
|
"dsh": {
|
|
256
268
|
"bundle": {
|
|
@@ -269,7 +281,8 @@
|
|
|
269
281
|
"dependencies": {
|
|
270
282
|
"@deepseek-ai/node-addon-system": "^0.1.2",
|
|
271
283
|
"koffi": "^3.1.0",
|
|
272
|
-
"zod": "^4.6.2"
|
|
284
|
+
"zod": "^4.6.2",
|
|
285
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
273
286
|
},
|
|
274
287
|
"scripts": {
|
|
275
288
|
"bench:roots": "node --experimental-transform-types scripts/bench-root-scale.mjs",
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Transient failure banner owned by the control that initiated the gesture,
|
|
4
|
-
* so one failed request announces once, from the control the user pressed.
|
|
5
|
-
* @returns `toast` owned by the control and `show` to announce one
|
|
6
|
-
* failure with resolved copy; announcing again replays the banner.
|
|
7
|
-
*/
|
|
8
|
-
export declare function useOpenFailureToast(): {
|
|
9
|
-
toast: ReactNode;
|
|
10
|
-
show: (text: string) => void;
|
|
11
|
-
};
|