@foldkit/devtools-mcp 0.16.0 → 0.16.1-canary.85e5fda4e854
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 +16 -16
- package/dist/server.js +288 -37
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -6,13 +6,13 @@ With it attached, agents can:
|
|
|
6
6
|
|
|
7
7
|
- Read the current Model, or any historical Model by history index
|
|
8
8
|
- Narrow reads with dot-string paths and summarized payloads to fit token budgets
|
|
9
|
-
- List and inspect the Message history, with Command and Mount lifecycle, diffs, and
|
|
9
|
+
- List and inspect the Message history, with Command and Mount lifecycle, diffs, and Submodel chains
|
|
10
10
|
- Query history server-side: filter entries by changed Model paths, count Messages by tag, tail the latest entries, and diff the Models at two indices
|
|
11
11
|
- Read the recorded init Model, the Commands returned from `init`, and the Mounts that fired during the first render
|
|
12
|
-
- Inspect
|
|
12
|
+
- Inspect Runtime state: current index, retained history bounds, pause status
|
|
13
13
|
- Replay to any past state and resume
|
|
14
|
-
- Discover the
|
|
15
|
-
- Dispatch Messages into the
|
|
14
|
+
- Discover the Runtime's `Message` Schema as JSON Schema so agents can construct valid payloads without reading the application source
|
|
15
|
+
- Dispatch Messages into the Runtime, singly or as an ordered batch, decoded against your `Message` Schema
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
@@ -50,7 +50,7 @@ export default defineConfig({
|
|
|
50
50
|
})
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
In your `Runtime.makeApplication` call, pass your `Message` Schema. The
|
|
53
|
+
In your `Runtime.makeApplication` call, pass your `Message` Schema. The Runtime decodes every dispatched payload against it, returning a clean error if the shape does not match before it reaches your update function:
|
|
54
54
|
|
|
55
55
|
```typescript
|
|
56
56
|
Runtime.makeApplication({
|
|
@@ -63,29 +63,29 @@ Runtime.makeApplication({
|
|
|
63
63
|
|
|
64
64
|
Restart your dev server, then restart your AI agent. The MCP server will appear with the `foldkit_*` tools attached.
|
|
65
65
|
|
|
66
|
-
The browser bridge runs inside your app, so the MCP server only sees a
|
|
66
|
+
The browser bridge runs inside your app, so the MCP server only sees a Runtime while the app is open in a browser tab. Close the tab and the Runtime disappears from `foldkit_list_runtimes`.
|
|
67
67
|
|
|
68
68
|
## Tools
|
|
69
69
|
|
|
70
|
-
Each tool accepts an optional `runtime_id`. When omitted, the most recently connected
|
|
70
|
+
Each tool accepts an optional `runtime_id`. When omitted, the most recently connected Runtime is used.
|
|
71
71
|
|
|
72
72
|
| Tool | Description |
|
|
73
73
|
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
74
|
-
| `foldkit_list_runtimes` | Returns metadata for every connected browser tab. Agents call this first to discover which
|
|
74
|
+
| `foldkit_list_runtimes` | Returns metadata for every connected browser tab. Agents call this first to discover which Runtime to target. |
|
|
75
75
|
| `foldkit_get_model` | Snapshots the current Model. Accepts an optional `path` to narrow to a subtree and `expand` to control summarization. |
|
|
76
|
-
| `foldkit_get_model_at` | Snapshots a historical Model after a given history entry. Pass `index: N - 1` to read the Model just before
|
|
76
|
+
| `foldkit_get_model_at` | Snapshots a historical Model after a given history entry. Pass `index: N - 1` to read the Model just before Message `N`. Same `path`/`expand` semantics as `foldkit_get_model`. Indices outside the readable range (older entries are evicted past the rolling buffer) are rejected with the valid bounds. For the initial Model (and the init Commands and Mounts), use `foldkit_get_init`. |
|
|
77
77
|
| `foldkit_get_init` | Reads the recorded initial Model, the Commands returned from the application's `init` function, and the Mounts that fired during the first render. Each Command and Mount carries its declared args. Equivalent to selecting the synthetic "init" row in the DevTools panel. |
|
|
78
|
-
| `foldkit_get_runtime_state` | Snapshots the
|
|
78
|
+
| `foldkit_get_runtime_state` | Snapshots the Runtime's DevTools state: history bounds, current paused/live status, and whether init is recorded. Useful for understanding what `foldkit_list_messages` and `foldkit_get_message` will see and detecting whether the Runtime is paused. |
|
|
79
79
|
| `foldkit_list_messages` | Lists Message history entries. Each entry carries the Message body, Commands triggered (with args), Mounts that started or ended during the resulting render (with args), timestamp, an `isModelChanged` flag, the diff path lists (`changedPaths` / `affectedPaths`), and any extracted Submodel chain. Filter server-side with `changed_paths_match`, read the latest entries with `from_end`, and paginate forward with `since_index`. |
|
|
80
80
|
| `foldkit_count_messages_by_tag` | Counts retained history entries by Message tag, without payloads, sorted by count descending. A cheap reconnaissance call before paging through history: it surfaces the high-frequency Messages worth filtering out, and with `changed_paths_match` it answers which Message tags touch a Model subtree. |
|
|
81
81
|
| `foldkit_diff_models` | Diffs the Models at two history indices server-side, returning path-level changes `{ path, before, after }` with summarized values. Each side is `{ _tag: 'Present', value }`, or `{ _tag: 'Absent' }` when the path does not exist on that side. Pass `changed_paths_match` to narrow the diff to a subtree. |
|
|
82
82
|
| `foldkit_get_message` | Reads one entry at a given index. The response carries the SerializedEntry only; to inspect the Model around the entry, call `foldkit_get_model_at` with `index - 1` (before) and `index` (after). Use `foldkit_get_init` for the synthetic init entry. |
|
|
83
83
|
| `foldkit_list_keyframes` | Returns the indices Foldkit can replay back to. Index `-1` is the initial Model. |
|
|
84
|
-
| `foldkit_replay_to_keyframe` | Time-travels the
|
|
84
|
+
| `foldkit_replay_to_keyframe` | Time-travels the Runtime to a previous state. The Runtime is paused at that snapshot until `foldkit_resume` is called. |
|
|
85
85
|
| `foldkit_resume` | Resumes normal execution after a replay. |
|
|
86
|
-
| `foldkit_get_message_schema` | Describes the
|
|
87
|
-
| `foldkit_dispatch_message` | Dispatches a Message into the
|
|
88
|
-
| `foldkit_dispatch_messages` | Dispatches an ordered batch of 1 to 100 Messages in one call, first to last. The
|
|
86
|
+
| `foldkit_get_message_schema` | Describes the Runtime's Message Schema so agents can construct valid Messages without reading the application source. With no arguments, returns a small variant index (top-level tag names plus payload fields). With `variant_tag` set to a dot-separated path of variant tags (e.g. `"GotChildMessage.Opened"`), narrows the JSON Schema along the chain and collapses deeper unions to summary placeholders. Returns `maybeResult: None` when the Runtime hasn't configured `DevToolsConfig.Message`. |
|
|
87
|
+
| `foldkit_dispatch_message` | Dispatches a Message into the Runtime as if your application produced it. The Runtime decodes the payload against your Schema and returns a clean error if it does not match. |
|
|
88
|
+
| `foldkit_dispatch_messages` | Dispatches an ordered batch of 1 to 100 Messages in one call, first to last. The Runtime validates every payload before dispatching any of them, so one invalid entry rejects the whole batch with its zero-based position and nothing is dispatched. The response reports the predicted history index for each Message. |
|
|
89
89
|
|
|
90
90
|
### Reading the Model efficiently
|
|
91
91
|
|
|
@@ -111,7 +111,7 @@ Three components cooperate:
|
|
|
111
111
|
- **Vite plugin relay** (in `@foldkit/vite-plugin`): opens a separate WebSocket server on `devToolsMcpPort` and forwards traffic between browsers and MCP clients.
|
|
112
112
|
- **MCP server** (this package): runs as a Node child process under your AI agent, connects to the plugin's relay over WebSocket, and exposes the typed tools over MCP's stdio transport.
|
|
113
113
|
|
|
114
|
-
Multiple browser tabs can be connected at once and each is addressable by its connection id. Tabs that close (gracefully or not) are pruned from the live
|
|
114
|
+
Multiple browser tabs can be connected at once and each is addressable by its connection id. Tabs that close (gracefully or not) are pruned from the live Runtime list automatically.
|
|
115
115
|
|
|
116
116
|
## Configuration
|
|
117
117
|
|
|
@@ -122,7 +122,7 @@ Multiple browser tabs can be connected at once and each is addressable by its co
|
|
|
122
122
|
|
|
123
123
|
## Notes
|
|
124
124
|
|
|
125
|
-
- The MCP bridge shares its lifecycle with Foldkit DevTools. If you set `devTools: false` in your program config, the bridge does not start and the
|
|
125
|
+
- The MCP bridge shares its lifecycle with Foldkit DevTools. If you set `devTools: false` in your program config, the bridge does not start and the Runtime is invisible to MCP. The default enables the bridge in dev.
|
|
126
126
|
- Without `Message` in your `DevToolsConfig`, dispatch is rejected. The other (read-only) tools still work.
|
|
127
127
|
- The relay only runs at dev time. Production builds never include the relay or the bridge, regardless of any `show` setting.
|
|
128
128
|
|
package/dist/server.js
CHANGED
|
@@ -1208,8 +1208,8 @@ var require_util = __commonJS({
|
|
|
1208
1208
|
})(Type || (exports.Type = Type = {}));
|
|
1209
1209
|
function getErrorPath(dataProp, dataPropType, jsPropertySyntax) {
|
|
1210
1210
|
if (dataProp instanceof codegen_1.Name) {
|
|
1211
|
-
const
|
|
1212
|
-
return jsPropertySyntax ?
|
|
1211
|
+
const isNumber3 = dataPropType === Type.Num;
|
|
1212
|
+
return jsPropertySyntax ? isNumber3 ? (0, codegen_1._)`"[" + ${dataProp} + "]"` : (0, codegen_1._)`"['" + ${dataProp} + "']"` : isNumber3 ? (0, codegen_1._)`"/" + ${dataProp}` : (0, codegen_1._)`"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`;
|
|
1213
1213
|
}
|
|
1214
1214
|
return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp);
|
|
1215
1215
|
}
|
|
@@ -2991,7 +2991,7 @@ var require_compile = __commonJS({
|
|
|
2991
2991
|
const schOrFunc = root.refs[ref];
|
|
2992
2992
|
if (schOrFunc)
|
|
2993
2993
|
return schOrFunc;
|
|
2994
|
-
let _sch =
|
|
2994
|
+
let _sch = resolve3.call(this, root, ref);
|
|
2995
2995
|
if (_sch === void 0) {
|
|
2996
2996
|
const schema = (_a2 = root.localRefs) === null || _a2 === void 0 ? void 0 : _a2[ref];
|
|
2997
2997
|
const { schemaId } = this.opts;
|
|
@@ -3018,7 +3018,7 @@ var require_compile = __commonJS({
|
|
|
3018
3018
|
function sameSchemaEnv(s1, s2) {
|
|
3019
3019
|
return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
|
|
3020
3020
|
}
|
|
3021
|
-
function
|
|
3021
|
+
function resolve3(root, ref) {
|
|
3022
3022
|
let sch;
|
|
3023
3023
|
while (typeof (sch = this.refs[ref]) == "string")
|
|
3024
3024
|
ref = sch;
|
|
@@ -3649,7 +3649,7 @@ var require_fast_uri = __commonJS({
|
|
|
3649
3649
|
}
|
|
3650
3650
|
return uri;
|
|
3651
3651
|
}
|
|
3652
|
-
function
|
|
3652
|
+
function resolve3(baseURI, relativeURI, options) {
|
|
3653
3653
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
3654
3654
|
const resolved = resolveComponent(parse4(baseURI, schemelessOptions), parse4(relativeURI, schemelessOptions), schemelessOptions, true);
|
|
3655
3655
|
schemelessOptions.skipEscape = true;
|
|
@@ -3907,7 +3907,7 @@ var require_fast_uri = __commonJS({
|
|
|
3907
3907
|
var fastUri = {
|
|
3908
3908
|
SCHEMES,
|
|
3909
3909
|
normalize: normalize2,
|
|
3910
|
-
resolve:
|
|
3910
|
+
resolve: resolve3,
|
|
3911
3911
|
resolveComponent,
|
|
3912
3912
|
equal,
|
|
3913
3913
|
serialize,
|
|
@@ -13411,6 +13411,142 @@ var floor = /* @__PURE__ */ dual(isBigDecimalArgs, (self, scale2 = 0) => {
|
|
|
13411
13411
|
var Boolean2 = globalThis.Boolean;
|
|
13412
13412
|
var ReducerOr = /* @__PURE__ */ make((a, b) => a || b, false);
|
|
13413
13413
|
|
|
13414
|
+
// ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaAST.js
|
|
13415
|
+
var SchemaAST_exports = {};
|
|
13416
|
+
__export(SchemaAST_exports, {
|
|
13417
|
+
Any: () => Any,
|
|
13418
|
+
Arrays: () => Arrays,
|
|
13419
|
+
Base: () => Base2,
|
|
13420
|
+
BigInt: () => BigInt4,
|
|
13421
|
+
Boolean: () => Boolean3,
|
|
13422
|
+
Context: () => Context,
|
|
13423
|
+
Declaration: () => Declaration,
|
|
13424
|
+
Enum: () => Enum,
|
|
13425
|
+
FINITE_PATTERN: () => FINITE_PATTERN,
|
|
13426
|
+
Filter: () => Filter2,
|
|
13427
|
+
FilterGroup: () => FilterGroup,
|
|
13428
|
+
IndexSignature: () => IndexSignature,
|
|
13429
|
+
Json: () => Json,
|
|
13430
|
+
Link: () => Link,
|
|
13431
|
+
Literal: () => Literal,
|
|
13432
|
+
MutableJson: () => MutableJson,
|
|
13433
|
+
Never: () => Never,
|
|
13434
|
+
Null: () => Null,
|
|
13435
|
+
Number: () => Number5,
|
|
13436
|
+
ObjectKeyword: () => ObjectKeyword,
|
|
13437
|
+
Objects: () => Objects,
|
|
13438
|
+
PropertySignature: () => PropertySignature,
|
|
13439
|
+
STRING_PATTERN: () => STRING_PATTERN,
|
|
13440
|
+
String: () => String4,
|
|
13441
|
+
Suspend: () => Suspend,
|
|
13442
|
+
Symbol: () => Symbol2,
|
|
13443
|
+
TemplateLiteral: () => TemplateLiteral,
|
|
13444
|
+
Undefined: () => Undefined,
|
|
13445
|
+
Union: () => Union,
|
|
13446
|
+
UniqueSymbol: () => UniqueSymbol,
|
|
13447
|
+
Unknown: () => Unknown,
|
|
13448
|
+
Void: () => Void,
|
|
13449
|
+
annotate: () => annotate,
|
|
13450
|
+
annotateKey: () => annotateKey,
|
|
13451
|
+
any: () => any,
|
|
13452
|
+
appendChecks: () => appendChecks,
|
|
13453
|
+
applyToLastLink: () => applyToLastLink,
|
|
13454
|
+
applyToSelfOrLastLinkEncoding: () => applyToSelfOrLastLinkEncoding,
|
|
13455
|
+
applyToSelfOrLastLinkEncodingIdempotent: () => applyToSelfOrLastLinkEncodingIdempotent,
|
|
13456
|
+
bigInt: () => bigInt,
|
|
13457
|
+
bigIntString: () => bigIntString,
|
|
13458
|
+
boolean: () => boolean,
|
|
13459
|
+
brand: () => brand,
|
|
13460
|
+
collectIssues: () => collectIssues,
|
|
13461
|
+
collectSentinels: () => collectSentinels,
|
|
13462
|
+
containsUndefined: () => containsUndefined,
|
|
13463
|
+
decodeTo: () => decodeTo,
|
|
13464
|
+
defaultParseOptions: () => defaultParseOptions,
|
|
13465
|
+
enumsToLiterals: () => enumsToLiterals,
|
|
13466
|
+
finite: () => finite,
|
|
13467
|
+
flip: () => flip3,
|
|
13468
|
+
getAST: () => getAST,
|
|
13469
|
+
getCandidates: () => getCandidates,
|
|
13470
|
+
getConstructorDescriptor: () => getConstructorDescriptor,
|
|
13471
|
+
getContextOwner: () => getContextOwner,
|
|
13472
|
+
getIndexSignatureKeys: () => getIndexSignatureKeys,
|
|
13473
|
+
getLastEncoding: () => getLastEncoding,
|
|
13474
|
+
isAST: () => isAST,
|
|
13475
|
+
isAny: () => isAny,
|
|
13476
|
+
isArrays: () => isArrays,
|
|
13477
|
+
isBigInt: () => isBigInt2,
|
|
13478
|
+
isBoolean: () => isBoolean2,
|
|
13479
|
+
isDeclaration: () => isDeclaration,
|
|
13480
|
+
isEnum: () => isEnum,
|
|
13481
|
+
isFinite: () => isFinite2,
|
|
13482
|
+
isJson: () => isJson,
|
|
13483
|
+
isLiteral: () => isLiteral,
|
|
13484
|
+
isMutable: () => isMutable,
|
|
13485
|
+
isNever: () => isNever2,
|
|
13486
|
+
isNull: () => isNull2,
|
|
13487
|
+
isNumber: () => isNumber2,
|
|
13488
|
+
isObjectKeyword: () => isObjectKeyword2,
|
|
13489
|
+
isObjects: () => isObjects,
|
|
13490
|
+
isOptional: () => isOptional,
|
|
13491
|
+
isPattern: () => isPattern,
|
|
13492
|
+
isString: () => isString2,
|
|
13493
|
+
isStringBigInt: () => isStringBigInt,
|
|
13494
|
+
isStringFinite: () => isStringFinite,
|
|
13495
|
+
isStringSymbol: () => isStringSymbol,
|
|
13496
|
+
isStringTree: () => isStringTree,
|
|
13497
|
+
isSuspend: () => isSuspend,
|
|
13498
|
+
isSymbol: () => isSymbol2,
|
|
13499
|
+
isTemplateLiteral: () => isTemplateLiteral,
|
|
13500
|
+
isUndefined: () => isUndefined2,
|
|
13501
|
+
isUnion: () => isUnion,
|
|
13502
|
+
isUniqueSymbol: () => isUniqueSymbol,
|
|
13503
|
+
isUnknown: () => isUnknown2,
|
|
13504
|
+
isVoid: () => isVoid,
|
|
13505
|
+
makeFilter: () => makeFilter,
|
|
13506
|
+
makeFilterByGuard: () => makeFilterByGuard,
|
|
13507
|
+
mapLink: () => mapLink,
|
|
13508
|
+
mapOrSame: () => mapOrSame,
|
|
13509
|
+
memoizeThunk: () => memoizeThunk,
|
|
13510
|
+
middlewareDecoding: () => middlewareDecoding,
|
|
13511
|
+
middlewareEncoding: () => middlewareEncoding,
|
|
13512
|
+
mutableKey: () => mutableKey,
|
|
13513
|
+
never: () => never3,
|
|
13514
|
+
null: () => null_,
|
|
13515
|
+
number: () => number2,
|
|
13516
|
+
objectKeyword: () => objectKeyword,
|
|
13517
|
+
objectKeywordToJson: () => objectKeywordToJson,
|
|
13518
|
+
optional: () => optional,
|
|
13519
|
+
optionalKey: () => optionalKey,
|
|
13520
|
+
parameterFromString: () => parameterFromString,
|
|
13521
|
+
record: () => record,
|
|
13522
|
+
replaceChecks: () => replaceChecks,
|
|
13523
|
+
replaceContext: () => replaceContext,
|
|
13524
|
+
replaceContextLastLink: () => replaceContextLastLink,
|
|
13525
|
+
replaceEncoding: () => replaceEncoding,
|
|
13526
|
+
resolve: () => resolve2,
|
|
13527
|
+
resolveAt: () => resolveAt2,
|
|
13528
|
+
resolveDescription: () => resolveDescription2,
|
|
13529
|
+
resolveIdentifier: () => resolveIdentifier2,
|
|
13530
|
+
resolveTitle: () => resolveTitle2,
|
|
13531
|
+
runChecks: () => runChecks,
|
|
13532
|
+
string: () => string2,
|
|
13533
|
+
struct: () => struct,
|
|
13534
|
+
structWithRest: () => structWithRest,
|
|
13535
|
+
symbol: () => symbol3,
|
|
13536
|
+
symbolString: () => symbolString,
|
|
13537
|
+
toEncoded: () => toEncoded,
|
|
13538
|
+
toType: () => toType,
|
|
13539
|
+
tuple: () => tuple,
|
|
13540
|
+
tupleWithRest: () => tupleWithRest,
|
|
13541
|
+
undefined: () => undefined_3,
|
|
13542
|
+
union: () => union2,
|
|
13543
|
+
unknown: () => unknown,
|
|
13544
|
+
unknownToJson: () => unknownToJson,
|
|
13545
|
+
unknownToStringTree: () => unknownToStringTree,
|
|
13546
|
+
void: () => void_5,
|
|
13547
|
+
withConstructorDefault: () => withConstructorDefault
|
|
13548
|
+
});
|
|
13549
|
+
|
|
13414
13550
|
// ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Effectable.js
|
|
13415
13551
|
var Prototype2 = (options) => makePrimitiveProto({
|
|
13416
13552
|
op: options.label,
|
|
@@ -16456,8 +16592,8 @@ var runPromiseExitWith = (context3) => {
|
|
|
16456
16592
|
const runFork3 = runForkWith(context3);
|
|
16457
16593
|
return (effect, options) => {
|
|
16458
16594
|
const fiber3 = runFork3(effect, options);
|
|
16459
|
-
return new Promise((
|
|
16460
|
-
fiber3.addObserver((exit3) =>
|
|
16595
|
+
return new Promise((resolve3) => {
|
|
16596
|
+
fiber3.addObserver((exit3) => resolve3(exit3));
|
|
16461
16597
|
});
|
|
16462
16598
|
};
|
|
16463
16599
|
};
|
|
@@ -19718,6 +19854,7 @@ var jsonSchemaAnnotationKeys = ["title", "description", "default", "examples", "
|
|
|
19718
19854
|
var resolveIdentifier = /* @__PURE__ */ resolveAt("identifier");
|
|
19719
19855
|
var resolveIdentifierFallback = /* @__PURE__ */ resolveAt(IDENTIFIER_FALLBACK_KEY);
|
|
19720
19856
|
var resolveTitle = /* @__PURE__ */ resolveAt("title");
|
|
19857
|
+
var resolveDescription = /* @__PURE__ */ resolveAt("description");
|
|
19721
19858
|
var resolveBrands = /* @__PURE__ */ resolveAt("brands");
|
|
19722
19859
|
var getExpected = /* @__PURE__ */ memoize((ast) => {
|
|
19723
19860
|
const identifier2 = resolve(ast)?.identifier;
|
|
@@ -20824,10 +20961,26 @@ var dateTimeZonedFromString = /* @__PURE__ */ transformOrFail2({
|
|
|
20824
20961
|
function makeGuard(tag4) {
|
|
20825
20962
|
return (ast) => ast._tag === tag4;
|
|
20826
20963
|
}
|
|
20964
|
+
function isAST(u) {
|
|
20965
|
+
return hasProperty(u, TypeId17) && u[TypeId17] === TypeId17;
|
|
20966
|
+
}
|
|
20827
20967
|
var isDeclaration = /* @__PURE__ */ makeGuard("Declaration");
|
|
20968
|
+
var isNull2 = /* @__PURE__ */ makeGuard("Null");
|
|
20969
|
+
var isUndefined2 = /* @__PURE__ */ makeGuard("Undefined");
|
|
20970
|
+
var isVoid = /* @__PURE__ */ makeGuard("Void");
|
|
20828
20971
|
var isNever2 = /* @__PURE__ */ makeGuard("Never");
|
|
20972
|
+
var isUnknown2 = /* @__PURE__ */ makeGuard("Unknown");
|
|
20973
|
+
var isAny = /* @__PURE__ */ makeGuard("Any");
|
|
20974
|
+
var isString2 = /* @__PURE__ */ makeGuard("String");
|
|
20975
|
+
var isNumber2 = /* @__PURE__ */ makeGuard("Number");
|
|
20976
|
+
var isBoolean2 = /* @__PURE__ */ makeGuard("Boolean");
|
|
20977
|
+
var isBigInt2 = /* @__PURE__ */ makeGuard("BigInt");
|
|
20978
|
+
var isSymbol2 = /* @__PURE__ */ makeGuard("Symbol");
|
|
20829
20979
|
var isLiteral = /* @__PURE__ */ makeGuard("Literal");
|
|
20830
20980
|
var isUniqueSymbol = /* @__PURE__ */ makeGuard("UniqueSymbol");
|
|
20981
|
+
var isObjectKeyword2 = /* @__PURE__ */ makeGuard("ObjectKeyword");
|
|
20982
|
+
var isEnum = /* @__PURE__ */ makeGuard("Enum");
|
|
20983
|
+
var isTemplateLiteral = /* @__PURE__ */ makeGuard("TemplateLiteral");
|
|
20831
20984
|
var isArrays = /* @__PURE__ */ makeGuard("Arrays");
|
|
20832
20985
|
var isObjects = /* @__PURE__ */ makeGuard("Objects");
|
|
20833
20986
|
var isUnion = /* @__PURE__ */ makeGuard("Union");
|
|
@@ -22354,6 +22507,12 @@ function applyToLastLink(f) {
|
|
|
22354
22507
|
function replaceContextLastLink(ast, context3) {
|
|
22355
22508
|
return applyToLastLink((ast2) => replaceContext(ast2, context3))(ast);
|
|
22356
22509
|
}
|
|
22510
|
+
function applyToSelfOrLastLinkEncoding(f) {
|
|
22511
|
+
function out(ast) {
|
|
22512
|
+
return ast.encoding ? replaceEncoding(ast, updateLastLink(ast.encoding, out)) : f(ast);
|
|
22513
|
+
}
|
|
22514
|
+
return memoize(out);
|
|
22515
|
+
}
|
|
22357
22516
|
function applyToSelfOrLastLinkEncodingIdempotent(f, options) {
|
|
22358
22517
|
function out(ast) {
|
|
22359
22518
|
if (ast.encoding) {
|
|
@@ -22726,6 +22885,11 @@ function getConstructorDescriptor(ast) {
|
|
|
22726
22885
|
const getDescriptor = ast.annotations?.[CONSTRUCTOR_ANNOTATION_KEY];
|
|
22727
22886
|
return isFunction(getDescriptor) ? getDescriptor(ast.typeParameters) : void 0;
|
|
22728
22887
|
}
|
|
22888
|
+
var resolve2 = resolve;
|
|
22889
|
+
var resolveAt2 = resolveAt;
|
|
22890
|
+
var resolveIdentifier2 = resolveIdentifier;
|
|
22891
|
+
var resolveTitle2 = resolveTitle;
|
|
22892
|
+
var resolveDescription2 = resolveDescription;
|
|
22729
22893
|
function isJsonLeaf(u) {
|
|
22730
22894
|
return u === null || typeof u === "string" || typeof u === "boolean" || typeof u === "number" && globalThis.Number.isFinite(u);
|
|
22731
22895
|
}
|
|
@@ -27188,9 +27352,9 @@ function toStandardSchemaV1(self, options) {
|
|
|
27188
27352
|
if (exit3) {
|
|
27189
27353
|
return makeStandardResult(exit3);
|
|
27190
27354
|
}
|
|
27191
|
-
return new Promise((
|
|
27355
|
+
return new Promise((resolve3) => {
|
|
27192
27356
|
fiber3.addObserver((exit4) => {
|
|
27193
|
-
|
|
27357
|
+
resolve3(makeStandardResult(exit4));
|
|
27194
27358
|
});
|
|
27195
27359
|
});
|
|
27196
27360
|
};
|
|
@@ -41114,7 +41278,7 @@ var lazyProcessor = (schema, ctx, _json, params) => {
|
|
|
41114
41278
|
seen.ref = innerType;
|
|
41115
41279
|
};
|
|
41116
41280
|
|
|
41117
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
41281
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
41118
41282
|
function isZ4Schema(s) {
|
|
41119
41283
|
const schema = s;
|
|
41120
41284
|
return !!schema._zod;
|
|
@@ -42569,7 +42733,7 @@ var z = {
|
|
|
42569
42733
|
// ../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
42570
42734
|
config(en_default2());
|
|
42571
42735
|
|
|
42572
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
42736
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
42573
42737
|
var LATEST_PROTOCOL_VERSION = "2025-11-25";
|
|
42574
42738
|
var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
|
|
42575
42739
|
var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
|
|
@@ -44088,7 +44252,7 @@ var UrlElicitationRequiredError = class extends McpError {
|
|
|
44088
44252
|
}
|
|
44089
44253
|
};
|
|
44090
44254
|
|
|
44091
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
44255
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
44092
44256
|
function isTerminal(status) {
|
|
44093
44257
|
return status === "completed" || status === "failed" || status === "cancelled";
|
|
44094
44258
|
}
|
|
@@ -44096,7 +44260,7 @@ function isTerminal(status) {
|
|
|
44096
44260
|
// ../../node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@4.3.6/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
|
|
44097
44261
|
var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
|
|
44098
44262
|
|
|
44099
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
44263
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
44100
44264
|
function getMethodLiteral(schema) {
|
|
44101
44265
|
const shape = getObjectShape(schema);
|
|
44102
44266
|
const methodSchema = shape?.method;
|
|
@@ -44117,7 +44281,7 @@ function parseWithCompat(schema, data) {
|
|
|
44117
44281
|
return result5.data;
|
|
44118
44282
|
}
|
|
44119
44283
|
|
|
44120
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
44284
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
44121
44285
|
var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
|
|
44122
44286
|
var Protocol = class {
|
|
44123
44287
|
constructor(_options) {
|
|
@@ -44617,7 +44781,7 @@ var Protocol = class {
|
|
|
44617
44781
|
return;
|
|
44618
44782
|
}
|
|
44619
44783
|
const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
|
|
44620
|
-
await new Promise((
|
|
44784
|
+
await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
|
|
44621
44785
|
options?.signal?.throwIfAborted();
|
|
44622
44786
|
}
|
|
44623
44787
|
} catch (error3) {
|
|
@@ -44634,7 +44798,7 @@ var Protocol = class {
|
|
|
44634
44798
|
*/
|
|
44635
44799
|
request(request3, resultSchema, options) {
|
|
44636
44800
|
const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
|
|
44637
|
-
return new Promise((
|
|
44801
|
+
return new Promise((resolve3, reject) => {
|
|
44638
44802
|
const earlyReject = (error3) => {
|
|
44639
44803
|
reject(error3);
|
|
44640
44804
|
};
|
|
@@ -44712,7 +44876,7 @@ var Protocol = class {
|
|
|
44712
44876
|
if (!parseResult.success) {
|
|
44713
44877
|
reject(parseResult.error);
|
|
44714
44878
|
} else {
|
|
44715
|
-
|
|
44879
|
+
resolve3(parseResult.data);
|
|
44716
44880
|
}
|
|
44717
44881
|
} catch (error3) {
|
|
44718
44882
|
reject(error3);
|
|
@@ -44973,12 +45137,12 @@ var Protocol = class {
|
|
|
44973
45137
|
}
|
|
44974
45138
|
} catch {
|
|
44975
45139
|
}
|
|
44976
|
-
return new Promise((
|
|
45140
|
+
return new Promise((resolve3, reject) => {
|
|
44977
45141
|
if (signal.aborted) {
|
|
44978
45142
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
44979
45143
|
return;
|
|
44980
45144
|
}
|
|
44981
|
-
const timeoutId = setTimeout(
|
|
45145
|
+
const timeoutId = setTimeout(resolve3, interval);
|
|
44982
45146
|
signal.addEventListener("abort", () => {
|
|
44983
45147
|
clearTimeout(timeoutId);
|
|
44984
45148
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
@@ -45071,7 +45235,7 @@ function mergeCapabilities(base2, additional) {
|
|
|
45071
45235
|
return result5;
|
|
45072
45236
|
}
|
|
45073
45237
|
|
|
45074
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
45238
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
45075
45239
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
45076
45240
|
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
45077
45241
|
function createDefaultAjvInstance() {
|
|
@@ -45139,7 +45303,7 @@ var AjvJsonSchemaValidator = class {
|
|
|
45139
45303
|
}
|
|
45140
45304
|
};
|
|
45141
45305
|
|
|
45142
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
45306
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
45143
45307
|
var ExperimentalServerTasks = class {
|
|
45144
45308
|
constructor(_server) {
|
|
45145
45309
|
this._server = _server;
|
|
@@ -45352,7 +45516,7 @@ var ExperimentalServerTasks = class {
|
|
|
45352
45516
|
}
|
|
45353
45517
|
};
|
|
45354
45518
|
|
|
45355
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
45519
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
45356
45520
|
function assertToolsCallTaskCapability(requests, method, entityName) {
|
|
45357
45521
|
if (!requests) {
|
|
45358
45522
|
throw new Error(`${entityName} does not support task creation (required for ${method})`);
|
|
@@ -45387,7 +45551,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
|
|
|
45387
45551
|
}
|
|
45388
45552
|
}
|
|
45389
45553
|
|
|
45390
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
45554
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
45391
45555
|
var Server = class extends Protocol {
|
|
45392
45556
|
/**
|
|
45393
45557
|
* Initializes this server with the given name and version information.
|
|
@@ -45767,10 +45931,10 @@ var Server = class extends Protocol {
|
|
|
45767
45931
|
}
|
|
45768
45932
|
};
|
|
45769
45933
|
|
|
45770
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
45934
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
45771
45935
|
import process3 from "node:process";
|
|
45772
45936
|
|
|
45773
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
|
|
45937
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
|
|
45774
45938
|
var ReadBuffer = class {
|
|
45775
45939
|
append(chunk) {
|
|
45776
45940
|
this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
|
|
@@ -45798,7 +45962,7 @@ function serializeMessage(message) {
|
|
|
45798
45962
|
return JSON.stringify(message) + "\n";
|
|
45799
45963
|
}
|
|
45800
45964
|
|
|
45801
|
-
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
45965
|
+
// ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_supports-color@7.2.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
|
|
45802
45966
|
var StdioServerTransport = class {
|
|
45803
45967
|
constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
|
|
45804
45968
|
this._stdin = _stdin;
|
|
@@ -45848,12 +46012,12 @@ var StdioServerTransport = class {
|
|
|
45848
46012
|
this.onclose?.();
|
|
45849
46013
|
}
|
|
45850
46014
|
send(message) {
|
|
45851
|
-
return new Promise((
|
|
46015
|
+
return new Promise((resolve3) => {
|
|
45852
46016
|
const json2 = serializeMessage(message);
|
|
45853
46017
|
if (this._stdout.write(json2)) {
|
|
45854
|
-
|
|
46018
|
+
resolve3();
|
|
45855
46019
|
} else {
|
|
45856
|
-
this._stdout.once("drain",
|
|
46020
|
+
this._stdout.once("drain", resolve3);
|
|
45857
46021
|
}
|
|
45858
46022
|
});
|
|
45859
46023
|
}
|
|
@@ -45939,12 +46103,99 @@ var runInit = () => {
|
|
|
45939
46103
|
};
|
|
45940
46104
|
|
|
45941
46105
|
// ../foldkit/src/schema/index.ts
|
|
45942
|
-
var
|
|
45943
|
-
|
|
45944
|
-
|
|
46106
|
+
var assignPlainProperty = (output, name, value5) => {
|
|
46107
|
+
if (name === "__proto__") {
|
|
46108
|
+
Object.defineProperty(output, name, {
|
|
46109
|
+
value: value5,
|
|
46110
|
+
writable: true,
|
|
46111
|
+
enumerable: true,
|
|
46112
|
+
configurable: true
|
|
46113
|
+
});
|
|
46114
|
+
} else {
|
|
46115
|
+
output[name] = value5;
|
|
46116
|
+
}
|
|
46117
|
+
};
|
|
46118
|
+
var isDirectlyCopyable = (ast) => {
|
|
46119
|
+
if (ast.checks !== void 0 || ast.encoding !== void 0 || ast.context !== void 0 || ast.annotations?.["parseOptions"] !== void 0) {
|
|
46120
|
+
return false;
|
|
46121
|
+
}
|
|
46122
|
+
return Match_exports.value(ast).pipe(
|
|
46123
|
+
Match_exports.withReturnType(),
|
|
46124
|
+
Match_exports.tagsExhaustive({
|
|
46125
|
+
Declaration: () => false,
|
|
46126
|
+
Null: () => true,
|
|
46127
|
+
Undefined: () => true,
|
|
46128
|
+
Void: () => true,
|
|
46129
|
+
Never: () => true,
|
|
46130
|
+
Unknown: () => true,
|
|
46131
|
+
Any: () => true,
|
|
46132
|
+
String: () => true,
|
|
46133
|
+
Number: () => true,
|
|
46134
|
+
Boolean: () => true,
|
|
46135
|
+
BigInt: () => true,
|
|
46136
|
+
Symbol: () => true,
|
|
46137
|
+
Literal: () => true,
|
|
46138
|
+
UniqueSymbol: () => true,
|
|
46139
|
+
ObjectKeyword: () => true,
|
|
46140
|
+
Enum: () => true,
|
|
46141
|
+
TemplateLiteral: ({ parts: parts2 }) => parts2.every(isDirectlyCopyable),
|
|
46142
|
+
Arrays: () => false,
|
|
46143
|
+
Objects: () => false,
|
|
46144
|
+
Union: ({ mode, types }) => mode !== "oneOf" && types.every(isDirectlyCopyable),
|
|
46145
|
+
Suspend: () => false
|
|
46146
|
+
})
|
|
46147
|
+
);
|
|
46148
|
+
};
|
|
46149
|
+
var getDirectPropertyNames = (propertySignatures) => {
|
|
46150
|
+
const names = [];
|
|
46151
|
+
for (const { name, type: type3 } of propertySignatures) {
|
|
46152
|
+
if (name !== "_tag" && !isDirectlyCopyable(SchemaAST_exports.toType(type3))) {
|
|
46153
|
+
return void 0;
|
|
46154
|
+
}
|
|
46155
|
+
names.push(name);
|
|
46156
|
+
}
|
|
46157
|
+
return names;
|
|
46158
|
+
};
|
|
46159
|
+
var makeCallable = (tag4, fields) => {
|
|
46160
|
+
const schema = Schema_exports.TaggedStruct(tag4, fields);
|
|
46161
|
+
const propertyNames = Object.hasOwn(fields, "_tag") ? void 0 : getDirectPropertyNames(schema.ast.propertySignatures);
|
|
46162
|
+
const make26 = (value5) => schema.make(
|
|
46163
|
+
/* eslint-disable-next-line @typescript-eslint/consistent-type-assertions */
|
|
46164
|
+
value5 ?? {}
|
|
46165
|
+
);
|
|
46166
|
+
const construct = propertyNames !== void 0 ? (value5) => {
|
|
46167
|
+
const input = value5 ?? {};
|
|
46168
|
+
if (Object(input) !== input) {
|
|
46169
|
+
return make26(value5);
|
|
46170
|
+
}
|
|
46171
|
+
const output = {};
|
|
46172
|
+
for (const name of propertyNames) {
|
|
46173
|
+
const descriptor = Object.getOwnPropertyDescriptor(input, name);
|
|
46174
|
+
if (name !== "_tag" && descriptor === void 0 && Reflect.has(input, name)) {
|
|
46175
|
+
return make26(value5);
|
|
46176
|
+
}
|
|
46177
|
+
if (descriptor !== void 0 && !("value" in descriptor)) {
|
|
46178
|
+
return make26(value5);
|
|
46179
|
+
}
|
|
46180
|
+
const inputValue = descriptor === void 0 ? void 0 : input[name];
|
|
46181
|
+
if (name === "_tag") {
|
|
46182
|
+
if (inputValue !== void 0 && inputValue !== tag4) {
|
|
46183
|
+
return make26(value5);
|
|
46184
|
+
}
|
|
46185
|
+
if (descriptor !== void 0 && inputValue === void 0) {
|
|
46186
|
+
assignPlainProperty(output, name, inputValue);
|
|
46187
|
+
}
|
|
46188
|
+
assignPlainProperty(output, name, tag4);
|
|
46189
|
+
} else {
|
|
46190
|
+
assignPlainProperty(output, name, inputValue);
|
|
46191
|
+
}
|
|
46192
|
+
}
|
|
46193
|
+
return output;
|
|
46194
|
+
} : make26;
|
|
46195
|
+
return new Proxy(function() {
|
|
45945
46196
|
}, {
|
|
45946
46197
|
apply(_target, _thisArg, argumentsList) {
|
|
45947
|
-
return
|
|
46198
|
+
return construct(argumentsList[0]);
|
|
45948
46199
|
},
|
|
45949
46200
|
get(_target, property, receiver) {
|
|
45950
46201
|
return Reflect.get(schema, property, receiver);
|
|
@@ -45955,10 +46206,10 @@ var makeCallable = (schema) => (
|
|
|
45955
46206
|
getPrototypeOf() {
|
|
45956
46207
|
return Reflect.getPrototypeOf(schema);
|
|
45957
46208
|
}
|
|
45958
|
-
})
|
|
45959
|
-
|
|
46209
|
+
});
|
|
46210
|
+
};
|
|
45960
46211
|
function ts(tag4, fields = {}) {
|
|
45961
|
-
return makeCallable(
|
|
46212
|
+
return makeCallable(tag4, fields);
|
|
45962
46213
|
}
|
|
45963
46214
|
|
|
45964
46215
|
// ../foldkit/src/devTools/protocol.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foldkit/devtools-mcp",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.1-canary.85e5fda4e854",
|
|
4
4
|
"description": "MCP server exposing Foldkit DevTools to AI agents (Claude Code, Cursor, etc.)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/server.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"effect": "4.0.0-rc.109",
|
|
20
|
-
"foldkit": "
|
|
20
|
+
"foldkit": "0.148.2-canary.85e5fda4e854"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"esbuild": "^0.28.1",
|
|
31
31
|
"rimraf": "^6.1.3",
|
|
32
32
|
"typescript": "^6.0.3",
|
|
33
|
-
"foldkit": "0.
|
|
33
|
+
"foldkit": "0.148.2-canary.85e5fda4e854"
|
|
34
34
|
},
|
|
35
35
|
"files": [
|
|
36
36
|
"dist"
|