@lvy-jsd/dsh-tool-manager 0.0.0-stage → 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.
- package/LICENSE +21 -0
- package/README.md +302 -2
- package/cordis.patch.yml +29 -0
- package/lib/catalog.d.ts +35 -0
- package/lib/catalog.d.ts.map +1 -0
- package/lib/catalog.js +311 -0
- package/lib/catalog.js.map +1 -0
- package/lib/exempt.d.ts +45 -0
- package/lib/exempt.d.ts.map +1 -0
- package/lib/exempt.js +122 -0
- package/lib/exempt.js.map +1 -0
- package/lib/index.d.ts +24 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +797 -0
- package/lib/index.js.map +1 -0
- package/lib/manifest.d.ts +21 -0
- package/lib/manifest.d.ts.map +1 -0
- package/lib/manifest.js +112 -0
- package/lib/manifest.js.map +1 -0
- package/lib/metadata.d.ts +38 -0
- package/lib/metadata.d.ts.map +1 -0
- package/lib/metadata.js +102 -0
- package/lib/metadata.js.map +1 -0
- package/lib/router/bm25.d.ts +21 -0
- package/lib/router/bm25.d.ts.map +1 -0
- package/lib/router/bm25.js +63 -0
- package/lib/router/bm25.js.map +1 -0
- package/lib/router/index.d.ts +9 -0
- package/lib/router/index.d.ts.map +1 -0
- package/lib/router/index.js +422 -0
- package/lib/router/index.js.map +1 -0
- package/lib/router/sidecar.d.ts +34 -0
- package/lib/router/sidecar.d.ts.map +1 -0
- package/lib/router/sidecar.js +156 -0
- package/lib/router/sidecar.js.map +1 -0
- package/lib/router/types.d.ts +164 -0
- package/lib/router/types.d.ts.map +1 -0
- package/lib/router/types.js +7 -0
- package/lib/router/types.js.map +1 -0
- package/lib/service.d.ts +51 -0
- package/lib/service.d.ts.map +1 -0
- package/lib/service.js +199 -0
- package/lib/service.js.map +1 -0
- package/lib/settings.d.ts +32 -0
- package/lib/settings.d.ts.map +1 -0
- package/lib/settings.js +93 -0
- package/lib/settings.js.map +1 -0
- package/lib/types.d.ts +453 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +7 -0
- package/lib/types.js.map +1 -0
- package/lib/visibility.d.ts +33 -0
- package/lib/visibility.d.ts.map +1 -0
- package/lib/visibility.js +305 -0
- package/lib/visibility.js.map +1 -0
- package/package.json +54 -4
- package/sidecar/bin/tool-router-sidecar +0 -0
- package/src/catalog.ts +305 -0
- package/src/exempt.ts +148 -0
- package/src/index.ts +805 -0
- package/src/manifest.ts +116 -0
- package/src/metadata.ts +123 -0
- package/src/router/bm25.ts +68 -0
- package/src/router/index.ts +440 -0
- package/src/router/sidecar.ts +159 -0
- package/src/router/types.ts +149 -0
- package/src/service.ts +207 -0
- package/src/settings.ts +108 -0
- package/src/types.ts +450 -0
- package/src/visibility.ts +317 -0
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
/** A tool schema as the host lists it. */
|
|
2
|
+
export interface ToolSchema {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
parameters?: unknown;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
/** Metadata a plugin can attach to tools (package.json `dsh.toolCatalog` or annotate()). */
|
|
9
|
+
export interface ToolMeta {
|
|
10
|
+
group?: string;
|
|
11
|
+
category?: string;
|
|
12
|
+
risk?: string;
|
|
13
|
+
summary?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface Annotation {
|
|
16
|
+
source?: string;
|
|
17
|
+
match: string | RegExp;
|
|
18
|
+
meta: ToolMeta;
|
|
19
|
+
}
|
|
20
|
+
export interface ToolEntry {
|
|
21
|
+
name: string;
|
|
22
|
+
/** Name inside its group (MCP routing prefix dropped). */
|
|
23
|
+
short: string;
|
|
24
|
+
group: string;
|
|
25
|
+
/** Where the structural fallback alone would have put the tool. */
|
|
26
|
+
fallbackGroup: string;
|
|
27
|
+
category: string;
|
|
28
|
+
summary: string;
|
|
29
|
+
description: string;
|
|
30
|
+
tokens: number;
|
|
31
|
+
highRisk: boolean;
|
|
32
|
+
annotation: ToolMeta;
|
|
33
|
+
}
|
|
34
|
+
export interface Group {
|
|
35
|
+
name: string;
|
|
36
|
+
category: string;
|
|
37
|
+
tools: ToolEntry[];
|
|
38
|
+
}
|
|
39
|
+
export interface Category {
|
|
40
|
+
name: string;
|
|
41
|
+
description: string;
|
|
42
|
+
groups: Group[];
|
|
43
|
+
/** Set on a synthetic alias node (several targets behind one name). */
|
|
44
|
+
alias?: string[];
|
|
45
|
+
/** The exact tools an alias stands for; load these, never their whole groups. */
|
|
46
|
+
aliasTools?: ToolEntry[];
|
|
47
|
+
}
|
|
48
|
+
export interface Catalog {
|
|
49
|
+
tools: Map<string, ToolEntry>;
|
|
50
|
+
groups: Map<string, Group>;
|
|
51
|
+
categories: Map<string, Category>;
|
|
52
|
+
}
|
|
53
|
+
export type CatalogNode = {
|
|
54
|
+
kind: 'root';
|
|
55
|
+
} | {
|
|
56
|
+
kind: 'category';
|
|
57
|
+
category: Category;
|
|
58
|
+
} | {
|
|
59
|
+
kind: 'group';
|
|
60
|
+
group: Group;
|
|
61
|
+
} | {
|
|
62
|
+
kind: 'tool';
|
|
63
|
+
tool: ToolEntry;
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'missing';
|
|
66
|
+
target: string;
|
|
67
|
+
};
|
|
68
|
+
/** What a classifier sees of one tool. */
|
|
69
|
+
export interface ToolProbe {
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
annotation: ToolMeta;
|
|
73
|
+
}
|
|
74
|
+
/** What a classifier sees of one group. */
|
|
75
|
+
export interface GroupProbe {
|
|
76
|
+
name: string;
|
|
77
|
+
tools: ToolProbe[];
|
|
78
|
+
}
|
|
79
|
+
export interface Classifier {
|
|
80
|
+
name?: string;
|
|
81
|
+
priority?: number;
|
|
82
|
+
/** Group name for a tool, or undefined to pass. */
|
|
83
|
+
group?(tool: ToolProbe): string | undefined;
|
|
84
|
+
/** Category for a group, or undefined to pass. */
|
|
85
|
+
categorize?(group: GroupProbe): string | undefined;
|
|
86
|
+
}
|
|
87
|
+
export interface VisibilityFilter {
|
|
88
|
+
name?: string;
|
|
89
|
+
/** Names to keep out of `names`; may only narrow. */
|
|
90
|
+
filter(agent: Agent, names: string[]): Iterable<string> | undefined | null;
|
|
91
|
+
}
|
|
92
|
+
export interface TargetResolver {
|
|
93
|
+
name?: string;
|
|
94
|
+
/** Targets starting with this prefix are offered to `resolve` first. */
|
|
95
|
+
prefix?: string;
|
|
96
|
+
/** One or more ordinary targets to resolve instead, or undefined to pass. */
|
|
97
|
+
resolve(target: string): string | string[] | undefined | null;
|
|
98
|
+
}
|
|
99
|
+
/** A registry entry after registration (defaults filled in). */
|
|
100
|
+
export interface RegisteredResolver {
|
|
101
|
+
name: string;
|
|
102
|
+
prefix: string;
|
|
103
|
+
resolve: TargetResolver['resolve'];
|
|
104
|
+
}
|
|
105
|
+
export type Disposer = () => void;
|
|
106
|
+
export interface LoadState {
|
|
107
|
+
/** Individual tool names. */
|
|
108
|
+
loaded: Set<string>;
|
|
109
|
+
/** Subscribed group names (tools the group gains later included). */
|
|
110
|
+
groups: Set<string>;
|
|
111
|
+
/** Tools unloaded from inside a subscribed group. */
|
|
112
|
+
excluded: Set<string>;
|
|
113
|
+
/** Groups handed to subagents started later. */
|
|
114
|
+
handoffGroups: Set<string>;
|
|
115
|
+
/** Tools handed to subagents started later. */
|
|
116
|
+
handoffTools: Set<string>;
|
|
117
|
+
}
|
|
118
|
+
/** Plain JSON form of a LoadState (sorted arrays). */
|
|
119
|
+
export type SerializedState = {
|
|
120
|
+
[K in keyof LoadState]: string[];
|
|
121
|
+
};
|
|
122
|
+
export interface StateProvider {
|
|
123
|
+
name?: string;
|
|
124
|
+
/** A serialized state for the agent, or null when there is none. */
|
|
125
|
+
load?(agent: Agent): Partial<SerializedState> | null | undefined;
|
|
126
|
+
save?(agent: Agent, state: SerializedState): void;
|
|
127
|
+
}
|
|
128
|
+
export interface RiskGate {
|
|
129
|
+
name?: string;
|
|
130
|
+
}
|
|
131
|
+
export interface Logger {
|
|
132
|
+
debug?(message: string): void;
|
|
133
|
+
info?(message: string): void;
|
|
134
|
+
warn?(message: string): void;
|
|
135
|
+
}
|
|
136
|
+
export interface SessionEvent {
|
|
137
|
+
type?: string;
|
|
138
|
+
data?: {
|
|
139
|
+
provider?: string;
|
|
140
|
+
[key: string]: unknown;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export interface Session {
|
|
144
|
+
id?: unknown;
|
|
145
|
+
seq?: number;
|
|
146
|
+
eventAt?(seq: number): SessionEvent | undefined;
|
|
147
|
+
requestHeader?(): {
|
|
148
|
+
provider?: string;
|
|
149
|
+
} | undefined;
|
|
150
|
+
}
|
|
151
|
+
/** An agent as this plugin uses it. */
|
|
152
|
+
export interface Agent {
|
|
153
|
+
id: unknown;
|
|
154
|
+
options?: {
|
|
155
|
+
provider?: string;
|
|
156
|
+
};
|
|
157
|
+
session?: Session;
|
|
158
|
+
ctx?: {
|
|
159
|
+
tools?: {
|
|
160
|
+
restrict?(spec: {
|
|
161
|
+
allow?: string[];
|
|
162
|
+
deny?: string[];
|
|
163
|
+
}): Disposer;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
export interface AgentsApi {
|
|
168
|
+
list(): Agent[];
|
|
169
|
+
get?(id: unknown): Agent | undefined;
|
|
170
|
+
isOwnedBy?(childId: unknown, candidate: Agent): boolean;
|
|
171
|
+
}
|
|
172
|
+
/** Context a plugin receives once `agents` is injected. */
|
|
173
|
+
export interface AgentContext {
|
|
174
|
+
agents: AgentsApi;
|
|
175
|
+
effect(fn: () => Disposer | void, label?: string): void;
|
|
176
|
+
on(event: string, handler: (...args: any[]) => unknown): Disposer;
|
|
177
|
+
}
|
|
178
|
+
export interface ToolLayer {
|
|
179
|
+
tools: Map<string, {
|
|
180
|
+
description?: string;
|
|
181
|
+
parameters?: unknown;
|
|
182
|
+
}>;
|
|
183
|
+
}
|
|
184
|
+
export interface HostTools {
|
|
185
|
+
schemas(agent?: Agent): ToolSchema[];
|
|
186
|
+
register(definition: unknown): Disposer | void;
|
|
187
|
+
/** `visible` is what the agent ends up with after every layer's restrictions. */
|
|
188
|
+
view?(agent: Agent): {
|
|
189
|
+
restrictableNames: Iterable<string>;
|
|
190
|
+
visible?: {
|
|
191
|
+
has(name: string): boolean;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
schemaOf?(definition: unknown, deferred: boolean): ToolSchema;
|
|
195
|
+
layers?: {
|
|
196
|
+
chainLayers?(agent: Agent): Iterable<ToolLayer>;
|
|
197
|
+
peek?(agent: Agent): ToolLayer | undefined;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
export interface LoaderEntry {
|
|
201
|
+
options?: {
|
|
202
|
+
name?: unknown;
|
|
203
|
+
disabled?: boolean;
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
export interface Loader {
|
|
207
|
+
entries?(): Iterable<LoaderEntry>;
|
|
208
|
+
baseUrl?: string;
|
|
209
|
+
ctx?: {
|
|
210
|
+
baseUrl?: string;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/** The host context the core plugin is applied to. */
|
|
214
|
+
export interface HostContext {
|
|
215
|
+
tools: HostTools;
|
|
216
|
+
logger?: ((name: string) => Logger) | Logger;
|
|
217
|
+
baseUrl?: string;
|
|
218
|
+
get?(name: string): unknown;
|
|
219
|
+
emit(event: string, ...args: unknown[]): void;
|
|
220
|
+
serial(event: string, ...args: unknown[]): Promise<unknown>;
|
|
221
|
+
on(event: string, handler: (...args: any[]) => unknown): Disposer;
|
|
222
|
+
effect(fn: () => Disposer | void, label?: string): void;
|
|
223
|
+
inject?(deps: string[], fn: (ctx: AgentContext) => void): void;
|
|
224
|
+
provide(name: string, service: unknown): void;
|
|
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
|
+
}
|
|
238
|
+
/** Configuration of the core plugin. */
|
|
239
|
+
export interface CoreConfig {
|
|
240
|
+
/** Extra always-on tools. */
|
|
241
|
+
pinned?: string[];
|
|
242
|
+
/** Tools removed from the default always-on list. */
|
|
243
|
+
unpin?: string[];
|
|
244
|
+
/** Tool names treated as high risk. */
|
|
245
|
+
highRisk?: string[];
|
|
246
|
+
/** Model routes never narrowed (default ["claude-code"]). */
|
|
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
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/** A plugin package the host loader knows. */
|
|
293
|
+
export interface PluginPackage {
|
|
294
|
+
name: string;
|
|
295
|
+
dir: string;
|
|
296
|
+
manifest: string;
|
|
297
|
+
}
|
|
298
|
+
/** A search hit from toolCatalog.find(). */
|
|
299
|
+
export interface FoundTool {
|
|
300
|
+
name: string;
|
|
301
|
+
short: string;
|
|
302
|
+
path: string;
|
|
303
|
+
category: string;
|
|
304
|
+
group: string;
|
|
305
|
+
summary: string;
|
|
306
|
+
tokens: number;
|
|
307
|
+
highRisk: boolean;
|
|
308
|
+
}
|
|
309
|
+
/** The service the core provides as `toolCatalog` (inject it to extend the catalog). */
|
|
310
|
+
export interface ToolCatalogService {
|
|
311
|
+
registerClassifier(classifier: Classifier): Disposer;
|
|
312
|
+
annotate(match: string | RegExp, meta: ToolMeta): Disposer;
|
|
313
|
+
defineCategory(name: string, description?: string): Disposer;
|
|
314
|
+
registerVisibilityFilter(filter: VisibilityFilter): Disposer;
|
|
315
|
+
/** Own a target prefix (`"cap:"`) in tools_load / tools_ls / tools_unload. */
|
|
316
|
+
registerTargetResolver(resolver: TargetResolver): Disposer;
|
|
317
|
+
/** Let loaded state outlive the process (see dsh-tool-manager-persist). */
|
|
318
|
+
registerStateProvider(provider?: StateProvider): Disposer;
|
|
319
|
+
/** Declare that a plugin confirms high-risk loads; without one they are refused. */
|
|
320
|
+
registerRiskGate(gate?: RiskGate): Disposer;
|
|
321
|
+
riskGates(): string[];
|
|
322
|
+
/** Re-read package declarations and rebuild. */
|
|
323
|
+
refresh(): void;
|
|
324
|
+
/** Catalog as one agent sees it, or the union over live agents. */
|
|
325
|
+
get(agent?: Agent): Catalog;
|
|
326
|
+
resolve(target: string, agent?: Agent): CatalogNode;
|
|
327
|
+
stateOf(agent: Agent): LoadState;
|
|
328
|
+
exportState(agent: Agent): SerializedState;
|
|
329
|
+
importState(agent: Agent, state: Partial<SerializedState>): void;
|
|
330
|
+
/** Names visible to the agent, or null when this plugin does not restrict it. */
|
|
331
|
+
allowFor(agent: Agent): string[] | null;
|
|
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. */
|
|
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
|
+
};
|
|
350
|
+
/** Load through the same path as tools_load; returns the model-facing text. */
|
|
351
|
+
load(agent: Agent, targets: readonly string[], options?: {
|
|
352
|
+
forSubagents?: boolean;
|
|
353
|
+
}): Promise<string>;
|
|
354
|
+
unload(agent: Agent, targets: readonly string[]): Promise<string>;
|
|
355
|
+
/** Live agents, each with its parent when it is a subagent. */
|
|
356
|
+
agents(): {
|
|
357
|
+
agent: Agent;
|
|
358
|
+
id: string;
|
|
359
|
+
parentId: string | null;
|
|
360
|
+
}[];
|
|
361
|
+
/** Effective configuration, for UI display. */
|
|
362
|
+
config(): {
|
|
363
|
+
pinned: string[];
|
|
364
|
+
entryTools: string[];
|
|
365
|
+
extraPinned: string[];
|
|
366
|
+
unpinned: string[];
|
|
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;
|
|
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;
|
|
429
|
+
packages(): PluginPackage[];
|
|
430
|
+
extensions(): {
|
|
431
|
+
classifiers: {
|
|
432
|
+
name: string;
|
|
433
|
+
priority: number;
|
|
434
|
+
}[];
|
|
435
|
+
filters: string[];
|
|
436
|
+
annotations: {
|
|
437
|
+
source: string | undefined;
|
|
438
|
+
match: string;
|
|
439
|
+
}[];
|
|
440
|
+
categories: string[];
|
|
441
|
+
riskGates: string[];
|
|
442
|
+
stateProviders: string[];
|
|
443
|
+
};
|
|
444
|
+
/** Structured cross-directory search (same matching as tools_ls with a query). */
|
|
445
|
+
find(query: string, path?: string): FoundTool[];
|
|
446
|
+
/** Schema tokens actually sent for an agent: pinned tools plus its loaded set. */
|
|
447
|
+
wireTokens(agent: Agent): number;
|
|
448
|
+
}
|
|
449
|
+
/** What an extension plugin uses of its context after `inject: ['toolCatalog']`. */
|
|
450
|
+
export interface ExtensionContext extends Pick<HostContext, 'logger' | 'effect' | 'on'> {
|
|
451
|
+
toolCatalog: ToolCatalogService;
|
|
452
|
+
}
|
|
453
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Types shared by the core modules and exported for extension plugins.
|
|
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
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,kDAAkD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Agent, AgentContext, Catalog, Disposer, HostContext, LoadState, Logger, SerializedState, StateProvider } from './types.js';
|
|
2
|
+
import type { RegisteredFilter } from './service.js';
|
|
3
|
+
/** Plain JSON form of one agent's state (sorted arrays). */
|
|
4
|
+
export declare function serializeState(state: LoadState): SerializedState;
|
|
5
|
+
/** Inverse of serializeState; unknown keys are ignored, values coerced to strings. */
|
|
6
|
+
export declare function deserializeState(raw: Partial<Record<keyof LoadState, Iterable<unknown>>> | null | undefined): LoadState;
|
|
7
|
+
export interface VisibilityOptions {
|
|
8
|
+
pinned: () => Iterable<string>;
|
|
9
|
+
entryTools?: readonly string[];
|
|
10
|
+
getFilters?: () => readonly RegisteredFilter[];
|
|
11
|
+
getCatalog: (agent?: Agent) => Catalog;
|
|
12
|
+
invalidate?: () => void;
|
|
13
|
+
onStateChange?: (agent: Agent, state: SerializedState) => void;
|
|
14
|
+
isExempt?: (agent: Agent) => boolean;
|
|
15
|
+
logger?: Logger;
|
|
16
|
+
}
|
|
17
|
+
export type VisibilityController = ReturnType<typeof createVisibilityController>;
|
|
18
|
+
export declare function createVisibilityController(ctx: Pick<HostContext, 'tools'>, { pinned, entryTools, getFilters, getCatalog, invalidate, onStateChange, isExempt, logger }: VisibilityOptions): {
|
|
19
|
+
mount: (agentCtx: AgentContext) => Disposer;
|
|
20
|
+
update: <R>(agent: Agent, mutate: (state: LoadState) => R) => R;
|
|
21
|
+
agents: () => Agent[];
|
|
22
|
+
parentOf: (agent: Agent) => Agent | undefined;
|
|
23
|
+
stateOf: (agent: Agent) => LoadState;
|
|
24
|
+
registerStateProvider: (provider?: StateProvider) => Disposer;
|
|
25
|
+
stateProviders: () => string[];
|
|
26
|
+
exportState: (agent: Agent) => SerializedState;
|
|
27
|
+
importState: (agent: Agent, raw: Parameters<typeof deserializeState>[0]) => void;
|
|
28
|
+
allowFor: (agent: Agent) => string[] | null;
|
|
29
|
+
isExempt: (agent: Agent) => boolean;
|
|
30
|
+
refresh: () => void;
|
|
31
|
+
dispose(): void;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=visibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../src/visibility.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACxI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAcpD,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,CAIhE;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAIvH;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,SAAS,gBAAgB,EAAE,CAAA;IAC9C,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,CAAA;IACtC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAQD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,UAAe,EAAE,UAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,QAAsB,EAAE,MAAM,EAAE,EAAE,iBAAiB;sBA6L7L,YAAY,KAAG,QAAQ;aAiChC,CAAC,SAAS,KAAK,UAAU,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,KAAG,CAAC;kBAoBtD,KAAK,EAAE;sBApII,KAAK,KAAG,KAAK,GAAG,SAAS;qBA0G1B,KAAK,KAAG,SAAS;uCAvDA,aAAa,KAAQ,QAAQ;;yBAsF/C,KAAK;yBAbA,KAAK,OAAO,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;sBAgB1D,KAAK,KAAG,MAAM,EAAE,GAAG,IAAI;sBACvB,KAAK;;;EAO1B"}
|