@animalabs/agent-framework 0.22.4 → 0.23.1
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 +105 -3
- package/dist/src/agent.d.ts +36 -10
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +76 -32
- package/dist/src/agent.js.map +1 -1
- package/dist/src/code-execution/index.d.ts +1 -1
- package/dist/src/code-execution/index.d.ts.map +1 -1
- package/dist/src/code-execution/index.js.map +1 -1
- package/dist/src/code-execution/py-runner.d.ts +34 -2
- package/dist/src/code-execution/py-runner.d.ts.map +1 -1
- package/dist/src/code-execution/py-runner.js +72 -16
- package/dist/src/code-execution/py-runner.js.map +1 -1
- package/dist/src/code-execution/runtime-py.d.ts +3 -2
- package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
- package/dist/src/code-execution/runtime-py.js +47 -7
- package/dist/src/code-execution/runtime-py.js.map +1 -1
- package/dist/src/code-execution/tool-definition.d.ts +12 -7
- package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
- package/dist/src/code-execution/tool-definition.js +59 -11
- package/dist/src/code-execution/tool-definition.js.map +1 -1
- package/dist/src/config-checks.d.ts +2 -2
- package/dist/src/config-checks.d.ts.map +1 -1
- package/dist/src/config-checks.js +6 -2
- package/dist/src/config-checks.js.map +1 -1
- package/dist/src/framework.d.ts +744 -120
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +3546 -906
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +13 -6
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/held-writes.d.ts +16 -0
- package/dist/src/held-writes.d.ts.map +1 -0
- package/dist/src/held-writes.js +56 -0
- package/dist/src/held-writes.js.map +1 -0
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/capability-grant.d.ts +4 -0
- package/dist/src/mcpl/capability-grant.d.ts.map +1 -1
- package/dist/src/mcpl/capability-grant.js +1 -1
- package/dist/src/mcpl/capability-grant.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +95 -18
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +578 -150
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts +2 -2
- package/dist/src/mcpl/convert-block.d.ts.map +1 -1
- package/dist/src/mcpl/convert-block.js +6 -7
- package/dist/src/mcpl/convert-block.js.map +1 -1
- package/dist/src/mcpl/index.d.ts +5 -1
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +3 -1
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/inference-router.d.ts +4 -2
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +6 -7
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/log-value.d.ts +7 -0
- package/dist/src/mcpl/log-value.d.ts.map +1 -1
- package/dist/src/mcpl/log-value.js +9 -0
- package/dist/src/mcpl/log-value.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts +227 -0
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -0
- package/dist/src/mcpl/modern-connection.js +1088 -0
- package/dist/src/mcpl/modern-connection.js.map +1 -0
- package/dist/src/mcpl/prefix-rule.d.ts +18 -0
- package/dist/src/mcpl/prefix-rule.d.ts.map +1 -0
- package/dist/src/mcpl/prefix-rule.js +25 -0
- package/dist/src/mcpl/prefix-rule.js.map +1 -0
- package/dist/src/mcpl/protocol-family.d.ts +179 -0
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -0
- package/dist/src/mcpl/protocol-family.js +697 -0
- package/dist/src/mcpl/protocol-family.js.map +1 -0
- package/dist/src/mcpl/push-coalescer.d.ts +38 -19
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +52 -23
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/reference-fetcher.d.ts +66 -15
- package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
- package/dist/src/mcpl/reference-fetcher.js +243 -76
- package/dist/src/mcpl/reference-fetcher.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +63 -18
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +117 -32
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +326 -30
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +995 -212
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/server-registry.d.ts +25 -5
- package/dist/src/mcpl/server-registry.d.ts.map +1 -1
- package/dist/src/mcpl/server-registry.js +51 -12
- package/dist/src/mcpl/server-registry.js.map +1 -1
- package/dist/src/mcpl/tool-result-normalize.d.ts +54 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.js +232 -0
- package/dist/src/mcpl/tool-result-normalize.js.map +1 -0
- package/dist/src/mcpl/transport.d.ts +56 -13
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +206 -70
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +66 -20
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +2 -1
- package/dist/src/mcpl/visible-content.d.ts.map +1 -1
- package/dist/src/mcpl/visible-content.js +2 -1
- package/dist/src/mcpl/visible-content.js.map +1 -1
- package/dist/src/module-registry.d.ts +16 -6
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +65 -6
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/api/index.d.ts +1 -1
- package/dist/src/modules/api/index.d.ts.map +1 -1
- package/dist/src/modules/api/index.js +3 -2
- package/dist/src/modules/api/index.js.map +1 -1
- package/dist/src/modules/discord/discord-js-client.d.ts +42 -2
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
- package/dist/src/modules/discord/discord-js-client.js +268 -65
- package/dist/src/modules/discord/discord-js-client.js.map +1 -1
- package/dist/src/modules/discord/index.d.ts +27 -5
- package/dist/src/modules/discord/index.d.ts.map +1 -1
- package/dist/src/modules/discord/index.js +366 -76
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/discord/refusal.d.ts +14 -0
- package/dist/src/modules/discord/refusal.d.ts.map +1 -0
- package/dist/src/modules/discord/refusal.js +14 -0
- package/dist/src/modules/discord/refusal.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +17 -7
- package/dist/src/modules/discord/types.d.ts.map +1 -1
- package/dist/src/modules/health/index.d.ts.map +1 -1
- package/dist/src/modules/health/index.js +6 -2
- package/dist/src/modules/health/index.js.map +1 -1
- package/dist/src/modules/index.d.ts +1 -1
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +1 -1
- package/dist/src/modules/index.js.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.d.ts +25 -2
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +45 -5
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +2 -1
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +19 -9
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +214 -42
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +667 -113
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +240 -8
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +554 -24
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +10 -1
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts +42 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +130 -25
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/silent-heartbeat.d.ts +112 -39
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +100 -29
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/tool-args.d.ts +40 -0
- package/dist/src/tool-args.d.ts.map +1 -0
- package/dist/src/tool-args.js +207 -0
- package/dist/src/tool-args.js.map +1 -0
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +9 -2
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/types/agent.d.ts +27 -17
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +8 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +17 -2
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +54 -10
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +2 -2
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/agent.ts +99 -36
- package/src/code-execution/index.ts +1 -0
- package/src/code-execution/py-runner.ts +104 -17
- package/src/code-execution/runtime-py.ts +47 -7
- package/src/code-execution/tool-definition.ts +65 -11
- package/src/config-checks.ts +4 -2
- package/src/framework.ts +3633 -956
- package/src/gate/event-gate.ts +14 -6
- package/src/held-writes.ts +59 -0
- package/src/index.ts +19 -4
- package/src/mcpl/capability-grant.ts +1 -1
- package/src/mcpl/channel-registry.ts +613 -160
- package/src/mcpl/convert-block.ts +15 -7
- package/src/mcpl/index.ts +14 -1
- package/src/mcpl/inference-router.ts +8 -7
- package/src/mcpl/log-value.ts +10 -0
- package/src/mcpl/modern-connection.ts +1182 -0
- package/src/mcpl/prefix-rule.ts +32 -0
- package/src/mcpl/protocol-family.ts +691 -0
- package/src/mcpl/push-coalescer.ts +67 -29
- package/src/mcpl/reference-fetcher.ts +288 -82
- package/src/mcpl/references.ts +123 -33
- package/src/mcpl/server-connection.ts +1050 -221
- package/src/mcpl/server-registry.ts +50 -12
- package/src/mcpl/tool-result-normalize.ts +294 -0
- package/src/mcpl/transport.ts +204 -62
- package/src/mcpl/types.ts +67 -20
- package/src/mcpl/visible-content.ts +2 -1
- package/src/module-registry.ts +68 -13
- package/src/modules/api/index.ts +3 -2
- package/src/modules/discord/discord-js-client.ts +288 -72
- package/src/modules/discord/index.ts +380 -77
- package/src/modules/discord/refusal.ts +13 -0
- package/src/modules/discord/types.ts +17 -9
- package/src/modules/health/index.ts +6 -2
- package/src/modules/index.ts +1 -1
- package/src/modules/workspace/disk-agreement.ts +46 -5
- package/src/modules/workspace/effects.ts +18 -7
- package/src/modules/workspace/index.ts +722 -124
- package/src/modules/workspace/observe.ts +591 -22
- package/src/modules/workspace/types.ts +10 -1
- package/src/modules/workspace/watcher.ts +126 -25
- package/src/silent-heartbeat.ts +184 -59
- package/src/tool-args.ts +213 -0
- package/src/tool-presentation.ts +9 -2
- package/src/types/agent.ts +27 -17
- package/src/types/events.ts +8 -0
- package/src/types/framework.ts +17 -2
- package/src/types/module.ts +55 -10
- package/src/types/trace.ts +2 -2
|
@@ -132,14 +132,12 @@ export class InferenceRouter {
|
|
|
132
132
|
featureSetManager;
|
|
133
133
|
routingPolicy;
|
|
134
134
|
emitTraceFn;
|
|
135
|
-
|
|
136
|
-
constructor(membrane, hookOrchestrator, featureSetManager, routingPolicy, emitTraceFn, sendChunkFn) {
|
|
135
|
+
constructor(membrane, hookOrchestrator, featureSetManager, routingPolicy, emitTraceFn) {
|
|
137
136
|
this.membrane = membrane;
|
|
138
137
|
this.hookOrchestrator = hookOrchestrator;
|
|
139
138
|
this.featureSetManager = featureSetManager;
|
|
140
139
|
this.routingPolicy = routingPolicy;
|
|
141
140
|
this.emitTraceFn = emitTraceFn;
|
|
142
|
-
this.sendChunkFn = sendChunkFn;
|
|
143
141
|
}
|
|
144
142
|
/**
|
|
145
143
|
* Handle an inference/request from an MCPL server.
|
|
@@ -195,13 +193,14 @@ export class InferenceRouter {
|
|
|
195
193
|
};
|
|
196
194
|
// Streaming needs a way to send chunks and an id to tag them with;
|
|
197
195
|
// without either, the request is answered whole.
|
|
198
|
-
const
|
|
196
|
+
const sendChunk = params.stream ? responder.sendChunk?.bind(responder) : undefined;
|
|
197
|
+
const chunkRequestId = sendChunk ? responder.requestId : undefined;
|
|
199
198
|
const streamed = chunkRequestId != null;
|
|
200
199
|
try {
|
|
201
200
|
// 5. Run inference. Both modes end in membrane's response, and one
|
|
202
201
|
// builder makes the result from it.
|
|
203
202
|
const response = chunkRequestId != null
|
|
204
|
-
? await this.streamResponse(
|
|
203
|
+
? await this.streamResponse(request, chunkRequestId, sendChunk)
|
|
205
204
|
: await this.membrane.complete(request);
|
|
206
205
|
// 6. Answer
|
|
207
206
|
const result = resultFrom(response, model);
|
|
@@ -286,7 +285,7 @@ export class InferenceRouter {
|
|
|
286
285
|
* loop by return or throw calls the stream's return(), which cancels it,
|
|
287
286
|
* so nothing keeps running once the request is answered.
|
|
288
287
|
*/
|
|
289
|
-
async streamResponse(
|
|
288
|
+
async streamResponse(request, requestId, sendChunk) {
|
|
290
289
|
const stream = this.membrane.streamYielding(request);
|
|
291
290
|
let index = 0;
|
|
292
291
|
for await (const event of stream) {
|
|
@@ -299,7 +298,7 @@ export class InferenceRouter {
|
|
|
299
298
|
// naming a tag the stream parser opens a block for, or a thinking
|
|
300
299
|
// block cut off before its close tag.
|
|
301
300
|
if (event.meta.visible) {
|
|
302
|
-
|
|
301
|
+
sendChunk({ requestId, index: index++, delta: event.content });
|
|
303
302
|
}
|
|
304
303
|
break;
|
|
305
304
|
case 'tool-calls':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inference-router.js","sourceRoot":"","sources":["../../../src/mcpl/inference-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"inference-router.js","sourceRoot":"","sources":["../../../src/mcpl/inference-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAkB/D,+EAA+E;AAC/E,wDAAwD;AACxD,+EAA+E;AAE/E;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe,EAAE,IAAY;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,QAA4B,EAAE,WAAmB;IACnE,0EAA0E;IAC1E,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,8CAA8C;IAC9C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,wEAAwE;IACxE,6EAA6E;IAC7E,2EAA2E;IAC3E,gCAAgC;IAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAe,EAA4C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAC/H,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrF,CAAC;IACD,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,kDAAkD;IAClD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,KAAK,mBAAmB,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;aACtB,MAAM,CAAC,CAAC,CAAe,EAAwC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,EAAE,CAAC;QACX,0EAA0E;QAC1E,0EAA0E;QAC1E,4CAA4C;QAC5C,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,WAAW;QAC7C,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;QAClD,KAAK,EAAE;YACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;YACvC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;SAC1C;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,QAA4B;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,UAAsB;IAC7C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,UAAU,CAAC;QACpB;YACE,MAAM,IAAI,KAAK,CACb,yCAAyC,UAAU,oDAAoD,CACxG,CAAC;IACN,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,SAAS,aAAa,CAAC,KAAoC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,IAAI,KAAK,CAAC,4BAA4B,KAAK,sCAAsC,CAAC,CAAC;AAC5F,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,4DAA4D;AAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,OAAO,eAAe;IAClB,QAAQ,CAAW;IACnB,gBAAgB,CAAmB;IACnC,iBAAiB,CAAoB;IACrC,aAAa,CAAgC;IAC7C,WAAW,CAA4D;IAE/E,YACE,QAAkB,EAClB,gBAAkC,EAClC,iBAAoC,EACpC,aAA4C,EAC5C,WAAsE;QAEtE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,MAAkC,EAClC,SAAoB;QAEpB,0BAA0B;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,mBAAmB;gBAChD,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,+BAA+B,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,YAAY,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACnC,SAAS,CAAC,YAAY,CACpB,CAAC,KAAK,EACN,wDAAwD,CACzD,CAAC;YACF,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAC7B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,cAAc,CACtB,CAAC;QAEF,8BAA8B;QAC9B,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE,sBAAsB;YAC5B,QAAQ;YACR,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;SAC/B,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,QAAQ,GAAkC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5E,WAAW,EAAE,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YAC5D,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;SACxD,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAsB;YACjC,QAAQ;YACR,MAAM,EAAE;gBACN,KAAK;gBACL,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,IAAI,kBAAkB;gBAC9D,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW;aAC7C;SACF,CAAC;QAEF,mEAAmE;QACnE,iDAAiD;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,QAAQ,GAAG,cAAc,IAAI,IAAI,CAAC;QAExC,IAAI,CAAC;YACH,mEAAmE;YACnE,oCAAoC;YACpC,MAAM,QAAQ,GAAG,cAAc,IAAI,IAAI;gBACrC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,SAAU,CAAC;gBAChE,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1C,YAAY;YACZ,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAE5C,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ;gBACR,sEAAsE;gBACtE,yDAAyD;gBACzD,KAAK;gBACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;gBACrC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;gBACvC,QAAQ;aACT,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,mEAAmE;YACnE,wEAAwE;YACxE,kCAAkC;YAClC,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ;gBACR,KAAK;gBACL,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,QAAQ;aACT,CAAC,CAAC;YAEH,SAAS,CAAC,YAAY,CACpB,CAAC,KAAK,EACN,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,4BAA4B;IAC5B,6EAA6E;IAE7E;;;;;;;;;OASG;IACK,YAAY,CAClB,UAAkB,EAClB,cAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,kCAAkC;QAClC,IAAI,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnF,IAAI,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;oBACvC,OAAO,YAAY,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,6EAA6E;IAC7E,qBAAqB;IACrB,6EAA6E;IAE7E;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,cAAc,CAC1B,OAA0B,EAC1B,SAA0B,EAC1B,SAAiD;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,QAAQ;oBACX,6DAA6D;oBAC7D,6DAA6D;oBAC7D,kEAAkE;oBAClE,kEAAkE;oBAClE,kEAAkE;oBAClE,sCAAsC;oBACtC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACvB,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnC,KAAK,UAAU;oBACb,OAAO,KAAK,CAAC,QAAQ,CAAC;gBACxB,KAAK,OAAO;oBACV,MAAM,KAAK,CAAC,KAAK,CAAC;gBACpB,KAAK,SAAS;oBACZ,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -42,6 +42,13 @@
|
|
|
42
42
|
* of those can read (a revoked Proxy) as `[unprintable]`.
|
|
43
43
|
*/
|
|
44
44
|
export declare function logValue(value: unknown): string;
|
|
45
|
+
/**
|
|
46
|
+
* `logValue` of a value a server chose whose text may hold a credential:
|
|
47
|
+
* its text, as logValue reads it (a JSON value as its JSON text), with
|
|
48
|
+
* `redact` applied, then printed as logValue prints a field. A value whose
|
|
49
|
+
* text holds nothing `redact` replaces prints exactly as logValue prints it.
|
|
50
|
+
*/
|
|
51
|
+
export declare function logValueRedacted(value: unknown, redact: (text: string) => string): string;
|
|
45
52
|
/**
|
|
46
53
|
* The host's own message, as the free text that ends a log line after its
|
|
47
54
|
* fields: `reason=coalesce-invalid field=payload.content: "content must be an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-value.d.ts","sourceRoot":"","sources":["../../../src/mcpl/log-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|
|
1
|
+
{"version":3,"file":"log-value.d.ts","sourceRoot":"","sources":["../../../src/mcpl/log-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAEzF;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|
|
@@ -44,6 +44,15 @@
|
|
|
44
44
|
export function logValue(value) {
|
|
45
45
|
return printed(textOf(value), FIELD);
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* `logValue` of a value a server chose whose text may hold a credential:
|
|
49
|
+
* its text, as logValue reads it (a JSON value as its JSON text), with
|
|
50
|
+
* `redact` applied, then printed as logValue prints a field. A value whose
|
|
51
|
+
* text holds nothing `redact` replaces prints exactly as logValue prints it.
|
|
52
|
+
*/
|
|
53
|
+
export function logValueRedacted(value, redact) {
|
|
54
|
+
return printed(redact(textOf(value)), FIELD);
|
|
55
|
+
}
|
|
47
56
|
/**
|
|
48
57
|
* The host's own message, as the free text that ends a log line after its
|
|
49
58
|
* fields: `reason=coalesce-invalid field=payload.content: "content must be an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-value.js","sourceRoot":"","sources":["../../../src/mcpl/log-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAQD,MAAM,KAAK,GAAS;IAClB,KAAK,EAAE,6DAA6D;IACpE,OAAO,EAAE,uDAAuD;CACjE,CAAC;AAEF,MAAM,MAAM,GAAS;IACnB,KAAK,EAAE,4DAA4D;IACnE,OAAO,EAAE,2DAA2D;CACrE,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAS,OAAO,CAAC,IAAY,EAAE,IAAU;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzF,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;QAAE,GAAG,EAAE,CAAC;IAC5C,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;AAChE,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,IAAU;IACtC,0EAA0E;IAC1E,yEAAyE;IACzE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,2EAA2E;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;QAC5C,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACnB,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;KAC5C,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACxG,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"log-value.js","sourceRoot":"","sources":["../../../src/mcpl/log-value.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import { type CallToolResult } from '@modelcontextprotocol/client';
|
|
3
|
+
import type { McplServerConfig, McpToolDefinition } from './types.js';
|
|
4
|
+
/** A modern tool result as the framework consumes it. `structuredContent` is
|
|
5
|
+
* kept by presence: `false`, `0` and `null` are values, not absence. */
|
|
6
|
+
export interface ModernToolCallResult {
|
|
7
|
+
content: CallToolResult['content'];
|
|
8
|
+
isError?: boolean;
|
|
9
|
+
structuredContent?: unknown;
|
|
10
|
+
_meta?: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The diagnostic for a line that is JSON but not a JSON-RPC message: the
|
|
14
|
+
* line's first 200 characters, after the configuration's credentials are
|
|
15
|
+
* replaced, so a credential across the cut can't leave its first part.
|
|
16
|
+
*/
|
|
17
|
+
export declare function malformedLineDiagnostic(config: McplServerConfig, text: string, error: unknown, recorded?: (text: unknown) => string): string;
|
|
18
|
+
export declare class ModernMcpConnection extends EventEmitter {
|
|
19
|
+
private readonly config;
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly family: 'modern';
|
|
22
|
+
readonly transportKind: 'stdio' | 'http';
|
|
23
|
+
/** The pinned revision, once a connect has established it; null before. */
|
|
24
|
+
protocolVersion: string | null;
|
|
25
|
+
private session;
|
|
26
|
+
/** A connect in flight, owned so `close()` can end it. */
|
|
27
|
+
private opening;
|
|
28
|
+
private generation;
|
|
29
|
+
private closedByHost;
|
|
30
|
+
private reconnectEnabled;
|
|
31
|
+
private readonly reconnectIntervalMs;
|
|
32
|
+
private readonly reconnectMaxIntervalMs;
|
|
33
|
+
private reconnectTimer;
|
|
34
|
+
private reconnectAttempts;
|
|
35
|
+
/** At most one pending reopen, and only ever for the current generation. */
|
|
36
|
+
private relisten;
|
|
37
|
+
private relistenAttempts;
|
|
38
|
+
/**
|
|
39
|
+
* Generations whose cleanup could not confirm their child exited. While any
|
|
40
|
+
* is held, no replacement is started: launching another would orphan the
|
|
41
|
+
* first. close() retries them and reports what still fails.
|
|
42
|
+
*/
|
|
43
|
+
private unreaped;
|
|
44
|
+
/** A lost session's reap in flight: the reconnect follows it, and
|
|
45
|
+
* close() waits for it. */
|
|
46
|
+
private losing;
|
|
47
|
+
/** Child stderr from before anyone listens (the caller attaches only once
|
|
48
|
+
* connect() returns), delivered to the first listener. Bounded: the
|
|
49
|
+
* newest lines are kept. */
|
|
50
|
+
private stderrBacklog;
|
|
51
|
+
private constructor();
|
|
52
|
+
private deliverStderr;
|
|
53
|
+
/** The per-call deadline: `requestTimeoutMs`, validated positive. */
|
|
54
|
+
get requestTimeoutMs(): number;
|
|
55
|
+
get isConnected(): boolean;
|
|
56
|
+
/** Whether a lost connection will be re-established in the background. */
|
|
57
|
+
get willReconnect(): boolean;
|
|
58
|
+
/** Whether close() has been called: closed for good, or closing. A
|
|
59
|
+
* connection lost on its own is not closed in this sense. */
|
|
60
|
+
get isClosed(): boolean;
|
|
61
|
+
/** Whether a child this connection launched couldn't be confirmed exited.
|
|
62
|
+
* While it's true the connection owns that child, so whatever registered
|
|
63
|
+
* it keeps its id held; close() retries the reap. It's settled only once
|
|
64
|
+
* a reap has finished: while a lost session's reap or a close runs, it
|
|
65
|
+
* reads false, so read it once lossReaped() or close() has settled. */
|
|
66
|
+
get holdsUnreapedChild(): boolean;
|
|
67
|
+
/** The reap of a session lost on its own, settled once it's done, whether
|
|
68
|
+
* or not it confirmed the child exited (holdsUnreapedChild says which);
|
|
69
|
+
* settled at once when no such reap is running. */
|
|
70
|
+
lossReaped(): Promise<void>;
|
|
71
|
+
/** A failed generation's cleanup couldn't reap its child: keep owning it,
|
|
72
|
+
* and halt reconnecting until close() settles it. */
|
|
73
|
+
private holdUnreaped;
|
|
74
|
+
/** The halt, as a permanent failure for the reconnect events. */
|
|
75
|
+
private unreapedFailure;
|
|
76
|
+
/**
|
|
77
|
+
* A connection that hasn't started: configuration is validated (and
|
|
78
|
+
* throws), nothing is launched or dialed. An owner can register it, and
|
|
79
|
+
* wire its events, before {@link start}, so a connect in flight is
|
|
80
|
+
* already the owner's to close.
|
|
81
|
+
*/
|
|
82
|
+
static create(config: McplServerConfig): ModernMcpConnection;
|
|
83
|
+
/** The first connect, shared by every call to start(). */
|
|
84
|
+
private starting;
|
|
85
|
+
/**
|
|
86
|
+
* The first connect. Without `reconnect` a failure throws. With it, the
|
|
87
|
+
* connection keeps retrying in the background, as the legacy engine's
|
|
88
|
+
* stub does, and reports `connect-failed`, unless the failed launch
|
|
89
|
+
* couldn't be reaped: no retry can come then, so it throws too. A
|
|
90
|
+
* connection closed before or during its first connect resolves
|
|
91
|
+
* unconnected. A connection starts once:
|
|
92
|
+
* later calls return the first call's promise, so a second session never
|
|
93
|
+
* opens beside the first.
|
|
94
|
+
*/
|
|
95
|
+
start(): Promise<void>;
|
|
96
|
+
private firstConnect;
|
|
97
|
+
/**
|
|
98
|
+
* {@link create} and {@link start} in one step. A first connect that fails
|
|
99
|
+
* and whose cleanup couldn't confirm its child exited throws
|
|
100
|
+
* {@link McplUnreapedLaunchError}, whose connection owns that launch, as
|
|
101
|
+
* the legacy engine's connect does: its close() retries the reap.
|
|
102
|
+
*/
|
|
103
|
+
static connect(config: McplServerConfig): Promise<ModernMcpConnection>;
|
|
104
|
+
private isCurrent;
|
|
105
|
+
/** One connect generation: a fresh client over a fresh transport. */
|
|
106
|
+
private open;
|
|
107
|
+
/** Connect one generation's client, and adopt it if it's still current. */
|
|
108
|
+
private establish;
|
|
109
|
+
/**
|
|
110
|
+
* The server refused the pinned revision (no common one in its
|
|
111
|
+
* `server/discover` answer, or an unsupported-version error): a
|
|
112
|
+
* configuration verdict, as for the legacy engine, in the same type, so
|
|
113
|
+
* every reader treats both engines alike. Retrying can't change it.
|
|
114
|
+
*/
|
|
115
|
+
private versionVerdict;
|
|
116
|
+
/**
|
|
117
|
+
* Keep list-change awareness while this generation lives. The SDK opens the
|
|
118
|
+
* subscription at connect when the server advertises tool list changes. If
|
|
119
|
+
* that open failed (the SDK reports it through `onerror` and connects
|
|
120
|
+
* anyway), or the subscription later ends without our asking, it is
|
|
121
|
+
* reopened with backoff. Once it's back the inventory is refreshed, since
|
|
122
|
+
* changes may have been missed. A lost transport is the reconnect path's
|
|
123
|
+
* job, not this one's.
|
|
124
|
+
*/
|
|
125
|
+
private keepListening;
|
|
126
|
+
private cancelRelisten;
|
|
127
|
+
private scheduleRelisten;
|
|
128
|
+
private reopenSubscription;
|
|
129
|
+
/** The transport went away (child exit, or a closed HTTP client). */
|
|
130
|
+
private handleLost;
|
|
131
|
+
/** The legacy engine's backoff: doubling from the base interval, capped,
|
|
132
|
+
* with ±25% jitter, and never past the timer limit (a longer delay would
|
|
133
|
+
* fire at once, turning the backoff into a tight loop). */
|
|
134
|
+
private backoffDelay;
|
|
135
|
+
private scheduleReconnect;
|
|
136
|
+
private attemptReconnect;
|
|
137
|
+
/**
|
|
138
|
+
* The server's complete tool inventory. The SDK follows every page; one
|
|
139
|
+
* budget, {@link LIST_TIMEOUT_MS}, bounds the whole walk, not each page.
|
|
140
|
+
* Its failures use the request-outcome contract with `tools/list` as the
|
|
141
|
+
* observed method. A relist the SDK makes inside a tool call is auxiliary
|
|
142
|
+
* to that call, and leaves the call's evidence alone.
|
|
143
|
+
*/
|
|
144
|
+
listTools(): Promise<McpToolDefinition[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Call a tool within the configured deadline. One budget covers the whole
|
|
147
|
+
* logical call: the SDK's per-leg timer and its `maxTotalTimeout` across
|
|
148
|
+
* continuation rounds, and an abort signal around any retry the SDK makes
|
|
149
|
+
* before dispatch (an auth refresh, or a header-mismatch relist).
|
|
150
|
+
*/
|
|
151
|
+
callTool(name: string, args: Record<string, unknown>): Promise<ModernToolCallResult>;
|
|
152
|
+
/** Run one logical request in a wire scope, and classify its failure by
|
|
153
|
+
* what that scope saw. `what` names the request in the host's log: its
|
|
154
|
+
* method, and a tool call's tool as a log field. */
|
|
155
|
+
private request;
|
|
156
|
+
/**
|
|
157
|
+
* Close one generation: the transport first (during discovery the SDK
|
|
158
|
+
* hasn't attached it yet, so only closing it ends the probe), then the
|
|
159
|
+
* client. The transport's close is the reaping verdict, and its failure is
|
|
160
|
+
* returned, never swallowed. It never rejects, which lossReaped() and the
|
|
161
|
+
* framework's unguarded wait on it rely on.
|
|
162
|
+
*/
|
|
163
|
+
private static closeSession;
|
|
164
|
+
/** The close in flight, which later calls wait behind. */
|
|
165
|
+
private closing;
|
|
166
|
+
/** Set when the host closes a live session; cleared, with the one
|
|
167
|
+
* 'close', by the close that confirms its teardown. */
|
|
168
|
+
private closeIncomplete;
|
|
169
|
+
/**
|
|
170
|
+
* Close for good: no reconnect, no reopened subscription, no connect left
|
|
171
|
+
* in flight. Awaits the in-flight connect's end, and rejects while a child
|
|
172
|
+
* can't be confirmed exited: with that failure itself, the transport's
|
|
173
|
+
* own error, or an AggregateError when there are several, as the MCPL
|
|
174
|
+
* engine does. Calls queue behind the one in flight, so none resolves
|
|
175
|
+
* while teardown is still pending. A call after a failed close re-checks
|
|
176
|
+
* what wasn't reaped. 'close' is emitted once, when the teardown of a
|
|
177
|
+
* session the host closed while live completes, not on a failed close.
|
|
178
|
+
*/
|
|
179
|
+
close(): Promise<void>;
|
|
180
|
+
private closeStep;
|
|
181
|
+
/** What works from here after a request that didn't run, by whether this
|
|
182
|
+
* host is reconnecting to the server, in the legacy engine's words. */
|
|
183
|
+
private retryText;
|
|
184
|
+
/**
|
|
185
|
+
* Map a failure onto the request-outcome contract by what crossed the
|
|
186
|
+
* transport boundary for this request, claiming no more than that shows.
|
|
187
|
+
* The rules apply in this order. The call's answer is the server's final
|
|
188
|
+
* one: an error or a `complete` result.
|
|
189
|
+
* - nothing handed to the transport: `not-sent`, whatever was raised (a
|
|
190
|
+
* pre-dispatch validation, a signal already aborted, no transport, a send
|
|
191
|
+
* Connectome's stdio line refused before writing, an HTTP refusal before
|
|
192
|
+
* any request went out);
|
|
193
|
+
* - the most recent leg answered with a JSON-RPC error: `error-response`
|
|
194
|
+
* with that error's data;
|
|
195
|
+
* - the most recent leg answered with a complete result: the server
|
|
196
|
+
* finished, but what it returned can't be used (output validation).
|
|
197
|
+
* That's a plain error, not a request outcome;
|
|
198
|
+
* - the most recent leg answered without finishing the call: `no-response`,
|
|
199
|
+
* since the server may have acted on what it received. An
|
|
200
|
+
* `input_required` answer asks for another round, and the call can end
|
|
201
|
+
* before that round is sent: at the deadline, when the connection is
|
|
202
|
+
* gone, or when this client can't go on (input it can't supply, the
|
|
203
|
+
* rounds cap). Nothing is in flight then, so nothing is cancelled. A
|
|
204
|
+
* result of a type this client doesn't recognize ends the call where it
|
|
205
|
+
* is;
|
|
206
|
+
* - an HTTP 401/403 refusal of the current leg: `error-response`, the
|
|
207
|
+
* status in `data.httpStatus` (the server answered at the HTTP layer,
|
|
208
|
+
* outside the JSON-RPC code space). After an earlier leg
|
|
209
|
+
* asked for another round it is `no-response` instead: the server may
|
|
210
|
+
* already have acted on the call;
|
|
211
|
+
* - handed off and unanswered: `no-response`. At the deadline, cancellation
|
|
212
|
+
* was requested and the outcome is unknown.
|
|
213
|
+
*
|
|
214
|
+
* The message is the agent's, in the legacy engine's words where it has
|
|
215
|
+
* words for the same outcome (#506), and in their shape where it hasn't:
|
|
216
|
+
* what happened, whether anything took effect, and what works from there.
|
|
217
|
+
* A request this host's close cut off, and one whose connection closed
|
|
218
|
+
* under it (`lost`), read as the legacy engine's do. The method, the tool,
|
|
219
|
+
* the JSON-RPC code, the HTTP status, the deadline in milliseconds and the
|
|
220
|
+
* SDK's or transport's words are the operator's, so they go to one log
|
|
221
|
+
* line, the server's text redacted. Where the effect is in doubt, a tool
|
|
222
|
+
* call's message says to check it before trying again, and a listing's that
|
|
223
|
+
* listing changes nothing on the server, so trying again is safe.
|
|
224
|
+
*/
|
|
225
|
+
private requestFailure;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=modern-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modern-connection.d.ts","sourceRoot":"","sources":["../../../src/mcpl/modern-connection.ts"],"names":[],"mappings":"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"}
|