@mcpmesh/sdk 1.3.4 → 2.0.0-beta.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/dist/__tests__/a2a/a2a-bearer.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.js +58 -0
- package/dist/__tests__/a2a/a2a-bearer.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-client.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-client.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-client.spec.js +334 -0
- package/dist/__tests__/a2a/a2a-client.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-job.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-job.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-job.spec.js +255 -0
- package/dist/__tests__/a2a/a2a-job.spec.js.map +1 -0
- package/dist/__tests__/a2a/a2a-stream.spec.d.ts +2 -0
- package/dist/__tests__/a2a/a2a-stream.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/a2a-stream.spec.js +278 -0
- package/dist/__tests__/a2a/a2a-stream.spec.js.map +1 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.d.ts +2 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.js +262 -0
- package/dist/__tests__/a2a/agent-a2a-config.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.js +127 -0
- package/dist/__tests__/a2a/producer/auth-filter.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.js +113 -0
- package/dist/__tests__/a2a/producer/card-builder.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.js +850 -0
- package/dist/__tests__/a2a/producer/dispatcher.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.js +164 -0
- package/dist/__tests__/a2a/producer/mount-surface-push.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/mount.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/mount.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/mount.spec.js +433 -0
- package/dist/__tests__/a2a/producer/mount.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.js +116 -0
- package/dist/__tests__/a2a/producer/public-url-cache.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.js +754 -0
- package/dist/__tests__/a2a/producer/sse-emitter.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.js +124 -0
- package/dist/__tests__/a2a/producer/state-translator.spec.js.map +1 -0
- package/dist/__tests__/a2a/producer/task-store.spec.d.ts +2 -0
- package/dist/__tests__/a2a/producer/task-store.spec.d.ts.map +1 -0
- package/dist/__tests__/a2a/producer/task-store.spec.js +180 -0
- package/dist/__tests__/a2a/producer/task-store.spec.js.map +1 -0
- package/dist/__tests__/agent-add-tool.spec.d.ts +2 -0
- package/dist/__tests__/agent-add-tool.spec.d.ts.map +1 -0
- package/dist/__tests__/agent-add-tool.spec.js +483 -0
- package/dist/__tests__/agent-add-tool.spec.js.map +1 -0
- package/dist/__tests__/api-runtime-race.spec.d.ts +2 -0
- package/dist/__tests__/api-runtime-race.spec.d.ts.map +1 -0
- package/dist/__tests__/api-runtime-race.spec.js +193 -0
- package/dist/__tests__/api-runtime-race.spec.js.map +1 -0
- package/dist/__tests__/claim-dispatcher.spec.d.ts +2 -0
- package/dist/__tests__/claim-dispatcher.spec.d.ts.map +1 -0
- package/dist/__tests__/claim-dispatcher.spec.js +408 -0
- package/dist/__tests__/claim-dispatcher.spec.js.map +1 -0
- package/dist/__tests__/inbound-job-dispatch.spec.d.ts +2 -0
- package/dist/__tests__/inbound-job-dispatch.spec.d.ts.map +1 -0
- package/dist/__tests__/inbound-job-dispatch.spec.js +185 -0
- package/dist/__tests__/inbound-job-dispatch.spec.js.map +1 -0
- package/dist/__tests__/job-controller-progress.spec.d.ts +2 -0
- package/dist/__tests__/job-controller-progress.spec.d.ts.map +1 -0
- package/dist/__tests__/job-controller-progress.spec.js +85 -0
- package/dist/__tests__/job-controller-progress.spec.js.map +1 -0
- package/dist/__tests__/jobs-cancel-route.spec.d.ts +2 -0
- package/dist/__tests__/jobs-cancel-route.spec.d.ts.map +1 -0
- package/dist/__tests__/jobs-cancel-route.spec.js +88 -0
- package/dist/__tests__/jobs-cancel-route.spec.js.map +1 -0
- package/dist/__tests__/llm-agent-stream.test.d.ts +14 -0
- package/dist/__tests__/llm-agent-stream.test.d.ts.map +1 -0
- package/dist/__tests__/llm-agent-stream.test.js +341 -0
- package/dist/__tests__/llm-agent-stream.test.js.map +1 -0
- package/dist/__tests__/llm-provider.test.js +22 -1
- package/dist/__tests__/llm-provider.test.js.map +1 -1
- package/dist/__tests__/media-resolver.test.js +40 -0
- package/dist/__tests__/media-resolver.test.js.map +1 -1
- package/dist/__tests__/mesh-job-submitter.spec.d.ts +2 -0
- package/dist/__tests__/mesh-job-submitter.spec.d.ts.map +1 -0
- package/dist/__tests__/mesh-job-submitter.spec.js +110 -0
- package/dist/__tests__/mesh-job-submitter.spec.js.map +1 -0
- package/dist/__tests__/proxy-stream.test.d.ts +9 -0
- package/dist/__tests__/proxy-stream.test.d.ts.map +1 -0
- package/dist/__tests__/proxy-stream.test.js +347 -0
- package/dist/__tests__/proxy-stream.test.js.map +1 -0
- package/dist/__tests__/resolver-meshjob.spec.d.ts +26 -0
- package/dist/__tests__/resolver-meshjob.spec.d.ts.map +1 -0
- package/dist/__tests__/resolver-meshjob.spec.js +201 -0
- package/dist/__tests__/resolver-meshjob.spec.js.map +1 -0
- package/dist/__tests__/schema-verdict-policy.test.d.ts +6 -0
- package/dist/__tests__/schema-verdict-policy.test.d.ts.map +1 -0
- package/dist/__tests__/schema-verdict-policy.test.js +126 -0
- package/dist/__tests__/schema-verdict-policy.test.js.map +1 -0
- package/dist/__tests__/sse-stream.test.d.ts +12 -0
- package/dist/__tests__/sse-stream.test.d.ts.map +1 -0
- package/dist/__tests__/sse-stream.test.js +170 -0
- package/dist/__tests__/sse-stream.test.js.map +1 -0
- package/dist/a2a/a2a-bearer.d.ts +27 -0
- package/dist/a2a/a2a-bearer.d.ts.map +1 -0
- package/dist/a2a/a2a-bearer.js +63 -0
- package/dist/a2a/a2a-bearer.js.map +1 -0
- package/dist/a2a/a2a-client.d.ts +114 -0
- package/dist/a2a/a2a-client.d.ts.map +1 -0
- package/dist/a2a/a2a-client.js +405 -0
- package/dist/a2a/a2a-client.js.map +1 -0
- package/dist/a2a/a2a-event.d.ts +25 -0
- package/dist/a2a/a2a-event.d.ts.map +1 -0
- package/dist/a2a/a2a-event.js +9 -0
- package/dist/a2a/a2a-event.js.map +1 -0
- package/dist/a2a/a2a-job.d.ts +58 -0
- package/dist/a2a/a2a-job.d.ts.map +1 -0
- package/dist/a2a/a2a-job.js +264 -0
- package/dist/a2a/a2a-job.js.map +1 -0
- package/dist/a2a/a2a-stream.d.ts +39 -0
- package/dist/a2a/a2a-stream.d.ts.map +1 -0
- package/dist/a2a/a2a-stream.js +290 -0
- package/dist/a2a/a2a-stream.js.map +1 -0
- package/dist/a2a/errors.d.ts +29 -0
- package/dist/a2a/errors.d.ts.map +1 -0
- package/dist/a2a/errors.js +48 -0
- package/dist/a2a/errors.js.map +1 -0
- package/dist/a2a/index.d.ts +12 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +11 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/producer/auth-filter.d.ts +34 -0
- package/dist/a2a/producer/auth-filter.d.ts.map +1 -0
- package/dist/a2a/producer/auth-filter.js +39 -0
- package/dist/a2a/producer/auth-filter.js.map +1 -0
- package/dist/a2a/producer/card-builder.d.ts +59 -0
- package/dist/a2a/producer/card-builder.d.ts.map +1 -0
- package/dist/a2a/producer/card-builder.js +59 -0
- package/dist/a2a/producer/card-builder.js.map +1 -0
- package/dist/a2a/producer/dispatcher.d.ts +276 -0
- package/dist/a2a/producer/dispatcher.d.ts.map +1 -0
- package/dist/a2a/producer/dispatcher.js +896 -0
- package/dist/a2a/producer/dispatcher.js.map +1 -0
- package/dist/a2a/producer/index.d.ts +26 -0
- package/dist/a2a/producer/index.d.ts.map +1 -0
- package/dist/a2a/producer/index.js +23 -0
- package/dist/a2a/producer/index.js.map +1 -0
- package/dist/a2a/producer/mount.d.ts +75 -0
- package/dist/a2a/producer/mount.d.ts.map +1 -0
- package/dist/a2a/producer/mount.js +422 -0
- package/dist/a2a/producer/mount.js.map +1 -0
- package/dist/a2a/producer/public-url-cache.d.ts +73 -0
- package/dist/a2a/producer/public-url-cache.d.ts.map +1 -0
- package/dist/a2a/producer/public-url-cache.js +0 -0
- package/dist/a2a/producer/public-url-cache.js.map +1 -0
- package/dist/a2a/producer/registry.d.ts +138 -0
- package/dist/a2a/producer/registry.d.ts.map +1 -0
- package/dist/a2a/producer/registry.js +117 -0
- package/dist/a2a/producer/registry.js.map +1 -0
- package/dist/a2a/producer/sse-emitter.d.ts +85 -0
- package/dist/a2a/producer/sse-emitter.d.ts.map +1 -0
- package/dist/a2a/producer/sse-emitter.js +405 -0
- package/dist/a2a/producer/sse-emitter.js.map +1 -0
- package/dist/a2a/producer/state-translator.d.ts +63 -0
- package/dist/a2a/producer/state-translator.d.ts.map +1 -0
- package/dist/a2a/producer/state-translator.js +108 -0
- package/dist/a2a/producer/state-translator.js.map +1 -0
- package/dist/a2a/producer/task-store.d.ts +128 -0
- package/dist/a2a/producer/task-store.d.ts.map +1 -0
- package/dist/a2a/producer/task-store.js +128 -0
- package/dist/a2a/producer/task-store.js.map +1 -0
- package/dist/agent.d.ts +99 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +754 -19
- package/dist/agent.js.map +1 -1
- package/dist/api-runtime.d.ts +25 -0
- package/dist/api-runtime.d.ts.map +1 -1
- package/dist/api-runtime.js +75 -2
- package/dist/api-runtime.js.map +1 -1
- package/dist/claim-dispatcher.d.ts +126 -0
- package/dist/claim-dispatcher.d.ts.map +1 -0
- package/dist/claim-dispatcher.js +478 -0
- package/dist/claim-dispatcher.js.map +1 -0
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +33 -6
- package/dist/express.js.map +1 -1
- package/dist/inbound-job-dispatch.d.ts +105 -0
- package/dist/inbound-job-dispatch.d.ts.map +1 -0
- package/dist/inbound-job-dispatch.js +335 -0
- package/dist/inbound-job-dispatch.js.map +1 -0
- package/dist/index.d.ts +40 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -3
- package/dist/index.js.map +1 -1
- package/dist/job-context.d.ts +107 -0
- package/dist/job-context.d.ts.map +1 -0
- package/dist/job-context.js +95 -0
- package/dist/job-context.js.map +1 -0
- package/dist/jobs-cancel-route.d.ts +36 -0
- package/dist/jobs-cancel-route.d.ts.map +1 -0
- package/dist/jobs-cancel-route.js +60 -0
- package/dist/jobs-cancel-route.js.map +1 -0
- package/dist/jobs-helper-tools.d.ts +48 -0
- package/dist/jobs-helper-tools.d.ts.map +1 -0
- package/dist/jobs-helper-tools.js +133 -0
- package/dist/jobs-helper-tools.js.map +1 -0
- package/dist/llm-agent.d.ts +62 -53
- package/dist/llm-agent.d.ts.map +1 -1
- package/dist/llm-agent.js +211 -292
- package/dist/llm-agent.js.map +1 -1
- package/dist/llm-provider.d.ts +11 -4
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +57 -4
- package/dist/llm-provider.js.map +1 -1
- package/dist/llm.d.ts +4 -1
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +7 -17
- package/dist/llm.js.map +1 -1
- package/dist/media/resolver.d.ts.map +1 -1
- package/dist/media/resolver.js +3 -2
- package/dist/media/resolver.js.map +1 -1
- package/dist/mesh-job-submitter.d.ts +83 -0
- package/dist/mesh-job-submitter.d.ts.map +1 -0
- package/dist/mesh-job-submitter.js +143 -0
- package/dist/mesh-job-submitter.js.map +1 -0
- package/dist/provider-handlers/gemini-handler.js +5 -0
- package/dist/provider-handlers/gemini-handler.js.map +1 -1
- package/dist/proxy.d.ts +40 -0
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +375 -2
- package/dist/proxy.js.map +1 -1
- package/dist/resolver-meshjob.d.ts +170 -0
- package/dist/resolver-meshjob.d.ts.map +1 -0
- package/dist/resolver-meshjob.js +159 -0
- package/dist/resolver-meshjob.js.map +1 -0
- package/dist/route.d.ts +4 -0
- package/dist/route.d.ts.map +1 -1
- package/dist/route.js.map +1 -1
- package/dist/schema-normalize.d.ts +62 -0
- package/dist/schema-normalize.d.ts.map +1 -0
- package/dist/schema-normalize.js +128 -0
- package/dist/schema-normalize.js.map +1 -0
- package/dist/sse-stream.d.ts +44 -0
- package/dist/sse-stream.d.ts.map +1 -0
- package/dist/sse-stream.js +173 -0
- package/dist/sse-stream.js.map +1 -0
- package/dist/tool-worker-entry.d.ts +21 -0
- package/dist/tool-worker-entry.d.ts.map +1 -0
- package/dist/tool-worker-entry.js +162 -0
- package/dist/tool-worker-entry.js.map +1 -0
- package/dist/tool-worker-pool.d.ts +49 -0
- package/dist/tool-worker-pool.d.ts.map +1 -0
- package/dist/tool-worker-pool.js +272 -0
- package/dist/tool-worker-pool.js.map +1 -0
- package/dist/types.d.ts +351 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
package/dist/media/resolver.js
CHANGED
|
@@ -51,6 +51,7 @@ const VENDOR_FORMATTERS = {
|
|
|
51
51
|
openai: formatForOpenai,
|
|
52
52
|
gemini: formatForGemini,
|
|
53
53
|
google: formatForGemini,
|
|
54
|
+
vertex_ai: formatForGemini,
|
|
54
55
|
};
|
|
55
56
|
function formatPdfForClaude(b64) {
|
|
56
57
|
return {
|
|
@@ -133,7 +134,7 @@ async function resolveSingleResourceLink(resourceLink, vendor) {
|
|
|
133
134
|
if (vendor === "anthropic" || vendor === "claude") {
|
|
134
135
|
return formatPdfForClaude(b64);
|
|
135
136
|
}
|
|
136
|
-
else if (vendor === "gemini" || vendor === "google") {
|
|
137
|
+
else if (vendor === "gemini" || vendor === "google" || vendor === "vertex_ai") {
|
|
137
138
|
return formatPdfForGemini(b64, name);
|
|
138
139
|
}
|
|
139
140
|
else {
|
|
@@ -230,7 +231,7 @@ export async function resolveResourceLinks(toolResult, vendor) {
|
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
233
|
/** Vendors that do NOT support images in tool/function result messages. */
|
|
233
|
-
export const TOOL_IMAGE_UNSUPPORTED_VENDORS = new Set(["openai", "gemini", "google"]);
|
|
234
|
+
export const TOOL_IMAGE_UNSUPPORTED_VENDORS = new Set(["openai", "gemini", "google", "vertex_ai"]);
|
|
234
235
|
/**
|
|
235
236
|
* Resolve resource_links for inclusion in a tool result message.
|
|
236
237
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/media/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAE5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAEzF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEpD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,UAAU;IACV,eAAe;IACf,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC;AAOH,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,GAAG;SACV;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,QAAgB;IAC3D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,GAAG,EAAE,QAAQ,QAAQ,WAAW,GAAG,EAAE;YACrC,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,mEAAmE;IACnE,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,iBAAiB,GAAuE;IAC5F,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/media/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAE5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAEzF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEpD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,UAAU;IACV,eAAe;IACf,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC,CAAC;AAOH,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,GAAG;SACV;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,QAAgB;IAC3D,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,GAAG,EAAE,QAAQ,QAAQ,WAAW,GAAG,EAAE;YACrC,MAAM,EAAE,MAAM;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,QAAgB;IACpD,mEAAmE;IACnE,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,iBAAiB,GAAuE;IAC5F,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,eAAe;CAC3B,CAAC;AAEF,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,iBAAiB;YAC7B,IAAI,EAAE,GAAG;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IACxD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,2BAA2B,QAAQ,gFAAgF;KAC1H,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IACxD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,2BAA2B,QAAQ,6CAA6C;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;IACzE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,uBAAuB,IAAI,CAAC,MAAM,oBAAoB,CAAC;IAC1F,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,kBAAkB,QAAQ,KAAK,QAAQ,UAAU,IAAI,gBAAgB,QAAQ,MAAM;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,yBAAyB,CACtC,YAAqC,EACrC,MAAc;IAEd,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;IAC1E,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE,CAAW,CAAC;IAC/D,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAW,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,IAAI,GAAG,CAAW,CAAC;IAEnE,qCAAqC;IACrC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC;YAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC;YACvD,KAAK,CAAC,0BAA0B,IAAI,OAAO,MAAM,iBAAiB,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;YACxF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,iCAAiC,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,mBAAmB,IAAI,KAAK,QAAQ,IAAI,SAAS,QAAQ,GAAG,kBAAkB;aACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChF,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,uBAAuB,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,6BAA6B,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,mBAAmB,IAAI,KAAK,QAAQ,IAAI,SAAS,QAAQ,GAAG,GAAG;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAmB,EACnB,MAAc;IAEd,qBAAqB;IACrB,IACE,UAAU;QACV,OAAO,UAAU,KAAK,QAAQ;QAC7B,UAAsC,CAAC,IAAI,KAAK,eAAe,EAChE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAC1C,UAAqC,EACrC,MAAM,CACP,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,uDAAuD;IACvD,IACE,UAAU;QACV,OAAO,UAAU,KAAK,QAAQ;QAC7B,UAAsC,CAAC,IAAI,KAAK,eAAe,EAChE,CAAC;QACD,MAAM,GAAG,GAAG,UAAqC,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAc,CAAC;QAC5D,MAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACvB,IAAgC,CAAC,IAAI,KAAK,eAAe,EAC1D,CAAC;gBACD,KAAK,CAAC,IAAI,CACR,MAAM,yBAAyB,CAAC,IAA+B,EAAE,MAAM,CAAC,CACzE,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,uEAAuE;gBACvE,MAAM,OAAO,GAAG,IAA+B,CAAC;gBAChD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAChE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;IACf,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,UAAmB,EACnB,MAAc;IAEd,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAmB,EACnB,MAAc;IAEd,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CACpD,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE;YACvD,GAAG,UAAU;SACd;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAmB;IACjD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,UAAqC,CAAC;IAElD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAc,CAAC;QAC5D,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAA6B,CAAC,IAAI,KAAK,eAAe,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer-side `MeshJob` submitter (Phase 1 — MeshJob substrate).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Python's `_mcp_mesh.engine.mesh_job_submitter.MeshJobSubmitter`.
|
|
5
|
+
*
|
|
6
|
+
* When a consumer tool declares a parameter typed as `MeshJob` (i.e.
|
|
7
|
+
* `meshJobParamIndex` is set on the resolved tool definition), the
|
|
8
|
+
* runtime injects an instance of this class into that slot. The user
|
|
9
|
+
* calls `await submitter.submit({ payload: ..., maxDuration: ... })` to
|
|
10
|
+
* enqueue work on the remote producer and gets back a `JobProxy`
|
|
11
|
+
* exposing `wait`/`status`/`cancel`.
|
|
12
|
+
*
|
|
13
|
+
* Per the design's "decouple resolver from capability metadata"
|
|
14
|
+
* decision: this class does NOT verify the target capability is
|
|
15
|
+
* registered with `task=true`. The registry rejects `submit_job`
|
|
16
|
+
* against a non-task capability with a clear error which surfaces
|
|
17
|
+
* verbatim to the caller.
|
|
18
|
+
*
|
|
19
|
+
* Resilience: `submit` retries on transient registry errors (network
|
|
20
|
+
* drops / 5xx / 503) up to 3 attempts with 200ms then 1s backoff
|
|
21
|
+
* between them. 4xx / NotFound / Conflict / serialization errors
|
|
22
|
+
* propagate immediately — those won't self-heal.
|
|
23
|
+
*/
|
|
24
|
+
import { type JobProxy } from "@mcpmesh/core";
|
|
25
|
+
/**
|
|
26
|
+
* Per-submission options for `MeshJobSubmitter.submit(...)`. Matches
|
|
27
|
+
* the napi `SubmitJobArgs` shape (minus `registryUrl`/`capability`/
|
|
28
|
+
* `submittedBy` which the submitter binds at construction).
|
|
29
|
+
*/
|
|
30
|
+
export interface SubmitOptions {
|
|
31
|
+
/** Per-attempt soft timeout (seconds). `undefined` ≡ registry default. */
|
|
32
|
+
maxDuration?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Maximum retries on failure (registry default is 1 — one attempt,
|
|
35
|
+
* no retry). `undefined` ≡ registry default.
|
|
36
|
+
*/
|
|
37
|
+
maxRetries?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Absolute wall-clock deadline across all retries. Accepts a `Date`
|
|
40
|
+
* or a unix-epoch number (seconds). `undefined` ≡ unlimited per the
|
|
41
|
+
* "Resolved Decisions" section of MESHJOB_DESIGN.org.
|
|
42
|
+
*/
|
|
43
|
+
totalDeadline?: Date | number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Per-binding submit handle for a `MeshJob`-typed dependency.
|
|
47
|
+
*
|
|
48
|
+
* Constructed by the dependency injector at agent startup, one per
|
|
49
|
+
* (consumer-tool, dependency-capability) pair.
|
|
50
|
+
*/
|
|
51
|
+
export declare class MeshJobSubmitter {
|
|
52
|
+
/** Remote capability this submitter targets. */
|
|
53
|
+
readonly capability: string;
|
|
54
|
+
/** Identifier written to the registry's `submitted_by` column. */
|
|
55
|
+
readonly submittedBy: string;
|
|
56
|
+
/** Base URL of the mesh registry. */
|
|
57
|
+
readonly registryUrl: string;
|
|
58
|
+
constructor(capability: string, submittedBy: string, registryUrl: string);
|
|
59
|
+
/**
|
|
60
|
+
* Submit a new job on the bound capability and return a `JobProxy`.
|
|
61
|
+
*
|
|
62
|
+
* The first positional argument carries the user-supplied payload
|
|
63
|
+
* fields the producer will receive as its tool args. Optional
|
|
64
|
+
* second-arg knobs map to registry columns (`max_duration`,
|
|
65
|
+
* `max_retries`, `total_deadline`).
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const proxy = await jobSubmitter.submit(
|
|
70
|
+
* { user_id: "demo", sections: ["intro", "summary"] },
|
|
71
|
+
* { maxDuration: 60 },
|
|
72
|
+
* );
|
|
73
|
+
* const result = await proxy.wait(60);
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* Error semantics:
|
|
77
|
+
* - Transient registry errors (network/5xx/503) → up to 3 attempts
|
|
78
|
+
* with 200ms then 1s backoff between them before propagating.
|
|
79
|
+
* - 4xx / NotFound / Conflict / serialization → fail-fast.
|
|
80
|
+
*/
|
|
81
|
+
submit(payload: Record<string, unknown>, options?: SubmitOptions): Promise<JobProxy>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=mesh-job-submitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-job-submitter.d.ts","sourceRoot":"","sources":["../src/mesh-job-submitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgCzD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAG3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM;IAOrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,QAAQ,CAAC;CA+CrB"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer-side `MeshJob` submitter (Phase 1 — MeshJob substrate).
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Python's `_mcp_mesh.engine.mesh_job_submitter.MeshJobSubmitter`.
|
|
5
|
+
*
|
|
6
|
+
* When a consumer tool declares a parameter typed as `MeshJob` (i.e.
|
|
7
|
+
* `meshJobParamIndex` is set on the resolved tool definition), the
|
|
8
|
+
* runtime injects an instance of this class into that slot. The user
|
|
9
|
+
* calls `await submitter.submit({ payload: ..., maxDuration: ... })` to
|
|
10
|
+
* enqueue work on the remote producer and gets back a `JobProxy`
|
|
11
|
+
* exposing `wait`/`status`/`cancel`.
|
|
12
|
+
*
|
|
13
|
+
* Per the design's "decouple resolver from capability metadata"
|
|
14
|
+
* decision: this class does NOT verify the target capability is
|
|
15
|
+
* registered with `task=true`. The registry rejects `submit_job`
|
|
16
|
+
* against a non-task capability with a clear error which surfaces
|
|
17
|
+
* verbatim to the caller.
|
|
18
|
+
*
|
|
19
|
+
* Resilience: `submit` retries on transient registry errors (network
|
|
20
|
+
* drops / 5xx / 503) up to 3 attempts with 200ms then 1s backoff
|
|
21
|
+
* between them. 4xx / NotFound / Conflict / serialization errors
|
|
22
|
+
* propagate immediately — those won't self-heal.
|
|
23
|
+
*/
|
|
24
|
+
import { submitJob } from "@mcpmesh/core";
|
|
25
|
+
const _SUBMIT_MAX_ATTEMPTS = 3;
|
|
26
|
+
// Backoff applied BETWEEN attempts. With 3 attempts there are 2 gaps,
|
|
27
|
+
// so this array has exactly 2 entries — a third entry would never be
|
|
28
|
+
// reached (the previous `[200, 1000, 5000]` had the 5s tier silently
|
|
29
|
+
// dead). Tests assert 3 total attempts; mirror that here precisely.
|
|
30
|
+
const _SUBMIT_BACKOFF_MS = [200, 1000];
|
|
31
|
+
/**
|
|
32
|
+
* Heuristic: does this error string represent a transient registry
|
|
33
|
+
* failure that's worth retrying? Errs on the side of NOT retrying when
|
|
34
|
+
* the signal is ambiguous — submit failures are user-facing and a fast
|
|
35
|
+
* clear failure beats a slow flaky one.
|
|
36
|
+
*
|
|
37
|
+
* The Rust napi binding propagates `JobError` as `Error(message)`. The
|
|
38
|
+
* Rust side emits messages like:
|
|
39
|
+
* "backend error: network error: <reqwest::Error>"
|
|
40
|
+
* "backend error: backend unavailable: <body>"
|
|
41
|
+
* "backend error: server error (HTTP 502): <body>"
|
|
42
|
+
* "backend error: backend error: HTTP 400: <body>" (4xx, NOT transient)
|
|
43
|
+
* "backend error: job not found: <id>" (404, NOT transient)
|
|
44
|
+
* "backend error: conflict: <reason>" (409, NOT transient)
|
|
45
|
+
*/
|
|
46
|
+
function isTransientSubmitError(err) {
|
|
47
|
+
const msg = String(err?.message ?? err).toLowerCase();
|
|
48
|
+
if (msg.includes("network error"))
|
|
49
|
+
return true;
|
|
50
|
+
if (msg.includes("backend unavailable"))
|
|
51
|
+
return true;
|
|
52
|
+
if (msg.includes("server error (http 5"))
|
|
53
|
+
return true;
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Per-binding submit handle for a `MeshJob`-typed dependency.
|
|
58
|
+
*
|
|
59
|
+
* Constructed by the dependency injector at agent startup, one per
|
|
60
|
+
* (consumer-tool, dependency-capability) pair.
|
|
61
|
+
*/
|
|
62
|
+
export class MeshJobSubmitter {
|
|
63
|
+
/** Remote capability this submitter targets. */
|
|
64
|
+
capability;
|
|
65
|
+
/** Identifier written to the registry's `submitted_by` column. */
|
|
66
|
+
submittedBy;
|
|
67
|
+
/** Base URL of the mesh registry. */
|
|
68
|
+
registryUrl;
|
|
69
|
+
constructor(capability, submittedBy, registryUrl) {
|
|
70
|
+
this.capability = capability;
|
|
71
|
+
this.submittedBy = submittedBy;
|
|
72
|
+
this.registryUrl = registryUrl;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Submit a new job on the bound capability and return a `JobProxy`.
|
|
76
|
+
*
|
|
77
|
+
* The first positional argument carries the user-supplied payload
|
|
78
|
+
* fields the producer will receive as its tool args. Optional
|
|
79
|
+
* second-arg knobs map to registry columns (`max_duration`,
|
|
80
|
+
* `max_retries`, `total_deadline`).
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const proxy = await jobSubmitter.submit(
|
|
85
|
+
* { user_id: "demo", sections: ["intro", "summary"] },
|
|
86
|
+
* { maxDuration: 60 },
|
|
87
|
+
* );
|
|
88
|
+
* const result = await proxy.wait(60);
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* Error semantics:
|
|
92
|
+
* - Transient registry errors (network/5xx/503) → up to 3 attempts
|
|
93
|
+
* with 200ms then 1s backoff between them before propagating.
|
|
94
|
+
* - 4xx / NotFound / Conflict / serialization → fail-fast.
|
|
95
|
+
*/
|
|
96
|
+
async submit(payload, options = {}) {
|
|
97
|
+
let totalDeadlineEpoch;
|
|
98
|
+
if (options.totalDeadline !== undefined) {
|
|
99
|
+
if (options.totalDeadline instanceof Date) {
|
|
100
|
+
totalDeadlineEpoch = Math.floor(options.totalDeadline.getTime() / 1000);
|
|
101
|
+
}
|
|
102
|
+
else if (typeof options.totalDeadline === "number") {
|
|
103
|
+
// If looks like ms, downgrade to seconds. Anything > 1e12 is ms.
|
|
104
|
+
totalDeadlineEpoch =
|
|
105
|
+
options.totalDeadline > 1e12
|
|
106
|
+
? Math.floor(options.totalDeadline / 1000)
|
|
107
|
+
: Math.floor(options.totalDeadline);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
throw new TypeError(`MeshJobSubmitter.submit: totalDeadline must be a Date or a number ` +
|
|
111
|
+
`(unix epoch seconds); got ${typeof options.totalDeadline}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
let lastErr = null;
|
|
115
|
+
for (let attempt = 1; attempt <= _SUBMIT_MAX_ATTEMPTS; attempt++) {
|
|
116
|
+
try {
|
|
117
|
+
const proxy = await submitJob({
|
|
118
|
+
registryUrl: this.registryUrl,
|
|
119
|
+
capability: this.capability,
|
|
120
|
+
payload,
|
|
121
|
+
submittedBy: this.submittedBy,
|
|
122
|
+
// Let the registry assign owner via pull-claim.
|
|
123
|
+
ownerInstanceId: undefined,
|
|
124
|
+
maxDuration: options.maxDuration,
|
|
125
|
+
maxRetries: options.maxRetries,
|
|
126
|
+
totalDeadline: totalDeadlineEpoch,
|
|
127
|
+
});
|
|
128
|
+
return proxy;
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
lastErr = err;
|
|
132
|
+
if (!isTransientSubmitError(err) || attempt >= _SUBMIT_MAX_ATTEMPTS) {
|
|
133
|
+
throw err;
|
|
134
|
+
}
|
|
135
|
+
const backoffMs = _SUBMIT_BACKOFF_MS[Math.min(attempt - 1, _SUBMIT_BACKOFF_MS.length - 1)];
|
|
136
|
+
await new Promise((resolve) => setTimeout(resolve, backoffMs));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Defensive — unreachable: we either return or throw above.
|
|
140
|
+
throw lastErr ?? new Error("MeshJobSubmitter.submit: unreachable");
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=mesh-job-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-job-submitter.js","sourceRoot":"","sources":["../src/mesh-job-submitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,4 +123,9 @@ export class GeminiHandler {
|
|
|
123
123
|
// Use "gemini" as vendor name to match model prefix (e.g., "gemini/gemini-3-flash-preview")
|
|
124
124
|
// This is consistent with Python SDK's registration
|
|
125
125
|
ProviderHandlerRegistry.register("gemini", GeminiHandler);
|
|
126
|
+
// Also register under "vertex_ai" — same Gemini model family, same prompt-shaping
|
|
127
|
+
// rules (HINT mode for tool calls, STRICT mode for tool-free structured output);
|
|
128
|
+
// only the auth/transport differs (IAM via @ai-sdk/google-vertex vs API key via
|
|
129
|
+
// @ai-sdk/google). Mirrors Python's GeminiHandler registry alias.
|
|
130
|
+
ProviderHandlerRegistry.register("vertex_ai", GeminiHandler);
|
|
126
131
|
//# sourceMappingURL=gemini-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/gemini-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gemini-handler.js","sourceRoot":"","sources":["../../src/provider-handlers/gemini-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy.d.ts
CHANGED
|
@@ -17,6 +17,16 @@ export interface CallOptions {
|
|
|
17
17
|
}
|
|
18
18
|
/** Default CallOptions for internal callers that don't go through createProxy. */
|
|
19
19
|
export declare const DEFAULT_CALL_OPTIONS: CallOptions;
|
|
20
|
+
/**
|
|
21
|
+
* Symbol stash for proxy dispatch metadata. Non-enumerable so it doesn't leak
|
|
22
|
+
* via JSON.stringify(proxy) (which would expose endpoint, kwargs.customHeaders,
|
|
23
|
+
* and any auth tokens user code put in customHeaders).
|
|
24
|
+
*
|
|
25
|
+
* Internal use only — read by agent.ts when serializing deps for worker
|
|
26
|
+
* dispatch. User code should continue to read public properties (endpoint,
|
|
27
|
+
* capability, functionName, kwargs) directly off the proxy if they need them.
|
|
28
|
+
*/
|
|
29
|
+
export declare const PROXY_DISPATCH_META: unique symbol;
|
|
20
30
|
/**
|
|
21
31
|
* Run a function with propagated headers context.
|
|
22
32
|
*/
|
|
@@ -57,6 +67,31 @@ export declare function createProxy(endpoint: string, capability: string, functi
|
|
|
57
67
|
* Includes distributed tracing: propagates trace context and publishes spans.
|
|
58
68
|
*/
|
|
59
69
|
export declare function callMcpTool(endpoint: string, toolName: string, args: Record<string, unknown> | undefined, options: CallOptions, capability: string, extraHeaders?: Record<string, string>): Promise<string | MultiContentResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Stream text chunks from a remote ``Stream[str]`` tool.
|
|
72
|
+
*
|
|
73
|
+
* Returns an async iterable that yields each chunk as the producer emits it
|
|
74
|
+
* via MCP ``notifications/progress``. The final result message ends the
|
|
75
|
+
* stream — its content is NOT yielded (matches Python's contract: "iterate
|
|
76
|
+
* to get the whole stream").
|
|
77
|
+
*
|
|
78
|
+
* Wire protocol:
|
|
79
|
+
* - POST /mcp with JSON-RPC ``tools/call`` and ``params._meta.progressToken``
|
|
80
|
+
* - Server returns ``text/event-stream`` with one SSE event per JSON-RPC msg
|
|
81
|
+
* - ``notifications/progress`` events with matching ``progressToken`` are
|
|
82
|
+
* yielded as ``params.message``
|
|
83
|
+
* - The final ``result`` event ends the stream
|
|
84
|
+
* - JSON-RPC ``error`` event throws
|
|
85
|
+
*
|
|
86
|
+
* NOTE: If the producer does not actually emit progress notifications, the
|
|
87
|
+
* SSE response will only contain the final ``result`` message and this
|
|
88
|
+
* iterable will yield nothing. (TS does not currently advertise
|
|
89
|
+
* ``stream_type=text`` like Python; the soft-fallback isn't implemented.)
|
|
90
|
+
*
|
|
91
|
+
* Cancellation: when the consumer breaks out of the iteration, the underlying
|
|
92
|
+
* ``fetch`` is aborted via ``AbortController`` and the reader is released.
|
|
93
|
+
*/
|
|
94
|
+
export declare function streamMcpTool(endpoint: string, toolName: string, args: Record<string, unknown> | undefined, options: CallOptions, capability: string, extraHeaders?: Record<string, string>): AsyncGenerator<string, void, void>;
|
|
60
95
|
/**
|
|
61
96
|
* Multi-content result returned when MCP response contains non-text content
|
|
62
97
|
* items (resource_link, image, embedded_resource, etc.).
|
|
@@ -81,6 +116,11 @@ export declare function extractContent(result: unknown): string | MultiContentRe
|
|
|
81
116
|
/**
|
|
82
117
|
* Normalize a DependencySpec to canonical form.
|
|
83
118
|
* Handles both simple string dependencies and full specs with tag-level OR alternatives.
|
|
119
|
+
*
|
|
120
|
+
* Issue #547: when expectedSchema (Zod) is supplied, eagerly extract the raw
|
|
121
|
+
* JSON Schema (cheap) but defer Rust-normalizer invocation to the heartbeat
|
|
122
|
+
* pipeline (Python parity). matchMode defaults to "subset" when expectedSchema
|
|
123
|
+
* is set; a matchMode without expectedSchema logs a warning and is dropped.
|
|
84
124
|
*/
|
|
85
125
|
export declare function normalizeDependency(dep: DependencySpec): NormalizedDependency;
|
|
86
126
|
//# sourceMappingURL=proxy.d.ts.map
|
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|