indusagi 0.12.13 → 0.12.15
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/dist/agent/tools/registry.d.ts +1 -1
- package/dist/agent/tools/registry.d.ts.map +1 -1
- package/dist/agent/types.d.ts +1 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/ai/models.generated.d.ts +621 -53
- package/dist/ai/models.generated.d.ts.map +1 -1
- package/dist/ai/models.generated.js +548 -0
- package/dist/ai/models.generated.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/client-pool.d.ts +106 -0
- package/dist/mcp/client-pool.d.ts.map +1 -0
- package/dist/mcp/client-pool.js +233 -0
- package/dist/mcp/client-pool.js.map +1 -0
- package/dist/mcp/client.d.ts +158 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +586 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config.d.ts +61 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +250 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/errors.d.ts +104 -0
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +138 -0
- package/dist/mcp/errors.js.map +1 -0
- package/dist/mcp/index.d.ts +56 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +83 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/schema-converter.d.ts +68 -0
- package/dist/mcp/schema-converter.d.ts.map +1 -0
- package/dist/mcp/schema-converter.js +230 -0
- package/dist/mcp/schema-converter.js.map +1 -0
- package/dist/mcp/server.d.ts +111 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +300 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tool-factory.d.ts +63 -0
- package/dist/mcp/tool-factory.d.ts.map +1 -0
- package/dist/mcp/tool-factory.js +228 -0
- package/dist/mcp/tool-factory.js.map +1 -0
- package/dist/mcp/types.d.ts +289 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +8 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp.d.ts +6 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +6 -0
- package/dist/mcp.js.map +1 -0
- package/dist/memory/embedder/base.d.ts +41 -0
- package/dist/memory/embedder/base.d.ts.map +1 -0
- package/dist/memory/embedder/base.js +10 -0
- package/dist/memory/embedder/base.js.map +1 -0
- package/dist/memory/embedder/index.d.ts +8 -0
- package/dist/memory/embedder/index.d.ts.map +1 -0
- package/dist/memory/embedder/index.js +6 -0
- package/dist/memory/embedder/index.js.map +1 -0
- package/dist/memory/embedder/openai.d.ts +35 -0
- package/dist/memory/embedder/openai.d.ts.map +1 -0
- package/dist/memory/embedder/openai.js +103 -0
- package/dist/memory/embedder/openai.js.map +1 -0
- package/dist/memory/index.d.ts +33 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +31 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory.d.ts +126 -0
- package/dist/memory/memory.d.ts.map +1 -0
- package/dist/memory/memory.js +280 -0
- package/dist/memory/memory.js.map +1 -0
- package/dist/memory/processors/base.d.ts +42 -0
- package/dist/memory/processors/base.d.ts.map +1 -0
- package/dist/memory/processors/base.js +6 -0
- package/dist/memory/processors/base.js.map +1 -0
- package/dist/memory/processors/index.d.ts +16 -0
- package/dist/memory/processors/index.d.ts.map +1 -0
- package/dist/memory/processors/index.js +18 -0
- package/dist/memory/processors/index.js.map +1 -0
- package/dist/memory/processors/message-history.d.ts +35 -0
- package/dist/memory/processors/message-history.d.ts.map +1 -0
- package/dist/memory/processors/message-history.js +51 -0
- package/dist/memory/processors/message-history.js.map +1 -0
- package/dist/memory/processors/observational-memory/index.d.ts +82 -0
- package/dist/memory/processors/observational-memory/index.d.ts.map +1 -0
- package/dist/memory/processors/observational-memory/index.js +234 -0
- package/dist/memory/processors/observational-memory/index.js.map +1 -0
- package/dist/memory/processors/observational-memory/observer-agent.d.ts +64 -0
- package/dist/memory/processors/observational-memory/observer-agent.d.ts.map +1 -0
- package/dist/memory/processors/observational-memory/observer-agent.js +362 -0
- package/dist/memory/processors/observational-memory/observer-agent.js.map +1 -0
- package/dist/memory/processors/observational-memory/reflector-agent.d.ts +38 -0
- package/dist/memory/processors/observational-memory/reflector-agent.d.ts.map +1 -0
- package/dist/memory/processors/observational-memory/reflector-agent.js +213 -0
- package/dist/memory/processors/observational-memory/reflector-agent.js.map +1 -0
- package/dist/memory/processors/observational-memory/token-counter.d.ts +35 -0
- package/dist/memory/processors/observational-memory/token-counter.d.ts.map +1 -0
- package/dist/memory/processors/observational-memory/token-counter.js +90 -0
- package/dist/memory/processors/observational-memory/token-counter.js.map +1 -0
- package/dist/memory/processors/semantic-recall.d.ts +55 -0
- package/dist/memory/processors/semantic-recall.d.ts.map +1 -0
- package/dist/memory/processors/semantic-recall.js +143 -0
- package/dist/memory/processors/semantic-recall.js.map +1 -0
- package/dist/memory/processors/working-memory.d.ts +41 -0
- package/dist/memory/processors/working-memory.d.ts.map +1 -0
- package/dist/memory/processors/working-memory.js +82 -0
- package/dist/memory/processors/working-memory.js.map +1 -0
- package/dist/memory/storage/base.d.ts +288 -0
- package/dist/memory/storage/base.d.ts.map +1 -0
- package/dist/memory/storage/base.js +211 -0
- package/dist/memory/storage/base.js.map +1 -0
- package/dist/memory/storage/index.d.ts +9 -0
- package/dist/memory/storage/index.d.ts.map +1 -0
- package/dist/memory/storage/index.js +7 -0
- package/dist/memory/storage/index.js.map +1 -0
- package/dist/memory/storage/inmemory.d.ts +93 -0
- package/dist/memory/storage/inmemory.d.ts.map +1 -0
- package/dist/memory/storage/inmemory.js +646 -0
- package/dist/memory/storage/inmemory.js.map +1 -0
- package/dist/memory/tools/working-memory.d.ts +100 -0
- package/dist/memory/tools/working-memory.d.ts.map +1 -0
- package/dist/memory/tools/working-memory.js +237 -0
- package/dist/memory/tools/working-memory.js.map +1 -0
- package/dist/memory/types.d.ts +386 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +58 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/vector/base.d.ts +145 -0
- package/dist/memory/vector/base.d.ts.map +1 -0
- package/dist/memory/vector/base.js +83 -0
- package/dist/memory/vector/base.js.map +1 -0
- package/dist/memory/vector/index.d.ts +8 -0
- package/dist/memory/vector/index.d.ts.map +1 -0
- package/dist/memory/vector/index.js +7 -0
- package/dist/memory/vector/index.js.map +1 -0
- package/dist/memory/vector/inmemory.d.ts +47 -0
- package/dist/memory/vector/inmemory.d.ts.map +1 -0
- package/dist/memory/vector/inmemory.js +234 -0
- package/dist/memory/vector/inmemory.js.map +1 -0
- package/package.json +32 -2
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema to TypeBox Converter
|
|
3
|
+
*
|
|
4
|
+
* Converts MCP tool schemas (JSON Schema) to TypeBox schemas
|
|
5
|
+
* for validation in new_indusagi.
|
|
6
|
+
*
|
|
7
|
+
* Reference: mastra uses zod-from-json-schema, we adapt to TypeBox
|
|
8
|
+
*/
|
|
9
|
+
import { type TSchema } from "@sinclair/typebox";
|
|
10
|
+
/**
|
|
11
|
+
* JSON Schema types we support
|
|
12
|
+
*/
|
|
13
|
+
interface JSONSchema {
|
|
14
|
+
type?: string | string[];
|
|
15
|
+
description?: string;
|
|
16
|
+
properties?: Record<string, JSONSchema>;
|
|
17
|
+
required?: string[];
|
|
18
|
+
items?: JSONSchema | JSONSchema[];
|
|
19
|
+
enum?: (string | number | boolean | null)[];
|
|
20
|
+
const?: string | number | boolean | null;
|
|
21
|
+
additionalProperties?: boolean | JSONSchema;
|
|
22
|
+
minimum?: number;
|
|
23
|
+
maximum?: number;
|
|
24
|
+
exclusiveMinimum?: number | boolean;
|
|
25
|
+
exclusiveMaximum?: number | boolean;
|
|
26
|
+
minLength?: number;
|
|
27
|
+
maxLength?: number;
|
|
28
|
+
pattern?: string;
|
|
29
|
+
format?: string;
|
|
30
|
+
minItems?: number;
|
|
31
|
+
maxItems?: number;
|
|
32
|
+
multipleOf?: number;
|
|
33
|
+
default?: unknown;
|
|
34
|
+
oneOf?: JSONSchema[];
|
|
35
|
+
anyOf?: JSONSchema[];
|
|
36
|
+
allOf?: JSONSchema[];
|
|
37
|
+
$ref?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert JSON Schema to TypeBox schema.
|
|
41
|
+
*
|
|
42
|
+
* Handles:
|
|
43
|
+
* - Primitive types (string, number, boolean, null)
|
|
44
|
+
* - Objects with properties
|
|
45
|
+
* - Arrays with items
|
|
46
|
+
* - Optional fields (not in required array)
|
|
47
|
+
* - Enums
|
|
48
|
+
* - Nested structures
|
|
49
|
+
*/
|
|
50
|
+
export declare function jsonSchemaToTypeBox(schema: JSONSchema): TSchema;
|
|
51
|
+
/**
|
|
52
|
+
* Apply passthrough to allow extra properties.
|
|
53
|
+
*
|
|
54
|
+
* MCP servers may return extra fields not in the schema,
|
|
55
|
+
* so we use passthrough to avoid validation errors.
|
|
56
|
+
*/
|
|
57
|
+
export declare function applyPassthrough(schema: TSchema): TSchema;
|
|
58
|
+
/**
|
|
59
|
+
* Convert MCP tool inputSchema to TypeBox with passthrough.
|
|
60
|
+
* This is the main entry point for converting MCP tool schemas.
|
|
61
|
+
*/
|
|
62
|
+
export declare function convertMCPInputSchema(inputSchema: Record<string, unknown>): TSchema;
|
|
63
|
+
/**
|
|
64
|
+
* Convert MCP tool outputSchema to TypeBox with passthrough.
|
|
65
|
+
*/
|
|
66
|
+
export declare function convertMCPOutputSchema(outputSchema: Record<string, unknown> | undefined): TSchema | undefined;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=schema-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../../src/mcp/schema-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,KAAK,OAAO,EAAe,MAAM,mBAAmB,CAAC;AAEpE;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACzC,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAwE/D;AA6FD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CA6CzD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAI7G"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema to TypeBox Converter
|
|
3
|
+
*
|
|
4
|
+
* Converts MCP tool schemas (JSON Schema) to TypeBox schemas
|
|
5
|
+
* for validation in new_indusagi.
|
|
6
|
+
*
|
|
7
|
+
* Reference: mastra uses zod-from-json-schema, we adapt to TypeBox
|
|
8
|
+
*/
|
|
9
|
+
import { Type } from "@sinclair/typebox";
|
|
10
|
+
/**
|
|
11
|
+
* Convert JSON Schema to TypeBox schema.
|
|
12
|
+
*
|
|
13
|
+
* Handles:
|
|
14
|
+
* - Primitive types (string, number, boolean, null)
|
|
15
|
+
* - Objects with properties
|
|
16
|
+
* - Arrays with items
|
|
17
|
+
* - Optional fields (not in required array)
|
|
18
|
+
* - Enums
|
|
19
|
+
* - Nested structures
|
|
20
|
+
*/
|
|
21
|
+
export function jsonSchemaToTypeBox(schema) {
|
|
22
|
+
// Handle null type
|
|
23
|
+
if (schema.type === "null") {
|
|
24
|
+
return Type.Null({ description: schema.description });
|
|
25
|
+
}
|
|
26
|
+
// Handle enum
|
|
27
|
+
if (schema.enum) {
|
|
28
|
+
if (schema.enum.length === 1) {
|
|
29
|
+
return Type.Literal(schema.enum[0], {
|
|
30
|
+
description: schema.description,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const literals = schema.enum.map((e) => {
|
|
34
|
+
if (e === null)
|
|
35
|
+
return Type.Null();
|
|
36
|
+
return Type.Literal(e);
|
|
37
|
+
});
|
|
38
|
+
return Type.Union(literals, { description: schema.description });
|
|
39
|
+
}
|
|
40
|
+
// Handle const
|
|
41
|
+
if (schema.const !== undefined) {
|
|
42
|
+
if (schema.const === null) {
|
|
43
|
+
return Type.Null({ description: schema.description });
|
|
44
|
+
}
|
|
45
|
+
return Type.Literal(schema.const, {
|
|
46
|
+
description: schema.description,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// Handle oneOf/anyOf
|
|
50
|
+
if (schema.oneOf || schema.anyOf) {
|
|
51
|
+
const schemas = (schema.oneOf || schema.anyOf).map((s) => jsonSchemaToTypeBox(s));
|
|
52
|
+
return Type.Union(schemas, { description: schema.description });
|
|
53
|
+
}
|
|
54
|
+
// Handle allOf
|
|
55
|
+
if (schema.allOf) {
|
|
56
|
+
const schemas = schema.allOf.map((s) => jsonSchemaToTypeBox(s));
|
|
57
|
+
return Type.Intersect(schemas, { description: schema.description });
|
|
58
|
+
}
|
|
59
|
+
// Handle array type
|
|
60
|
+
if (schema.type === "array" || (Array.isArray(schema.type) && schema.type.includes("array"))) {
|
|
61
|
+
return convertArraySchema(schema);
|
|
62
|
+
}
|
|
63
|
+
// Handle object type
|
|
64
|
+
if (schema.type === "object" || (Array.isArray(schema.type) && schema.type.includes("object"))) {
|
|
65
|
+
return convertObjectSchema(schema);
|
|
66
|
+
}
|
|
67
|
+
// Handle primitive types
|
|
68
|
+
switch (schema.type) {
|
|
69
|
+
case "string":
|
|
70
|
+
return convertStringSchema(schema);
|
|
71
|
+
case "number":
|
|
72
|
+
case "integer":
|
|
73
|
+
return convertNumberSchema(schema);
|
|
74
|
+
case "boolean":
|
|
75
|
+
return Type.Boolean({ description: schema.description });
|
|
76
|
+
default:
|
|
77
|
+
// If no type is specified, try to infer from structure
|
|
78
|
+
if (schema.properties) {
|
|
79
|
+
return convertObjectSchema(schema);
|
|
80
|
+
}
|
|
81
|
+
if (schema.items) {
|
|
82
|
+
return convertArraySchema(schema);
|
|
83
|
+
}
|
|
84
|
+
// Fallback to any
|
|
85
|
+
return Type.Any({ description: schema.description });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Convert string JSON Schema to TypeBox.
|
|
90
|
+
*/
|
|
91
|
+
function convertStringSchema(schema) {
|
|
92
|
+
return Type.String({
|
|
93
|
+
description: schema.description,
|
|
94
|
+
minLength: schema.minLength,
|
|
95
|
+
maxLength: schema.maxLength,
|
|
96
|
+
pattern: schema.pattern,
|
|
97
|
+
format: schema.format,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Convert number/integer JSON Schema to TypeBox.
|
|
102
|
+
*/
|
|
103
|
+
function convertNumberSchema(schema) {
|
|
104
|
+
const options = {
|
|
105
|
+
description: schema.description,
|
|
106
|
+
};
|
|
107
|
+
if (schema.minimum !== undefined)
|
|
108
|
+
options.minimum = schema.minimum;
|
|
109
|
+
if (schema.maximum !== undefined)
|
|
110
|
+
options.maximum = schema.maximum;
|
|
111
|
+
if (typeof schema.exclusiveMinimum === "number")
|
|
112
|
+
options.exclusiveMinimum = schema.exclusiveMinimum;
|
|
113
|
+
if (typeof schema.exclusiveMaximum === "number")
|
|
114
|
+
options.exclusiveMaximum = schema.exclusiveMaximum;
|
|
115
|
+
if (schema.multipleOf !== undefined)
|
|
116
|
+
options.multipleOf = schema.multipleOf;
|
|
117
|
+
return Type.Number(options);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Convert array JSON Schema to TypeBox.
|
|
121
|
+
*/
|
|
122
|
+
function convertArraySchema(schema) {
|
|
123
|
+
let itemsSchema;
|
|
124
|
+
if (schema.items) {
|
|
125
|
+
if (Array.isArray(schema.items)) {
|
|
126
|
+
// Tuple schema
|
|
127
|
+
const items = schema.items.map((item) => jsonSchemaToTypeBox(item));
|
|
128
|
+
itemsSchema = Type.Tuple(items);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// Array schema
|
|
132
|
+
itemsSchema = jsonSchemaToTypeBox(schema.items);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
itemsSchema = Type.Any();
|
|
137
|
+
}
|
|
138
|
+
return Type.Array(itemsSchema, {
|
|
139
|
+
description: schema.description,
|
|
140
|
+
minItems: schema.minItems,
|
|
141
|
+
maxItems: schema.maxItems,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Convert object JSON Schema to TypeBox.
|
|
146
|
+
*/
|
|
147
|
+
function convertObjectSchema(schema) {
|
|
148
|
+
const properties = {};
|
|
149
|
+
const required = new Set(schema.required ?? []);
|
|
150
|
+
// Convert properties
|
|
151
|
+
for (const [key, value] of Object.entries(schema.properties ?? {})) {
|
|
152
|
+
let propSchema = jsonSchemaToTypeBox(value);
|
|
153
|
+
// Make optional if not in required
|
|
154
|
+
if (!required.has(key)) {
|
|
155
|
+
propSchema = Type.Optional(propSchema);
|
|
156
|
+
}
|
|
157
|
+
properties[key] = propSchema;
|
|
158
|
+
}
|
|
159
|
+
// Handle additionalProperties
|
|
160
|
+
let additionalProperties = undefined;
|
|
161
|
+
if (schema.additionalProperties === true) {
|
|
162
|
+
additionalProperties = true;
|
|
163
|
+
}
|
|
164
|
+
else if (schema.additionalProperties && typeof schema.additionalProperties === "object") {
|
|
165
|
+
additionalProperties = jsonSchemaToTypeBox(schema.additionalProperties);
|
|
166
|
+
}
|
|
167
|
+
else if (schema.additionalProperties === false) {
|
|
168
|
+
additionalProperties = false;
|
|
169
|
+
}
|
|
170
|
+
return Type.Object(properties, {
|
|
171
|
+
description: schema.description,
|
|
172
|
+
additionalProperties,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Apply passthrough to allow extra properties.
|
|
177
|
+
*
|
|
178
|
+
* MCP servers may return extra fields not in the schema,
|
|
179
|
+
* so we use passthrough to avoid validation errors.
|
|
180
|
+
*/
|
|
181
|
+
export function applyPassthrough(schema) {
|
|
182
|
+
// Check if it's an object type
|
|
183
|
+
const kind = schema[Symbol.for("TypeBox.Kind")];
|
|
184
|
+
if (kind === "Object") {
|
|
185
|
+
const shape = { ...schema.properties };
|
|
186
|
+
// Recursively process nested schemas
|
|
187
|
+
for (const key of Object.keys(shape)) {
|
|
188
|
+
shape[key] = applyPassthrough(shape[key]);
|
|
189
|
+
}
|
|
190
|
+
return Type.Object(shape, {
|
|
191
|
+
description: schema.description,
|
|
192
|
+
additionalProperties: true,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
if (kind === "Array") {
|
|
196
|
+
return Type.Array(applyPassthrough(schema.items), {
|
|
197
|
+
description: schema.description,
|
|
198
|
+
minItems: schema.minItems,
|
|
199
|
+
maxItems: schema.maxItems,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
if (kind === "Union") {
|
|
203
|
+
return Type.Union(schema.anyOf.map((s) => applyPassthrough(s)), { description: schema.description });
|
|
204
|
+
}
|
|
205
|
+
if (kind === "Intersect") {
|
|
206
|
+
return Type.Intersect(schema.allOf.map((s) => applyPassthrough(s)), { description: schema.description });
|
|
207
|
+
}
|
|
208
|
+
if (kind === "Optional") {
|
|
209
|
+
return Type.Optional(applyPassthrough(schema.schema ?? schema.type));
|
|
210
|
+
}
|
|
211
|
+
return schema;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Convert MCP tool inputSchema to TypeBox with passthrough.
|
|
215
|
+
* This is the main entry point for converting MCP tool schemas.
|
|
216
|
+
*/
|
|
217
|
+
export function convertMCPInputSchema(inputSchema) {
|
|
218
|
+
const typeboxSchema = jsonSchemaToTypeBox(inputSchema);
|
|
219
|
+
return applyPassthrough(typeboxSchema);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Convert MCP tool outputSchema to TypeBox with passthrough.
|
|
223
|
+
*/
|
|
224
|
+
export function convertMCPOutputSchema(outputSchema) {
|
|
225
|
+
if (!outputSchema)
|
|
226
|
+
return undefined;
|
|
227
|
+
const typeboxSchema = jsonSchemaToTypeBox(outputSchema);
|
|
228
|
+
return applyPassthrough(typeboxSchema);
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=schema-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../../src/mcp/schema-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Exposes new_indusagi tools as an MCP server.
|
|
5
|
+
* Compatible with Claude Desktop, Cursor, etc.
|
|
6
|
+
*
|
|
7
|
+
* Reference: @mastra/mcp packages/mcp/src/server/server.ts MCPServer
|
|
8
|
+
*/
|
|
9
|
+
import type { AgentTool } from "../agent/types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Options for creating an MCP server.
|
|
12
|
+
*/
|
|
13
|
+
export interface MCPServerOptions {
|
|
14
|
+
/** Server name */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Server version */
|
|
17
|
+
version?: string;
|
|
18
|
+
/** Tools to expose */
|
|
19
|
+
tools: AgentTool<any>[];
|
|
20
|
+
/** Optional description */
|
|
21
|
+
description?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Tool converted for MCP protocol.
|
|
25
|
+
*/
|
|
26
|
+
interface MCPConvertedTool {
|
|
27
|
+
name: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
inputSchema: Record<string, unknown>;
|
|
30
|
+
outputSchema?: Record<string, unknown>;
|
|
31
|
+
execute: (args: Record<string, unknown>) => Promise<unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* MCP Server - exposes new_indusagi tools via the Model Context Protocol.
|
|
35
|
+
*
|
|
36
|
+
* Supports stdio transport for subprocess communication.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { MCPServer } from "new_indusagi/mcp";
|
|
41
|
+
* import { createBashTool } from "new_indusagi/agent/tools";
|
|
42
|
+
*
|
|
43
|
+
* const server = new MCPServer({
|
|
44
|
+
* name: "My Tools Server",
|
|
45
|
+
* version: "1.0.0",
|
|
46
|
+
* tools: [createBashTool()],
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* await server.startStdio();
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class MCPServer {
|
|
53
|
+
private options;
|
|
54
|
+
private tools;
|
|
55
|
+
private buffer;
|
|
56
|
+
private isConnected;
|
|
57
|
+
/** Server name */
|
|
58
|
+
readonly name: string;
|
|
59
|
+
/** Server version */
|
|
60
|
+
readonly version: string;
|
|
61
|
+
constructor(options: MCPServerOptions);
|
|
62
|
+
/**
|
|
63
|
+
* Start the server using stdio transport.
|
|
64
|
+
*
|
|
65
|
+
* This is typically used when running the server as a subprocess
|
|
66
|
+
* that MCP clients (like Claude Desktop) spawn.
|
|
67
|
+
*/
|
|
68
|
+
startStdio(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Stop the server.
|
|
71
|
+
*/
|
|
72
|
+
stop(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Add a tool to the server.
|
|
75
|
+
*/
|
|
76
|
+
addTool(tool: AgentTool<any>): void;
|
|
77
|
+
/**
|
|
78
|
+
* Remove a tool from the server.
|
|
79
|
+
*/
|
|
80
|
+
removeTool(name: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* List all available tools.
|
|
83
|
+
*/
|
|
84
|
+
listTools(): MCPConvertedTool[];
|
|
85
|
+
private convertTool;
|
|
86
|
+
private typeBoxToJsonSchema;
|
|
87
|
+
private processBuffer;
|
|
88
|
+
private handleMessage;
|
|
89
|
+
private handleRequest;
|
|
90
|
+
private handleInitialize;
|
|
91
|
+
private handleToolsList;
|
|
92
|
+
private handleToolsCall;
|
|
93
|
+
private sendResponse;
|
|
94
|
+
private sendError;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create an MCP server from tools.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const server = createMCPServer({
|
|
102
|
+
* name: "My Tools",
|
|
103
|
+
* tools: [bashTool, readTool, writeTool],
|
|
104
|
+
* });
|
|
105
|
+
*
|
|
106
|
+
* await server.startStdio();
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function createMCPServer(options: MCPServerOptions): MCPServer;
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D;AAUD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,SAAS;IAUR,OAAO,CAAC,OAAO;IAT3B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAS;IAE5B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,gBAAgB;IAiB7C;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAMnC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC;;OAEG;IACH,SAAS,IAAI,gBAAgB,EAAE;IAQ/B,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,aAAa;YAiBP,aAAa;YAiBb,aAAa;IAyB3B,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;YAUT,eAAe;IA4D7B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,SAAS;CAYlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAEpE"}
|