toolcraft 0.0.103 → 0.0.105
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/composition.json +7 -2
- package/dist/cli.js +53 -0
- package/dist/composition.json +7 -2
- package/dist/index.d.ts +25 -3
- package/dist/index.js +18 -0
- package/dist/mcp.d.ts +6 -0
- package/dist/mcp.js +121 -1
- package/dist/sdk.d.ts +2 -1
- package/dist/sdk.js +56 -0
- package/dist/stream.d.ts +19 -0
- package/dist/stream.js +92 -0
- package/dist/testing/harness.d.ts +11 -0
- package/dist/testing/harness.js +70 -0
- package/dist/testing/index.d.ts +1 -1
- package/node_modules/tiny-stdio-mcp-server/LICENSE +21 -0
- package/node_modules/tiny-stdio-mcp-server/README.md +231 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/audio.d.ts +15 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/audio.js +84 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/convert.d.ts +16 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/convert.js +61 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/file-type.d.ts +11 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/file-type.js +93 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/file.d.ts +28 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/file.js +110 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/image.d.ts +15 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/image.js +72 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/index.d.ts +7 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/index.js +9 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/mime.d.ts +7 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/mime.js +52 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/remote.d.ts +5 -0
- package/node_modules/tiny-stdio-mcp-server/dist/content/remote.js +69 -0
- package/node_modules/tiny-stdio-mcp-server/dist/index.d.ts +9 -0
- package/node_modules/tiny-stdio-mcp-server/dist/index.js +7 -0
- package/node_modules/tiny-stdio-mcp-server/dist/jsonrpc.d.ts +14 -0
- package/node_modules/tiny-stdio-mcp-server/dist/jsonrpc.js +118 -0
- package/node_modules/tiny-stdio-mcp-server/dist/schema.d.ts +20 -0
- package/node_modules/tiny-stdio-mcp-server/dist/schema.js +26 -0
- package/node_modules/tiny-stdio-mcp-server/dist/server.d.ts +35 -0
- package/node_modules/tiny-stdio-mcp-server/dist/server.js +865 -0
- package/node_modules/tiny-stdio-mcp-server/dist/testing.d.ts +7 -0
- package/node_modules/tiny-stdio-mcp-server/dist/testing.js +20 -0
- package/node_modules/tiny-stdio-mcp-server/dist/types.d.ts +247 -0
- package/node_modules/tiny-stdio-mcp-server/dist/types.js +22 -0
- package/node_modules/tiny-stdio-mcp-server/package.json +56 -0
- package/node_modules/toolcraft-schema/package.json +1 -1
- package/package.json +9 -5
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
+
import type { Server } from "./server.js";
|
|
3
|
+
export interface TestPair {
|
|
4
|
+
client: Client;
|
|
5
|
+
cleanup: () => Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare function createTestPair(server: Server): Promise<TestPair>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
+
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
3
|
+
export async function createTestPair(server) {
|
|
4
|
+
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
|
|
5
|
+
const client = new Client({
|
|
6
|
+
name: "test-client",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
});
|
|
9
|
+
// Start server connection (runs in background)
|
|
10
|
+
const serverPromise = server.connectSDK(serverTransport);
|
|
11
|
+
// Connect client
|
|
12
|
+
await client.connect(clientTransport);
|
|
13
|
+
const cleanup = async () => {
|
|
14
|
+
await client.close();
|
|
15
|
+
await clientTransport.close();
|
|
16
|
+
await serverTransport.close();
|
|
17
|
+
await serverPromise;
|
|
18
|
+
};
|
|
19
|
+
return { client, cleanup };
|
|
20
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
export interface JSONRPCRequest {
|
|
2
|
+
jsonrpc: "2.0";
|
|
3
|
+
id: string | number | null;
|
|
4
|
+
method: string;
|
|
5
|
+
params?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface JSONRPCResponse {
|
|
8
|
+
jsonrpc: "2.0";
|
|
9
|
+
id: string | number | null;
|
|
10
|
+
result?: unknown;
|
|
11
|
+
error?: JSONRPCError;
|
|
12
|
+
}
|
|
13
|
+
export interface JSONRPCError {
|
|
14
|
+
code: number;
|
|
15
|
+
message: string;
|
|
16
|
+
data?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export declare const JSON_RPC_ERROR_CODES: Readonly<{
|
|
19
|
+
readonly PARSE_ERROR: -32700;
|
|
20
|
+
readonly INVALID_REQUEST: -32600;
|
|
21
|
+
readonly METHOD_NOT_FOUND: -32601;
|
|
22
|
+
readonly INVALID_PARAMS: -32602;
|
|
23
|
+
readonly INTERNAL_ERROR: -32603;
|
|
24
|
+
readonly RESOURCE_NOT_FOUND: -32002;
|
|
25
|
+
}>;
|
|
26
|
+
export declare class ToolError extends Error {
|
|
27
|
+
readonly code: number;
|
|
28
|
+
readonly data?: unknown | undefined;
|
|
29
|
+
constructor(code: number, message: string, data?: unknown | undefined);
|
|
30
|
+
}
|
|
31
|
+
export interface ToolsCapability {
|
|
32
|
+
listChanged?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface PromptsCapability {
|
|
35
|
+
listChanged?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface ResourcesCapability {
|
|
38
|
+
subscribe?: boolean;
|
|
39
|
+
listChanged?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface InitializeResult {
|
|
42
|
+
protocolVersion: string;
|
|
43
|
+
capabilities: {
|
|
44
|
+
tools?: ToolsCapability;
|
|
45
|
+
prompts?: PromptsCapability;
|
|
46
|
+
resources?: ResourcesCapability;
|
|
47
|
+
};
|
|
48
|
+
serverInfo: {
|
|
49
|
+
name: string;
|
|
50
|
+
version: string;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface Tool {
|
|
54
|
+
name: string;
|
|
55
|
+
title?: string;
|
|
56
|
+
description?: string;
|
|
57
|
+
inputSchema: JSONSchema;
|
|
58
|
+
outputSchema?: JSONSchema;
|
|
59
|
+
annotations?: ToolAnnotations;
|
|
60
|
+
execution?: ToolExecution;
|
|
61
|
+
icons?: Icon[];
|
|
62
|
+
_meta?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
export interface CallToolResult {
|
|
65
|
+
content: ContentItem[];
|
|
66
|
+
structuredContent?: Record<string, unknown>;
|
|
67
|
+
isError?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface ToolAnnotations {
|
|
70
|
+
title?: string;
|
|
71
|
+
readOnlyHint?: boolean;
|
|
72
|
+
destructiveHint?: boolean;
|
|
73
|
+
idempotentHint?: boolean;
|
|
74
|
+
openWorldHint?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface ToolExecution {
|
|
77
|
+
taskSupport?: "optional" | "required" | "forbidden";
|
|
78
|
+
}
|
|
79
|
+
export interface Icon {
|
|
80
|
+
src: string;
|
|
81
|
+
mimeType?: string;
|
|
82
|
+
sizes?: string[];
|
|
83
|
+
theme?: "light" | "dark";
|
|
84
|
+
}
|
|
85
|
+
export interface ContentAnnotations {
|
|
86
|
+
audience?: Array<"user" | "assistant">;
|
|
87
|
+
priority?: number;
|
|
88
|
+
lastModified?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface ResourceLink {
|
|
91
|
+
type: "resource_link";
|
|
92
|
+
uri: string;
|
|
93
|
+
name: string;
|
|
94
|
+
title?: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
mimeType?: string;
|
|
97
|
+
size?: number;
|
|
98
|
+
annotations?: ContentAnnotations;
|
|
99
|
+
}
|
|
100
|
+
export interface PromptArgument {
|
|
101
|
+
name: string;
|
|
102
|
+
description?: string;
|
|
103
|
+
required?: boolean;
|
|
104
|
+
}
|
|
105
|
+
export interface Prompt {
|
|
106
|
+
name: string;
|
|
107
|
+
title?: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
arguments?: PromptArgument[];
|
|
110
|
+
icons?: Icon[];
|
|
111
|
+
_meta?: Record<string, unknown>;
|
|
112
|
+
}
|
|
113
|
+
export interface PromptMessage {
|
|
114
|
+
role: "user" | "assistant";
|
|
115
|
+
content: PromptContentItem;
|
|
116
|
+
}
|
|
117
|
+
export interface GetPromptResult {
|
|
118
|
+
description?: string;
|
|
119
|
+
messages: PromptMessage[];
|
|
120
|
+
}
|
|
121
|
+
export type PromptHandler = (args: Record<string, string>) => Promise<GetPromptResult> | GetPromptResult;
|
|
122
|
+
export interface PromptDefinition extends Prompt {
|
|
123
|
+
handler: PromptHandler;
|
|
124
|
+
}
|
|
125
|
+
export interface Resource {
|
|
126
|
+
uri: string;
|
|
127
|
+
name: string;
|
|
128
|
+
title?: string;
|
|
129
|
+
description?: string;
|
|
130
|
+
mimeType?: string;
|
|
131
|
+
size?: number;
|
|
132
|
+
annotations?: ContentAnnotations;
|
|
133
|
+
icons?: Icon[];
|
|
134
|
+
_meta?: Record<string, unknown>;
|
|
135
|
+
}
|
|
136
|
+
export interface ResourceTemplate {
|
|
137
|
+
uriTemplate: string;
|
|
138
|
+
name: string;
|
|
139
|
+
title?: string;
|
|
140
|
+
description?: string;
|
|
141
|
+
mimeType?: string;
|
|
142
|
+
annotations?: ContentAnnotations;
|
|
143
|
+
icons?: Icon[];
|
|
144
|
+
_meta?: Record<string, unknown>;
|
|
145
|
+
}
|
|
146
|
+
export type ResourceContents = {
|
|
147
|
+
uri: string;
|
|
148
|
+
mimeType?: string;
|
|
149
|
+
text: string;
|
|
150
|
+
} | {
|
|
151
|
+
uri: string;
|
|
152
|
+
mimeType?: string;
|
|
153
|
+
blob: string;
|
|
154
|
+
};
|
|
155
|
+
export interface ReadResourceResult {
|
|
156
|
+
contents: ResourceContents[];
|
|
157
|
+
}
|
|
158
|
+
export type ResourceHandler = (uri: string) => Promise<ReadResourceResult> | ReadResourceResult;
|
|
159
|
+
export interface ResourceDefinition extends Resource {
|
|
160
|
+
handler: ResourceHandler;
|
|
161
|
+
}
|
|
162
|
+
export interface ResourceTemplateDefinition extends ResourceTemplate {
|
|
163
|
+
handler: ResourceHandler;
|
|
164
|
+
}
|
|
165
|
+
export interface HandleResult {
|
|
166
|
+
result?: unknown;
|
|
167
|
+
error?: JSONRPCError;
|
|
168
|
+
}
|
|
169
|
+
export type PromptContentItem = {
|
|
170
|
+
type: "text";
|
|
171
|
+
text: string;
|
|
172
|
+
annotations?: ContentAnnotations;
|
|
173
|
+
} | {
|
|
174
|
+
type: "image";
|
|
175
|
+
data: string;
|
|
176
|
+
mimeType: string;
|
|
177
|
+
annotations?: ContentAnnotations;
|
|
178
|
+
} | {
|
|
179
|
+
type: "audio";
|
|
180
|
+
data: string;
|
|
181
|
+
mimeType: string;
|
|
182
|
+
annotations?: ContentAnnotations;
|
|
183
|
+
} | {
|
|
184
|
+
type: "resource";
|
|
185
|
+
annotations?: ContentAnnotations;
|
|
186
|
+
resource: {
|
|
187
|
+
uri: string;
|
|
188
|
+
mimeType?: string;
|
|
189
|
+
text: string;
|
|
190
|
+
} | {
|
|
191
|
+
uri: string;
|
|
192
|
+
mimeType?: string;
|
|
193
|
+
blob: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
export type ContentItem = PromptContentItem | ResourceLink;
|
|
197
|
+
export interface JSONSchema {
|
|
198
|
+
type: "object";
|
|
199
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
200
|
+
required?: string[];
|
|
201
|
+
[keyword: string]: unknown;
|
|
202
|
+
}
|
|
203
|
+
export interface JSONSchemaProperty extends Record<string, unknown> {
|
|
204
|
+
type?: string | string[];
|
|
205
|
+
description?: string;
|
|
206
|
+
[keyword: string]: unknown;
|
|
207
|
+
}
|
|
208
|
+
export interface ServerOptions {
|
|
209
|
+
name: string;
|
|
210
|
+
version: string;
|
|
211
|
+
toolCallTimeoutMs?: number;
|
|
212
|
+
validateToolArguments?: boolean;
|
|
213
|
+
supportNotifications?: boolean;
|
|
214
|
+
supportResourceSubscriptions?: boolean;
|
|
215
|
+
}
|
|
216
|
+
import type { ToolReturn } from "./content/index.js";
|
|
217
|
+
export type ToolHandler<T = Record<string, unknown>, TOut = ToolReturn> = (args: T) => Promise<TOut | CallToolResult> | TOut | CallToolResult;
|
|
218
|
+
export interface ToolDefinition<T = Record<string, unknown>, TOut = ToolReturn> {
|
|
219
|
+
name: string;
|
|
220
|
+
title?: string;
|
|
221
|
+
description?: string;
|
|
222
|
+
inputSchema: JSONSchema;
|
|
223
|
+
outputSchema?: JSONSchema;
|
|
224
|
+
annotations?: ToolAnnotations;
|
|
225
|
+
execution?: ToolExecution;
|
|
226
|
+
icons?: Icon[];
|
|
227
|
+
_meta?: Record<string, unknown>;
|
|
228
|
+
handler: ToolHandler<T, TOut>;
|
|
229
|
+
}
|
|
230
|
+
export interface Transport {
|
|
231
|
+
readable: NodeJS.ReadableStream;
|
|
232
|
+
writable: NodeJS.WritableStream;
|
|
233
|
+
}
|
|
234
|
+
export interface SDKTransport {
|
|
235
|
+
onmessage?: (message: JSONRPCMessage) => void;
|
|
236
|
+
onclose?: () => void;
|
|
237
|
+
onerror?: (error: Error) => void;
|
|
238
|
+
start: () => Promise<void>;
|
|
239
|
+
close: () => Promise<void>;
|
|
240
|
+
send: (message: JSONRPCMessage) => Promise<void>;
|
|
241
|
+
}
|
|
242
|
+
export type JSONRPCMessage = JSONRPCRequest | JSONRPCResponse | JSONRPCNotification;
|
|
243
|
+
export interface JSONRPCNotification {
|
|
244
|
+
jsonrpc: "2.0";
|
|
245
|
+
method: string;
|
|
246
|
+
params?: Record<string, unknown>;
|
|
247
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// JSON-RPC error codes
|
|
2
|
+
export const JSON_RPC_ERROR_CODES = Object.freeze({
|
|
3
|
+
PARSE_ERROR: -32700,
|
|
4
|
+
INVALID_REQUEST: -32600,
|
|
5
|
+
METHOD_NOT_FOUND: -32601,
|
|
6
|
+
INVALID_PARAMS: -32602,
|
|
7
|
+
INTERNAL_ERROR: -32603,
|
|
8
|
+
RESOURCE_NOT_FOUND: -32002
|
|
9
|
+
});
|
|
10
|
+
export class ToolError extends Error {
|
|
11
|
+
code;
|
|
12
|
+
data;
|
|
13
|
+
constructor(code, message, data) {
|
|
14
|
+
if (!Number.isFinite(code)) {
|
|
15
|
+
throw new Error("ToolError code must be a finite number");
|
|
16
|
+
}
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.data = data;
|
|
20
|
+
this.name = "ToolError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tiny-stdio-mcp-server",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"bugs": {
|
|
5
|
+
"url": "https://github.com/poe-platform/poe-code/issues"
|
|
6
|
+
},
|
|
7
|
+
"description": "Minimal MCP server over stdio with typed tools and rich content helpers",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./jsonrpc": {
|
|
17
|
+
"types": "./dist/jsonrpc.d.ts",
|
|
18
|
+
"import": "./dist/jsonrpc.js"
|
|
19
|
+
},
|
|
20
|
+
"./testing": {
|
|
21
|
+
"types": "./dist/testing.d.ts",
|
|
22
|
+
"import": "./dist/testing.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "node ../../scripts/guard-package-dist.mjs && tsc",
|
|
27
|
+
"prepublishOnly": "tsc"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"LICENSE",
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=18.18"
|
|
35
|
+
},
|
|
36
|
+
"repository": {
|
|
37
|
+
"type": "git",
|
|
38
|
+
"url": "https://github.com/poe-platform/poe-code.git",
|
|
39
|
+
"directory": "packages/tiny-stdio-mcp-server"
|
|
40
|
+
},
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"keywords": [
|
|
43
|
+
"mcp",
|
|
44
|
+
"model-context-protocol",
|
|
45
|
+
"stdio",
|
|
46
|
+
"server"
|
|
47
|
+
],
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@modelcontextprotocol/sdk": "^1.25.3"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"ajv": "^8.20.0",
|
|
53
|
+
"uri-template": "^2.0.0",
|
|
54
|
+
"uri-template-lite": "^23.4.0"
|
|
55
|
+
}
|
|
56
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "toolcraft",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.105",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -100,10 +100,11 @@
|
|
|
100
100
|
"test": "cd ../.. && vitest run packages/toolcraft/src",
|
|
101
101
|
"test:unit": "cd ../.. && vitest run packages/toolcraft/src",
|
|
102
102
|
"lint": "cd ../.. && eslint packages/toolcraft/src --ext ts && tsc -p packages/toolcraft/tsconfig.json --noEmit",
|
|
103
|
-
"prepack": "node ../../scripts/manage-bundled-workspace-deps.mjs prepare . toolcraft-schema toolcraft-design @poe-code/frontmatter @poe-code/agent-mcp-config @poe-code/agent-human-in-loop @poe-code/task-list @poe-code/agent-defs @poe-code/config-mutations @poe-code/process-runner tiny-mcp-client auth-store",
|
|
104
|
-
"postpack": "node ../../scripts/manage-bundled-workspace-deps.mjs cleanup . toolcraft-schema toolcraft-design @poe-code/frontmatter @poe-code/agent-mcp-config @poe-code/agent-human-in-loop @poe-code/task-list @poe-code/agent-defs @poe-code/config-mutations @poe-code/process-runner tiny-mcp-client auth-store"
|
|
103
|
+
"prepack": "node ../../scripts/manage-bundled-workspace-deps.mjs prepare . toolcraft-schema toolcraft-design @poe-code/frontmatter @poe-code/agent-mcp-config @poe-code/agent-human-in-loop @poe-code/task-list @poe-code/agent-defs @poe-code/config-mutations @poe-code/process-runner tiny-mcp-client tiny-stdio-mcp-server auth-store",
|
|
104
|
+
"postpack": "node ../../scripts/manage-bundled-workspace-deps.mjs cleanup . toolcraft-schema toolcraft-design @poe-code/frontmatter @poe-code/agent-mcp-config @poe-code/agent-human-in-loop @poe-code/task-list @poe-code/agent-defs @poe-code/config-mutations @poe-code/process-runner tiny-mcp-client tiny-stdio-mcp-server auth-store"
|
|
105
105
|
},
|
|
106
106
|
"dependencies": {
|
|
107
|
+
"ajv": "^8.20.0",
|
|
107
108
|
"commander": "^13.1.0",
|
|
108
109
|
"fast-string-width": "^3.0.2",
|
|
109
110
|
"fast-wrap-ansi": "^0.2.0",
|
|
@@ -112,7 +113,8 @@
|
|
|
112
113
|
"jsonc-parser": "^3.3.1",
|
|
113
114
|
"sisteransi": "^1.0.5",
|
|
114
115
|
"smol-toml": "^1.3.0",
|
|
115
|
-
"
|
|
116
|
+
"uri-template": "^2.0.0",
|
|
117
|
+
"uri-template-lite": "^23.4.0",
|
|
116
118
|
"yaml": "^2.8.2"
|
|
117
119
|
},
|
|
118
120
|
"files": [
|
|
@@ -140,10 +142,11 @@
|
|
|
140
142
|
"@poe-code/config-mutations",
|
|
141
143
|
"@poe-code/process-runner",
|
|
142
144
|
"tiny-mcp-client",
|
|
145
|
+
"tiny-stdio-mcp-server",
|
|
143
146
|
"auth-store"
|
|
144
147
|
],
|
|
145
148
|
"optionalDependencies": {
|
|
146
|
-
"toolcraft-schema": "0.0.
|
|
149
|
+
"toolcraft-schema": "0.0.105",
|
|
147
150
|
"toolcraft-design": "^0.0.2",
|
|
148
151
|
"@poe-code/frontmatter": "*",
|
|
149
152
|
"@poe-code/agent-mcp-config": "*",
|
|
@@ -153,6 +156,7 @@
|
|
|
153
156
|
"@poe-code/config-mutations": "*",
|
|
154
157
|
"@poe-code/process-runner": "*",
|
|
155
158
|
"tiny-mcp-client": "*",
|
|
159
|
+
"tiny-stdio-mcp-server": "*",
|
|
156
160
|
"auth-store": "*"
|
|
157
161
|
}
|
|
158
162
|
}
|