@a5c-ai/tools-adapter 5.1.1-staging.0c6199708314
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -0
- package/dist/__tests__/dispatch.test.d.ts +2 -0
- package/dist/__tests__/dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/dispatch.test.js +251 -0
- package/dist/__tests__/dispatch.test.js.map +1 -0
- package/dist/__tests__/hooks.test.d.ts +2 -0
- package/dist/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/__tests__/hooks.test.js +172 -0
- package/dist/__tests__/hooks.test.js.map +1 -0
- package/dist/__tests__/mcp-bridge.test.d.ts +2 -0
- package/dist/__tests__/mcp-bridge.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-bridge.test.js +129 -0
- package/dist/__tests__/mcp-bridge.test.js.map +1 -0
- package/dist/__tests__/registry.test.d.ts +2 -0
- package/dist/__tests__/registry.test.d.ts.map +1 -0
- package/dist/__tests__/registry.test.js +196 -0
- package/dist/__tests__/registry.test.js.map +1 -0
- package/dist/__tests__/schema-translation.test.d.ts +2 -0
- package/dist/__tests__/schema-translation.test.d.ts.map +1 -0
- package/dist/__tests__/schema-translation.test.js +126 -0
- package/dist/__tests__/schema-translation.test.js.map +1 -0
- package/dist/__tests__/unified-contract.test.d.ts +2 -0
- package/dist/__tests__/unified-contract.test.d.ts.map +1 -0
- package/dist/__tests__/unified-contract.test.js +98 -0
- package/dist/__tests__/unified-contract.test.js.map +1 -0
- package/dist/dispatch.d.ts +43 -0
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/dispatch.js +157 -0
- package/dist/dispatch.js.map +1 -0
- package/dist/hooks.d.ts +99 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +110 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-bridge.d.ts +54 -0
- package/dist/mcp-bridge.d.ts.map +1 -0
- package/dist/mcp-bridge.js +78 -0
- package/dist/mcp-bridge.js.map +1 -0
- package/dist/registry.d.ts +70 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +221 -0
- package/dist/registry.js.map +1 -0
- package/dist/schema-translation.d.ts +38 -0
- package/dist/schema-translation.d.ts.map +1 -0
- package/dist/schema-translation.js +61 -0
- package/dist/schema-translation.js.map +1 -0
- package/dist/types.d.ts +159 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +39 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ToolDescriptor, ToolServer } from './types.js';
|
|
2
|
+
import type { ToolSource } from './types.js';
|
|
3
|
+
export interface DeferredToolEntry {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
source: ToolSource;
|
|
7
|
+
sourceQualifier?: string;
|
|
8
|
+
metadata?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolSchema {
|
|
11
|
+
inputSchema: Record<string, unknown>;
|
|
12
|
+
outputSchema?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface ResolvedToolEntry extends DeferredToolEntry {
|
|
15
|
+
schema: ToolSchema;
|
|
16
|
+
}
|
|
17
|
+
export type SchemaLoader = (entry: DeferredToolEntry) => Promise<ToolSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* In-memory registry of tool descriptors, indexed by tool name.
|
|
20
|
+
*
|
|
21
|
+
* Tools are optionally scoped to a server. The registry never reaches
|
|
22
|
+
* out to the network — callers are responsible for populating it from
|
|
23
|
+
* whatever discovery mechanism they use (MCP enumeration, plugin
|
|
24
|
+
* manifests, built-in definitions, etc.).
|
|
25
|
+
*/
|
|
26
|
+
export declare class ToolRegistry {
|
|
27
|
+
private readonly tools;
|
|
28
|
+
private readonly servers;
|
|
29
|
+
private readonly schemas;
|
|
30
|
+
private readonly loaders;
|
|
31
|
+
/** Register (or replace) a single tool descriptor. */
|
|
32
|
+
register(tool: ToolDescriptor): void;
|
|
33
|
+
/** Register every tool in the supplied array. */
|
|
34
|
+
registerAll(tools: ToolDescriptor[]): void;
|
|
35
|
+
/** Remove a tool by name. Returns `true` if it existed. */
|
|
36
|
+
unregister(name: string, source?: ToolSource, sourceQualifier?: string): boolean;
|
|
37
|
+
/** Look up a single tool by exact name. */
|
|
38
|
+
get(name: string, source?: ToolSource, sourceQualifier?: string): ToolDescriptor | undefined;
|
|
39
|
+
/** Return every registered tool descriptor. */
|
|
40
|
+
list(): ToolDescriptor[];
|
|
41
|
+
/** Return tools that belong to a specific server id. */
|
|
42
|
+
listByServer(serverId: string): ToolDescriptor[];
|
|
43
|
+
/** Check whether a tool is registered. */
|
|
44
|
+
has(name: string, source?: ToolSource, sourceQualifier?: string): boolean;
|
|
45
|
+
/** Number of registered tools. */
|
|
46
|
+
get size(): number;
|
|
47
|
+
/** Register a server and all of its tools in one shot. */
|
|
48
|
+
registerServer(server: ToolServer): void;
|
|
49
|
+
/** Remove a server and optionally all of its associated tools. */
|
|
50
|
+
unregisterServer(serverId: string, removeTools?: boolean): boolean;
|
|
51
|
+
/** Look up a server by id. */
|
|
52
|
+
getServer(serverId: string): ToolServer | undefined;
|
|
53
|
+
/** Return all registered servers. */
|
|
54
|
+
listServers(): ToolServer[];
|
|
55
|
+
/** Remove everything. */
|
|
56
|
+
clear(): void;
|
|
57
|
+
registerLoader(source: ToolSource, loader: SchemaLoader): void;
|
|
58
|
+
registerTools(entries: DeferredToolEntry[]): void;
|
|
59
|
+
removeToolsBySource(source: ToolSource, sourceQualifier?: string): number;
|
|
60
|
+
getAllEntries(): DeferredToolEntry[];
|
|
61
|
+
getEntriesBySource(source: ToolSource, sourceQualifier?: string): DeferredToolEntry[];
|
|
62
|
+
searchTools(query: string, maxResults?: number): DeferredToolEntry[];
|
|
63
|
+
fetchSchema(toolName: string, source?: ToolSource, sourceQualifier?: string): Promise<ResolvedToolEntry | undefined>;
|
|
64
|
+
get loadedSchemaCount(): number;
|
|
65
|
+
private key;
|
|
66
|
+
private findKeyByName;
|
|
67
|
+
private findKey;
|
|
68
|
+
private toDeferredEntry;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory registry of tool descriptors, indexed by tool name.
|
|
3
|
+
*
|
|
4
|
+
* Tools are optionally scoped to a server. The registry never reaches
|
|
5
|
+
* out to the network — callers are responsible for populating it from
|
|
6
|
+
* whatever discovery mechanism they use (MCP enumeration, plugin
|
|
7
|
+
* manifests, built-in definitions, etc.).
|
|
8
|
+
*/
|
|
9
|
+
export class ToolRegistry {
|
|
10
|
+
tools = new Map();
|
|
11
|
+
servers = new Map();
|
|
12
|
+
schemas = new Map();
|
|
13
|
+
loaders = new Map();
|
|
14
|
+
/* ------------------------------------------------------------------ */
|
|
15
|
+
/* Tool-level operations */
|
|
16
|
+
/* ------------------------------------------------------------------ */
|
|
17
|
+
/** Register (or replace) a single tool descriptor. */
|
|
18
|
+
register(tool) {
|
|
19
|
+
this.tools.set(this.key(tool), tool);
|
|
20
|
+
}
|
|
21
|
+
/** Register every tool in the supplied array. */
|
|
22
|
+
registerAll(tools) {
|
|
23
|
+
for (const tool of tools) {
|
|
24
|
+
this.register(tool);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Remove a tool by name. Returns `true` if it existed. */
|
|
28
|
+
unregister(name, source, sourceQualifier) {
|
|
29
|
+
const key = source ? this.findKey(name, source, sourceQualifier) : this.findKeyByName(name);
|
|
30
|
+
if (!key) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
this.schemas.delete(key);
|
|
34
|
+
return this.tools.delete(key);
|
|
35
|
+
}
|
|
36
|
+
/** Look up a single tool by exact name. */
|
|
37
|
+
get(name, source, sourceQualifier) {
|
|
38
|
+
if (source) {
|
|
39
|
+
return this.tools.get(this.key({ name, source, sourceQualifier }));
|
|
40
|
+
}
|
|
41
|
+
return this.tools.get(name) ?? this.tools.get(this.findKeyByName(name) ?? '');
|
|
42
|
+
}
|
|
43
|
+
/** Return every registered tool descriptor. */
|
|
44
|
+
list() {
|
|
45
|
+
return [...this.tools.values()];
|
|
46
|
+
}
|
|
47
|
+
/** Return tools that belong to a specific server id. */
|
|
48
|
+
listByServer(serverId) {
|
|
49
|
+
return [...this.tools.values()].filter((t) => t.server === serverId);
|
|
50
|
+
}
|
|
51
|
+
/** Check whether a tool is registered. */
|
|
52
|
+
has(name, source, sourceQualifier) {
|
|
53
|
+
return Boolean(this.get(name, source, sourceQualifier));
|
|
54
|
+
}
|
|
55
|
+
/** Number of registered tools. */
|
|
56
|
+
get size() {
|
|
57
|
+
return this.tools.size;
|
|
58
|
+
}
|
|
59
|
+
/* ------------------------------------------------------------------ */
|
|
60
|
+
/* Server-level operations */
|
|
61
|
+
/* ------------------------------------------------------------------ */
|
|
62
|
+
/** Register a server and all of its tools in one shot. */
|
|
63
|
+
registerServer(server) {
|
|
64
|
+
this.servers.set(server.id, server);
|
|
65
|
+
for (const tool of server.tools) {
|
|
66
|
+
// Ensure every tool carries the server association.
|
|
67
|
+
this.register({ ...tool, server: server.id });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Remove a server and optionally all of its associated tools. */
|
|
71
|
+
unregisterServer(serverId, removeTools = true) {
|
|
72
|
+
if (removeTools) {
|
|
73
|
+
for (const tool of this.listByServer(serverId)) {
|
|
74
|
+
this.unregister(tool.name, tool.source, tool.sourceQualifier);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return this.servers.delete(serverId);
|
|
78
|
+
}
|
|
79
|
+
/** Look up a server by id. */
|
|
80
|
+
getServer(serverId) {
|
|
81
|
+
return this.servers.get(serverId);
|
|
82
|
+
}
|
|
83
|
+
/** Return all registered servers. */
|
|
84
|
+
listServers() {
|
|
85
|
+
return [...this.servers.values()];
|
|
86
|
+
}
|
|
87
|
+
/** Remove everything. */
|
|
88
|
+
clear() {
|
|
89
|
+
this.tools.clear();
|
|
90
|
+
this.servers.clear();
|
|
91
|
+
this.schemas.clear();
|
|
92
|
+
this.loaders.clear();
|
|
93
|
+
}
|
|
94
|
+
registerLoader(source, loader) {
|
|
95
|
+
this.loaders.set(source, loader);
|
|
96
|
+
}
|
|
97
|
+
registerTools(entries) {
|
|
98
|
+
for (const entry of entries) {
|
|
99
|
+
this.register({
|
|
100
|
+
name: entry.name,
|
|
101
|
+
description: entry.description,
|
|
102
|
+
source: entry.source,
|
|
103
|
+
sourceQualifier: entry.sourceQualifier,
|
|
104
|
+
metadata: entry.metadata,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
removeToolsBySource(source, sourceQualifier) {
|
|
109
|
+
let removed = 0;
|
|
110
|
+
for (const tool of this.list()) {
|
|
111
|
+
const qualifier = tool.sourceQualifier ?? tool.server;
|
|
112
|
+
if (tool.source === source && (!sourceQualifier || qualifier === sourceQualifier)) {
|
|
113
|
+
if (this.unregister(tool.name, tool.source, qualifier)) {
|
|
114
|
+
removed++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return removed;
|
|
119
|
+
}
|
|
120
|
+
getAllEntries() {
|
|
121
|
+
return this.list().map((tool) => this.toDeferredEntry(tool));
|
|
122
|
+
}
|
|
123
|
+
getEntriesBySource(source, sourceQualifier) {
|
|
124
|
+
return this.getAllEntries().filter((entry) => entry.source === source && (!sourceQualifier || entry.sourceQualifier === sourceQualifier));
|
|
125
|
+
}
|
|
126
|
+
searchTools(query, maxResults = 20) {
|
|
127
|
+
const lower = query.toLowerCase();
|
|
128
|
+
const scored = [];
|
|
129
|
+
for (const tool of this.list()) {
|
|
130
|
+
const entry = this.toDeferredEntry(tool);
|
|
131
|
+
let score = 0;
|
|
132
|
+
const nameLower = entry.name.toLowerCase();
|
|
133
|
+
const descLower = entry.description.toLowerCase();
|
|
134
|
+
if (nameLower === lower) {
|
|
135
|
+
score += 100;
|
|
136
|
+
}
|
|
137
|
+
else if (nameLower.includes(lower)) {
|
|
138
|
+
score += 50;
|
|
139
|
+
if (nameLower.startsWith(lower))
|
|
140
|
+
score += 20;
|
|
141
|
+
}
|
|
142
|
+
if (descLower.includes(lower)) {
|
|
143
|
+
score += 10;
|
|
144
|
+
}
|
|
145
|
+
if (score > 0) {
|
|
146
|
+
scored.push({ entry, score });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
scored.sort((a, b) => b.score - a.score || a.entry.name.localeCompare(b.entry.name));
|
|
150
|
+
return scored.slice(0, maxResults).map((item) => item.entry);
|
|
151
|
+
}
|
|
152
|
+
async fetchSchema(toolName, source, sourceQualifier) {
|
|
153
|
+
const tool = this.get(toolName, source, sourceQualifier);
|
|
154
|
+
if (!tool) {
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
const key = this.key(tool);
|
|
158
|
+
const entry = this.toDeferredEntry(tool);
|
|
159
|
+
const cached = this.schemas.get(key);
|
|
160
|
+
if (cached) {
|
|
161
|
+
return { ...entry, schema: cached };
|
|
162
|
+
}
|
|
163
|
+
if (tool.parameters) {
|
|
164
|
+
const schema = {
|
|
165
|
+
inputSchema: tool.parameters,
|
|
166
|
+
...(tool.outputSchema ? { outputSchema: tool.outputSchema } : {}),
|
|
167
|
+
};
|
|
168
|
+
this.schemas.set(key, schema);
|
|
169
|
+
return { ...entry, schema };
|
|
170
|
+
}
|
|
171
|
+
const loader = this.loaders.get(tool.source);
|
|
172
|
+
if (!loader) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const schema = await loader(entry);
|
|
176
|
+
this.schemas.set(key, schema);
|
|
177
|
+
return { ...entry, schema };
|
|
178
|
+
}
|
|
179
|
+
get loadedSchemaCount() {
|
|
180
|
+
return this.schemas.size;
|
|
181
|
+
}
|
|
182
|
+
key(tool) {
|
|
183
|
+
const qualifier = tool.sourceQualifier ?? tool.server;
|
|
184
|
+
return qualifier ? `${tool.source}:${qualifier}:${tool.name}` : tool.name;
|
|
185
|
+
}
|
|
186
|
+
findKeyByName(name) {
|
|
187
|
+
if (this.tools.has(name)) {
|
|
188
|
+
return name;
|
|
189
|
+
}
|
|
190
|
+
for (const [key, tool] of this.tools) {
|
|
191
|
+
if (tool.name === name) {
|
|
192
|
+
return key;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
findKey(name, source, sourceQualifier) {
|
|
198
|
+
const direct = this.key({ name, source, sourceQualifier });
|
|
199
|
+
if (this.tools.has(direct)) {
|
|
200
|
+
return direct;
|
|
201
|
+
}
|
|
202
|
+
for (const [key, tool] of this.tools) {
|
|
203
|
+
if (tool.name === name
|
|
204
|
+
&& tool.source === source
|
|
205
|
+
&& (!sourceQualifier || tool.sourceQualifier === sourceQualifier || tool.server === sourceQualifier)) {
|
|
206
|
+
return key;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
toDeferredEntry(tool) {
|
|
212
|
+
return {
|
|
213
|
+
name: tool.name,
|
|
214
|
+
description: tool.description ?? '',
|
|
215
|
+
source: tool.source,
|
|
216
|
+
sourceQualifier: tool.sourceQualifier ?? tool.server,
|
|
217
|
+
metadata: tool.metadata,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema-translation layer.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the format-level conversion helpers from `@a5c-ai/transport-adapter`
|
|
5
|
+
* and adds thin adapters between `NormalizedToolDefinition` (transport-adapter
|
|
6
|
+
* canonical form) and `ToolDescriptor` (tools-adapter lifecycle form).
|
|
7
|
+
*/
|
|
8
|
+
import type { CodecCapabilities, NormalizedToolDefinition } from '@a5c-ai/transport-adapter';
|
|
9
|
+
import { convertTools } from '@a5c-ai/transport-adapter';
|
|
10
|
+
import type { ToolDescriptor, ToolSource } from './types.js';
|
|
11
|
+
export { convertTools };
|
|
12
|
+
export type { NormalizedToolDefinition, CodecCapabilities };
|
|
13
|
+
type ToolSchemaFormat = CodecCapabilities['toolSchemaFormat'];
|
|
14
|
+
/**
|
|
15
|
+
* Lift a `NormalizedToolDefinition` (format-agnostic shape produced by
|
|
16
|
+
* transport-adapter codecs) into a full `ToolDescriptor` by attaching a
|
|
17
|
+
* source tag and optional metadata.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toToolDescriptor(normalized: NormalizedToolDefinition, source: ToolSource, extra?: {
|
|
20
|
+
server?: string;
|
|
21
|
+
permissions?: string[];
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}): ToolDescriptor;
|
|
24
|
+
/**
|
|
25
|
+
* Strip lifecycle metadata from a `ToolDescriptor`, returning the
|
|
26
|
+
* minimal `NormalizedToolDefinition` understood by transport-adapter.
|
|
27
|
+
*/
|
|
28
|
+
export declare function fromToolDescriptor(descriptor: ToolDescriptor): NormalizedToolDefinition;
|
|
29
|
+
/**
|
|
30
|
+
* Translate an array of `ToolDescriptor`s into the wire format
|
|
31
|
+
* expected by a specific provider (Anthropic, OpenAI, Google, Bedrock).
|
|
32
|
+
*
|
|
33
|
+
* This is a convenience wrapper that:
|
|
34
|
+
* 1. Strips descriptors down to `NormalizedToolDefinition`.
|
|
35
|
+
* 2. Denormalizes them into the target format via `convertTools`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function translateTools(descriptors: ToolDescriptor[], targetFormat: ToolSchemaFormat): unknown[];
|
|
38
|
+
//# sourceMappingURL=schema-translation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-translation.d.ts","sourceRoot":"","sources":["../src/schema-translation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7D,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,CAAC;AAE5D,KAAK,gBAAgB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAM9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACtF,cAAc,CAUhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,cAAc,GAAG,wBAAwB,CAMvF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,cAAc,EAAE,EAC7B,YAAY,EAAE,gBAAgB,GAC7B,OAAO,EAAE,CAUX"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema-translation layer.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the format-level conversion helpers from `@a5c-ai/transport-adapter`
|
|
5
|
+
* and adds thin adapters between `NormalizedToolDefinition` (transport-adapter
|
|
6
|
+
* canonical form) and `ToolDescriptor` (tools-adapter lifecycle form).
|
|
7
|
+
*/
|
|
8
|
+
import { convertTools } from '@a5c-ai/transport-adapter';
|
|
9
|
+
/* ------------------------------------------------------------------ */
|
|
10
|
+
/* Re-exports from transport-adapter */
|
|
11
|
+
/* ------------------------------------------------------------------ */
|
|
12
|
+
export { convertTools };
|
|
13
|
+
/* ------------------------------------------------------------------ */
|
|
14
|
+
/* Descriptor ↔ NormalizedToolDefinition */
|
|
15
|
+
/* ------------------------------------------------------------------ */
|
|
16
|
+
/**
|
|
17
|
+
* Lift a `NormalizedToolDefinition` (format-agnostic shape produced by
|
|
18
|
+
* transport-adapter codecs) into a full `ToolDescriptor` by attaching a
|
|
19
|
+
* source tag and optional metadata.
|
|
20
|
+
*/
|
|
21
|
+
export function toToolDescriptor(normalized, source, extra) {
|
|
22
|
+
return {
|
|
23
|
+
name: normalized.name,
|
|
24
|
+
description: normalized.description,
|
|
25
|
+
parameters: normalized.parameters,
|
|
26
|
+
source,
|
|
27
|
+
...(extra?.server != null && { server: extra.server }),
|
|
28
|
+
...(extra?.permissions != null && { permissions: extra.permissions }),
|
|
29
|
+
...(extra?.metadata != null && { metadata: extra.metadata }),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Strip lifecycle metadata from a `ToolDescriptor`, returning the
|
|
34
|
+
* minimal `NormalizedToolDefinition` understood by transport-adapter.
|
|
35
|
+
*/
|
|
36
|
+
export function fromToolDescriptor(descriptor) {
|
|
37
|
+
return {
|
|
38
|
+
name: descriptor.name,
|
|
39
|
+
...(descriptor.description != null && { description: descriptor.description }),
|
|
40
|
+
...(descriptor.parameters != null && { parameters: descriptor.parameters }),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Translate an array of `ToolDescriptor`s into the wire format
|
|
45
|
+
* expected by a specific provider (Anthropic, OpenAI, Google, Bedrock).
|
|
46
|
+
*
|
|
47
|
+
* This is a convenience wrapper that:
|
|
48
|
+
* 1. Strips descriptors down to `NormalizedToolDefinition`.
|
|
49
|
+
* 2. Denormalizes them into the target format via `convertTools`.
|
|
50
|
+
*/
|
|
51
|
+
export function translateTools(descriptors, targetFormat) {
|
|
52
|
+
if (targetFormat === 'none') {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
// NormalizedToolDefinition is already "openai-shaped" in practice
|
|
56
|
+
// (name + description + parameters JSON Schema), so we convert from
|
|
57
|
+
// the 'openai' canonical form.
|
|
58
|
+
const normalized = descriptors.map(fromToolDescriptor);
|
|
59
|
+
return convertTools(normalized, 'openai', targetFormat);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=schema-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-translation.js","sourceRoot":"","sources":["../src/schema-translation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,wEAAwE;AACxE,6EAA6E;AAC7E,wEAAwE;AAExE,OAAO,EAAE,YAAY,EAAE,CAAC;AAKxB,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AAExE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAoC,EACpC,MAAkB,EAClB,KAAuF;IAEvF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,MAAM;QACN,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAA0B;IAC3D,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,WAA6B,EAC7B,YAA8B;IAE9B,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,+BAA+B;IAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvD,OAAO,YAAY,CAAC,UAAuB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACvE,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
export type ToolSource = 'builtin' | 'mcp' | 'plugin' | 'custom';
|
|
2
|
+
export type ToolCategory = 'shell' | 'filesystem' | 'web' | 'search' | 'code' | 'mcp' | 'ssh' | 'governance' | 'utility' | 'unknown';
|
|
3
|
+
export type ToolApprovalPolicy = 'never' | 'on-risk' | 'always' | {
|
|
4
|
+
mode: 'never' | 'on-risk' | 'always';
|
|
5
|
+
reason?: string;
|
|
6
|
+
riskTags?: string[];
|
|
7
|
+
};
|
|
8
|
+
export interface ToolCostHint {
|
|
9
|
+
unit: 'free' | 'low' | 'medium' | 'high' | 'metered';
|
|
10
|
+
estimatedUsd?: number;
|
|
11
|
+
meter?: 'tokens' | 'requests' | 'seconds' | 'bytes';
|
|
12
|
+
}
|
|
13
|
+
export interface ToolRateLimitHint {
|
|
14
|
+
scope: 'tool' | 'provider' | 'host' | 'user';
|
|
15
|
+
limit: number;
|
|
16
|
+
windowMs: number;
|
|
17
|
+
burst?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface ToolCacheCapability {
|
|
20
|
+
read: boolean;
|
|
21
|
+
write: false;
|
|
22
|
+
keyFields?: string[];
|
|
23
|
+
ttlMs?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface UnifiedToolMetadata {
|
|
26
|
+
category: ToolCategory;
|
|
27
|
+
tags?: string[];
|
|
28
|
+
displayName?: string;
|
|
29
|
+
version?: string;
|
|
30
|
+
source?: ToolSource | 'deferred' | 'host' | 'code-executor';
|
|
31
|
+
cost?: ToolCostHint;
|
|
32
|
+
rateLimit?: ToolRateLimitHint;
|
|
33
|
+
requiresApproval?: ToolApprovalPolicy;
|
|
34
|
+
posture?: string;
|
|
35
|
+
cache?: ToolCacheCapability;
|
|
36
|
+
transport?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
export type ToolErrorCode = 'ABORTED' | 'TIMEOUT' | 'VALIDATION_FAILED' | 'APPROVAL_REQUIRED' | 'APPROVAL_DENIED' | 'RATE_LIMITED' | 'AUTH_REQUIRED' | 'AUTH_FAILED' | 'NOT_FOUND' | 'TRANSPORT_ERROR' | 'REMOTE_EXECUTION_FAILED' | 'OUTPUT_LIMIT_EXCEEDED' | 'SCHEMA_FETCH_FAILED' | 'CACHE_UNAVAILABLE' | 'INTERNAL';
|
|
39
|
+
export interface SerializedToolError {
|
|
40
|
+
name: 'ToolExecutionError';
|
|
41
|
+
message: string;
|
|
42
|
+
code: ToolErrorCode;
|
|
43
|
+
retryable: boolean;
|
|
44
|
+
toolName?: string;
|
|
45
|
+
callId?: string;
|
|
46
|
+
status?: number;
|
|
47
|
+
details?: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
export declare class ToolExecutionError extends Error {
|
|
50
|
+
readonly code: ToolErrorCode;
|
|
51
|
+
readonly retryable: boolean;
|
|
52
|
+
readonly toolName: string | undefined;
|
|
53
|
+
readonly callId: string | undefined;
|
|
54
|
+
readonly status: number | undefined;
|
|
55
|
+
readonly details: Record<string, unknown> | undefined;
|
|
56
|
+
constructor(message: string, options: {
|
|
57
|
+
code: ToolErrorCode;
|
|
58
|
+
retryable?: boolean;
|
|
59
|
+
toolName?: string;
|
|
60
|
+
callId?: string;
|
|
61
|
+
status?: number;
|
|
62
|
+
details?: Record<string, unknown>;
|
|
63
|
+
cause?: unknown;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export declare function serializeToolError(error: unknown): SerializedToolError;
|
|
67
|
+
export type UnifiedToolEvent = {
|
|
68
|
+
type: 'tool.started';
|
|
69
|
+
callId: string;
|
|
70
|
+
toolName: string;
|
|
71
|
+
timestamp: string;
|
|
72
|
+
} | {
|
|
73
|
+
type: 'tool.stdout';
|
|
74
|
+
callId: string;
|
|
75
|
+
chunk: string;
|
|
76
|
+
sequence: number;
|
|
77
|
+
} | {
|
|
78
|
+
type: 'tool.stderr';
|
|
79
|
+
callId: string;
|
|
80
|
+
chunk: string;
|
|
81
|
+
sequence: number;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'tool.progress';
|
|
84
|
+
callId: string;
|
|
85
|
+
message?: string;
|
|
86
|
+
current?: number;
|
|
87
|
+
total?: number;
|
|
88
|
+
} | {
|
|
89
|
+
type: 'tool.partial';
|
|
90
|
+
callId: string;
|
|
91
|
+
value: unknown;
|
|
92
|
+
sequence: number;
|
|
93
|
+
} | {
|
|
94
|
+
type: 'tool.completed';
|
|
95
|
+
callId: string;
|
|
96
|
+
result: unknown;
|
|
97
|
+
} | {
|
|
98
|
+
type: 'tool.failed';
|
|
99
|
+
callId: string;
|
|
100
|
+
error: SerializedToolError;
|
|
101
|
+
} | {
|
|
102
|
+
type: 'tool.cancelled';
|
|
103
|
+
callId: string;
|
|
104
|
+
reason?: string;
|
|
105
|
+
};
|
|
106
|
+
export interface ToolExecutionLimits {
|
|
107
|
+
timeoutMs: number;
|
|
108
|
+
maxOutputBytes: number;
|
|
109
|
+
maxEvents?: number;
|
|
110
|
+
}
|
|
111
|
+
export interface ToolExecutionPolicy {
|
|
112
|
+
defaultTimeoutMs: number;
|
|
113
|
+
defaultMaxOutputBytes: number;
|
|
114
|
+
perTool?: Record<string, Partial<ToolExecutionLimits>>;
|
|
115
|
+
allowStreaming?: boolean;
|
|
116
|
+
enableReadOnlyCache?: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface ToolDescriptor {
|
|
119
|
+
name: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
parameters?: Record<string, unknown>;
|
|
122
|
+
source: ToolSource;
|
|
123
|
+
sourceQualifier?: string;
|
|
124
|
+
server?: string;
|
|
125
|
+
permissions?: string[];
|
|
126
|
+
outputSchema?: Record<string, unknown>;
|
|
127
|
+
metadata?: UnifiedToolMetadata | Record<string, unknown>;
|
|
128
|
+
}
|
|
129
|
+
export interface ToolServer {
|
|
130
|
+
id: string;
|
|
131
|
+
name: string;
|
|
132
|
+
type: 'mcp' | 'native' | 'remote';
|
|
133
|
+
tools: ToolDescriptor[];
|
|
134
|
+
}
|
|
135
|
+
export interface ToolDispatchRule {
|
|
136
|
+
match: string;
|
|
137
|
+
server: string;
|
|
138
|
+
priority?: number;
|
|
139
|
+
conditions?: Record<string, unknown>;
|
|
140
|
+
}
|
|
141
|
+
export interface ToolDispatchPolicy {
|
|
142
|
+
rules: ToolDispatchRule[];
|
|
143
|
+
defaultServer?: string;
|
|
144
|
+
}
|
|
145
|
+
export interface ToolCallContext {
|
|
146
|
+
toolName: string;
|
|
147
|
+
input: unknown;
|
|
148
|
+
caller?: string;
|
|
149
|
+
runId?: string;
|
|
150
|
+
sessionId?: string;
|
|
151
|
+
signal?: AbortSignal;
|
|
152
|
+
onUpdate?: (event: UnifiedToolEvent) => void | Promise<void>;
|
|
153
|
+
}
|
|
154
|
+
export interface ToolCallResult {
|
|
155
|
+
output: unknown;
|
|
156
|
+
durationMs: number;
|
|
157
|
+
error?: string | SerializedToolError;
|
|
158
|
+
}
|
|
159
|
+
//# 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/dist/types.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class ToolExecutionError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
retryable;
|
|
4
|
+
toolName;
|
|
5
|
+
callId;
|
|
6
|
+
status;
|
|
7
|
+
details;
|
|
8
|
+
constructor(message, options) {
|
|
9
|
+
super(message, { cause: options.cause });
|
|
10
|
+
this.name = 'ToolExecutionError';
|
|
11
|
+
this.code = options.code;
|
|
12
|
+
this.retryable = options.retryable ?? false;
|
|
13
|
+
this.toolName = options.toolName;
|
|
14
|
+
this.callId = options.callId;
|
|
15
|
+
this.status = options.status;
|
|
16
|
+
this.details = options.details;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function serializeToolError(error) {
|
|
20
|
+
if (error instanceof ToolExecutionError) {
|
|
21
|
+
return {
|
|
22
|
+
name: 'ToolExecutionError',
|
|
23
|
+
message: error.message,
|
|
24
|
+
code: error.code,
|
|
25
|
+
retryable: error.retryable,
|
|
26
|
+
...(error.toolName ? { toolName: error.toolName } : {}),
|
|
27
|
+
...(error.callId ? { callId: error.callId } : {}),
|
|
28
|
+
...(error.status !== undefined ? { status: error.status } : {}),
|
|
29
|
+
...(error.details ? { details: error.details } : {}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
name: 'ToolExecutionError',
|
|
34
|
+
message: error instanceof Error ? error.message : String(error),
|
|
35
|
+
code: 'INTERNAL',
|
|
36
|
+
retryable: false,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsFA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAAgB;IACpB,SAAS,CAAU;IACnB,QAAQ,CAAqB;IAC7B,MAAM,CAAqB;IAC3B,MAAM,CAAqB;IAC3B,OAAO,CAAsC;IAEtD,YACE,OAAe,EACf,OAQC;QAED,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC"}
|