@lvy-jsd/dsh-tool-manager 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +99 -2
  2. package/cordis.patch.yml +13 -0
  3. package/lib/exempt.d.ts +45 -0
  4. package/lib/exempt.d.ts.map +1 -0
  5. package/lib/exempt.js +122 -0
  6. package/lib/exempt.js.map +1 -0
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.d.ts.map +1 -1
  9. package/lib/index.js +243 -34
  10. package/lib/index.js.map +1 -1
  11. package/lib/manifest.d.ts +21 -0
  12. package/lib/manifest.d.ts.map +1 -0
  13. package/lib/manifest.js +112 -0
  14. package/lib/manifest.js.map +1 -0
  15. package/lib/metadata.d.ts +38 -0
  16. package/lib/metadata.d.ts.map +1 -0
  17. package/lib/metadata.js +102 -0
  18. package/lib/metadata.js.map +1 -0
  19. package/lib/router/bm25.d.ts +21 -0
  20. package/lib/router/bm25.d.ts.map +1 -0
  21. package/lib/router/bm25.js +63 -0
  22. package/lib/router/bm25.js.map +1 -0
  23. package/lib/router/index.d.ts +9 -0
  24. package/lib/router/index.d.ts.map +1 -0
  25. package/lib/router/index.js +422 -0
  26. package/lib/router/index.js.map +1 -0
  27. package/lib/router/sidecar.d.ts +34 -0
  28. package/lib/router/sidecar.d.ts.map +1 -0
  29. package/lib/router/sidecar.js +156 -0
  30. package/lib/router/sidecar.js.map +1 -0
  31. package/lib/router/types.d.ts +164 -0
  32. package/lib/router/types.d.ts.map +1 -0
  33. package/lib/router/types.js +7 -0
  34. package/lib/router/types.js.map +1 -0
  35. package/lib/settings.d.ts +32 -0
  36. package/lib/settings.d.ts.map +1 -0
  37. package/lib/settings.js +93 -0
  38. package/lib/settings.js.map +1 -0
  39. package/lib/types.d.ts +137 -1
  40. package/lib/types.d.ts.map +1 -1
  41. package/package.json +8 -4
  42. package/sidecar/bin/tool-router-sidecar +0 -0
  43. package/src/exempt.ts +148 -0
  44. package/src/index.ts +245 -35
  45. package/src/manifest.ts +116 -0
  46. package/src/metadata.ts +123 -0
  47. package/src/router/bm25.ts +68 -0
  48. package/src/router/index.ts +440 -0
  49. package/src/router/sidecar.ts +159 -0
  50. package/src/router/types.ts +149 -0
  51. package/src/settings.ts +108 -0
  52. package/src/types.ts +134 -3
@@ -0,0 +1,164 @@
1
+ export type Disposer = () => void;
2
+ export interface Logger {
3
+ info?(...args: unknown[]): void;
4
+ warn?(...args: unknown[]): void;
5
+ debug?(...args: unknown[]): void;
6
+ error?(...args: unknown[]): void;
7
+ }
8
+ /** A tool schema as the host lists it (fallback mode, no toolCatalog). */
9
+ export interface ToolSchema {
10
+ name: string;
11
+ description?: string;
12
+ [key: string]: unknown;
13
+ }
14
+ /** A ref into the tool index, aligned to the index doc id. */
15
+ export interface ToolRef {
16
+ name: string;
17
+ path: string;
18
+ summary: string;
19
+ description: string;
20
+ group: string;
21
+ category: string;
22
+ tokens: number;
23
+ highRisk: boolean;
24
+ }
25
+ /** A ref into the skill index, aligned to the index doc id. */
26
+ export interface SkillRef {
27
+ name: string;
28
+ summary: string;
29
+ whenToUse: string;
30
+ source?: string;
31
+ provider?: string;
32
+ }
33
+ /** A ranked hit: a ref plus its BM25 score. */
34
+ export interface Hit<T> {
35
+ ref: T;
36
+ score: number;
37
+ }
38
+ /** One tool entry as the toolCatalog service lists it. */
39
+ export interface CatalogToolEntry {
40
+ name: string;
41
+ short: string;
42
+ group: string;
43
+ category: string;
44
+ summary: string;
45
+ description: string;
46
+ tokens: number;
47
+ highRisk?: boolean;
48
+ }
49
+ /** The toolCatalog service surface this plugin uses. */
50
+ export interface ToolCatalogService {
51
+ get(): {
52
+ tools: Map<string, CatalogToolEntry>;
53
+ };
54
+ load(agent: unknown, targets: string[]): Promise<string>;
55
+ wireTokens?(agent: unknown): number;
56
+ }
57
+ /** One message from the llm stream. */
58
+ export interface LlmChunk {
59
+ type: string;
60
+ text?: string;
61
+ }
62
+ /** The llm service surface this plugin uses. */
63
+ export interface LlmService {
64
+ stream(options: {
65
+ provider: string;
66
+ model: string;
67
+ system?: string;
68
+ messages: {
69
+ role: string;
70
+ content: {
71
+ type: string;
72
+ text: string;
73
+ }[];
74
+ }[];
75
+ maxTokens?: number;
76
+ temperature?: number;
77
+ }): AsyncIterable<LlmChunk>;
78
+ }
79
+ /** One skill as the skills service lists it. */
80
+ export interface SkillEntry {
81
+ name: string;
82
+ description?: string;
83
+ whenToUse?: string;
84
+ source?: string;
85
+ provider?: string;
86
+ invocation?: {
87
+ modelInvocable?: boolean;
88
+ };
89
+ }
90
+ /** The skills service surface this plugin uses. */
91
+ export interface SkillsService {
92
+ list(opts?: {
93
+ cwd?: string;
94
+ scope?: string;
95
+ }): Promise<SkillEntry[]>;
96
+ get(name: string, opts?: {
97
+ cwd?: string;
98
+ }): Promise<{
99
+ content?: string;
100
+ } | undefined>;
101
+ }
102
+ /** A tool definition built by hand (no @deepseek-ai/dsh-tools dependency). */
103
+ export interface ToolDef {
104
+ name: string;
105
+ description: string;
106
+ parameters: {
107
+ type: 'object';
108
+ properties: Record<string, {
109
+ type: string;
110
+ description: string;
111
+ }>;
112
+ required: string[];
113
+ additionalProperties: boolean;
114
+ };
115
+ output: {
116
+ schema: {
117
+ type: 'string';
118
+ };
119
+ render(args: unknown, value: unknown): {
120
+ type: 'text';
121
+ text: string;
122
+ }[];
123
+ };
124
+ execute(args: Record<string, unknown>, exec?: {
125
+ agent?: unknown;
126
+ }): Promise<string>;
127
+ isConcurrencySafe?: () => boolean;
128
+ }
129
+ /** The host context this plugin receives in apply(). */
130
+ export interface HostContext {
131
+ tools: {
132
+ schemas(): ToolSchema[];
133
+ register(tool: ToolDef): void;
134
+ };
135
+ toolCatalog?: ToolCatalogService;
136
+ logger?: ((name: string) => Logger) | Logger;
137
+ get?(name: string): unknown;
138
+ on(event: string, handler: (...args: any[]) => unknown): Disposer;
139
+ effect(fn: () => Disposer | void, label?: string): void;
140
+ }
141
+ /** Configuration of the tool-router plugin. */
142
+ export interface RouterConfig {
143
+ /** Model used to re-rank tools_route candidates. */
144
+ model?: {
145
+ provider?: string;
146
+ model?: string;
147
+ };
148
+ /** Max tokens for the re-rank call. */
149
+ maxTokens?: number;
150
+ /** Default number of results. */
151
+ topK?: number;
152
+ /** Token budget for loaded tool schemas. */
153
+ maxBudget?: number;
154
+ /** BM25 parameters (JS fallback). */
155
+ k1?: number;
156
+ b?: number;
157
+ /** Sidecar overrides. */
158
+ sidecar?: {
159
+ bin?: string;
160
+ socket?: string;
161
+ timeoutMs?: number;
162
+ };
163
+ }
164
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ // Types shared by the tool-router modules.
2
+ //
3
+ // The host surface is described structurally (only what this plugin touches)
4
+ // instead of importing the host's Cordis types, so the package type-checks
5
+ // without the host packages installed next to it.
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,kDAAkD"}
@@ -0,0 +1,32 @@
1
+ import type { Logger, ToolManagerSettings } from './types.js';
2
+ /** Where the panel writes settings unless a deployment points elsewhere. */
3
+ export declare function defaultSettingsFile(): string;
4
+ /**
5
+ * Keep only known keys holding arrays of non-empty strings. Unknown keys and
6
+ * wrong types are dropped rather than trusted: the file may have been hand
7
+ * edited, and a bad value must not reach the catalog.
8
+ */
9
+ export declare function pickSettings(raw: unknown): ToolManagerSettings;
10
+ /** Read the settings file; missing or corrupt is "no override", never a crash. */
11
+ export declare function readSettingsFile(file: string, logger?: Logger): ToolManagerSettings;
12
+ /** Write the file atomically, so a crash cannot leave a half-written override. */
13
+ export declare function writeSettingsFile(file: string, settings: ToolManagerSettings, logger?: Logger): void;
14
+ export interface SettingsStore {
15
+ /** File the store reads and writes. */
16
+ file: string;
17
+ /** Values read from the file, before the config fallback fills gaps. */
18
+ stored(): ToolManagerSettings;
19
+ /** Effective values: the file wins per key, the config fills the rest. */
20
+ effective(): Required<ToolManagerSettings>;
21
+ /** Merge a patch, persist it, and return the new effective values. */
22
+ update(patch: ToolManagerSettings): Required<ToolManagerSettings>;
23
+ /** Re-read the file, for after an external edit. */
24
+ reload(): Required<ToolManagerSettings>;
25
+ }
26
+ /** Settings store over one file, with the plugin config as the fallback layer. */
27
+ export declare function createSettingsStore({ file, base, logger }: {
28
+ file: string;
29
+ base?: ToolManagerSettings;
30
+ logger?: Logger;
31
+ }): SettingsStore;
32
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAI7D,4EAA4E;AAC5E,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAS9D;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,CASnF;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWpG;AAED,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,MAAM,IAAI,mBAAmB,CAAA;IAC7B,0EAA0E;IAC1E,SAAS,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAC1C,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACjE,oDAAoD;IACpD,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAA;CACxC;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CA2BxI"}
@@ -0,0 +1,93 @@
1
+ // Persisted settings for dsh-tool-manager.
2
+ //
3
+ // The panel (and any other UI) edits these instead of `cordis.patch.yml`, which
4
+ // a user cannot reach from the browser. The file lives beside the other state
5
+ // in <DSH_HOME>/tool-manager/config.json, so backing up or wiping that one
6
+ // directory covers everything this plugin persists.
7
+ //
8
+ // Priority: the file wins per key, the plugin config fills the keys it omits.
9
+ // A key present in the file as an empty array therefore clears the config value
10
+ // — that is how a UI removes an entry for good.
11
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
12
+ import { homedir } from 'node:os';
13
+ import { dirname, join } from 'node:path';
14
+ const KEYS = ['pinned', 'unpin', 'highRisk'];
15
+ /** Where the panel writes settings unless a deployment points elsewhere. */
16
+ export function defaultSettingsFile() {
17
+ const dshHome = process.env.DSH_HOME || join(homedir(), '.config', 'deepseek-harness');
18
+ return join(dshHome, 'tool-manager', 'config.json');
19
+ }
20
+ /**
21
+ * Keep only known keys holding arrays of non-empty strings. Unknown keys and
22
+ * wrong types are dropped rather than trusted: the file may have been hand
23
+ * edited, and a bad value must not reach the catalog.
24
+ */
25
+ export function pickSettings(raw) {
26
+ const out = {};
27
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
28
+ return out;
29
+ for (const key of KEYS) {
30
+ const value = raw[key];
31
+ // Non-string entries are dropped, not coerced: a number is a typo, not a name.
32
+ if (Array.isArray(value))
33
+ out[key] = value.filter((name) => typeof name === 'string' && name.length > 0);
34
+ }
35
+ return out;
36
+ }
37
+ /** Read the settings file; missing or corrupt is "no override", never a crash. */
38
+ export function readSettingsFile(file, logger) {
39
+ try {
40
+ return pickSettings(JSON.parse(readFileSync(file, 'utf8')));
41
+ }
42
+ catch (caught) {
43
+ const error = caught;
44
+ // ENOENT is the normal first run: no file means "use the plugin config".
45
+ if (error.code !== 'ENOENT')
46
+ logger?.warn?.(`tool-manager: ignoring unreadable settings ${file}: ${error.message}`);
47
+ return {};
48
+ }
49
+ }
50
+ /** Write the file atomically, so a crash cannot leave a half-written override. */
51
+ export function writeSettingsFile(file, settings, logger) {
52
+ mkdirSync(dirname(file), { recursive: true });
53
+ const tmp = `${file}.tmp`;
54
+ try {
55
+ writeFileSync(tmp, `${JSON.stringify(settings, null, 2)}\n`);
56
+ renameSync(tmp, file);
57
+ }
58
+ catch (caught) {
59
+ // Callers report the failure to the UI, so let it through after logging.
60
+ logger?.warn?.(`tool-manager: writing settings ${file} failed: ${caught.message}`);
61
+ throw caught;
62
+ }
63
+ }
64
+ /** Settings store over one file, with the plugin config as the fallback layer. */
65
+ export function createSettingsStore({ file, base, logger }) {
66
+ const fallback = {
67
+ pinned: base?.pinned ?? [],
68
+ unpin: base?.unpin ?? [],
69
+ highRisk: base?.highRisk ?? [],
70
+ };
71
+ let stored = readSettingsFile(file, logger);
72
+ const effective = () => ({
73
+ pinned: stored.pinned ?? fallback.pinned,
74
+ unpin: stored.unpin ?? fallback.unpin,
75
+ highRisk: stored.highRisk ?? fallback.highRisk,
76
+ });
77
+ return {
78
+ file,
79
+ stored: () => ({ ...stored }),
80
+ effective,
81
+ update(patch) {
82
+ // Merged, not replaced: a UI saving one list must not drop the others.
83
+ stored = { ...stored, ...pickSettings(patch) };
84
+ writeSettingsFile(file, stored, logger);
85
+ return effective();
86
+ },
87
+ reload() {
88
+ stored = readSettingsFile(file, logger);
89
+ return effective();
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -184,8 +184,12 @@ export interface ToolLayer {
184
184
  export interface HostTools {
185
185
  schemas(agent?: Agent): ToolSchema[];
186
186
  register(definition: unknown): Disposer | void;
187
+ /** `visible` is what the agent ends up with after every layer's restrictions. */
187
188
  view?(agent: Agent): {
188
189
  restrictableNames: Iterable<string>;
190
+ visible?: {
191
+ has(name: string): boolean;
192
+ };
189
193
  };
190
194
  schemaOf?(definition: unknown, deferred: boolean): ToolSchema;
191
195
  layers?: {
@@ -219,6 +223,18 @@ export interface HostContext {
219
223
  inject?(deps: string[], fn: (ctx: AgentContext) => void): void;
220
224
  provide(name: string, service: unknown): void;
221
225
  }
226
+ /**
227
+ * Settings a UI may edit at runtime. Each key is an independent list, so two
228
+ * writers editing different keys cannot clobber each other.
229
+ */
230
+ export interface ToolManagerSettings {
231
+ /** Extra always-on tools. */
232
+ pinned?: string[];
233
+ /** Tools removed from the default always-on list. */
234
+ unpin?: string[];
235
+ /** Tool names treated as high risk. */
236
+ highRisk?: string[];
237
+ }
222
238
  /** Configuration of the core plugin. */
223
239
  export interface CoreConfig {
224
240
  /** Extra always-on tools. */
@@ -229,6 +245,49 @@ export interface CoreConfig {
229
245
  highRisk?: string[];
230
246
  /** Model routes never narrowed (default ["claude-code"]). */
231
247
  exemptProviders?: string[];
248
+ /**
249
+ * Where UI-edited settings are persisted (default
250
+ * <DSH_HOME>/tool-manager/config.json). Those values win over the fields
251
+ * above, per key.
252
+ */
253
+ settingsFile?: string;
254
+ /**
255
+ * Where UI-edited tool metadata is persisted (default
256
+ * <DSH_HOME>/tool-manager/metadata.json).
257
+ */
258
+ metadataFile?: string;
259
+ /**
260
+ * Where the plain-text tool manifest is written (default
261
+ * ~/.claude/dsh-tool-catalog.md). Set to '' to turn it off.
262
+ */
263
+ manifestFile?: string;
264
+ /**
265
+ * Where the exemption list is read from (default
266
+ * <DSH_HOME>/tool-manager/exempt.json). When the file exists its `providers`
267
+ * and `sessions` win over `exemptProviders` above; when it does not, the
268
+ * config list is used.
269
+ */
270
+ exemptFile?: string;
271
+ /** Model used to re-rank tools_route / skills_route candidates. */
272
+ model?: {
273
+ provider?: string;
274
+ model?: string;
275
+ };
276
+ /** Max tokens for the re-rank call. */
277
+ maxTokens?: number;
278
+ /** Default number of results for the find/route tools. */
279
+ topK?: number;
280
+ /** Token budget for loaded tool schemas, reported by tools_route. */
281
+ maxBudget?: number;
282
+ /** BM25 parameters (JS fallback index). */
283
+ k1?: number;
284
+ b?: number;
285
+ /** Rust sidecar overrides. */
286
+ sidecar?: {
287
+ bin?: string;
288
+ socket?: string;
289
+ timeoutMs?: number;
290
+ };
232
291
  }
233
292
  /** A plugin package the host loader knows. */
234
293
  export interface PluginPackage {
@@ -270,8 +329,24 @@ export interface ToolCatalogService {
270
329
  importState(agent: Agent, state: Partial<SerializedState>): void;
271
330
  /** Names visible to the agent, or null when this plugin does not restrict it. */
272
331
  allowFor(agent: Agent): string[] | null;
273
- /** True when the agent's model route is in `exemptProviders` (never narrowed). */
332
+ /**
333
+ * Names this plugin lets the agent see (pinned or loaded) that another layer
334
+ * still hides: an MCP connector governance `deny` rule, the connector's
335
+ * per-session injection, or any other plugin's `restrict()`. Empty when the
336
+ * host cannot report the agent's final view.
337
+ */
338
+ deniedFor(agent: Agent): string[];
339
+ /** True when the agent is never narrowed, by route or by its session id. */
274
340
  isExempt(agent: Agent): boolean;
341
+ /**
342
+ * Why the agent is exempt, so the UI can tell a route-wide exemption from one
343
+ * session: { exempt, source } with source 'file:provider' | 'file:session' |
344
+ * 'config:provider' | ''.
345
+ */
346
+ exemptionOf(agent: Agent): {
347
+ exempt: boolean;
348
+ source: string;
349
+ };
275
350
  /** Load through the same path as tools_load; returns the model-facing text. */
276
351
  load(agent: Agent, targets: readonly string[], options?: {
277
352
  forSubagents?: boolean;
@@ -283,13 +358,74 @@ export interface ToolCatalogService {
283
358
  id: string;
284
359
  parentId: string | null;
285
360
  }[];
361
+ /** Effective configuration, for UI display. */
286
362
  config(): {
287
363
  pinned: string[];
288
364
  entryTools: string[];
289
365
  extraPinned: string[];
290
366
  unpinned: string[];
291
367
  highRisk: string[];
368
+ exemptProviders: string[];
369
+ /** Session ids exempted for their own lifetime by the exemption file. */
370
+ exemptSessions: string[];
371
+ defaults: string[];
372
+ /** Where UI edits are persisted. */
373
+ settingsFile: string;
374
+ /** True when a settings file exists and overrides the plugin config. */
375
+ hasSettings: boolean;
376
+ /** Where the exemption list is read from. */
377
+ exemptFile: string;
378
+ /** True when the exemption file exists and overrides `exemptProviders`. */
379
+ hasExemptFile: boolean;
380
+ };
381
+ /**
382
+ * Add or remove one session id in the exemption file and apply it at once.
383
+ * The first call creates the file from the lists already in force, so entries
384
+ * visible in the UI are never dropped by a write.
385
+ */
386
+ setExemptSession(sessionId: string, exempt: boolean): ReturnType<ToolCatalogService['config']>;
387
+ /** Re-read the exemption file, for after an external edit. */
388
+ reloadExempt(): ReturnType<ToolCatalogService['config']>;
389
+ /**
390
+ * Persist UI-edited settings (merged per key) and apply them at once. The
391
+ * values win over the plugin config from the next call on. Returns the new
392
+ * effective configuration, in the same shape as config().
393
+ */
394
+ updateConfig(patch: ToolManagerSettings): ReturnType<ToolCatalogService['config']>;
395
+ /** Re-read the settings file, for after an external edit. */
396
+ reloadConfig(): ReturnType<ToolCatalogService['config']>;
397
+ /**
398
+ * Metadata of one tool as the catalog currently shows it, including which
399
+ * layer decided each field (`manifest`, `runtime`, `metadata` or `classifier`).
400
+ */
401
+ toolMeta(name: string): {
402
+ name: string;
403
+ found: boolean;
404
+ /** Effective values after every layer. */
405
+ effective: ToolMeta;
406
+ /** Values edited from the panel, which win over the layers above. */
407
+ edited: ToolMeta;
408
+ /** Values from package.json and runtime annotate() calls. */
409
+ declared: ToolMeta;
410
+ group: string;
411
+ category: string;
412
+ summary: string;
413
+ highRisk: boolean;
414
+ /** The tool's directory path, for linking back to the Directory tab. */
415
+ path: string;
416
+ /** True when the tool is not in the catalog (unregistered or pinned away). */
417
+ missing: boolean;
292
418
  };
419
+ /**
420
+ * Replace the editable metadata of one tool. Fields left out are dropped, so
421
+ * an emptied field falls back to the package declaration; an empty object
422
+ * removes the override entirely.
423
+ */
424
+ updateToolMeta(name: string, meta: ToolMeta): ReturnType<ToolCatalogService['toolMeta']>;
425
+ /** Drop every edited field of one tool, falling back to its declaration. */
426
+ clearToolMeta(name: string): ReturnType<ToolCatalogService['toolMeta']>;
427
+ /** Where edited metadata is persisted. */
428
+ metadataFile(): string;
293
429
  packages(): PluginPackage[];
294
430
  extensions(): {
295
431
  classifiers: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lvy-jsd/dsh-tool-manager",
3
- "version": "0.2.0",
4
- "description": "Browse every DeepSeek Harness tool as a directory (category -> group -> tool) and load tools on demand per agent. Provides the toolCatalog service for classifier, metadata, hook and visibility extensions.",
3
+ "version": "0.4.0",
4
+ "description": "Browse every DeepSeek Harness tool as a directory (category -> group -> tool), load tools on demand per agent, and find/route tools and skills by intent (BM25 retrieval with a Rust sidecar). Provides the toolCatalog service for classifier, metadata, hook and visibility extensions.",
5
5
  "license": "MIT",
6
6
  "author": "lvy-jsd",
7
7
  "type": "module",
@@ -20,7 +20,8 @@
20
20
  "src",
21
21
  "cordis.patch.yml",
22
22
  "README.md",
23
- "LICENSE"
23
+ "LICENSE",
24
+ "sidecar/bin/*"
24
25
  ],
25
26
  "publishConfig": {
26
27
  "access": "public"
@@ -34,7 +35,10 @@
34
35
  "deepseek-harness",
35
36
  "tools",
36
37
  "mcp",
37
- "lazy-loading"
38
+ "lazy-loading",
39
+ "retrieval",
40
+ "bm25",
41
+ "routing"
38
42
  ],
39
43
  "peerDependencies": {
40
44
  "@deepseek-ai/dsh-tools": ">=0.1.5-rc.2 <0.3.0-0"
Binary file