@fragno-dev/mcp-fragment 0.0.0-stage → 0.0.3
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.md +16 -0
- package/README.md +312 -2
- package/bin/run.js +7 -0
- package/dist/browser/client/react.d.ts +253 -0
- package/dist/browser/client/react.d.ts.map +1 -0
- package/dist/browser/client/react.js +194 -0
- package/dist/browser/client/react.js.map +1 -0
- package/dist/browser/client/solid.d.ts +256 -0
- package/dist/browser/client/solid.d.ts.map +1 -0
- package/dist/browser/client/solid.js +129 -0
- package/dist/browser/client/solid.js.map +1 -0
- package/dist/browser/client/svelte.d.ts +256 -0
- package/dist/browser/client/svelte.d.ts.map +1 -0
- package/dist/browser/client/svelte.js +131 -0
- package/dist/browser/client/svelte.js.map +1 -0
- package/dist/browser/client/vanilla.d.ts +283 -0
- package/dist/browser/client/vanilla.d.ts.map +1 -0
- package/dist/browser/client/vanilla.js +159 -0
- package/dist/browser/client/vanilla.js.map +1 -0
- package/dist/browser/client/vue.d.ts +256 -0
- package/dist/browser/client/vue.d.ts.map +1 -0
- package/dist/browser/client/vue.js +127 -0
- package/dist/browser/client/vue.js.map +1 -0
- package/dist/browser/client-BCzNDSlW.d.ts +711 -0
- package/dist/browser/client-BCzNDSlW.d.ts.map +1 -0
- package/dist/browser/index.d.ts +813 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +1 -0
- package/dist/browser/src-B6dHZXqB.js +2303 -0
- package/dist/browser/src-B6dHZXqB.js.map +1 -0
- package/dist/cli/cli.d.ts +6 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +227 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/definition.js +330 -0
- package/dist/cli/definition.js.map +1 -0
- package/dist/cli/diagnostics.js +93 -0
- package/dist/cli/diagnostics.js.map +1 -0
- package/dist/cli/index.js +13 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/mcp-api.js +87 -0
- package/dist/cli/mcp-api.js.map +1 -0
- package/dist/cli/mcp-types.js +100 -0
- package/dist/cli/mcp-types.js.map +1 -0
- package/dist/cli/oauth-provider.js +113 -0
- package/dist/cli/oauth-provider.js.map +1 -0
- package/dist/cli/routes.js +743 -0
- package/dist/cli/routes.js.map +1 -0
- package/dist/cli/schema.js +13 -0
- package/dist/cli/schema.js.map +1 -0
- package/dist/cli/services.js +330 -0
- package/dist/cli/services.js.map +1 -0
- package/dist/node/definition.d.ts +260 -0
- package/dist/node/definition.d.ts.map +1 -0
- package/dist/node/definition.js +330 -0
- package/dist/node/definition.js.map +1 -0
- package/dist/node/diagnostics.js +93 -0
- package/dist/node/diagnostics.js.map +1 -0
- package/dist/node/index.d.ts +694 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +26 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/mcp-api.d.ts +2 -0
- package/dist/node/mcp-api.js +87 -0
- package/dist/node/mcp-api.js.map +1 -0
- package/dist/node/mcp-types.d.ts +146 -0
- package/dist/node/mcp-types.d.ts.map +1 -0
- package/dist/node/mcp-types.js +100 -0
- package/dist/node/mcp-types.js.map +1 -0
- package/dist/node/oauth-provider.d.ts +24 -0
- package/dist/node/oauth-provider.d.ts.map +1 -0
- package/dist/node/oauth-provider.js +113 -0
- package/dist/node/oauth-provider.js.map +1 -0
- package/dist/node/routes.d.ts +466 -0
- package/dist/node/routes.d.ts.map +1 -0
- package/dist/node/routes.js +743 -0
- package/dist/node/routes.js.map +1 -0
- package/dist/node/schema.d.ts +9 -0
- package/dist/node/schema.d.ts.map +1 -0
- package/dist/node/schema.js +13 -0
- package/dist/node/schema.js.map +1 -0
- package/dist/node/services.d.ts +40 -0
- package/dist/node/services.d.ts.map +1 -0
- package/dist/node/services.js +330 -0
- package/dist/node/services.js.map +1 -0
- package/dist/node/testing/mcp-test-server.d.ts +42 -0
- package/dist/node/testing/mcp-test-server.d.ts.map +1 -0
- package/dist/node/testing/mcp-test-server.js +218 -0
- package/dist/node/testing/mcp-test-server.js.map +1 -0
- package/package.json +130 -3
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { a as FragnoClientRequestError, c as InferOr, d as MaybeExtractPathParamsOrWiden, i as ReadableAtom, l as ExtractPathParamsOrWiden, o as NonGetHTTPMethod, s as FragnoPublicClientConfig, u as HasPathParams } from "../client-BCzNDSlW.js";
|
|
2
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
3
|
+
//#region ../fragno/dist/client/vanilla.d.ts
|
|
4
|
+
//#region src/client/vanilla.d.ts
|
|
5
|
+
type StoreData<TOutputSchema extends StandardSchemaV1 | undefined, TErrorCodes extends string> = {
|
|
6
|
+
loading: boolean;
|
|
7
|
+
error?: FragnoClientRequestError<TErrorCodes>;
|
|
8
|
+
data?: InferOr<TOutputSchema, undefined>;
|
|
9
|
+
};
|
|
10
|
+
type FragnoVanillaListeners<_TMethod extends "GET", TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = (args?: {
|
|
11
|
+
path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
|
|
12
|
+
query?: Record<TQueryParameters, string | ReadableAtom<string>>;
|
|
13
|
+
}) => {
|
|
14
|
+
/** Called for every change in the store. */
|
|
15
|
+
listen: (callback: (value: StoreData<TOutputSchema, TErrorCode[number]>) => void) => () => void;
|
|
16
|
+
/** Called once initially, then called for every change in the store. */
|
|
17
|
+
subscribe: (callback: (value: StoreData<TOutputSchema, TErrorCode[number]>) => void) => () => void;
|
|
18
|
+
get: () => StoreData<TOutputSchema, TErrorCode[number]>;
|
|
19
|
+
refetch: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Produces an item for every change in the store.
|
|
22
|
+
* Note: the iterator does NOT return.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const store = useFragno(clientObj).store;
|
|
27
|
+
* for await (const value of store[Symbol.asyncIterator]()) {
|
|
28
|
+
* console.log(value);
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
[Symbol.asyncIterator]: () => AsyncGenerator<StoreData<TOutputSchema, TErrorCode[number]>, void, unknown>;
|
|
33
|
+
};
|
|
34
|
+
type FragnoVanillaMutator<_TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = (args?: {
|
|
35
|
+
path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
|
|
36
|
+
query?: Record<TQueryParameters, string | ReadableAtom<string>>;
|
|
37
|
+
}) => {
|
|
38
|
+
subscribe: (callback: (value: {
|
|
39
|
+
loading: boolean;
|
|
40
|
+
error?: FragnoClientRequestError<TErrorCode[number]>;
|
|
41
|
+
data?: InferOr<TOutputSchema, undefined>;
|
|
42
|
+
}) => void) => () => void;
|
|
43
|
+
get: () => StoreData<TOutputSchema, TErrorCode[number]>;
|
|
44
|
+
mutate: ({ body, path, query }: {
|
|
45
|
+
body?: InferOr<TInputSchema, undefined>;
|
|
46
|
+
path?: HasPathParams<TPath> extends true ? ExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>> : undefined;
|
|
47
|
+
query?: Record<string, string | ReadableAtom<string>>;
|
|
48
|
+
}) => Promise<InferOr<TOutputSchema, undefined>>;
|
|
49
|
+
[Symbol.asyncIterator]: () => AsyncGenerator<StoreData<TOutputSchema, TErrorCode[number]>, void, unknown>;
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/client/vanilla.d.ts
|
|
53
|
+
export declare function createMcpFragmentClient(config?: FragnoPublicClientConfig): {
|
|
54
|
+
useServers: FragnoVanillaListeners<"GET", "/servers", import("zod").ZodObject<{
|
|
55
|
+
servers: import("zod").ZodArray<import("zod").ZodObject<{
|
|
56
|
+
slug: import("zod").ZodString;
|
|
57
|
+
name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
58
|
+
endpointUrl: import("zod").ZodString;
|
|
59
|
+
authMode: import("zod").ZodString;
|
|
60
|
+
cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
61
|
+
protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
62
|
+
serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
63
|
+
capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
64
|
+
tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
|
|
65
|
+
name: import("zod").ZodString;
|
|
66
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
67
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
68
|
+
inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
69
|
+
outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
70
|
+
annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
71
|
+
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
72
|
+
}, import("zod/v4/core").$loose>>>>;
|
|
73
|
+
updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
|
|
74
|
+
}, import("zod/v4/core").$strip>>>;
|
|
75
|
+
}, import("zod/v4/core").$strip>>;
|
|
76
|
+
}, import("zod/v4/core").$strip>, string, string>;
|
|
77
|
+
useServer: FragnoVanillaListeners<"GET", "/servers/:slug", import("zod").ZodObject<{
|
|
78
|
+
slug: import("zod").ZodString;
|
|
79
|
+
name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
80
|
+
endpointUrl: import("zod").ZodString;
|
|
81
|
+
authMode: import("zod").ZodString;
|
|
82
|
+
cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
83
|
+
protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
84
|
+
serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
85
|
+
capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
86
|
+
tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
|
|
87
|
+
name: import("zod").ZodString;
|
|
88
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
89
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
90
|
+
inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
91
|
+
outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
92
|
+
annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
93
|
+
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
94
|
+
}, import("zod/v4/core").$loose>>>>;
|
|
95
|
+
updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
|
|
96
|
+
}, import("zod/v4/core").$strip>>>;
|
|
97
|
+
}, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string>;
|
|
98
|
+
createServer: FragnoVanillaMutator<NonGetHTTPMethod, "/servers", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | import("zod").ZodObject<{
|
|
99
|
+
slug: import("zod").ZodString;
|
|
100
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
101
|
+
endpointUrl: import("zod").ZodURL;
|
|
102
|
+
auth: import("zod").ZodDefault<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
103
|
+
type: import("zod").ZodLiteral<"none">;
|
|
104
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
105
|
+
type: import("zod").ZodLiteral<"bearer">;
|
|
106
|
+
token: import("zod").ZodString;
|
|
107
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
108
|
+
type: import("zod").ZodLiteral<"client_credentials">;
|
|
109
|
+
clientId: import("zod").ZodString;
|
|
110
|
+
clientSecret: import("zod").ZodString;
|
|
111
|
+
scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
112
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
113
|
+
type: import("zod").ZodLiteral<"oauth">;
|
|
114
|
+
clientId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
115
|
+
clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
|
|
116
|
+
scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
117
|
+
}, import("zod/v4/core").$strip>], "type">>;
|
|
118
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
|
|
119
|
+
slug: import("zod").ZodString;
|
|
120
|
+
name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
121
|
+
endpointUrl: import("zod").ZodString;
|
|
122
|
+
authMode: import("zod").ZodString;
|
|
123
|
+
cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
124
|
+
protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
125
|
+
serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
126
|
+
capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
127
|
+
tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
|
|
128
|
+
name: import("zod").ZodString;
|
|
129
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
130
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
131
|
+
inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
132
|
+
outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
133
|
+
annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
134
|
+
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
135
|
+
}, import("zod/v4/core").$loose>>>>;
|
|
136
|
+
updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
|
|
137
|
+
}, import("zod/v4/core").$strip>>>;
|
|
138
|
+
}, import("zod/v4/core").$strip> | import("zod").ZodObject<{
|
|
139
|
+
servers: import("zod").ZodArray<import("zod").ZodObject<{
|
|
140
|
+
slug: import("zod").ZodString;
|
|
141
|
+
name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
142
|
+
endpointUrl: import("zod").ZodString;
|
|
143
|
+
authMode: import("zod").ZodString;
|
|
144
|
+
cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
|
|
145
|
+
protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
146
|
+
serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
147
|
+
capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
|
|
148
|
+
tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
|
|
149
|
+
name: import("zod").ZodString;
|
|
150
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
151
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
152
|
+
inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
153
|
+
outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
154
|
+
annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
155
|
+
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
156
|
+
}, import("zod/v4/core").$loose>>>>;
|
|
157
|
+
updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
|
|
158
|
+
}, import("zod/v4/core").$strip>>>;
|
|
159
|
+
}, import("zod/v4/core").$strip>>;
|
|
160
|
+
}, import("zod/v4/core").$strip> | undefined, string, string>;
|
|
161
|
+
refreshServer: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/refresh", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
|
|
162
|
+
ok: import("zod").ZodBoolean;
|
|
163
|
+
tools: import("zod").ZodArray<import("zod").ZodObject<{
|
|
164
|
+
name: import("zod").ZodString;
|
|
165
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
166
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
167
|
+
inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
|
|
168
|
+
outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
169
|
+
annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
170
|
+
_meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
171
|
+
}, import("zod/v4/core").$loose>>;
|
|
172
|
+
stage: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
173
|
+
auth: "auth";
|
|
174
|
+
list_tools: "list_tools";
|
|
175
|
+
}>>;
|
|
176
|
+
checkedAt: import("zod").ZodString;
|
|
177
|
+
server: import("zod").ZodObject<{
|
|
178
|
+
name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
179
|
+
endpointUrl: import("zod").ZodString;
|
|
180
|
+
authMode: import("zod").ZodString;
|
|
181
|
+
slug: import("zod").ZodString;
|
|
182
|
+
}, import("zod/v4/core").$strip>;
|
|
183
|
+
auth: import("zod").ZodObject<{
|
|
184
|
+
authenticated: import("zod").ZodBoolean;
|
|
185
|
+
mode: import("zod").ZodString;
|
|
186
|
+
tokenPresent: import("zod").ZodBoolean;
|
|
187
|
+
expiresAt: import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
|
|
188
|
+
expired: import("zod").ZodNullable<import("zod").ZodBoolean>;
|
|
189
|
+
scopes: import("zod").ZodObject<{
|
|
190
|
+
requested: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
|
|
191
|
+
granted: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
|
|
192
|
+
missing: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
|
|
193
|
+
raw: import("zod").ZodNullable<import("zod").ZodString>;
|
|
194
|
+
}, import("zod/v4/core").$strip>;
|
|
195
|
+
}, import("zod/v4/core").$strip>;
|
|
196
|
+
live: import("zod").ZodObject<{
|
|
197
|
+
reachable: import("zod").ZodBoolean;
|
|
198
|
+
listToolsOk: import("zod").ZodBoolean;
|
|
199
|
+
toolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
200
|
+
protocolVersion: import("zod").ZodNullable<import("zod").ZodString>;
|
|
201
|
+
serverInfo: import("zod").ZodNullable<import("zod").ZodUnknown>;
|
|
202
|
+
capabilities: import("zod").ZodNullable<import("zod").ZodUnknown>;
|
|
203
|
+
}, import("zod/v4/core").$strip>;
|
|
204
|
+
cache: import("zod").ZodObject<{
|
|
205
|
+
presentBeforeCheck: import("zod").ZodBoolean;
|
|
206
|
+
previousToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
207
|
+
updatedToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
|
|
208
|
+
}, import("zod/v4/core").$strip>;
|
|
209
|
+
error: import("zod").ZodNullable<import("zod").ZodObject<{
|
|
210
|
+
code: import("zod").ZodString;
|
|
211
|
+
message: import("zod").ZodString;
|
|
212
|
+
}, import("zod/v4/core").$strip>>;
|
|
213
|
+
}, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND", string>;
|
|
214
|
+
callTool: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/tools/execute", import("zod").ZodObject<{
|
|
215
|
+
name: import("zod").ZodString;
|
|
216
|
+
arguments: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
217
|
+
timeoutMs: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
218
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
|
|
219
|
+
isError: import("zod").ZodBoolean;
|
|
220
|
+
content: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
221
|
+
structuredContent: import("zod").ZodUnknown;
|
|
222
|
+
}, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "MCP_ERROR", string>;
|
|
223
|
+
setToken: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth/token", import("zod").ZodObject<{
|
|
224
|
+
token: import("zod").ZodString;
|
|
225
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
226
|
+
mode: import("zod").ZodLiteral<"none">;
|
|
227
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
228
|
+
mode: import("zod").ZodLiteral<"bearer">;
|
|
229
|
+
credentials: import("zod").ZodEnum<{
|
|
230
|
+
present: "present";
|
|
231
|
+
missing: "missing";
|
|
232
|
+
}>;
|
|
233
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
234
|
+
mode: import("zod").ZodLiteral<"client_credentials">;
|
|
235
|
+
credentials: import("zod").ZodEnum<{
|
|
236
|
+
present: "present";
|
|
237
|
+
missing: "missing";
|
|
238
|
+
}>;
|
|
239
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
240
|
+
mode: import("zod").ZodLiteral<"oauth">;
|
|
241
|
+
state: import("zod").ZodEnum<{
|
|
242
|
+
"consent-required": "consent-required";
|
|
243
|
+
"consent-pending": "consent-pending";
|
|
244
|
+
authorized: "authorized";
|
|
245
|
+
expired: "expired";
|
|
246
|
+
}>;
|
|
247
|
+
}, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
|
|
248
|
+
startOAuth: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth/start", import("zod").ZodObject<{
|
|
249
|
+
scope: import("zod").ZodOptional<import("zod").ZodString>;
|
|
250
|
+
clientId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
251
|
+
clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
|
|
252
|
+
discardTokens: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
253
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
|
|
254
|
+
authorizationUrl: import("zod").ZodString;
|
|
255
|
+
state: import("zod").ZodString;
|
|
256
|
+
}, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "INVALID_OAUTH_REDIRECT_URI" | "OAUTH_REDIRECT_URI_NOT_ALLOWED" | "OAUTH_ERROR", string>;
|
|
257
|
+
deleteAuth: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
258
|
+
mode: import("zod").ZodLiteral<"none">;
|
|
259
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
260
|
+
mode: import("zod").ZodLiteral<"bearer">;
|
|
261
|
+
credentials: import("zod").ZodEnum<{
|
|
262
|
+
present: "present";
|
|
263
|
+
missing: "missing";
|
|
264
|
+
}>;
|
|
265
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
266
|
+
mode: import("zod").ZodLiteral<"client_credentials">;
|
|
267
|
+
credentials: import("zod").ZodEnum<{
|
|
268
|
+
present: "present";
|
|
269
|
+
missing: "missing";
|
|
270
|
+
}>;
|
|
271
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
272
|
+
mode: import("zod").ZodLiteral<"oauth">;
|
|
273
|
+
state: import("zod").ZodEnum<{
|
|
274
|
+
"consent-required": "consent-required";
|
|
275
|
+
"consent-pending": "consent-pending";
|
|
276
|
+
authorized: "authorized";
|
|
277
|
+
expired: "expired";
|
|
278
|
+
}>;
|
|
279
|
+
}, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
|
|
280
|
+
};
|
|
281
|
+
//#endregion
|
|
282
|
+
export {};
|
|
283
|
+
//# sourceMappingURL=vanilla.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vanilla.d.ts","names":["_$_fragno_dev_core_vanilla0.FragnoVanillaListeners","_$_fragno_dev_core_api0.NonGetHTTPMethod","_$_fragno_dev_core_vanilla0.FragnoVanillaMutator"],"sources":["../../../../fragno/dist/client/vanilla.d.ts","../../../src/client/vanilla.ts"],"mappings":";;;;KAQK,UAAU,sBAAsB,8BAA8B;EACjE;EACA,QAAQ,yBAAyB;EACjC,OAAO,QAAQ;;KAEZ,uBAAuB,wBAAwB,sBAAsB,sBAAsB,kBAAkB,2BAA2B,oCAAoC;EAC/K,OAAO,8BAA8B,gBAAgB;EACrD,QAAQ,OAAO,2BAA2B;;;EAG1C,SAAS,WAAW,OAAO,UAAU,eAAe;;EAEpD,YAAY,WAAW,OAAO,UAAU,eAAe;EACvD,WAAW,UAAU,eAAe;EACpC;;;;;;;;;;;;;GAaC,OAAO,sBAAsB,eAAe,UAAU,eAAe;;KAEnE,qBAAqB,iBAAiB,kBAAkB,sBAAsB,qBAAqB,8BAA8B,sBAAsB,8BAA8B,2BAA2B,oCAAoC;EACvP,OAAO,8BAA8B,gBAAgB;EACrD,QAAQ,OAAO,2BAA2B;;EAE1C,YAAY,WAAW;IACrB;IACA,QAAQ,yBAAyB;IACjC,OAAO,QAAQ;;EAEjB,WAAW,UAAU,eAAe;EACpC,WAAW,MAAM,MAAM;IACrB,OAAO,QAAQ;IACf,OAAO,cAAc,sBAAsB,yBAAyB,gBAAgB;IACpF,QAAQ,wBAAwB;QAC5B,QAAQ,QAAQ;GACrB,OAAO,sBAAsB,eAAe,UAAU,eAAe;;;;wBC/CxD,wBAAwB,SAAQ;cAAAA"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { a as isStore, i as isMutatorHook, n as createMcpFragmentClients, r as isGetHook } from "../src-B6dHZXqB.js";
|
|
2
|
+
//#region ../fragno/dist/util/async.js
|
|
3
|
+
/**
|
|
4
|
+
* Creates an async iterator from a subscribe function that follows the observable pattern.
|
|
5
|
+
*
|
|
6
|
+
* @template T The type of values produced by the store.
|
|
7
|
+
* @param subscribe A function that subscribes to store updates. It receives a callback to be
|
|
8
|
+
* called on each update, and returns an unsubscribe function.
|
|
9
|
+
* @returns An async generator that yields store values as they are produced.
|
|
10
|
+
*/
|
|
11
|
+
function createAsyncIteratorFromCallback(subscribe) {
|
|
12
|
+
const queue = [];
|
|
13
|
+
let unsubscribe = null;
|
|
14
|
+
let resolveNext = null;
|
|
15
|
+
const unsubscribeFunc = subscribe((value) => {
|
|
16
|
+
if (resolveNext) {
|
|
17
|
+
resolveNext({
|
|
18
|
+
value,
|
|
19
|
+
done: false
|
|
20
|
+
});
|
|
21
|
+
resolveNext = null;
|
|
22
|
+
} else queue.push(value);
|
|
23
|
+
});
|
|
24
|
+
if (typeof unsubscribeFunc === "function") unsubscribe = unsubscribeFunc;
|
|
25
|
+
return async function* () {
|
|
26
|
+
try {
|
|
27
|
+
while (true) if (queue.length > 0) yield queue.shift();
|
|
28
|
+
else yield await new Promise((resolve) => {
|
|
29
|
+
resolveNext = (result) => {
|
|
30
|
+
if (!result.done) resolve(result.value);
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
} finally {
|
|
34
|
+
if (unsubscribe) unsubscribe();
|
|
35
|
+
}
|
|
36
|
+
}();
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region ../fragno/dist/client/vanilla.js
|
|
40
|
+
function createVanillaListeners(hook) {
|
|
41
|
+
return ({ path, query } = {}) => {
|
|
42
|
+
const store = hook.store({
|
|
43
|
+
path,
|
|
44
|
+
query
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
listen: (callback) => {
|
|
48
|
+
return store.listen(({ loading, error, data }) => {
|
|
49
|
+
callback({
|
|
50
|
+
loading,
|
|
51
|
+
error,
|
|
52
|
+
data
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
subscribe: (callback) => {
|
|
57
|
+
return store.subscribe(({ loading, error, data }) => {
|
|
58
|
+
callback({
|
|
59
|
+
loading,
|
|
60
|
+
error,
|
|
61
|
+
data
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
refetch: () => {
|
|
66
|
+
store.revalidate();
|
|
67
|
+
},
|
|
68
|
+
get: () => {
|
|
69
|
+
return store.get();
|
|
70
|
+
},
|
|
71
|
+
[Symbol.asyncIterator]() {
|
|
72
|
+
return createAsyncIteratorFromCallback((callback) => store.listen(({ loading, error, data }) => {
|
|
73
|
+
callback({
|
|
74
|
+
loading,
|
|
75
|
+
error,
|
|
76
|
+
data
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function createVanillaMutator(hook) {
|
|
84
|
+
return () => {
|
|
85
|
+
const store = hook.mutatorStore;
|
|
86
|
+
return {
|
|
87
|
+
subscribe: (callback) => {
|
|
88
|
+
return store.subscribe((value) => {
|
|
89
|
+
callback({
|
|
90
|
+
loading: value.loading ?? false,
|
|
91
|
+
error: value.error,
|
|
92
|
+
data: value.data
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
get: () => {
|
|
97
|
+
const { loading, error, data } = store.get();
|
|
98
|
+
return {
|
|
99
|
+
loading: loading ?? false,
|
|
100
|
+
error,
|
|
101
|
+
data
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
mutate: ({ body, path, query }) => {
|
|
105
|
+
return store.mutate({
|
|
106
|
+
body,
|
|
107
|
+
path,
|
|
108
|
+
query
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
[Symbol.asyncIterator]() {
|
|
112
|
+
return createAsyncIteratorFromCallback((callback) => store.listen((value) => {
|
|
113
|
+
callback({
|
|
114
|
+
loading: value.loading ?? false,
|
|
115
|
+
error: value.error,
|
|
116
|
+
data: value.data
|
|
117
|
+
});
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function createVanillaStore(hook) {
|
|
124
|
+
if ("obj" in hook) return hook.obj;
|
|
125
|
+
return (...args) => {
|
|
126
|
+
const value = hook.factory(...args);
|
|
127
|
+
const dispose = value[Symbol.dispose];
|
|
128
|
+
const disposer = typeof dispose === "function" ? dispose.bind(value) : void 0;
|
|
129
|
+
if (!disposer) return value;
|
|
130
|
+
Object.defineProperty(value, "destroy", {
|
|
131
|
+
value: disposer,
|
|
132
|
+
enumerable: false,
|
|
133
|
+
configurable: true,
|
|
134
|
+
writable: true
|
|
135
|
+
});
|
|
136
|
+
return value;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function useFragno(clientObj) {
|
|
140
|
+
const result = {};
|
|
141
|
+
for (const key in clientObj) {
|
|
142
|
+
if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
|
|
143
|
+
const hook = clientObj[key];
|
|
144
|
+
if (isGetHook(hook)) result[key] = createVanillaListeners(hook);
|
|
145
|
+
else if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);
|
|
146
|
+
else if (isStore(hook)) result[key] = createVanillaStore(hook);
|
|
147
|
+
else result[key] = hook;
|
|
148
|
+
}
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/client/vanilla.ts
|
|
153
|
+
function createMcpFragmentClient(config = {}) {
|
|
154
|
+
return useFragno(createMcpFragmentClients(config));
|
|
155
|
+
}
|
|
156
|
+
//#endregion
|
|
157
|
+
export { createMcpFragmentClient };
|
|
158
|
+
|
|
159
|
+
//# sourceMappingURL=vanilla.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vanilla.js","names":["createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","isGetHook","isMutatorHook","isStore","createAsyncIteratorFromCallback","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","subscribe","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","value","mutate","body","createVanillaStore","obj","args","factory","dispose","disposer","bind","Object","defineProperty","enumerable","configurable","writable","useFragno","clientObj","result","key","prototype","hasOwnProperty","call","FragnoPublicClientConfig","useFragno","createMcpFragmentClients","createMcpFragmentClient","config"],"sources":["../../../../fragno/dist/util/async.js","../../../../fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["//#region src/util/async.ts\n/**\n* Creates an async iterator from a subscribe function that follows the observable pattern.\n*\n* @template T The type of values produced by the store.\n* @param subscribe A function that subscribes to store updates. It receives a callback to be\n* called on each update, and returns an unsubscribe function.\n* @returns An async generator that yields store values as they are produced.\n*/\nfunction createAsyncIteratorFromCallback(subscribe) {\n\tconst queue = [];\n\tlet unsubscribe = null;\n\tlet resolveNext = null;\n\tconst unsubscribeFunc = subscribe((value) => {\n\t\tif (resolveNext) {\n\t\t\tresolveNext({\n\t\t\t\tvalue,\n\t\t\t\tdone: false\n\t\t\t});\n\t\t\tresolveNext = null;\n\t\t} else queue.push(value);\n\t});\n\tif (typeof unsubscribeFunc === \"function\") unsubscribe = unsubscribeFunc;\n\treturn (async function* () {\n\t\ttry {\n\t\t\twhile (true) if (queue.length > 0) yield queue.shift();\n\t\t\telse yield await new Promise((resolve) => {\n\t\t\t\tresolveNext = (result) => {\n\t\t\t\t\tif (!result.done) resolve(result.value);\n\t\t\t\t};\n\t\t\t});\n\t\t} finally {\n\t\t\tif (unsubscribe) unsubscribe();\n\t\t}\n\t})();\n}\n//#endregion\nexport { createAsyncIteratorFromCallback };\n\n//# sourceMappingURL=async.js.map","import { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { createAsyncIteratorFromCallback } from \"../util/async.js\";\n//#region src/client/vanilla.ts\nfunction createVanillaListeners(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst store = hook.store({\n\t\t\tpath,\n\t\t\tquery\n\t\t});\n\t\treturn {\n\t\t\tlisten: (callback) => {\n\t\t\t\treturn store.listen(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\trefetch: () => {\n\t\t\t\tstore.revalidate();\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\treturn store.get();\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t};\n}\nfunction createVanillaMutator(hook) {\n\treturn () => {\n\t\tconst store = hook.mutatorStore;\n\t\treturn {\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\tconst { loading, error, data } = store.get();\n\t\t\t\treturn {\n\t\t\t\t\tloading: loading ?? false,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t};\n\t\t\t},\n\t\t\tmutate: ({ body, path, query }) => {\n\t\t\t\treturn store.mutate({\n\t\t\t\t\tbody,\n\t\t\t\t\tpath,\n\t\t\t\t\tquery\n\t\t\t\t});\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t};\n}\nfunction createVanillaStore(hook) {\n\tif (\"obj\" in hook) return hook.obj;\n\treturn ((...args) => {\n\t\tconst value = hook.factory(...args);\n\t\tconst dispose = value[Symbol.dispose];\n\t\tconst disposer = typeof dispose === \"function\" ? dispose.bind(value) : void 0;\n\t\tif (!disposer) return value;\n\t\tObject.defineProperty(value, \"destroy\", {\n\t\t\tvalue: disposer,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\treturn value;\n\t});\n}\nfunction useFragno(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createVanillaListeners(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createVanillaStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n//#endregion\nexport { useFragno };\n\n//# sourceMappingURL=vanilla.js.map","import type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/vanilla\";\n\nimport { createMcpFragmentClients } from \"..\";\n\nexport function createMcpFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createMcpFragmentClients(config));\n}\n"],"mappings":"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"}
|